作者:程序员小跃,前菊厂Android开发,现游戏公司Java主程,奔跑中的技术人!


很多人问我,跃哥,现在刚毕业的我,校招、社招机会都挺小的,这是为什么;跃哥,为什么你发的一些JD需要3年以上,我工作才两年多,难道就没机会了吗;跃哥,什么时候才能和一样有实力,知道这么多。。。

之前我在《一线编码6年,帮你总结出6条优越感》也透露过,我已经浸淫职场6年,从客户端开发到后端开发,从大厂螺丝钉到小厂主力,一步一个脚印。你说,你们刚毕业,你们工作两年多,和我肯定多多少少存在一些差距,那么,为什么他们会有这些要求呢?

这还得从职位说起。最近我也在看《如何成为专家》这本书,刚开始看,但是书中开头已经明确说明了,如何成为专家。工作多年,并不会肯定让你成为专家;但是,如果你仔细专研,认真学习,努力提升自己,多年工作经验,有多种经历,而不是一份工作经验做多年,那你肯定能从初级工程师进阶成高级工程师,再往后就是专家。

这也是为什么大厂有等级,比如华为的职级,腾讯的T级,阿里的P级,百度、头条、PDD都有自己的级别,这就是区分一个人能力的等级。你还别不服气,等级划分不是随便来的,接下来就带你看看,为什么高级工程师这么值钱;为什么一些厂的要求高。

来吧!!!

缺少高级工程师的领导你会发生什么

作者:Allan Wintersieck

时间:2020.2.25

我不认为存在单一的“完美”组织结构。每个公司都有不同的需求,并且对人才的要求也会有所不同。一些团队结构是平坦的,有些是有深度的。无论你如何建立一个技术团队,如果有共享你产品的过程,那你就成功了。

但是,每个公司/团队都应优先考虑一个职位:高级工程师。

无论你的行业,规模或者技术栈如何,你都需要高级工程师来指导你的软件开发产品以及内部交流。没有这个高级工程师的领导,可能会发生不幸的事情,其中一些破坏性更大。

这里罗列了一些缺少高级工程师的情况下可能会发生的最常见的情况。

陷入重写的陷阱

20年前,Joel Spolsky 写了一篇我今天仍然推荐的非常出色的文章。它强调了软件公司团队可能做出的最糟糕的决定之一:从头开始重写代码。

虽然我建议阅读全文,但我还是做了一个简短的概要。

高级工程师可以对此进行讨论,但是根据他们多年的经验,他们意识到这不是一个好主意。

他们知道代码库可能是“混乱的”。但是,当软件对世界进行准确建模时,它是最有用的,并且世界肯定是混乱的。某些代码可能丑陋,因为他们需要捕获域的基本复杂性。

用 Joel 的话来说,“新代码比旧代码更好的想法显然是荒谬的。旧代码已经被使用了,已经被测试过。很多 bug 已经被发现,并且做了修复。”

您的高级工程师可以理解这一概念,并且可以吸引那些虽然才华横溢但有时缺乏纪律的初级开发人员

你得到了你想找的,但是没得到你想要的

你还需要高级工程师领导才能在进行任何开发工作之前提出基本的业务问题。即使是最详尽的产品路线图也可能会有一些高级工程师需要填补的漏洞。缺乏经验和知识,这些漏洞无法填补。

换句话说,你得到的正是你想找的,但不是你想要的。

当我们的客户与离岸开发团队合作时,我经常看到这种情况发生。 开发人员从字面上看待一切,不考虑人为逻辑

一个典型的例子就是在线服装店。

产品负责人说,“我们的额用户应该能够按颜色选择衣服。”

很容易从数据库(“酒”,“珍珠”,“李子”)中获取所有已命名衣服的颜色列表,并将它们放入按字母顺序排列的下拉列表中,但这是一个复杂的功能!

高级工程师可能会花一些时间思考选择颜色的最佳方法,并实施“最接近的颜色”算法,以便当用户选择“蓝色”时,牛仔布,海军上将和青金石都出现。

对于任何复杂的产品,让高级领导者提出问题,阐明功能,与开发人员进行交流,然后持续检查他们的工作是必不可少的。

初级工程师(有时)更容易受到发展趋势的影响

您的初级工程师可能最近完成了编程新手训练营或学位授予。

他们接触了最新的趋势和编程语言,通俗来讲,就是很棒。但是,仅仅因为这门语言或工具很新,并不代表更好。

如今,新的语言和工具在市场营销方面表现出色。 初级开发人员可能认为这是自切面包以来最好的事情。 但是众所周知,营销活动并不总是与使用率和可靠性相关。

一个例子是MongoDB与PostgreSQL。 对于新手来说,MongoDB看起来很棒。这是一个新的数据库程序,被称为“现代应用程序中最受欢迎的数据库”。

这听起来很不错。也许我们应该开始在MongoDB中构建数据库。

这是高级工程师需要介入的时候。凭借他们在各种数据库程序中的丰富经验,他们将能够考虑产品的需求,预算和框架,然后选择实现产品业务目标的数据库。

工程师可以是非技术领导

奇怪的是,你的领导团队并非需要技术精湛。

同样有可能的是,你的开发人员与你的五年业务战略不符。

有时候,当事方在功能,优先级,时间表,框架方面意见不一,你可以自己命名。如果你的领导团队不讲开发,那么您很容易雪崩。

换句话说,开发人员可能会声称必须采用这种方式,故意使用专业术语让你让步。

为了避免开发人员被骗,需要具备技术领导才能进行筛选并翻译每个团队的基本需求。

最后说明

这篇文章不是针对初级开发人员的攻击。毕竟,你的初级开发人员将学习并很快地成长为高级工程师。相反,这是雇用具有技术能力的强大的高级工程领导的案例,但也可以:

  • 与非技术团队成员沟通
  • 帮助解决各类技术问题
  • 了解产品的业务方面
  • 将多年的实践经验带给团队成员

正确聘用此人将确保您的产品以最高水平进行计划,构建,发布和维护。

结语

这是一篇外文的翻译,但是从工程师能力的评判来看,和我们国内的区别不大。高级工程师,不仅仅是写代码,还需要有带团队的能力、做决策的能力、领导能力、沟通能力。

比如文中说的数据库选型,不是因为MongoDB成为趋势,就一定要使用它。而是需要根据经验,根据项目,考虑产品的需求,预算和框架,选一个最佳的方案。

在我开发的项目中,也遇到过选型问题。消息队列,用Kafka还是MQ,用什么MQ,都是需要按实际情况来选择的。还有Android开发中,图片加载框架等等,这些作为新手的你,和公司里,或者和交流群里的其他人交流,你能感受到差距吗?你平时的选择是如何呢?

所以,现在你知道为什么高级工程师值钱了吧。你知道如何成为一名优秀的高级工程师了吗?

知道吗,你和高级工程师差距巨大相关推荐

  1. 漂洋过海去学习,一文读懂程序员如何从初级升级到高级

    微信搜索[程序员小跃],和大家一起奔跑 Slogan:当你的才华还无法撑起你的野心时,那应该静下心来好好学习 还记得前几天跃哥的这篇推文吗?<知道吗,你和高级工程师差距巨大>这篇和大家简单 ...

  2. 高级前端工程师和低级前端工程师的区别

    简单的来说,初级程序员和高级程序员的差别是: 初级多在写代码,高级多在设计代码: 初级多在解决一个问题,高级多在解决一类问题: 初级多在考虑技术问题,高级还要参与业务上的需求: 初级工程师只管接需求, ...

  3. 高级前端程序员和初级前端程序员的区别

    简单的来说,初级程序员和高级程序员的差别是: 初级多在写代码,高级多在设计代码: 初级多在解决一个问题,高级多在解决一类问题: 初级多在考虑技术问题,高级还要参与业务上的需求: 初级工程师只管接需求, ...

  4. 你和高级工程师的差距在哪儿?

    一个程序员的成长之路,会经历多个阶段,从初级工程师.中级工程师到高级工程师再到这个领域的专家,但是能成为技术专家的终归是少数,因此我们通常给自己规划的是前几个阶段.刚毕业的时候就在想,如何能成为高级工 ...

  5. Android-高级工程师必须要掌握的这些技术,来看看你和高级工程师之间的差距在哪里?

    初级工程师在拿到一个稍微复杂点的需求的时候第一印象就是好复杂,我实现不了,哪怕这个技术别家证明可以实现.而高级工程师则不会不做技术调研就说 no ,敢于接受挑战,除非在做过充分的技术调研之后,确信确实 ...

  6. access汇总含义_2020最新大厂内部 PHP 高级工程师面试题汇总(二)

    51.数据库中的存放了用户 ID, 扣费很多行,redis 中存放的是用户的钱包,现在要写一个脚本,将数据库中的扣费记录同步到 redis 中,每 5 分钟执行一次.请问要考虑哪些问题? 思路:生产者 ...

  7. 读研三年与工作三年的人有哪些差距?

    ‍ 大家好,我是张巧龙,在知乎上看到一个关于这样的问题: 本人大一学生,对于考研和工作不太了解,我如果考研,目的就是为了找一份满意工作,请问本专业考研深造三年下来所学的技能与在某公司培训工作三年下来有 ...

  8. Java 面试 1 小时,我看出了和月薪 3w 的差距

    最近跟我的一些读者交流,有一位读者的经历让我记忆深刻: "有一次和大学同学聚会,和几个在BAT的同学聊了聊技术,发现自己在创业公司这几年,完全是吃老本的状态,没有什么机会精进技术,同样是工作 ...

  9. 高级工程师究竟比你“高”在哪?

    从一个普通开发人员到高级开发人员,他们之间有什么差距呢?只需要通过努力提升自己专业知识就能弥补这些差距嘛?阅读这篇文章,你就知道,高级开发人员比你高的不仅仅有技术,更多的是对成长晋升的思考. 作者 | ...

最新文章

  1. The following packages have been kept back
  2. 织梦最新版后台一键更新网站、更新文档HTML卡死的解决方法
  3. postgresql_如何使用Hibernate将PostgreSQL枚举映射到JPA实体属性
  4. python安装与开发环境搭建实验总结_python实验一:python环境配置
  5. .mat,.txt,.csv 数据转换为weka中的arff格式及matlab和Weka之间相互转换格式
  6. [置顶] 运算符重载,浅拷贝(logical copy) ,vs, 深拷贝(physical copy),三大件(bigthree problem)...
  7. 倒序排序_排序不等式,切比雪夫不等式及伯努利不等式
  8. zz在Ubuntu中通过源码安装编译安装软件(MySQL篇)
  9. [LeetCode] Best Time to Buy and Sell Stock
  10. 怎么把ide改成ahci_阳光明媚-将IDE模式更改为AHCI模式的方法(不用重装系统)
  11. PulseAudio 模块化实现录音和放音
  12. 汽车电子ECU bootloader工作原理及开发要点
  13. STM32F103_study52_The punctual atoms(STM32 The running light experiment )
  14. html方框里打勾,word里如何在□里打√!框框里打勾!!!!!
  15. SONET/SDH帧格式
  16. h5页面生成分享海报(保存图片、分享)
  17. 量化基金股票的投资策略有哪些?
  18. Python工程师需要学习的知识总结,送给需要的人
  19. 全新的Uber App设计
  20. java面试题大全2

热门文章

  1. (线性表)设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序。
  2. 祝母亲身体健康,节日快乐
  3. 【Wayland】Weston多屏显示
  4. 使用Python抓取网易云音乐所有歌手信息
  5. 用友t3远程无法找到远程计算机,用友远程通安装打印常见问题
  6. 外挂框架开发(1)HOOKAPI
  7. 诗经 - 小雅 - 出车
  8. 2020年高校微信小程序开发大赛全国三等奖——《重邮指路牌》
  9. Nginx 配置示例
  10. 中国民生银行 支付接口PHP DEMO