原文:http://www.zcfy.cc/article/3330
我最近和我的一个好朋友以及我的一个前同事一块聊了聊如何提升他的软件开发技能的方案。这让我想起了我在我的工程师生涯中指导帮助过的那些人。我认为将自己所学的内容写成文章来帮助那些新晋开发工程师是非常棒的。本文我会介绍一些非常有用的方法来帮助我们提高自己的水平,例如找一个导师,参与社区或者小项目的开发,阅读和提高软技能。
寻找导师
作为程序员成长最好的方法之一就是接触那些“老司机”。毫无疑问结对编程或者是让高级工程师对你的代码进行 code review 最有效的提升方法。这样做可以让你了解自己解决问题的思路,同时观察他们的工作流程对比高级工程师的方法,还能获得他们给你提供的各种意见与建议。将这些内容快速的吸收学习化为己用对我们快速高质量完成工作至关重要。
大部分人看到上面的内容后可能会想“嗯,的确我需要一个导师来带带我。可是我不知道去哪里找导师啊!”。下面我们就根据大家自身的情况来谈谈如何寻找导师。
首先我要说的是导师并不完全等同于拜师学艺,不需要正式的拜师礼也没有期末考来检验导师的指导成果。它只是一个非正式的关系来保证有人能和你进行定期的交流。简单来说就是你可以找他们问一些你目前碰到的代码问题,他们给你答疑解惑或者提供一些解决问题的意见。你将这些内容学习吸收后经验值获得增长,然后往复如此。
其次你可以去很多地方寻找自己的导师。例如:
最简单的方法是同事。选择同一个公司或者项目组的同事作为导师实在是再合适不过了。他们没有理由拒绝帮助你提高自己,毕竟你厉害了他们就轻松了。所以有问题找他们,准没错!
当然你也可以找认识的朋友。如果你拥有某些比你工作经验稍长,知道各种框架的使用和原理,或者在大公司工作的朋友的话,可以邀请他们看看你写的个人项目甚至说可以邀请他们一块来开发项目,这样可以从中学习到很多他们的工作经验。
除了上面这些你也可以在网络上寻求导师帮助。网络上有提供配对导师的服务。由于要花钱购买线上的服务,所以可能不会适合所有人,但是如果你想要一对一明确的指导的话,这不失为一个不错的方法。bloc.io和Codementor.io都提供了类似的服务,有兴趣的同学可以看看。
混技术社区
参与关于技术的讨论和以及向社区提出问题是作为工程师成长的关键。这是你可以学习到最佳实践,找到能够帮助你解决那个令人困惑的问题的方法,并扩展你的人脉。下面推荐一些大家值得投入的社区类型:
加入 Slack 社区。现在大部分项目都有 Slack 社区了,你可以在 这里找到所有的 Slack 社区。找到对应的社区加入进去并在其中提问题等待他人的回答。
Twitter 也是不错的地方。也许你对发推没啥兴趣,但是你可以关注一些大牛了解你的技术领域的变化。平常经常使用的某些开源库有问题了?没关系,上 Twitter 去关注作者然后向他们提问吧!从你们的对话中你可以学习到很多来帮助你的成长
当然也可以去参加会议。全世界都有大量软件开发会议。这是不同水平的人们相互认识和学习的地方。你可以选择参加这些会议尽可能的和人交流。我相信你一定能学到新东西并认识很多朋友。
阅读
通过阅读来增加你的专业知识是另外一种行之有效的升级方法。上班路上不知道干点啥?失眠了睡不着咋办?不要再玩王者荣耀了!赶快挑本自己想读的书看起来吧
我的建议是先广泛阅读。我建议阅读一些软件开发方向的热门书像是 Uncle Bob 写的《Clean Code》,它们能帮助你学习一些快速成长的方法。即使现在领导让你在6个月内学习一门新语言,这也不会变的困难如果您已阅读足够的内容,然后可以选择阅读有关你的开发语言或框架的书籍。或者经常看看那些与你工作领域相关的大牛的技术博客。
开发业余项目
关于业余项目的开发我必须强调下,这是每个程序员应该要有的东西。至少每年都有有一个,如果没完成的话不算数。你可以在自己的项目中展现所有从阅读,社区,导师反馈中学习到的各种知识。你不可能将前东家工作项目中的代码放到 Github 上开源,所以你需要提取业务中的一些库和方法并发布开源项目让大家了解你做了什么。
软技能
最后也是最重要的建议是提升自己的软技能。与你团队内外的其他人员合作对于成为一名优秀的工程师而言至关重要。你可以在世界上写最干净,最美丽的代码,但如果没有人愿意和你一起工作,这并不重要。你不会在你的职业生涯中有一个愉快的时光,你周围的人也不会。
关于如何提升软技能,我的建议是去寻求反馈意见。如果你有一个领导,可以问问他如何能更好的进行团队合作,他们会给予你相应的建议。如果你是自由职业的话,可以询问你的客户对于我们之间的交流方式有没有什么意见,以及流程上是否有什么问题。这可能会多花点时间,但是长期受益来看还是值得的。
后记
软件开发很难。您需要不断学习新东西,并且需要快速应对行业变化。但是,积极的态度并遵循上述建议将有助于您的成长。这个成长需要一定的时间,但我相信你可以到达终点的!祝你好运!
如果有问题或者文章有疏漏,欢迎在下方留言或者直接给 matt@masterpoint.io 发邮件即可。
英文原文:https://medium.com/masterpoint/leveling-up-as-a-junior-engineer-3f6880f8af1d