当你把它变成爱好的时候,你获取知识的速度会比之前要快得多。初级的开发者不必急于搞懂那些超越自己理解能力之外的东西。编程的世界是很广阔的,在这样一个庞大的学科中,知识的盲点会阻碍你的进步。给希望在编程生涯中有进一步成长的中级开发者提出以下几点建议,希望你们有所收获:
1.学习数据结构
数据结构无处不在。你使用的语言可能有自己的数组,哈希或者枚举类型。当然,这些并不是构造数据的唯一方法。还有二叉树,堆,图,k叉树,和许多其他类型。了解适用的最佳的数据结构可以使程序更高效、更容易维护。数据结构的知识是共性的,适用于所有的编程语言。
2.研究算法
数据结构给我们提供高效快速的方法来存储数据,算法是动态的数据结构。研究算法可以使程序员用新的巧妙的方法来解决问题。每个问题总会有多种解决方法,每个算法都有自己的时间和空间复杂度。掌握多种算法可以让我们在解决问题的时候尽快找到最佳的解决方案。
3.掌握IDE的使用
你的开发环境直接影响你编码的速度、质量和乐趣。没有最完美的IDE,你最喜欢的、用起来最舒服的编辑器就是最好的。每种编辑器都有很强大的功能,每天学习一些你选择使用的编辑器的一些新功能。通过快捷方式和自动工作流节省的时间会直接影响你的产出。
4.要擅长debugging
每个程序都有bug,然而没有人愿意在编程的时候在debugging上花费整天的时间。要熟练使用断点和调试器,做到在5分钟之内快速解决bug。擅长debugging的程序员通常是快乐的。将一个简单的程序挂到调试器中,然后使用简单的断点来回移动程序运行。
5.和朋友一起开发
和朋友一起编程是学习新技巧、讨论不同方法、并从同行那里得到反馈的绝佳方式。与朋友一起发展同时也可以加强团队工作中最重要的方面:有效的书面和口头交流。
如果本地朋友找不到的话,可以尝试给GitHub上的开源项目贡献代码。
6.阅读其他人的代码
音乐家通过学习伟大的音乐作品来学习。画家学习艺术史并在周末旁听画廊开幕。作家们读他们能找到的每一篇文献。要想做得更好,就要熟悉这门学科的伟大著作。在编程的路上,尽可能多的阅读代码。实践、阅读和理解高人的代码是提高编程水平的最有效方法。
7.编写多种类型的程序
世界很大,同时它有很多各种不同的待解决的问题。每个问题都有软件可以提供的解决方式(软件正在吃掉世界),你能创造的程序是没有限制的。打破你的舒适环境,探索一个完全不同的编程宇宙。
Web开发?试着写一个Android程序吧。原生开发?试着写一个分布式程序吧。后端开发?探索Arduino嵌入式代码吧。
8.学习一门新的语言
学习一门新的语言可以延伸你的思想。新语言的结构和语法会让你对之前的语言有更深的理解,有新的感觉。学习一门可以从根本上改变你编程思想的语言。这些好处不止是在语法层面,它开辟了新的思考方式和解决方案的方法。
9.维护一个blog
把它看作是一个职业生涯中的兴趣、挑战和记录成就感的技术期刊。持续写博客会让你更有趣研究新的有意思的技术。每天写作也会提高你的书面沟通能力。
10.勿忘初心
想要更好地进行编程的动机是什么?“更好”对你意味着什么?它是否意味着编写运行更快,bug更少,用户量更多的app?或者给客户带来快乐?