如何提高编程技能?恐怕很多开发者思考过这个问题。最近,拥有将近 15 年开发经验的软件工程师 Kesk -*- 写了一篇博客,列举了 40 条对其职业生涯有所帮助的事项。
或许,通过以下 40 个小贴士,你可以提升自己的编程技能。
1. 将大块代码拆分成函数。
2. 当你需要休息时还有问题没解决,请关上电脑,明天再看。
3. YAGNI 原则(你不会需要它):只写别人要求你写的功能。不要预测未来,只需要尽可能快地完成开发。只编码解决当前问题最必要的部分。
4. 你不需要什么都懂,也不需要了解所有框架。最棒的事情莫过于打好基础。在开始使用一个框架前先深入了解这门语言,学习基础的事项(如 SOLID 原则),或者如何写出干净的代码。
5. KISS 原则:KISS(保持简单和愚蠢)原则表明,大多数系统保持简洁而非复杂化,就可以运行得很好。尽管这很符合逻辑,但有时候却很难做到。
6. 不要想太多。
7. 如果你和一个问题或 bug 斗争了太长时间,先离开一会儿,等下再回来。通常,在离开办公室去往卫生间的路上,解决方案就会出现在脑海里。当你对客户或同事生气时,也建议你暂时离开去走走,如果你还想保住工作的话……
8. 学习写有用的测试,学着用 TDD(测试驱动开发)。TDD 是一种软件开发流程,它是对如下简短开发周期的重复:写测试;运行所有测试,查看新的测试是否运行;写代码;运行测试;重构代码;重复。
9. 先解决问题再写代码。不要在一筹莫展的时候开始编程。
10. 不要记代码,而是理解逻辑。
11. 如果你复制粘贴 Stack Overflow 中的解决方案,请确保自己首先理解它。学习用恰当的方式使用 Stack Overflow。
12. 想学习,先实践。创建示例,并使其运行,因为只通过阅读来学习远远不够。
13. 研究他人的代码,也时不时让别人研究你的代码。结对编程并进行代码 review 是不错的想法。
14. 不要重复造轮子。
15. 代码是最好的文档。
16. 了解如何搜索。你需要有经验,大量阅读,了解需要找什么。
17. 你写的代码以后会由自己或别人进行维护,因此写的时候想着读者,不要把自己当做最聪明的人。写代码要像写故事一样。
18. 用谷歌解决错误的最佳方式是复制粘贴。
19. 不要放弃,问题总能得到解决的。糟糕的时刻总会过去。
20. 好好休息。解决问题的最佳方式是先让大脑得到充分休息。
21. 学习使用软件设计模式。设计模式是软件设计常见问题的解决方案。每个模式就像一个蓝图,你可以依据它进行自定义,进而解决自己代码中的常见设计问题(记住,不要重复造轮子)。
22. 尽可能地使用集成工具和自动化方式。
23. 练习编码套路(code kata):编码套路是一种编程练习,可以帮助程序员通过重复实践来提升技能。示例参见:https:\/\/codingdojo.org\/kata\/
24. 编程并达到接口水平,而不是实现水准。依赖注入是必要的,参见 SOLID 原则。
25. 重构——测试 - 重构。重构即对现有代码进行重建、改动,在不改变其内部行为的前提下提升内部结构。
26. 必要的时候寻求帮助,不要浪费时间。
27. 多实践,熟能生巧。
28. 尽管有时候注释可以帮到你,但不要在这上面花费太多注意力。注释可能是过时的。
29. 了解自己的开发环境,并建设足够强大的开发环境,如 IntelliJ。
30. 重用组件。
31. 在开发 web 应用时,思考移动端及其相关的电量和带宽限制。
32. 不要过早地优化或重构代码。尽快做出最小可行性产品比较重要。
33. 不要为了节约几分钟,而选择低效的捷径。每次写代码,都要竭尽全力。
34. 遵循文档标准。
35. 用户不是技术人才。开发 UI 时时刻想着这一点。
36. 经常使用 GitHub 或 bitbucket 等源代码控制系统,并频繁进行小的提交更新操作。
37. 使用 log 要比代码 debug 更好。将所有关键部分记录下来。
38. 写代码时要保持连贯性。如果你使用一种风格,请一以贯之。如果你和多人合作的话,请和整个团队使用同样的风格。
39. 不要停止学习,不止是学新语言或新框架,还要关注软件开发基础知识。
40. 最后,保持耐心,保持热爱。
学C\/C++不易,此路应携手前行。
2020年 TIOBE 7月份的编程语言排行榜:
TIOBE 2020 年 7 月份的编程语言排行榜已经公布,官方的标题是: R 语言的排名达到了历史最高位。
R 语言一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。也有人把 R 语言用作矩阵计算,其分析速度可媲美专用于矩阵计算的自由软件 GNU Octave 和商业软件 MATLAB,前段时间 美国还禁止中国部分高校使用 MATLAB 软件, GNU Octave 现在 不受美国政府限制, python、numpy、 scipy 也可以代替 MATLAB 的部分功能,好像还有一款国产的 ,不过应该和 MATLAB 软件 还有很大差距,当然原子弹也不是一两天就造出来的,加油吧!
7 月份编程语言排名前十的分别是:C,Java,python,C++,C#,Visual Basic, JavaScript ,R, pH p , Swift。
7 月份跟 6 月份比较没有很大的变化 R 语言从第 9 位上升到第 8 位, Swift 进入前 10。
排名 1-20 的编程语言
排名 21-50 的编程语言
各大编程语言的历史排名(1988-2020)
编程语言“名人榜”( 2003-2019)
数据反应目前主流编程语言的变化趋势,对我们学习和工作可作为一个参考,但各个语言都有它们各自适合的应用场景,所以也不必过于在意,毕竟语言的好坏在于如何去使用它。
网友:张士肉:只能去迷界走廊了。网友:叶宽英:因为这等实力在火烈城想要找好点的工作不容易,也就跑跑腿当当侍从仆人。
网友:孙迅交:手指尖端都隐隐有一点金光,空间都直接塌陷碎裂,直接点在了枪尖上。
网友:吕鹰胃:你如今听我等吩咐,操纵整个傅钧城的法阵辅助我等。
网友:刘鹏:毕竟在遥远的魔山宇宙‘始祖魔山’,自己丈夫到底经历什么,根本无法猜测。
网友:刘擅介:东伯雪鹰陷入了狂喜中。
网友:傅福镜:看着那浑源囚徒挣扎。
网友:孔瑜:又是灵魂道路上达到前所未有之境,灵魂更融入过一滴万触龙母心头血。
网友:李赢:修行完突然又消失无踪了三天多时间……什么事情不能先和我说一声再去?我给你传讯,你也没回应。
网友:陆杰:刀皇城等势力就算对东伯雪鹰有怒意,也不会随便出手,否则就是打太虚天宫的脸!真的结仇了,一般先上禀上去,让对方势力最高层进行惩罚。
网友:石帅:你到底发现了什么?”宗凌虽然相信雪鹰,可依旧觉得一头雾水。
网友:孟食欧:为何叫巫神?