阅读更多

3顶
0踩

非技术

转载新闻 码农之路:我早该做好的5件事

2014-12-16 16:13 by 正式编辑 cao345657340 评论(0) 有3918人浏览
在过去几个月的时间里,我一直在学习如何用Objective-C构建iOS应用,时至今日才终于有点眉目了。不得不感叹,这比我想象得要难多了。

纠结,困惑,沮丧,实际写代码的时间甚至还没有寻找并修复bug的时间多。但是当我终于可以把玩自己亲手做的手机app时,忽然感觉所有的努力都是值得的!

在制作app的道路上,我学到了很多——不仅仅关于如何开发iOS应用程序,还有如何总体规划,甚至编程技能也提高了。但是其实有很多问题是可以避免的,如果我在学Objective-C时采取其他方式的话。



整合这些经验,如果今天让我重新学习代码的话,我会这么做:

找个“码友”

首先要找到一个可以交流心得的“码友”。

我的一个朋友Josh,Python开发人员,也会Objective-C,非常感激我提出的很多实质性的问题(“如何再次运用if语句?”),而当我百思不得其解时,他也会帮我调试一二,正可谓教学相长。

老实说,有这样一个耐心的码农朋友给我解释基本编程原理,真心是获益匪浅。如果早点有这样一个朋友,我相信我就不会Objective-C上走这么多弯路。

利用所有可利用的资源

如果你身边没有这样一个耐心的码友,那么你可以使用下面的方式来获取帮助:

1. Stack Overflow

碰到特定的语法和开发问题,上Stack Overflow就对了。不过我个人还没有在网上提问过,因为光看别人提的问题和回答就够了。

2. 订阅网络期刊

网络中的学习资源错综复杂,有时候往往能让初学者晕头转向,一些网络期刊定期会将近期的精华内容推送给你,让你有选择地学习。我们推荐由码农网推出的《快乐码农》,你可以直接点此邮件订阅

3. Treehouse

通过视频课程和内置的社区论坛教你如何编程。

4. askadev

通过askadev可以在你需要帮助的时候,给你连接到经验丰富的开发人员。我自己没试过,不知道这是否涵盖了所有的编程语言,不过有一点是好的,it’s free。所以下次你要是碰到什么难题,尽可以试试。

5. Codementor

如果你不介意花点钱来获取资深开发人员的帮助,那么不妨试试Codementor。它会为你匹配至最优选项,语种包括Android、iOS、HTML、CSS、PHP、Python等等等等。

6.橡皮鸭法

此方法的关键点在于,将自己的问题大声地宣之于口,解释给橡皮鸭或者其他没有生命的物体,哪怕是烤面包机亦可。

在你解说的时候,往往会灵机一现突然想到答案(或者发现有不对的地方)。

学习基本原理

很多东西之所以会成为拦路虎,是因为我们自己本身的错误理解或者不熟悉正在使用的技术所造成的。

例如,使用API意味着需要了解API是如何工作的,如何使用POST和GET请求,以及如何解析JSON数据。甚至连如何接收JSON数据也需要知道。

想要建立一个iOS应用程序,光学习Objective-C是不够的——至少这不足以构建我心目中的app。曾经的我就犯过这样的错误。

更糟糕的是,我时常会卡住,即使有论坛解说、网上教程以及书籍章节的解释,但是这些通通跳过了一些基本原理——以为我知道但其实我并不知道。

如果再让我重新学习,我一定好好掌握HTML和CSS的基础知识。如果再让我做app我绝对不会再像现在这样盲目开始,而是会先打好基础。

第一门语言

任何语言都是财富,哪怕我学的HTML和CSS至今也没有用武之地,我依然不觉得学习它们是浪费时间。

初学者一开始可以试试用HTML和CSS建立网站。这些其实都是标记语言,因此可能对你建立手机或者web应用程序没多大帮助。但是即使没有用处,我们在学习的过程中还是能获得很多的知识和经验,方便我们学习下一门编程语言。

如果你刚开始学代码但不知道从何处着手,可是挑选自己喜欢的书本、教程或者在线课程,只要你觉得ok就别犹豫。一旦你有了确切的目标,还可以马上转去学习其他不同的编程语言。

找一个自己真心想做的项目

我自认是个还算用功的人,先是在十几岁的时候学习了HTML和CSS,然后又在几年前学了有关Ruby的基础知识,以及最近又将目标放在了Python上面。

然后我又决定去学习Objective-C,不过我学习Objective-C不是因为我更喜欢它也不是因为看到别人在学我也眼馋,而是因为我想做一个iOS应用程序——我真心非常想亲自做一个。

可以说,学习Objective-C语言的激情比以往任何一种语言都要来得高昂。

最重要的是,当我碰到各种难题时,当我沮丧时,我都没有想过要放弃——因为这是我真心想做的项目。即便是小小的一个进步,都是我坚持下去的动力。

如果你正在考虑学习编码并且没有其他任何限制条件,那就选择自己真正热爱和构建项目所需要的编程语言。

每个人的学习过程都不尽相同,所以你的经历经验可能与我的也存在不同,不过如果你正在起步阶段或者正在考虑学习编码,我真心希望我的经验教训能帮你学得更快。
  • 大小: 24.6 KB
来自: 码农网
3
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 码农之路:早该做好的5件事

    在过去几个月的时间里,我一直在学习如何用Objective-C构建iOS应用,时至今日才终于有点眉目了。不得不感叹,这比我想象得要难多了。 纠结,困惑,沮丧,实际写代码的时间甚至还没有寻找并修复bug的时间多。但是...

  • 码农精进之路:我不相信35岁就做不了程序员

    异步导读 ...对于大多数初出茅庐的程序员们而言,张建飞的《代码精进之路:从码农到工匠》一书就是一条捷径。通过多年的学习和工作积累,张建飞研发了COLA(全称是Clean Object—Oriented Layered Arc...

  • 代码精进之路:从码农到工匠读书笔记

    代码精进之路:从码农到工匠读书笔记 第一章技艺 代码命名规范的意义: 由此可见,事物的复杂程度在很大程度上取决于其有序程度,减少无序能在一定程度上降低复杂度,这正是规范的价值所在。通过规范,把无序的...

  • 代码精进之路 码农到工匠pdf_专访张建飞:阿里技术也提倡,优雅代码和整洁架构...

    来源 | 异步 | 文末赠书异步导读我...对于大多数初出茅庐的程序员们而言,张建飞的《代码精进之路:从码农到工匠》一书就是一条捷径。通过多年的学习和工作积累,张建飞研发了COLA(全称是Clean Object—Oriented Lay...

  • 孤独后厂村,码农的故乡:30万互联网人跳不出的中国硅谷

    她把这事当作段子发到公司内网,同事说这办法太好了,下次我也用。 新浪的徐林不愿想这些取巧的捷径,他选择步行回家。楼下的出租车不拉近单,上完8小时夜班后,晚上12点,他走50分钟回到4公里外的家。不看红灯的大...

  • 阿里码农自述:老婆失业了,周围同事也不断被裁

    源码精品专栏原创 | Java 2021超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Sharding-JDBC 和 MyCAT 源码解析...

  • 硬核干货:一位菜鸟码农的架构师“封神”之路!

    除此之外,我也回顾了自己走过的路、使用或尝试过的技术,以及我从那些五花八门的工作中学到的东西。 架构师技术路线图 软件架构师是什么? 在进行深层次的探讨之前,我们先来看两个定义: 软件架构师是指那些制定...

  • 笑中带泪的码农往事:入职三天被开,公司给100块叫我走人,有我惨?

    十月,金秋季节,本是丰收之时,却因为陆续有同事离职,心中多少有些悲凉之意,顿然想起从参加工作到现在。至今五年已过,当年青涩懵懂的小年轻,如今出街招摇过市时,被小孩子看到都会喊声大叔。 回想这五年,有...

  • 码农:曾diss我技术的人如今没工作找我,太具讽刺意义了!

    则会让人感觉到自己受到一些莫名的遭遇,不过,对于这件事情,我建议楼主也没必要说明了,就当是自己的一个包容精神吧,这个技术圈子实在是太小了,我们不论做什么事,始终保持一个谦虚和蔼的态度还是十分必要的,...

  • node-v0.10.31-sunos-x86.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • node-v0.10.44-linux-x86.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • 30KW三相PFC充电桩充电模块项目开发设计方案CCS源码AD原理图bom测试报告

    30KW三相PFC充电桩项目开发设计方案CCS源码AD原理图bom测试报告

  • node-v0.10.32-x64.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • JAVA五子棋手机网络对战游戏的设计与实现(源代码+LW).zip

    JAVA五子棋手机网络对战游戏的设计与实现(源代码+LW)JAVA五子棋手机网络对战游戏的设计与实现(源代码+LW)JAVA五子棋手机网络对战游戏的设计与实现(源代码+LW)JAVA五子棋手机网络对战游戏的设计与实现(源代码+LW)JAVA五子棋手机网络对战游戏的设计与实现(源代码+LW)JAVA五子棋手机网络对战游戏的设计与实现(源代码+LW)JAVA五子棋手机网络对战游戏的设计与实现(源代码+LW)JAVA五子棋手机网络对战游戏的设计与实现(源代码+LW)JAVA五子棋手机网络对战游戏的设计与实现(源代码+LW)JAVA五子棋手机网络对战游戏的设计与实现(源代码+LW)

  • 人工智能+深度学习+卷积神经网络精细解读+整理版

    【项目资源】:汇聚了云计算、区块链、网络安全、前端设计、后端架构、UI/UX设计、游戏开发、移动应用开发、虚拟现实(VR)、增强现实(AR)、3D建模与渲染、云计算服务、网络安全工具等各类技术项目的素材和模板。包括AWS、Azure、Docker、Kubernetes、React、Vue、Angular、Node.js、Django、Flask、Unity、Unreal Engine、Blender、Sketch、Figma、Wireshark、Nmap等项目的素材和模板。【项目质量】:所有素材和模板都经过精心筛选和整理,确保满足专业标准。在发布前,我们已经对功能进行了全面测试,确保其稳定性和可用性。【适用人群】:适合对技术充满热情的初学者、希望提升专业技能的中级开发者、以及寻求创新解决方案的高级工程师。无论是个人项目、团队合作、课程设计还是商业应用,都能在这里找到合适的资源。【附加价值】:这些项目资源不仅具有很高的学习价值,而且能够直接应用于实际项目中,提高开发效率。对于有志于深入研究或拓展新领域的人来说,它们提供了丰富的灵感和基础框架,帮助你快速构建出令人惊艳的作品。

  • node-v0.12.16-linux-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • node-v0.10.14-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • Hnase课程-概念资料

    Hnase课程-概念资料

  • 太原理工软件工程Linux与Python编程

    太原理工软件工程Linux与Python编程实验报告,各位当个参考即可,不用过分较真,如果与你们想法不同,请以自己为主。

Global site tag (gtag.js) - Google Analytics