发布于 2026-01-06 1 阅读
0

2021年如何成为一名高级开发人员

2021年如何成为一名高级开发人员

网上有很多关于如何成为高级开发人员的资料,比如高级开发人员应该具备哪些能力等等。还有很多路线图列出了大量的技术、语言、框架等等,告诉你成为高级开发人员需要学习哪些内容。没错,你或许可以按照这些路线图学习,但很可能你会因为学习 Nginx 配置的细枝末节或者 F5 负载均衡器的会话粘性模式而精疲力竭。

一定有更好的方法。让我带你了解我成为高级开发人员的历程,包括一些技巧和事实。

毕业后,我很快就找到了第一份开发人员的工作。当时我正在参加C#面试,因为我学习期间主要专注于C#。但那时C#的问题在于,布拉格几乎所有人都只想做桌面应用程序,而我对整天写表单毫无兴趣。我想要的是后端开发的工作。几次面试失败后,我决定扩大搜索范围,去参加了Java面试。我对Java生态系统了解甚少,只会写一些基本的代码,仅此而已。我是面试中最初级的。

出乎意料的是,我竟然得到了这份工作。他们当时在招初级员工。我对Maven一无所知,Spring框架更是闻所未闻,什么都不懂。面试的时候,他们让我用白板演示冒泡排序算法,还要完成一个带回家的编程挑战,目的是考察我的面向对象编程、多态性和Java编程能力。那时候我真是个新手,连怎么用Java写日志都得上网查。当然,我选了个最复杂的方法,不过至少我成功记录了日志。

入职头几周,我熟悉了公司使用的技术栈。当时,大约一半的代码库使用了 Spring 3/Hibernate/Freemarker/jQuery。另一半则是 JSP 文件里混乱的代码,调用了大量的 Oracle 存储过程。典型的公司遗留代码。公司 wiki 上有一些教程,但大部分时间都花在了 Spring/Maven 的官方文档上。几周后,我觉得自己已经能够阅读大部分代码了(当然,我仍然无法理解与搜索相关性相关的那些最复杂的代码,但谁又能完全理解呢?)。

接下来的几周,我的工作流程大致如下:我接到一个新任务,需要在代码库中查找问题所在。通常是根据错误信息或其他用户界面元素进行全文搜索,力求彻底理解问题。然后就是谷歌搜索,大量的谷歌搜索。修复问题,测试,再次修复,最后提交。其中最重要的部分就是谷歌搜索。不要害怕接受更大的挑战,或者面对你尚未完全理解的问题。你可以随时搜索,网上几乎任何主题都有海量的文章。

当我遇到难题时,尤其是在项目初期,这种情况经常发生,现在也时不时会出现。重要的是不要让难题持续数天甚至数周。你应该始终与一些团队成员保持联系(或者至少在 Slack 上),以便随时寻求帮助。我保证,他们中的大多数都会非常乐意伸出援手。我们开发者都喜欢解决难题。不要直接问他们“这个行不通,怎么办?”,而是描述你已经尝试过的方法,你认为可能的原因是什么等等……这样有助于获得良好的沟通体验。你问的那些人可能也不知道答案。资深开发者不应该自以为是。他们会查看问题,尝试几次,然后可能还会去谷歌搜索。

人人都用谷歌搜索。那些声称不用谷歌的人,说明他们没有尽最大努力提高工作效率。

如果每个人都上网搜索为什么大三和大四学生会有区别?那么每个人都能通过谷歌找到答案。

当然,每个人都可以做到。问题在于,初级开发人员通常缺乏技术栈、应用程序、编程语言等方面的知识,无法进行足够精准的搜索。他们或许可以通过搜索错误信息、描述问题行为等方式找到答案,但这会花费更多时间。

设计模式就是一个很好的例子。初级程序员可能略知一些设计模式的存在,但可能大部分都没用过,也很难判断什么时候该用哪种模式。这没什么丢人的,毕竟学习是必要的。而高级程序员即使不熟悉大多数模式,至少也知道它们的使用场景。他应该能够判断何时该用哪种模式。他完全没必要记住所有实现细节。搜索“在X情况下该用什么模式?”和搜索“Python中的策略模式实现”是截然不同的。

大多数公司都会使用非常复杂的技术栈,包含大量的应用程序和技术。你不需要一次性全部掌握。大多数资深开发人员也并非对所有技术栈都了如指掌,他们只是学习能力强,善于搜索。我总是建议边做边学。你从某个地方开始,在解决问题的过程中,你会不断进步。如果你不理解,别担心。上网搜索,阅读相关资料,或者向别人请教。如果你坚持这样做足够长的时间,你就能看懂那些令人望而生畏的高级开发人员技术路线图,并逐一核对。没有人会在职业生涯之初就坐下来学习路线图上的所有内容。

资深开发人员仍然应该提问。应该始终有人结对编程。解决难题时,人越多越好。但随着资历的增长,问题应该更多地围绕业务展开。团队中的资深成员应该对特定问题的业务运作方式有基本的了解。资深成员应该能够预见变更可能带来的影响,并在变更实施前咨询相关意见,以确保所有人的理解一致。作为一名资深开发人员,你需要进行更多的沟通。软技能在这里至关重要。

作为资深人士,最重要的是要记得回馈社会。回想你的成长历程,想想当初大家是如何帮助过你的。要像他们一样。如果有人问你一个看似愚蠢的问题,请耐心解答并解释清楚。对大多数人来说,没有解释的答案毫无意义。多和年轻同事结对编程,这对他们来说是非常宝贵的学习经历。


希望这能帮到你。我随时都欢迎大家来我的推特打个招呼。

文章来源:https://dev.to/pavel_polivka/how-to-become-a-senior-developer-in-2021-4348