选自Medium

作者:Kesk

机器之心编译

参与:魔王

这 40 个小贴士,或许可以帮你提升编程技能。

如何提高编程技能?恐怕很多开发者思考过这个问题。最近,拥有将近 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. 最后,保持耐心,保持热爱。

原文链接:https://medium.com/swlh/40-tips-that-will-change-your-coding-skills-forever-bf9d6b936ccc

解决不了bug先放着,这里有40条提升编程技能小妙招相关推荐

  1. 提高python代码能力_解决不了bug先放着,这里有40条提升编程技能小妙招

    点击上方 "Python人工智能技术" 关注,星标或者置顶 22点24分准时推送,第一时间送达 来自:公众号 机器之心 | 编辑:真经君 Python人工智能技术(ID:coder ...

  2. 解决不了bug的时候看一下:

    解决不了bug的时候看一下: 1.机器是不会出错的,出错的一定是人.只是你还没有意识到哪里出了错. 2.产生bug 的原因想错了,你以为是系统的bug ,那么你肯定就不想着去解决,你也就解决不了. 这 ...

  3. 还在用通风放味除甲醛呢?专家教你三个小妙招,帮你轻松除甲醛!

    甲醛,又名蚁醛,是一种无色气体,一定浓度下会有刺激性气味,对人体会有刺激性,多表现在人的眼睛.鼻子.呼吸道黏膜等.之所以会被公认为室内装修污染中最难治理的有害气体,关键就在于相较于其他室内污染物甲醛的 ...

  4. indesign照片放入太大_猪肚鸡做法复杂,量太大,那来个简易版,用上大厨教的妙招更香了...

    [猪肚鸡做法复杂,量太大,那来个简易版,用上大厨教的妙招更香了]天气越来越冷了,今天准备炖鸡汤,正好老妈给了小半个已经处理好的猪肚,所以决定炖个简易版胡椒猪肚鸡.说实话外面的胡椒猪肚鸡做法是比较复杂的 ...

  5. tomcat 404错误 原因_软件测试人员定位bug原因的10大妙招分享

    作为一名软件测试人员,日常工作与bug是息息相关的.在发现bug之后,首先要做的就是定位bug,确定bug的存在,然后才是分析bug产生的原因并解决bug. 无论是自己找到的bug,还是开发修复后告诉 ...

  6. 自己做的一个简历网页,有很多bug解决不了,有没有大神帮我看看

    今年年初找工作时自己利用掌握的前端知识写了这么一个网页,但是有好多bug自己解决不了,比如二级页加载太慢.滑屏返回不了.希望有大神能帮我看一下,看看怎么解决~~~~ 网址:qyued.com 转载于: ...

  7. 一分钟详解initUndistortRectifyMap函数bug修复方法

    本文首发于微信公众号「3D视觉工坊」--一分钟详解initUndistortRectifyMap函数bug修复方法 在上一篇文章OpenCV中initUndistortRectifyMap函数存在bu ...

  8. 用计算机解决自动驾驶,自动驾驶汽车很美好,但这3个逻辑解决不了,依然是人类驾驶汽车...

    2021-06-28   访客:次 随着汽车智能化的发展,自动驾驶技术也在越来越成熟.马斯克的特斯拉可以算是本领域中做的比较好的车企,它为我们勾画了一幅未来完全自动驾驶的场景.在未来自动驾驶时代,你无 ...

  9. Notepad++ 出现中文乱码,修改编码格式解决不了,修改字体可以

    1. 问题描述: 文本中的中文突然变成了乱码,英文正常:中文输入法,打字显示是中文,但是敲入文本后显示为不认识的字母.eg:谢谢 显示为 "лл" .按照百度中搜索的建议的修改 ...

最新文章

  1. Windows 技术篇-网卡物理(MAC)地址查看方法
  2. Py之matplotlibseaborn :matplotlibseaborn绘图的高级进阶之高级图可视化(基础图(直方图等),箱线图、密度图、小提琴图等)简介、案例应用之详细攻略
  3. 世界第一台电脑_再述东芝的传奇霸业:当年造出世界上首台笔记本,现在却为何放弃...
  4. php __tostring 与 tostring
  5. 交叉验证python_交叉验证
  6. CSS基础「六」元素的显示与隐藏
  7. Netty实现长连接简单例子
  8. Codeforces Round #467 (Div. 1): A. Save Energy!(公式)
  9. 重启mysql tomcat_linux下MySQL、Tomcat、Redis、Nginx停止和重启
  10. 推送环境搭建基于开源MPush
  11. bin和cue怎么合并_bin和cue格式的文件怎么用?
  12. SREng 使用指南(一)SREng简介
  13. 用十条命令在一分钟内检查Linux服务器性能[转]
  14. 多多视频带货快速出单小技巧!
  15. 钉钉扫码登录二维码错乱
  16. php网页地图上自定义,如何添加在线自定义地图
  17. Educational Codeforces Round 132 (Rated for Div. 2) 题解(A~D)
  18. Python爬虫(scrapy模块、bs4模块) 爬取笔趣阁全本小说(三级页面)
  19. 火车头采集器V10下载-火车头采集器免费
  20. 虚拟校园网络组件开发笔记

热门文章

  1. Datawhale组队学习周报(第035周)
  2. 【青少年编程】【四级】数字之和
  3. 如何设置matplotlib中x,y坐标轴的位置?
  4. 利用Use Case为系统行为建模(1)
  5. 神经网络学习到的是什么?(Python)
  6. 溢价 5 倍欲将 SiFive 收入麾下,英特尔的绝地反击战
  7. 安永创新中心落子北京,聚焦5G技术赋能企业数字化转型
  8. 让线上学习不打折扣,作业帮如何用技术促进课堂高频互动场?
  9. 美国AI博士指出,自学Python到底能做什么
  10. 无需标注数据,利用辅助性旋转损失的自监督GANs,效果堪比现有最好方法