0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员的级别到底重不重要

工程师人生 来源:wv 作者:简书网 2019-10-20 11:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

经常在网上的论坛里看到讨论程序员的级别,尤其在跳槽类的信息里可以看到对标阿里P7,百度T6,腾讯3.1等字眼,似乎大厂的级别俨然可以成为业内的通用货币,类似于高考分数一样,哪一档就对应着什么样的待遇。

有人说现在的程序员级别也开始浮夸起来了,以前觉得从刚毕业开始算初级软件工程师,到中级软件工程师,高级软件工程师,要熬上三五年乃至更高的时间。而现在接到同行的名片,往往高级开发经理、算法专家、首席科学家等层出不穷。

我从毕业后一直在海外工作,自己的头衔从一开始的软件开发工程师到现在全栈开发工程师,并没有“级别”上的跨越。反观我在国内发展的同学,已经很多是“总”级别的人物了。细细交流之后,觉的和自己做的事情也并无不同。

我在两三年前,曾经非常重视在公司里的晋升,花了大量的时间精力去“面向升级编程”。在跳槽的时候,也会常常对比不同的职位,往往会对那些头衔“高贵”的职位另眼相看。如今反思,当年的自己其实是掉入了级别的陷阱中。

程序员的级别重要吗

程序员的级别到底重不重要?重要也不重要。

级别重要,是因为级别常常和你的待遇挂钩。国内的大厂一般有很稳定的薪资体系,什么样的级别代表着什么样的工资、股票,和钱相关对个人来说当然重要。

级别重要,是因为常常和程序员的话语权相关。即使如谷歌,Facebook这样的公司,没有能够达到高级软件工程师(Senior Software Engineer)的级别之前,也很难获得“搞事”的权利,不能为自己争取到更多的资源。能够给自己带来更多表现的机会,当然很重要。

级别不重要,是因为级别并不决定你的能力。你不是因为被称作高级软件工程师所以你的技术厉害,而是因为你的技术厉害所以有可能成为高级工程师。技术厉害的程序员评不上高级工程师,也不会影响他的技术水平。

级别不重要,是因为级别并不能限制你的输出。级别低的程序员在大公司可能只能做CRUD,但也可能在创业公司中做出千万用户的产品。级别高的程序员或许位高权重,但也有可能完全没有时间写代码。

级别是相对的稀缺性

级别更多是代表对应人才在其组织、行业中的稀缺性,并且往往只有内部纵向比较意义,一旦跨组织,其意义就很有限。

在创业公司里的CTO,很有也就是大公司的高工(高级软件工程师)出身;而默默无名的独立开发者,也有可能成为行业巨擘。

在一些新兴的领域比如最近很火的人工智能,入门的门槛很高,人才比较稀缺。一些名校的博士生可能一毕业就可以成为“高级”、“资深”AI工程师。

相对来说,比如前段计算的门槛不高,并且技术日新月异。所以前段工程师可能需要很多年的积累,才能说的上“登堂入室”。

开头说的大厂的级别似乎可以成为业内通用货币,为何是这样呢?

因为大厂的规模和业务都很庞大,一些大公司之间,由于业务上有重叠,并且经过长期的人才流动(跳槽),在市场的调节之后,互相之间的级别形成了一些对接。不但国内的大厂有这样的现象,国外的大厂之间也会有这样的情况。

而一些规模较小的公司,可能聚集了一些大厂的程序员,或者创始人本身从大厂毕业,也会倾向于从大厂去借鉴级别系统。但是正如上面所说,由于受到公司规模的限制,吸引到的人才分布不可能和大厂保持一致,其级别可信度就会比较低。

小公司的级别是否一定是有水分呢?也不竟然。这里得分公司和不同的岗位。

技术驱动型公司的核心程序员岗位,尤其需要技术过硬甚至是行业领军的人物。 在这样的公司里,可能挂着软件工程师头衔的员工都是在其他公司都是高级软件工程师以上的职务。

业务驱动型的公司,更多的会靠销售团队来推广业务,技术团队往往并不是决定公司发展的关键。在这样的公司里,往往可以看到高级程序员多是公司元老,并且主要的职责是管理,让更多的程序员更高效的为产品服务。

级别不是衡量单维度的能力

对于程序员的级别到底应该对应何种能力,有很多极左或极右的认识。

极左派认为级别越高的程序员应该写代码越厉害。那么到底什么是厉害?

厉害是算法的能力嘛?如果是这样的话那些国际编程竞赛的金牌们应该是最顶级的程序员,但显然不是。

厉害是做产品的能力嘛?Linux之父Linus一个人在1994年就写出了第一版Linux内核,然而他1998年加入全美达公司后也只远远不是最高级别的技术人员(CTO或者是VP of Engineering)

极右派认为级别越高的程序员代码能力越不重要。

他们觉得级别高的程序员只是会吹牛,或者会做PPT,把身下的程序员的功劳都揽在自己身上。

从一个角度上来说这是倒果为因,级别越高的程序员往往写代码的时间很少,而并不是他们的代码能力不行。纵观各个公司的技术高级职位,鲜有之前没有在一线技术岗位干过很长时间的。比尔盖茨、雷军这些大家耳熟能详的人物都是技术出身,并且技术能力都很强。

无论是极左派或者极右派,他们都忽视了一个事实:程序员的级别不应该只是衡量单维度的能力。

软技能和硬技能

一个人的技能可以分为硬技能(Hard Skills)和软技能(Soft Skills)。

对于程序员来说,硬技能包括并不限于算法,设计,实现,测试,架构等多个方面。高级程序员不比是写代码快,也不是比写的代码多,更不在于能写出多么“精妙”的代码。

程序员的硬技能实力应该表现在:

解决难的,复杂的,抽象的问题。

设计和实现出高效、可扩展、可维护的软件、框架、系统。

推动组内、组间的技术方向发展。

如果你观察一些公司里的大拿程序员,他们都或多或少的会在以上的方面展示过人的一面。做好以上的几点,可以让程序员变成一个好的“技术人”。

在硬技能方面之外,同样还有软技能,程序员的软技能包括:

学习能力——快速掌握自己所不擅长的领域,并结合自身实际吸收和运用。

沟通能力——和技术和非技术性同事之间的进行高效流畅的沟通,能够接受和传达必要的信息。

协调能力——分清任务轻重缓急,把握住短期目标和长期目标之间的平衡,解决人与人之间的冲突。

……

程序员的软技能和硬实力同样重要,有的时候甚至要大于硬实力,为什么呢?

因为往往你不是一个人在工作,一个人的输出和团队相比是很有限的。一个人的硬技能再强,也突破不了自身的物理极限(时间、身体),而现代化的企业中,需要团队的合作,才可以在短时间内完成庞大的工作。

再说Linus,他的硬技能强到可以一个人去写操作系统,但是在所在他的公司里也不能做到最高级别的技术人员,究其原因,一个是他可能没有野心不想去做,另一个重要原因是他的软技能——特别是沟通能力上有很大的缺陷。如果由他来带领团队的话,那么可能还达不到他一个人的输出能力。

但我们是否可以一味的只追求软技能的提升软技能,而不重视硬技能的发展呢?软技能不是万能的,软技能也要硬技能做为依托。 学习、沟通、协调能力都是基于你自身对需要学习、沟通、协调的对象(技术)有清晰的认识,而这些认识来自于你的硬技能储备。一个刚毕业的程序员,无论他的软技能多么逆天,没有技术上的积累,也很难胜任高端的职位。

我们可以用一个公式来总结一下:

程序员的影响力(Impact)∝自身的硬技能 *自身的软技能 +所在团队的能力 *自身软技能

如果理解了这个公式,那么对于第一段中各个公司的级别不对称现象就有清晰的认识,我们可以分析以下一些团队的例子:

高技术小团队 =》 强调单兵技术作战能力 =》程序员的级别 ∝自身的硬技能

低技术小团队 =》 强调单兵技术作战能力和协力其他团队的能力 ≈程序员的级别 ∝硬技能(少) *自身的软技能

高技术大团队 =》 需要协调高技术人才 =》程序员的级别 ∝自身的硬技能(多) *自身的软技能

低技术大团队 =》 需要充分的协调、管理能力 =》程序员的级别 ∝自身软技能

总结

每个人都有自己擅长的和不擅长的,能够扬长避短则事半功倍,反之盲目的追求不合适自己的高级级别,则事倍功半。看清自己的长处和短处,寻找最适合发挥自己的空间,这样升级也会顺利不少。

希望看完这篇博文,能够让大家开启思索自己的升级之道,也祝大家早日步步高升。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    956

    浏览量

    31007
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    是否可以使用两侧 3.3V 的PCA9306断开 I2C 总线?

    是否可以使用两侧 3.3V 的PCA9306断开 I2C总线?或者有更好的解决方案吗?速度并不重要,总线的设备端只有 4 个从机,另一侧连接到一对 GPIO。
    发表于 04-17 10:13

    OCA认证只认整机——为什么OCPP协议栈放在哪里不重要

    在全球电动汽车充电基础设施快速扩张的今天,OCPP(开放充电点协议)已经成为连接充电桩与后台管理系统的事实标准。然而,围绕OCA(开放充电联盟)认证体系,业界长期存在一个普遍的误解:许多人认为OCA认证是对“某个部件”(如通信主控板、协议栈模块)的认可。实际上,OCA认证的核心规则非常明确——证书只颁发给整机,至于OCPP协议栈具体跑在主控板上、独立通信模组
    的头像 发表于 04-10 15:38 1692次阅读
    OCA认证只认整机——为什么OCPP协议栈放在哪里<b class='flag-5'>不重要</b>?

    堆栈的原理揭秘

    百度百科试图传递的信息翻译为人话: 2. 为什么需要堆栈?首先,为什么需要堆栈?真的是搞计算机的那帮宅男吃饱了撑的吗? 【编者注:必须不是!鲁迅曾经说过:“不想偷懒的程序员不是好程序员”,就算是吃
    发表于 01-23 07:08

    嵌入式软件测试找bug的常见方法和秘诀

    的领域使用软件和微处理器控制各种嵌入式设备,对日益复杂的嵌入式软件进行快速有效的测试愈加显得重要。 就像修车需要工具一样,好的程序员应该能够熟练运用各种软件工具。不同的工具,有不同的使用范围,有不同的功能
    发表于 01-12 07:07

    芯盾时代SDP助力企业应对核心机密泄露危机

    无论你是程序员、文案、财务,无论你想撸代码、出海报、做报表,各式各样的AI总能满足你的需求,让你的工作更加轻松。
    的头像 发表于 12-26 11:49 851次阅读

    大理的AI野心藏不住了——风花雪月中千名程序员探讨人工智能

    2025 年12月4日至6日第二届CCF程序员大会暨大理人工智能与应用国际开发者大会在大理圆满落幕。
    的头像 发表于 12-24 17:45 894次阅读
    大理的AI野心藏不住了——风花雪月中千名<b class='flag-5'>程序员</b>探讨人工智能

    选择RTOS的要点

    调度策略,但应用经常会制约一个程序员的选择(见表)。非优先式调度(non-preemptive scheduling)的实现虽不重要,但在一些应用中很有用。另一方面,任务内的非优先式调度可在优先式系统
    发表于 12-12 08:00

    程序员最常见谎言

    了。 28我已经测试过了,这个功能没问题,可以上线了。 29别担心,这个问题很快就能解决。 30代码快写完了,已经完成 90% 了 。 希望大家对程序员多一些容忍以及谅解! 各位程序员你们都被我说中了哪些?说说你们的观点
    发表于 12-10 08:24

    奔赴热AI,码力全开!Talkweb House@1024程序员日系列活动圆满收官

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 968次阅读
    奔赴热AI,码力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    开鸿智谷“以赛促学、以赛选才”|1024程序员节暨开源鸿蒙构建大会圆满落幕!

    10月24日,由开鸿智谷联合主办的长沙1024程序员节暨开源鸿蒙构建大会在长沙圆满落幕。本次活动以“湘聚长沙,共赴热AI”为主题,通过技术分享与实战竞赛相结合的方式,着力培养“开源鸿蒙+AI”领域
    的头像 发表于 10-27 17:58 865次阅读
    开鸿智谷“以赛促学、以赛选才”|1024<b class='flag-5'>程序员</b>节暨开源鸿蒙构建大会圆满落幕!

    面对极端环境,工业级SSD结构真的不重要吗?

    看似高性能的SSD,在部署初期表现良好,但数月后却因环境冲击、焊点疲劳、温差变化等问题出现宕机,而这类故障,大多源自结构层面的失效,而非控制芯片或闪存颗粒本身的问题。在工业场景中,它往往意味着整机停机、项目中断、维护成本激增。而这类问题很难通过后期手段解决,必须在产品选型阶段通过结构防护手段加以规避。天硕通过这项技术,直接提升了SSD在关键工况下的结构耐久性,使其不仅能“跑得快”,更能“撑得住”。
    的头像 发表于 07-29 18:23 690次阅读

    分析仪在塑料领域的应用

    分析仪作为材料研究中的关键设备,在塑料领域发挥着至关重要的作用。其工作原理基于热重法,通过精准测量物质在程序控制温度下的质量变化,从而揭示材料的热稳定性和组分特性。在塑料行业中,热
    的头像 发表于 07-17 10:40 664次阅读
    热<b class='flag-5'>重</b>分析仪在塑料领域的应用

    程序设计与数据结构

    的地址)出发,采用推导的方式,深入浅出的分析了广大C程序员学习和开发中遇到的难点。 2. 从方法论的高度对C语言在数据结构和算法方面的应用进行了深入讲解和阐述。 3. 讲解了绝大多数C程序员开发
    发表于 05-13 16:45

    请问训练平台训练完的识别程序,可以实现在识别到物体时屏幕再显示出来,没有识别到物体时屏幕不显示吗?

    问题如题,训练平台训练完的识别程序,可以实现在识别到物体时屏幕再显示出来,没有识别到物体时屏幕不显示吗?比较小白,可以解释一下怎么做吗?或者是我应该学哪里? 如果直接使用平台下载的代码不行,改一改可以。
    发表于 04-29 06:12

    labview求助:想写一个labview输出不重复随机数的程序,有没有大佬帮忙看看这个假分支要怎么写?

    大佬们想写一个labview输出不重复随机数的程序,有没有大佬帮忙看看这个假分支要怎么写
    发表于 04-27 08:39