注册

这就是为什么我不接受你是Senior软件工程师

软件行业的一个令人担忧的趋势


工程类职位的面试极其复杂, 压力大, 而且我必须为所有敢于接受面试以实现职业梦想的人鼓掌, 并对他们表示赞赏.


过去几年里, 我一直在为不同的公司面试工程师, 但最近, 我前所未有地拒绝了很多应聘者. 我还是用同样的问题, 没有任何变化, 问题是人们根本不知道高级工程师意味着什么, 而这些专业人员比以往任何时候都更稀缺.


编程 10 年并不能让你成为高级工程师. 这与时间无关.


以下是我的努力, 只为探讨软件开发行业高级工程师究竟意味着什么.



在互联网上发现的流行笑话.


什么是高级工程师?


我向 ChatGPT 询问了关于什么是高级软件工程师的通用描述, 结果它一语中的:



高级工程师对编程语言, 软件设计原则和开发方法论有深刻的理解.


— ChatGPT, 在抢走我们的饭碗之前.



这正是经典高级面试的通用结构:


开发方法论


开发方法论是旨在提高团队效率的组织方法. 这些对我们来说可能很枯燥, 但我们希望你能掌握这方面的专业知识.


在多年的工作中, 我对非敏捷开发方法产生了排斥心理, 不仅如此, 我认为 Scrum 还不够敏捷, 它的详尽使用最终会让项目经理而非程序员的自负增强.



互联网上的笑话.


在面试时, 我希望开发人员具备批判能力, 因为仅仅了解 Scrum 是不够的, 你还必须知道它的缺点, 并提出解决方案.


我还想看看开发人员是否了解 Scrum 和 Kanban 之外的其他方法, 比如 RUP. 常识可以帮助你形成更好的观点, 并表明你愿意学习自己领域以外的知识.


软件设计原则


这些原则可能一辈子只读一次就会忘记, 但真正熟练的程序员每天都在使用.



明星工程师之所以比同行更有价值, 原因并不局限于编程. 伟大的软件工程师具有惊人的创造力, 能看到别人看不到的概念模式.


Reed Hastings. Netflix 联合创始人.



每次面试结束后, 在给应聘者写反馈时, 我发誓每次都能复制粘贴同样的回复:



我建议你多读读 Python 设计模式, 本指南就是一个很好的资源.



用设计原则筛选候选人真是太容易了...只有在非常奇怪的情况下, 我才会发现有人能回答所有这些问题.



这是一个笑话, 记录了大多数开发人员在被问及设计模式时的表情.


当你熟悉了软件设计模式之后, 在实践中实现这些模式可能会相当具有挑战性. 我本人就曾面临过这样的挑战, 因为在编码时回忆并应用它们并非易事. 但是, 强迫自己在每次编程时进行这一检查, 一定会让你领先一步.


编程语言


为什么我们在 Python 中使用 len(array) 而在其他语言中使用 array.length()? 这背后有什么优化吗?


你对自己的语言了解多少?


在你成长的过程中, 阅读一本关于你所使用的语言的书是绝对必要的. 任何高级工程面试都会包括一些只有通过阅读才能了解的高级问题.


态度不好扼杀了许多面试机会



你们能快点提供反馈吗? 现在有其他公司向我发出邀请.



  • 一位候选人在面试时说的话, 当时他有时间向我们提出有关该职位的问题.


公司在提供高薪的同时, 也在寻找优秀的人才, 而其中的一部分就是做个好人.


面试时, 我们不仅要评估应聘者的知识, 还要评估她/他的态度. 在我几个月前做的一个具体工作中, 公司特别要求我们寻找"善良, 诚实"的人, 而不是优秀的程序员.


与一个虚荣的人共事是非常困难的, 他们会让你一直感觉不好, 并在团队中造成不好的氛围. 从长远来看, 这样的人对公司造成的损害可能是非常大的.


态度恶劣或撒谎可能意味着在选拔过程中被立即淘汰.


我一直向大家推荐<如何赢得朋友和影响他人>一书, 这是一本每个人都应该读一读的书, 以便在生活中拥有更好的人际关系.



互联网上找到的笑话.


记住, 经验丰富的工程师应该能够领导一个团队, 你需要真正强大的社交能力才能胜任这个职位.


初级/中级开发人员要成为高级开发人员, 应该读些什么?


这里有一些让你成长为高级开发人员的绝佳资源:


代码技能如何?


几个月前, 我购买了LeetCode Premium, 这是我找到现在这份工作的一个伟大决定. 在使用过程中, 你会从其他用户那里发现有趣的数学奇闻, 模式和优化方法.


模拟大公司的面试也有助于了解他们的组织结构.



瞄着星星, 才有可能够着天空
— Reinhold Niebuhr




Leetcode 的大公司问题列表.


还有几个网站与 LeetCode 类似, 如AlgoExpertCodeSignal.


残酷的真相


即使你阅读了大量的资料, 每天进行练习, 并积累了丰富的经验, 你也有可能因为不符合公司的要求而被拒绝.


几天前, 我在听一个播客, 他们谈到了一个实验: 让孩子们解决问题, 并把他们分成两组:


当让他们接触新问题时, 被表扬有毅力的孩子倾向于选择更难的问题来解决, 而那些被说成聪明的孩子最终在他们解决的问题上表现得更差.


这说明, 你唯一能指望自己做到的就是坚韧不拔和坚持不懈. 这些不仅是保证你未来工作的技能, 也是我们对高级工程师的主要期望.


作者:bytebeats
来源:juejin.cn/post/7307723756410896411

0 个评论

要回复文章请先登录注册