说说有没有软件开发入门技术厉害的?

写在前面:本篇回答来自旷视罗义云同学的解答,希望能从他的工作心得中,与大家分享和探讨工程类技术人员的成长路径,即系统和后端、前端通道,算法类同学的成长路径将在之后给大家详解。但同时,此篇回答中的很多内容其实是一些通用的能力,相信也可以给其他岗位的同学作为参考。技术人员成长之路三部曲大体看,成长路径可以用下面这棵大树表示:新人 –> 高T -> 技术专家/架构师/技术leader/其他。首先,值得注意的一点是,在“枝叶部分”,往往可以有多种不同的成长路径,但在这之下,却只有一个树根和树干,这意味着不管我们选择什么样的路径,都必须打好技术基础。当然,大家可能也注意到,成长路径中还有一个“其他”,具体指什么呢?这里的范围其实很广,既有产品经理,也有销售,甚至是HR。比如,你可能会发现在你身边的一位工作非常优秀的PM,职业生涯初期其实从开发做起的。高T的同学一般来说有三种主要的职业路径:技术专家、架构师和技术管理者。从通用能力和专业能力两个维度来看,对三种角色的要求是这样区分的:从上图可以看出,从技术专家到技术管理者,专业能力要求逐渐降低,而通用能力要求逐渐升高。通用能力包括逻辑分析、学习创新、组织执行和沟通影响等能力,而专业能力根据所处通道不同各有不同,比如系统通道的同学,专业能力就包括系统设计与实现、性能调优等。01. 如何成为技术专家?技术专家是指在某个技术领域内做精做深、具备顶尖的技术能力的工程师,他们一般不带人,或者只带比较小的技术团队。比如GNU创立者Richard Stallman、C++之父Bjarne Strostrup和Linux创造者Linus Torvalds。可能有同学要问:算法领域有技术专家吗?当然有,向外看有深度学习“三剑客”的 Yoshua Bengio、Geoffery Hinton 和 Yann LeCun,向内看则是旷视首席科学家、旷视研究院院长——孙剑。哪些领域可以产生技术专家呢?理论上所有领域都可以产生技术专家,但我们应该选择领域挑战足够大、有足够的深度。比如CV领域,就可以分为操作系统/内核、数据库、分布式系统、深度学习/神经网络和芯片等诸多领域。那么如何成为一位技术专家呢?从个人特质来说,首先,你要对技术有浓厚的兴趣;其次,你还要能保持专注不受外界影响,也就是能沉得住气,耐得住寂寞。最后,要有充分的自信心。具体方法上,首先,如前所述,要选择一个有足够深度的领域钻研下去。其次,要积极的思考与实践,要多与圈子里的高手交流。最后,还要积极的跟进前沿技术进展,比如学习好的开源框架和代码。02. 如何成为架构师?接下来,我们来看看架构师。从工作职责来说,架构师需要针对业务需求,给出系统整体构架,协调各组开发。我们常说技术专家和架构师都是团队中技术能力最强的同学,那么,这两种角色有什么区别呢? 从上表中可以看出,架构师的角色主要是系统设计和资源协调,而技术专家则是技术攻坚。换句话说,架构师是进行战略布局,而技术专家则是单点爆破。从技术能力上看,架构师更注重在技术广度,而技术专家则是深度。最后,从业务能力而言,架构师必须有较强的业务能力,而技术专家的要求则不高。一名合格的架构师,需要在四个维度上展现能力,分别是:业务理解能力、架构规划能力、技术能力和沟通能力。架构设计是平衡的艺术,需要在多方条件约束下做出合理的技术决策。没有最优解。如何成长为一名好的架构师呢?首先,好的架构师都是从底层做起的,从解决小的问题开始,逐渐解决大而复杂的问题。接下来,好的架构师要注意培养自己的产品思维,要了解业务。最后,架构师还要对技术美感有追求,要有拒绝平庸的信念。03.
如何成为技术管理者?最后,我们来说说技术管理者。从高T到技术管理者,一般会经历一个中间状态——tech lead。高T,要求的是技术深度,而从担任tech lead开始,就要有项目管理和团队管理的能力。一名合格的tech lead,相比高T,要在架构能力、项目管理能力、沟通能力和业务能力方面都有所提升。而一名合格的技术管理者,相比tech lead,架构能力可以相同甚至稍弱,但是沟通能力、业务能力和管理能力一定要更强。大家一定要明白的一点是,管理者不一定是团队里技术能力最强的,相反,技术管理者最重要的工作,就是为组内的技术专家和架构师提供所需的资源和支持,让他们能最好的发挥自己的专长。那么,如何成为一名好的技术管理者呢?首先,也是最重要的一点,是心态的转变。IC的成功是个人的成功,所谓“一人吃饱,全家不饿”,而技术管理者的成功,首先是建立在团队成功的基础上的。因为,当你成为管理者,就意味着你要解决的问题已经超过个人能力的范围了,你只能依靠团队的力量才能获得成功。其次,团队管理者要想有效的管理团队,必须首先让自己变得有效率。成为团队管理者之后,你的时间开始碎片化,总是有很多突发的会议需要你参加,有很多团队的问题需要你去协调,如果你不能很好的管理好自己的时间,你就会成为团队的瓶颈,最终拖累整个团队。就像管理学大师德鲁克所说的:“要说卓有成效的管理者与其他人有所不同的话,其最大区别就在于,他们对自己的时间十分爱惜。”最后,技术管理者要有很强的沟通能力。大家可能会说,我天生内向,是不是就不适合担任管理者了?其实不是这样的,我们说熟能生巧,这一点在沟通能力上也一样,它并不需要很高的天赋。首先,你要走出自己的舒适区,敢于沟通,勤于沟通,最后,一定会达到善于沟通的程度。归根到底,职业生涯是自己的事不管在什么时候,我们都应该花时间去规划自己的职业生涯。在此,我有几点寄语希望送给大家,特别是刚踏入职场不久的新同学们:1. 做好1 on 12. 寻找career mentor3. 积极主动4. 点滴优化1 on 1,不仅仅是管理者的职责,在职业生涯早期,我们更加鼓励大家主动与自己的直属上级约定期的1 on 1。在1 on 1中,推荐大家不聊具体的项目问题,而是着眼在职业生涯规划这样的问题上。反过来,对于已经是技术管理者的同学来说,也不能放松对1 on 1的要求。当我们成为管理者开始,我们就背负着帮助团队员工成长的责任。因此,在日常的1 on 1中,我们要积极响应员工发展的诉求,给他们创造机会、提供资源,扫清成长道路上的障碍。Career mentor是我认为的个人职业生涯中非常重要的一项投资,因此也想重点跟大家分享一下。毛主席说过:“榜样的力量是无穷的”,有一个职场上的榜样,意味着我们可以源源不断的从他/她身上得到帮助。那么,如何寻找career mentor呢?这里有几个建议给大家:1. 不是你的直属上级。与直属上级的沟通,请见上面的“1 on 1”环节。2. 与你同级或高1-2级,不要太高。职级相差太多,他/她在你这个阶段的经验已经过去太久了,相应的建议大概率针对性也不强。3. 组内,或与本组有业务合作的部门。我们建议career mentor最好能对你的工作有所了解,这样给出的建议才是比较实际且可操作的。4. 物理距离不要太远,选择同一办公地点更方便沟通。5. 虽然不能是leader,但可以找leader推荐。积极主动,这是《高效能人士的七个习惯》中的第一个习惯,是其他习惯的基础。如前所述,积极主动进行职业规划,不仅是对自己负责,也会得到团队的支持。点滴优化,这一点对于技术人员来说非常重要,但常常为大家所忽略。我们来假设一个问题:如果你发现gitlab上的CI pipeline比较慢,你评估了一下,可以通过优化减少30分钟,但要花自己一天的开发和测试时间,并且优化CI pipeline并不是自己的本职工作,这个时候你愿意花这一天时间吗?有的同学不愿意,但其实这样想就可以了:假如团队有10位同学,每个同学平均一天要跑2次CI pipeline,那优化之后,每天就可以节省10*2*0.5h = 10h的时间,只要三天就可以收回这一天的投资了,是非常值得的。从团队的角度看,这样愿意打破自己的工作边界,投入时间提升整体工作效率的人才,是值得欣赏与肯定的。成长的道路没有捷径,希望大家能从身边大牛的经验中获得启发,让自我职业发展的成长大树上枝繁叶茂。}

我要回帖

更多关于 软件开发入门 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信