阅读 5545

[译] 成为一个优秀程序员的101个小建议

第一次翻译文章,之所以会想把这篇文章分享给大家,是因为之前群里一个刚入行的新人寻求建议,问学哪个框架好。而我脑海里想到的却是准备个杯子多喝水,搞个好点的椅子保护好腰,多看源码多逛社区之类的。突然发现,除了技术之外,还有很多工作经验,学习方法,为人处世的东西也很重要,甚至它们是先于技术的。但是讲述这些东西的文章并不多,所以昨天看到这篇文章的时候,里面得很多建议恰恰是我面临问题的解决方法,觉得很有必要分享给更多人知道,于是便寻求了原文作者的授权,抓紧时间翻译出来。

原文作者:Emma Wedekind
原文链接:dev.to/emmawedekin…

这里作为读者,我个人认为该文大部分建议都非常有用,但是有些建议是类似的可以合并,而且排序也有些随意,像是想到什么说什么,没有经过整理,导致全文其实有些过长。还有很重要的一点是有些建议请根据国内情况灵活判断,我也会将我认为比较重要的几点标上⭐。


0. 遵守规则的情况下跨过那道墙看看

这条是我专门为国内程序员加的,大家应该都懂,不然的话第一条就打住了。

1. 善用google⭐

作为一名程序员,你要知道如何搜索问题的答案。学会有效的使用google,你将节省大量开发时间。

2. 谨慎承诺超额交付⭐

让你的团队知道一项任务需要三周的时间,并在两周内完成,这比让他们知道相反的情况要好。通过谨慎承诺和超额交付,你会建立信任。

3. 善待产品设计人员,他们是你的朋友

产品设计人员为用户的痛点提供解决方案。向他们学习,团结一致地构建有效的产品。

4. 找到一名导师

找到一个可以学习和借鉴的人。如果你需要技术指导,Coding Coach会是一个不错的地方。

5. 成为一名导师

做一个别人可以学习和借鉴的人。你可以尝试在Coding Coach成为别人的导师。

这个网站并不是很了解,请自行斟酌。国内厉害的程序员也很多,掘金,知乎上找也可以。

6. 写些有用的评论

写下有用的回答而不是问为什么,mark和灌水也没什么意思`、。

7. 合理的命名变量和函数名

函数和变量应该准确地表示它们的用途,因此myCoolFunction不是一个好名字。

8. 给自己放个假

我们都需要时间来缓解压力。去一个你一直想去的地方放个假。你的大脑和同事都会感谢你的。

9. 删除无用代码⭐

没有理由积累更多技术债务。

10. 学会阅读代码⭐

阅读代码是一项非常宝贵的被低估的技能。

11. 找到健康工作和生活平衡点

结束一周的工作之后,周末放松一下。关闭工作通知,删除手机上的应用程序。

12. 只安排必要的会议

能用邮件解决的就没必要开会,如果非要开,也应该让会议简短高效。

13. 结对编程

结对编程可以让你同时扮演老师和学生的角色。

14. 写好邮件

邮件的内容应该简洁而清晰,抓住重点。没人会想看你的四页邮件,兄弟。

15. 加入社区⭐

和志同道合的人在一起会激励你走出低谷。

16. 清理你的分支⭐

清理你的版本控制分支,就像在你的岳父母来访之前清理你的房子一样。如果你不再需要,请删掉它,不删留着过年啊。

17. 接纳萌新

包容点,不要告诉别人不够好,不能进入这个行业。每个人都是有价值。

18. 活到老学到老

你选择了一个需要不断学习的职业,学会爱上它。

19. 永不言弃

这并不容易,但是我们都是从同一个地方开始,你也能做到。

20. 敢于接受有挑战性的任务⭐

如果任务没有挑战,它就不会帮助你成长。

21. 项目开始前明确需求⭐

在开撸之前,你应该了解验收标准,这将为你节省时间和痛苦。

22. 工欲善其事,必先利其器⭐

拥有一套你熟悉的工具,了解哪些工具服务于哪些目的,以及项目何时可以从使用这些工具中获益。

23. 我们需要建设性的批评

向信任的同事和朋友寻求建设性的批评,它将帮助你更优秀。

24. 保持开放思维⭐

技术在变化,而且变化得很快。不要反对新技术,学习它,然后形成自己的观点。

25. 保持在技术前沿,不要掉队⭐

通过关注出版物,博客,播客和科技新闻,及时了解最新的科技新闻。

26. 专注于解决问题⭐

锻炼自己解决问题的能力,强大的解决问题的能力能够帮助你应付一切,专注于解决问题的方法。

27. 保持谦虚⭐

三人行必有我师,无论你什么头衔,什么公司,都要保持谦逊。

28. 不光要代码写的好,PPT也要讲得好

学习如何吸引你的听众,并给出有效的演示。

29. 选型如买菜,也要货比三家⭐

给自己更多选择,在开展工作前,调研尽可能多的解决方案。

30. 找到自己的定位⭐

科技产业也有很多分类,找到你最感兴趣的领域,并成为一名专家。

31. 养成好习惯⭐

试着建立一致的、健康的习惯,比如保持专注,合理安排时间,出席会议,从最重要的任务开始。这可能需要一些时间来适应,但从长远来看是值得的。

32. 学会debug⭐

探索浏览器调试器工具。学习使用IDE调试的细节。通过学习最有效的调试问题和跟踪错误的方法,再困难的bug也能搞定。

33. 锻炼你现有的技能⭐

并不是说你已经掌握了一项技能就不需要再锻炼它。业精于勤荒于嬉,除非有意识地提高技能,否则技能会随着时间的推移而消失。而这个行业又发展得如此之快,坚持练习是很重要的。从“我一直都是这样做的”的心态中走出来,进入“有没有更好的方法来做这件事”的心态。

仅仅是因为你现在拥有六块腹肌,不意味着你就可以每天吃一个🍩。

34. 了解原因⭐

有时你必须表达自己的意见,因此了解其背后的原因非常重要。为什么解决方案A比解决方案B更好?提供有效的论据,你的意见将更加可靠。

35. 了解自己的价值

技术也是商品,应该得到适当的报酬。了解你所在地区的行业平均水平。如果你赚的钱少了,是时候和你的老板谈谈,追求你应得的。

36. 不要害怕寻求帮助⭐

如果你被困在一个问题上,花了太多时间寻找解决方案,是时候寻求帮助了。我们都是人,我们都需要帮助,寻求同事的援助并不可耻。

37. 学会学习⭐

人们学习的方式不同,有些人通过视频教程学得最好,有些人通过阅读书籍学得最好。弄清楚你的学习风格,然后努力实践。

38. 与人为善

有时你会被要求向同事提供反馈,友善一点,你可以对某位同事不够积极表达看法,而不是出言不逊。

39. 休息一下

连续敲8个小时代码几乎是不可能,你很快就会筋疲力尽,犯很多错误。所以设个闹钟来提醒自己停下来休息一下。去散散步,和同事一起喝杯咖啡,远离屏幕会对你的工作效率和质量产生积极的影响。

40. 跟踪你的学习进度

学习编程需要时间,当你看不到进展时,你会感到非常沮丧。所以跟踪你的成就和实现目标的进展非常重要。在你的电脑旁边放一个小清单,每次你完成一件事,把它写下来,不管它有多小,最终将会从量变到质变。

41. 不要依赖库和框架⭐

掌握一个框架和库不如深入学习这门语言,没有必要一个接一个的学习这些库和框架,但是理解框架和库如何实现可以帮助你写出更简洁强壮的代码。

42. 学会爱上代码审查

让别人阅读和分析你的代码可能会让你不安,但是可以提供宝贵的反馈,这会让你成为一个更好的程序员。而且你也应该提高进行良好代码评审的能力。

43. 多方位全面学习

学习其他领域的基础知识, 如设计、营销、前端开发或后端开发。它将帮助你成为一个更全面的程序员。

44. 不要选择熟悉的技术,而应该是正确的⭐

每个项目都有不同的需求,因此我们必须为这项工作选择合适的工具。尽管选择以前使用过的技术很方便,但是如果它们不适合项目的需要,应该探索其他替代方案。

45. 勇于承担责任⭐

所有人都会犯错,在你的职业生涯中,你会犯很多很多的错误。因此,当你犯了错误时,站出来承担责任是很重要的,它将与你的团队成员和管理层建立信任。

46. 检查自己的代码⭐

在发起PR请求之前,检查自己的代码,如果这是同事的工作,你会发表什么评论?在请求代码审查之前首先尝试自己诊断问题或错误非常重要,就像考试交卷前应该自己检查一遍。

47. 从失败中吸取教训⭐

失败只是没有达到预期的结果,并不一定是件坏事。在我们的职业生涯中,我们会面临很多失败,从失败中学习下次你能做些什么。

48. 正视自己的缺点

了解你自己,你的缺点是什么?也许你总是在推送之前忘记更新测试,或者你真的不擅长回复电子邮件。了解你的弱点,这样你就能积极地改善它们。

49. 保持好奇心⭐

这个行业在不断发展,所以好奇心很重要。如果你不明白什么,不管是项目需求还是一行代码,大声说出来。没有人会因为你要求说明而批评你,你会因此创造出更好的代码。

50. 不要试图学习一切⭐

世界上有无穷无尽的知识宝库,你不可能征服它。选择几个要掌握的主题,其余的就不要管了。你可以获得其他领域的相关知识,但你不可能掌握所有内容。

51. 该舍弃就舍弃

仅仅因为你写了一些代码并不意味着你需要对它产生感情。没有人喜欢他们所做的工作被丢弃,但是代码有一个生命周期,所以没有必要一直保留着它。

52. 团队支持

优秀的团队相互支持,这为尝试新事物创造了一个安全的空间,而不用担心受到惩罚。

53. 在社区中寻找鼓舞

在行业里找几个你钦佩的人。它会激励你继续你的项目或尝试新事物

54. 重视并且珍惜你的工作

不管你有多少经验或者你的职位是什么,你的工作都是有价值的,给予它应有的价值。

55. 排除干扰

关掉闲置的通知、短信、电子邮件和社交媒体会帮助你集中精力,最大化你的工作日。晚30分钟回复你朋友的信息,他死不了,真有事就打电话了。

56. 乐于助人

试着支持你的团队成员,无论是参加一个重要的演讲,还是在他们遇到困难时帮助他们。

57. 不要吝啬你的赞美⭐

如果有人做得很好,告诉他们。正面反馈是与团队成员建立信任和帮助他们事业发展的好方法。他们也更有可能帮助你

58. 测试你的代码⭐

测试是很重要的。单元测试、回归测试、集成测试、端到端测试。测试你的代码,你的产品将会更加稳定。

59. 制定应对计划

当你收到一个新功能需求或bug修改时,先制定应对计划,你需要什么来解决这个问题或开发这个特性?花几分钟来做这件事,也许后面可以为你节省数小时的沮丧。

60. 掌握伪代码

伪代码是一项很好的技能,因为它允许你在不浪费时间编写代码的情况下考虑复杂的问题。将一种方法写在纸上,运行不同的测试用例,看看缺陷在哪里。

61. 记录你的成就

如果你在工作中获得了嘉奖,把它写下来。如果你开发了一个重要的功能,把它写下来。你会拥有一些积累、沉淀,它将有助于你职业晋升亦或在某一艰难的日子鼓舞你的士气。

62. 学习编程基础⭐

学习一些基本的排序和搜索算法以及数据结构。它们与语言无关,可以帮助你跨语言解决问题。

63. 选择长期维护的技术

尽管测试最新的技术很有趣,但是选择那些在企业应用程序中易于维护的技术。你们的团队将在未来的岁月里感谢你们。

64. 学习设计模式⭐

设计模式是构建代码的有效工具。你可能不是每个项目都需要它们,但是对它们有一个基本的了解将有助于构建更大的应用程序。

65. 化繁为简⭐

不要编写复杂的代码来展示你高超的编程技能,而要着眼于可读性和简单性。这将使你的团队成员更容易做出贡献。

66. 还清技术债务

技术债务可能会对性能产生巨大影响,所以如果能够重构,就应该重构。(这个建议绝对是好的,但是现实中要面临诸多问题)

67. 优先小版本迭代

与其每个月发布一次大规模的升级,不如更频繁地发布较小的变更。这样你不太可能会引入bug和破坏更改。

68. 尽早并经常提交⭐

尽早提交和经常提交是确保你的工作保持干净的最好方法,并且还可以减少意外地恢复重要更改的压力。

69. 了解何时寻求帮助

你不仅不应该害怕寻求帮助,而且你应该学会什么时候寻求帮助。在寻求帮助之前,你应该试着解决问题,并记录下你尝试的事情。但是当你被一个简单的问题难住一个多小时的时候,代价大于收益,你应该向同事求助。

70. 问一些有效的问题⭐

当你问问题的时候,要尽可能的具体,(可以参考github提issue的要求)。

71. 工作中及时寻求反馈

你的工作不需要完成就能得到反馈。如果你不确定方向,请一位值得信赖的同事来检查你的解决方案的有效性。

72. 阅读文档⭐

文档是关于技术的最纯粹的事实来源,因此学习阅读文档可以快速帮助你成为专家。

73. 尽可能做出各种尝试⭐

没有什么能阻止你尝试解决问题的方法,你有什么损失呢?

74. 在会议上积极发言

你的想法和意见是有价值的,所以参加会议将有助于你与你的团队和管理层建立融洽的关系。

75. 跨团队协作

如果你有机会和公司里的其他团队一起工作,那就去争取吧。

76. 保持项目热情

当你每周工作40个小时时,花时间做你感兴趣的项目是很重要的(72小时的话更要如此)。它们可以帮助你重新找回对编程的热爱,并尝试你在工作中可能无法接触到的新技术。

77. 确定你的职业目标⭐

对你的职业生涯有一个理想的轨迹是很重要的。如果你不这样做,你就是在没有目标的情况下射箭。

78. 加入到讨论中来⭐

在博客上发表评论,参与Twitter主题,参与社区活动,做一个积极的旁观者会比单纯的旁观学到更多东西。

79. 确定任务优先级

学会确定任务的优先顺序将有助于提高您的工作效率,建立一个日常任务和长期任务待办事项列表,并按最重要的顺序排序。

80. 不要忽略细节

细节可以在项目中产生很大的影响。

81. 信任你的同事

你的同事因为他们的技能而被雇佣,交给他们工作,并相信他们能完成。

82. 学会委托

如果你处于领导地位,学习如何有效地委派任务。它会节省你的时间,你不能做所有的事。

83. 不要拿自己和别人比较

你唯一应该比较的是昨天的自己。

84. 找到你的盟友

学习编程将是一个漫长而不怎么容易的过程,和那些帮助你成长并鼓励你坚持下去的人在一起。

85. 不要想一步登天⭐

一开始考虑太多做一个大而全的项目会让你不堪重负。构建时要考虑可伸缩性,但在需要时才开始扩展。这样你就不会用不必要的膨胀来压倒你的团队,而是保持了成长的能力。

86. 衡量性能影响⭐

如果你想使用一种很酷的新技术,你应该权衡这样做的性能影响。你能在不影响性能的情况下实现类似的功能吗?如果可以,你可能需要重新考虑你的方法了。

87. 技术歧视不可取⭐

不要歧视新技术或新想法,对学习新技能的可能性保持开放的心态,也不要歧视他人,我们都值得尊重。(也不要歧视旧技术,即使现在前端框架盛行,但你也不能说Jquery就没有任何可取之处。)

88. 申请你不能胜任的工作

你永远不可能满足工作的所有要求,所以抓住机会申请吧,你有什么损失呢?

89. 模块化你的代码

你可以在一个长文件中编写所有代码,但这是不可维护的。通过模块化,我们确保代码易于理解和测试。

90. 不要只是做代码的搬运工⭐

如果你要复制并粘贴Stack Overflow中的解决方案,你应该确切地理解它的作用,有意识地选择要引入的代码。

91. 创造一个舒适的工作环境⭐

如果你喜欢你的工作环境和技术设置,你会更有动力去工作,所以还在等什么?

92. 记住你来自哪里

我们都是从同一个地方开始的,随着你的技能和职位的发展,不要忘记你来自哪里,不要膨胀。

93. 试着保持乐观

如果出了什么问题,试着乐观一点。明天是新的一天。乐观会帮助你的团队充满活力和精神健康。

94. 不断重新评估你的工作流程⭐

仅仅因为某样东西现在有效,并不意味着它永远有效。重新评估你的工作流程,并在必要时做出调整。

95. 学会在家办公

如果你有能力在家工作,那就学会有效地在家工作。找一个独立的办公空间,远离干扰。Boneskull写了一篇很棒的关于在家工作的文章,你应该看看。

96. 无障碍代码

无障碍不是事后才想到的,也不一定很难,每个人都应该能够使用你的产品。

97. 遵守你的承诺⭐

如果你告诉别人你会在某一天完成某件事,要信守承诺。如果你不能在截止日期前完成任务,那就早点说出来。

98. 积极主动

如果你有额外的精力,找一个任务来帮助你的团队,他们会很感激你是主动的。

99. 创建一个令人惊叹的作品集

一个优秀的作品集让你与众不同,使用它作为展示你的编程和设计技巧的机会!

100. 记住你喜欢编程的原因⭐

你进入这个行业是因为它激发了你的兴趣,如果你感到沮丧和怨恨,休息一下,给自己空间重新点燃你对编程的激情。

101. 分享你的知识⭐

如果你学到了一些很酷的东西,不要吝惜分享它,参加当地的技术交流会,在午餐时间教你的同事或学员,分享你的知识可以让更多人受益同时自己也能巩固提高。

完结撒花 🎉🎉🎉

这就是我关于成为一个优秀程序员的全部建议,希望你们喜欢。

最后

在原文的评论下面有网友续写两个两条,102条适当锻炼和103条充足睡眠,其实程序员干久了就会愈发认识到这两条的重要性,所以可能还会有人在下面给出有建设性的建议,可以去原文关注一下。

这次翻译中有些内容加入了一些个人的理解,如果觉得哪些内容翻译的不恰当,可以评论留言,也可以提出你对于成为优秀程序员的建议。

关注下面的标签,发现更多相似文章
评论