阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

成为一流软件开发者的 34 条建议

  • 2019-11-12
  • 本文字数:5843 字

    阅读完需:约 19 分钟

成为一流软件开发者的34条建议

我们列出了一张包含 34 条建议的清单,来帮助你成为一流的软件开发者,在技术行业中打造出成功的职业生涯。


这些建议中,有一些是特别针对增强编程技能的,其他的一些建议则是软件开发职业生涯中的软技能,还有些甚至能够帮助你成为一个更好的人。


1. 规划方法 & 在编码前先写伪代码


当你试图构建一个项目或者完成一个任务时,如果没有规划就直接开始编写代码,可能会浪费大量时间,还会经历很多不同程度的挫折。


在开始编码前,花一点时间写下要实现的功能或者待解决问题的大致结构。这会让实际的编码过程更加顺畅,防止潜在的缺陷发生。向队友或者同事主动寻求反馈或者其他想法,这会让你更好地向他们解释你所处理的事情。


作为一名软件开发者,很容易陷入编码的细节中,导致只见树木不见森林(正如这条著名谚语所说的那样)。做好规划并预先编写伪代码能让你同时看到两者,也许,你还能听到森林里鸟儿的鸣叫声呢!


2. 总是寻找新东西来学习


这可能是老调重弹,但事实就是这样。软件行业变化非常迅速。如果你想一直待在程序员这个圈子里,你就不得不持续学习新的东西。


你持续学习得越多,你就越会觉得这是很自然的一件事,你会觉得学习是一种享受,而且当你不去学习时,反倒会觉得自己停滞不前。阅读一些科技博客或者新闻网站,花一点时间来研究你感兴趣的事情,或者那些会影响到软件行业未来的事情。


3. 不要尝试去学习所有的东西


尽管不断地学习新东西很重要,但是你每天的时间有限,所以在安排时间时,需要有选择性地学习。


你不必对所有的事情都做出响应。Verge 的报告说,你学到的 95%的内容都将在未来几个月内消失。当你用在学习或者研究新技术上的时间有限时,就应当注意这点。


4. 了解怎样学习


每个人都通过不同的学习方法来达到最好的学习效果。有些人喜欢阅读书籍,有些人则喜欢看视频教程。如果你能找到适用于你自己的学习方法,并使用它,那就可以让你很轻松地学习到新东西。


除了独特的学习方法,还有一些可以优化学习过程的基本方法。这里是 Coursera 网站上的免费在线课程(https://www.coursera.org/learn/learning-how-to-learn),覆盖了艺术、音乐、文学、数学、科学、运动和很多其他学科专家所采用的学习方法。


5. 缓缓前行,不要破坏东西


“快速前行,打破常规”,在科技行业,这句谚语已经作为一条真理存在很久了。这句谚语是用来鼓励开发者快速地部署代码和技术想法的,同时还能安心地觉得这只是一些代码,当任何错误或者 bug 自己暴露出来的时候,都可以被轻松解决。


但是软件和数字产品不再是被公司美化的营销部门,也不再是偏安一隅的经济单位。它现在已经成为了所有东西之上的一层。软件和数 10 亿人的生活息息相关,代码不再是完全无害的。Bug 和设计问题都会对人们产生负面的影响。


所以我们应该缓缓前行,并且保证不会破坏任何东西。你所写的代码会对其他人的生活产生真实的影响,所以应当确保写出质量好的代码。


6. 善于阅读其他人的代码


阅读其他人的代码是一项不太容易掌握的技能。当你开始成为一名优秀的程序员时,你就会习惯于你自己的代码风格。而当你尝试阅读别人的代码时,你就会逐渐迷失了。幸运的是,你阅读别人的代码越多,你就会发现这越容易,而且你将愿意经常阅读别人的代码,但是,寻找不同的阅读方法(https://selftaughtcoders.com/how-to-quickly-and-effectively-read-other-peoples-code/)也会起到帮助,那会让阅读别人代码的过程变得更加轻松。


7. 感到自豪,让工作变得有价值


不管你的工作是大还是小,都要为此感到自豪。你写的每一行代码都应当足够好,好到你自己也感觉良好的程度。这些代码不仅要能正常运行,而且要能让你感到自豪。你不可能创建出完美的代码,也没有人能够做到这样,因为创建完美的软件是不可能的。但是创建出让你感觉良好的代码,一定会让你不断地做出好的工作成绩。


8. 对你造成的错误保持开放负责的态度


有时候你可能把事情弄砸了,可能在你的职业生涯中,还会出现好几次这样的情况。不管是做错了什么,我们每个人都发生过这样的状况。当错误发生时,保持开放的心态,担负起责任,不要责怪其他人。


用这样的态度处理这些错误,你就会在你的队友和同事中间建立起信任和尊重。


9. 工作时尽量减少分心


由于你是人类(对所有读到这篇文章的机器人发出警告),在你累到筋疲力尽之前,你这一天当中产出效率最高的工作时间是有限的。所以你需要优化那些产出效率高的时间来完成工作。


每个人的情况是不同的,但是请尝试不同的方法,看看哪种方法对你最有效。关闭任何手机提醒(电子邮件,短信等等),可能会有帮助;或者每天只检查电子邮件 1~2 次;并且只有在你工作完回到家时,再去登陆社交网络。


10. 善于使用 Google


作为一名程序员,你可能会不断地碰到大大小小的问题。这些问题绝大部分也被其他的开发者遇到过,所以你可以在各种网站上看到他们的解决方案。


要善于寻找这些疑问/问题的解决方案。学习如何高效地搜索 Google 能够为你的开发节省大量时间。我们得承认一个事实,StackOverflow 将成为你新的救世主。


11. 不要害怕寻求帮助


但是当你自己不能解决某些问题的时候,你不应该害怕寻求帮助。有时候你可能会卡在一个问题上,并且花了大量的时间来搜索解决方案。


寻求支持并不丢脸。你的部分或所有同事都会得到更高的工资,这是有原因的,因为他们更有经验。大部分时候他们都是乐于帮助你的,并且还会抓住机会给你讲解一些编程知识。


12. 不要拿自己和其他人去做比较


在你的职业生涯和生活中,你会不停地拿自己和其他人做比较。你可能会自然地这样做,因为这会帮助你弄清楚你位于世界的哪个位置,帮你找到人生方向。


但有时候进步的最好方式是拿你和你的昨天或者你的过去进行比较。用这种方法思考肯定能让你不断地进步,减少受挫感,明确你的预期目标。


13. 测试你的代码


如果你测试了你的代码,软件的最终交付版本将会更加稳定和可预测。学习不同的测试类型(单元测试、集成测试等等),并且要很勤快地使用它们,因为这真的很重要。你预先做的测试越多,你今后的工作就会越轻松,你晚上睡觉也会更踏实。


14. 学习如何调试


你编写的代码并不总是会按照你所预期的那样精确运行,不过没关系,这很正常。但是,你需要掌握相关技能,找到问题的原因,并且做出必要的修复。


在定位 bug 时,需要弄清楚哪些调试技术是最适合你的。找一些有用的工具,这会让调试过程更加轻松。


15. 要知道自己的身价


去做一些调研,弄清楚你所在行业其他人的薪水如何,他们给公司带来了怎样的价值。了解这些东西会给你目前的工作带来一些认识,并且帮助你理解你的价值所在。


这个调研不仅可以用于薪水方面,还可以用于了解你给公司或者团队提供了哪些价值。


16. 不要为了扩展而编写代码,除非这是必要的


在构建和编写代码时,需要记住,将来有一天你可能需要扩展代码。但是不要在编码的第一天就去考虑扩展性,没必要这样,而且这肯定会让你淹没其中,并且拖慢开发速度。


准备好适应未来的增长,并且准备好创建相应的策略。但不要让你的代码库和团队陷入不断扩展代码的困境,除非这是必要的。如果你给火箭添加太多的重物,它可能都不能飞离地面。


17. 在你知道代码是如何运行之后,可以复制粘贴


诚恳地讲,每个人以前都有过复制粘贴代码的经历。不管这段代码是来自 StackOverflow,还是其他随便哪里的编程博客,这都没问题,只要你在复制粘贴前理解这段代码是做什么的。


对你要粘贴的代码,你需要知道自己在做什么,并且小心谨慎。记住,缓缓前行,不要破坏东西。


18. 让周围人感到愉快,对他人友善


当你身边围绕着很多人都愿意帮助你或者支持你的时候,生活会变得很轻松。但如果人们都不喜欢你,那生活就不可能很轻松了。


所以对人要友善(尽你所能),大部分时间里都要让周围的人感觉愉快。如果你能做到这一点,人们就会很喜欢你,如果人们很喜欢你,他们就愿意帮助你,你也会交到更多朋友。


19. 为了提高产出,休息一会儿


在整个工作日中保持 100%的产出效率,这几乎是不可能的,如果你尝试这样做,那将会使你精疲力尽。设置一个计时器,让它提醒你站起来走一走,或者给你的咖啡续个杯。像番茄工作法这样的系统就可以在休息和提高效率方面起到很大的作用了(如果你想尝试一下,可以使用我们做的番茄工作法计时器(https://coderrocketfuel.com/tools/pomodoro-timer))。


此外大量的研究表明,适当休息是任何工作和学习过程的一个关键组成部分。休息能够很大程度上帮助学生更有效地学习东西,让他们的注意力保持更长的时间。


20. 少说多听


不管你是想赢得一场辩论,变得更讨人喜欢,还是说服某人,倾听都是一个获得重要信息的很关键的方式,他会让你显得更值得信任和尊重。


你很可能是与一些真正聪明的人一起工作,他们中的一些人甚至比你更聪明。于是他们可能有一些编程或者生活上的知识能够传授给你,如果你说太多话,可能就会错过这样的机会。


21. 去做那些让你害怕的项目


无论是在你的职业生涯中,还是在编程技能方面,不断扩展你的舒适区都是相当重要的。去做一些让你有点害怕的项目,扩展你的舒适区,这会让你变成一个更好的开发者,你的职业生涯也会进步得更快。


你需要经历一些痛苦和恐惧,这样才能成长。要做到这样,你需要去寻找一些能扩展你舒适区的事情去做。


22. 给函数和变量提供描述性的命名


你会希望你的代码尽可能容易理解。让别人更容易阅读你的代码的方式之一,就是给你的函数和变量起一个能描述他们做什么和代表什么的好名字。


例如有一个函数名叫 aDopeFunctionIMade,这就不是一个好名字,而另一个函数名 calculateCartTotal,它就是一个很好的名字。


23. 编写描述性好的代码注释


另外一种能让你的代码更容易阅读的方式就是给代码添加注释,注释能够解释你的代码为什么要这样做,以及你的代码都做了什么。编写注释并不难,只需要花点精力把注释包含到代码里去就可以啦。


这个方法和上面那个写出具有描述性的函数和变量名字的方法通常是同时使用的。


24. 习惯于有建设性的批评


在工作中,你可能从不会享受于接受批评。但为了变得更好,你需要习惯于接受批评,不要对这些批评产生情绪。


如果你的代码写得很糟糕,你难道不希望有其他人给你指出来吗?相反的一种方式就是别人看到了问题代码也不会告诉你,这将更糟糕。如果你欣然接受批评,你会因此而受到别人的尊敬,你自己也能够改进你的技能。


25. 找到你的立足点


在科技行业,你可能会在很多不同的领域都做得很成功。找到你最感兴趣或者最擅长的领域,在这个领域成为一个专家。在你的立足点上成为一个专家,会给你带来影响力,把你从一件商品变为你的公司或者你所在行业的必需品。但是这个说起来容易,做起来难,你可能需要花些时间才能弄清楚你的立足点在哪里。


26. 学一点商业方面的知识


花点时间去了解你所在公司或者团队的一些业务方面的知识。销售人员整天都在做些什么,他们为何有价值?会计或者市场营销人员的情况又如何?


你不必成为这些领域的专家。但是理解一些业务情况,将会让你对工作有更好的理解,并且能帮助你为公司和团队的整体目标创造更多价值。


27. 在传授别人知识和与他人分享的过程中学习


protégé效应是一种心理现象,说的是向别人传授或假装传授信息时能够让你更好地(相比不使用这种方法时)学习这些信息。这一点适用于很多领域,但编程领域尤其如此。


你可以向队友或者同事传授一些知识,或者可以开始维护个人编程博客,编写教程,向他人传授编程的概念。把你传授的知识汇总起来,以让其他人也能够学习到,这将极大地提高你自己对这些主题的理解。


28. 花点时间好好写写文档


这是很多程序员忽略的一点。但是好的文档能帮助你和其他人抓住你的代码或者项目的精髓。


如果你写出的文档组织很有条理,综合性强,可读性强,那么你的代码或者项目就更容易使用,人们也就会更愿意来使用它。


29. 尽可能避免不必要的会议


尽管公司会议在传达思想,建立项目目标方面极其有帮助,但如果你不好好管理会议进度,这也可能会成为不可思议的时间吞噬器。在你工作的地方总有一些人喜欢发起会议,而不去想他们是否真的需要这些会议。


你需要学习一些委婉拒绝他们的技巧,而同时又和他们保持良好的工作关系。或者你可能需要学习向人们说“不”的艺术,并且欣然接受说“不“而带来的结果。


30. 掌控你自己的工具箱


任何精通这一行的人都有一个工具箱,里面装满了工具,他们对这些工具的里里外外都了如指掌,他们通过使用这些工具来完成工作。他们非常了解其中每一件工具,并把他们当做自己能力的延伸。


作为一名程序员,你应当构建自己的工具袋。精通你所选的文本编辑器,以最大化你的产出,或者找一个你喜欢使用的测试框架。你需要了解哪些工具是服务于什么样的目的的。并且要知道每一件工具为何会比另外一件工具更适用于某个场景。


31. 每隔一段时间就去尝试一种新的语言


不要做过头,但也要每隔一段时间就去尝试一种新的语言。使用一种新的语言,将会让你或多或少从不同的角度去思考问题,思考问题的方式会和你正在使用的语言不太一样。


这些新的思考途径,将帮助你在使用当前的和/或今后的语言时,全面提高解决问题的能力。


32. 努力保持身体健康


编程是一项需要长时间坐在位子上的职业。你会很多天都坐在桌子前(顺便说一下,可以考虑入手一张站式桌子),看着电脑屏幕。久而久之,如果你不努力保持健康的话,这样的工作方式就会给你的身体带来负面影响。


每周计划锻炼 2~3 天,每天保证 8 个小时的睡眠,并且计划一些外出活动,这些活动不要涉及到编程。这会帮助你过上更健康的生活,这将渗透到你的编程生涯中。


33. 建立能让你沉迷的东西


不是每天的工作都会给你走在阳光里的感觉。但如果你把工作时间花在你觉得有影响力或者很酷的事情上,你将会经历很多美好的日子,而不是糟糕的日子。


你在业余时间或者工作时间中创造的酷酷的东西越多,你在自己的领域得到的认可也就越多,机会也就越多。


34. 绝不放弃


生活很艰难,编程也很艰难。可能会有很多次,你都会产生强烈的、要退出的想法。当那些时刻发生时,你要意识到每个人都会经历这些。如果你想作为一名程序员在你的职业生涯中保持成长,你就需要从这些困境里获取力量。


但是请记住,转变方向和放弃是不同的。如果你做的东西运行不起来或者你感觉哪里不对劲时,而你又需要去尝试一些新的想法或者策略时,那就换到其他的新方向吧,但绝不要放弃。

结论

好,就是这些了,34 条建议,用来帮助你成为一个优秀的软件开发者。希望其中的一条或多条能与你产生共鸣,或者在你的编码和/或职业生涯中帮助到你。


原文链接


34 Tips To Become a First-Rate Software Developer


2019-11-12 16:172727

评论 1 条评论

发布
用户头像
看完了,真好。
2020-12-01 13:34
回复
没有更多了
发现更多内容

在开源项目或工作项目中使用git建立fork仓库

良知犹存

git

区块链+数字经济,我们看到了什么

CECBC

区块链技术在商业领域的新运用-智能合同

CECBC

模块九作业

Mr.He

架构实战营

模块九作业

河马先生

架构实战营

风雨兼程,零代码训练营第四期顺利结业

明道云

产品经理职业发展框架

俞凡

产品经理 产品管理 认知

拯救遗留系统:重构函数的 7 个小技巧

Phoenix

重构 java

【LeetCode】合并两个有序链表Java题解

Albert

算法 LeetCode 10月月更

stm32-HAL使用stop模式后DMA初始化的问题

良知犹存

stm32

再说JavaScript 的 null 和 undefined

devpoint

null JavaScrip 10月月更

在线HTML转JS/JSON工具

入门小站

工具

k8s replicaset controller源码分析(1)-初始化与启动分析

良凯尔

Kubernetes 源码分析 Kubernetes源码 #Kubernetes#

模块9

脉动

【Flutter 专题】33 图解自定义 View 之 Canvas (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 10月月更

阿里云云计算助理工程师认证(ACA)50个资源合集和备考题库 易筋 ARTS 打卡 Week 72

John(易筋)

ARTS 打卡计划

产品经理技能手册

俞凡

产品经理 产品管理 认知

小程序中如何显示Markdown文本

Changing Lin

10月月更

SpringBoot 实战:优雅的使用枚举参数(原理篇)

看山

Java Spring Boot Effective Spring 10月月更

别被vector最后一个元素erase错误

良知犹存

c++

v05.05 鸿蒙内核源码分析(任务管理) | 任务池是如何管理的 | 百篇博客分析 HarmonyOS 源码

鸿蒙研究站

HarmonyOS OpenHarmony 鸿蒙系统 任务队列

校友录小程序开发笔记三十一:校庆模块设计与实现

CC同学

Sql学习

南湖职业技术学院机械狗

linux之yum源设置代理

入门小站

Linux

架构实战营-模块九

NewBranSTONE

架构实战营

大神Jeff Dean相关的一些项目

春秋易简

Cortex 是什么?

耳东@Erdong

Prometheus Cortex 水平扩展 10月月更

【设计模式】第二篇 - 组合迭代器

Brave

组合模式 迭代器模式 10月月更

v04.03 鸿蒙内核源码分析(任务调度) | 任务是内核调度的单元 | 百篇博客分析 HarmonyOS 源码

鸿蒙研究站

HarmonyOS 任务栈 OpenHarmony 鸿蒙系统

iOS开发独家秘籍-代码块Code Snippets

iOSer

ios 代码 ios开发

stm32-HAL使用usart发送中断判断发送标志库问题

良知犹存

stm32

成为一流软件开发者的34条建议_文化 & 方法_Nick Major_InfoQ精选文章