第一次翻译文章,之所以会想把这篇文章分享给大家,是因为之前群里一个刚入行的新人寻求建议,问学哪个框架好。而我脑海里想到的却是准备个杯子多喝水,搞个好点的椅子保护好腰,多看源码多逛社区之类的。突然发现,除了技术之外,还有很多工作经验,学习方法,为人处世的东西也很重要,甚至它们是先于技术的。但是讲述这些东西的文章并不多,所以昨天看到这篇文章的时候,里面得很多建议恰恰是我面临问题的解决方法,觉得很有必要分享给更多人知道,于是便寻求了原文作者的授权,抓紧时间翻译出来。
原文作者:Emma Wedekind
原文链接:https://dev.to/emmawedekind/101-tips-for-being-a-great-programmer-human-36nl
这里作为读者,我个人认为该文大部分建议都非常有用,但是有些建议是类似的可以合并,而且排序也有些随意,像是想到什么说什么,没有经过整理,导致全文其实有些过长。还有很重要的一点是有些建议请根据国内情况灵活判断,我也会将我认为比较重要的几点标上⭐。
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条充足睡眠,其实程序员干久了就会愈发认识到这两条的重要性,所以可能还会有人在下面给出有建设性的建议,可以去原文关注一下。
这次翻译中有些内容加入了一些个人的理解,如果觉得哪些内容翻译的不恰当,可以评论留言,也可以提出你对于成为优秀程序员的建议。
热文推荐:
2、面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来…
3、程序员疑似出bug被吊打!菲律宾的高薪工作机会了解一下?
4、“一键脱衣”的DeepNude下架后,我在GitHub上找到它涉及的技术
8、腾讯新开源一吊炸天神器—零反射全动态Android插件框架正式开源
喜欢 就关注吧,欢迎投稿!
本网站文章均为原创内容,并可随意转载,但请标明本文链接
如有任何疑问可在文章底部留言。为了防止恶意评论,本博客现已开启留言审核功能。但是博主会在后台第一时间看到您的留言,并会在第一时间对您的留言进行回复!欢迎交流!
本文链接: https://leetcode.jp/成为一个优秀程序员的101个小建议/