原文地址: http://www.yegor256.com/2017/...html
常常有人问我:如何成为资深的软件工程师或架构师?一个刚学会敲代码的码农,是怎么成长为年薪 15 万刀以上、开着宝马的开发团队首领的?如何才能尽快走完这条路,减小浪费时间?我就在这分享下个人观点。程序员
在写篇文章以前,我在网上看过了不少别人给的这方面的建议,好比说乐于助人、多交朋友、不要拘泥于语言、多多练习、勇于对BOSS直言、不要跟同事起冲突,等等等等。它们当中有些是没错,但大多数能够说离题甚远,不着边际。编程
而我给的建议不同,我要说的都是有理有据的大实话,对你在几年后成为时薪 100 刀级别的软件架构师颇有帮助。并且一直以来我就是这么作的,之后也会如此。架构
不要对公司忠诚。你如今的公司永远只是一个锻炼本身的地方,仅此而已。不要对公司过度投入不相干的精力,这方面要自私一点。把目光集中在本身的我的技能、知识和经验上。公司想要培养你的奉献精神和忠诚度?这些手段对你无效。利用工做中的机会来学习新的技术、实践本身的想法、自我训练、自我学习。拿个什么证书之类的,拓宽本身的业界人脉,等等。个人职业生涯应该为我所用,这是原则。公司想要经过花钱或奖励来收买你的奉献和忠诚,定不会得逞。学习
不要把工做当工做。应该把编程当作爱好而不是工做。其余的都是次要的,什么家庭,朋友,魔兽世界之类的,都是次要的。不带着这样的态度,你只会被它们拖累,不能全身心的投入。编程是你的灵魂,编程对你来讲不是工做,而是享受,是令你灵魂都感到欢欣愉悦的世上一等一的享受。不要去写本身不想写的东西,不然你就要对本身警戒了:这是不对的,这说明你的职业生涯出现问题了。网站
不要交朋友。我是指那些创建在工做关系基础上的朋友,而不是志同道合的真正朋友。记住,你 99% 的同事最终不会成为真正的专家,他们这辈子就只会作一个没有激情没有抱负的普通程序员。跟这种人过于亲密的话,他们会拖你的后腿,让你堕落成一个普通人,由于他们看不得你如此出众,看不得你不断前进,看不得你远离他们。但你最终仍是会把他们甩在后面,离他们而去。htm
不要乱作好人。世上的程序员多得数不清,人人都有遇到困难的时候。难道你不去帮忙,这世界就完蛋了不成?你真想要有所做为的话,不要拘泥于这种小事情,而要把目光放高远一点:推出开源产品、写本书、改进下项目文档之类的。帮身边的人的忙,剥夺他们本身寻求答案的机会,反却是害了他们。ci
不要求人帮忙。具体地说是遇到技术问题不要随便开口求同事,所谓求人不如求己,StackExchange 上的六百万注册用户难道还帮不了你?要锻炼本身从公共资源中搜寻答案的能力,它能让你在职业生涯中受益不浅。不然你习惯于向身边的人求助,不但麻烦别人,也是害了本身。一样。你想学习什么东西,也不能局限于周围的同事,而是要从书本上学,从 StackOverflow 中学,从开源库中去学。项目管理
不要浪费时间。这句应该说是最重要的,并且我应该先说给我本身听——我就浪费了不少时间。成长的过程就是一个对别人说“不”的过程,你要随时准备拒绝你的朋友、你的家人、你的同事、你的自身欲望、你的业余爱好、你的项目、你的方法,甚至你写的每一行代码。不要写那些花时间又没一点回报的代码,不要理会那些你不须要理会的人。没错,他们须要你,但你不须要他们,不要管他们。这话听上去刻薄自私,但没办法,时间这个东西没了就不能再有,并且它是你成长过程当中必须付出的。资源
不要舍不得花钱。为了本身的成长,任何投资都是值得的。去买书。就算能弄到免费的盗版电子书,你也应该去买,去花钱,不然你就不会认真看。看看你读过的书,要可以让你有一种自豪感。软件开发对你来讲不是一个工做,不是身外之物,而是你的生命。一个月两本书,那是最低限度。一样的,花钱去考资质证书;一样的,花钱去买软件,不要用盗版。最后,你的电脑也不要买便宜的,它比你的车重要得多,它比你爱人的生日礼物重要得多,它是你用来吃饭的家伙,重要程度不吝于演奏家本身的乐器。想要出类拔萃,你就必须全身心的投入。
不要满工时的工做。把工做时间都花在工做上,你将没有机会让自身更进一步。想象你长期在一家公司工做,稳定的收入,舒心的办公室环境,只有一堆稀松日常的问题要解决,久而久之,最终在一个很窄的领域内成为专家,在这小圈子里头自鸣得意,无所畏惧。而后呢?没有而后了,你的职业生涯已经到头了。——想要摆脱这种命运,你必须不断地去挑战新的问题,去融入新的团队,参与新的项目,甚至寻求新的工做。为了时刻证实本身有能力胜任这些工做,最理想的状况下,你应该腾出一些时间花在两到三个其余的项目上,并且每半年到一年换一次。
不要对本身开价过低。什么“项目赚不赚钱不是最重要的,重要的是要有创意”,这都是那些码界低能儿说的话。钱就是最重要的,赚不到钱的项目就是被市场视做垃圾项目,这种项目你呆在里面干嘛?你有能力去作那些赚大钱的项目,就不要理会那些廉价的“创意”。只管去要投资,越多越好。
不要小瞧行业认证。不少程序员以为行业认证纯粹就是花钱从大公司买来给本身装潢门面的,没多少含金量。这么想就错了。经过行业认证意味着,你的知识体系是清晰完备的,你的领域知识完整且没有遗漏。对你的潜在雇主们来讲,这意味着你在软件开发方面至关专业并且有至关的发展潜质。
不要忽略管理方面的东西。程序员跟架构师和开发组长不是一个级别的,但这不表示程序员就应该一味的听从安排,埋头作事。为了你的职业生涯着想,你要从入行的第一天就关注项目管理。项目管理是很复杂的,不是说你们一团和睦就什么问题都没有。项目管理是一门科学,有规律,有原则,有方法,有最佳实践。你也要了解也要掌握,对管理方面的事情要像看你的代码同样看得通透。你能够从“项目管理知识体系”开始学起,或去考个项目管理的证书。
不要忽略英语。我不少读者的母语都不是英语,其实我也同样。这点建议就是特别针对大家:必须提升本身的英语说写水平,不然你永远都不能成为高收入的软件架构师。并且我不是说你像个毛子似的讲英语就能糊弄过去了,你得像旧金山本地人同样说英语,不带一点莫斯科味。最佳建议就是:看带字幕的英语电影,学 Matt Damon 或 Al Pacino 那样说话,不要学 Mutko。
不要忽略开源。在开源社区里面表现得活跃点,这是颇有必要的。你要么本身弄个开源项目,要么积极参与别人的。在公司里写代码和面对全世界写代码是两回事,大部分程序员就是不敢,他们有一堆的理由,但你不要学他们。参与开源确实有压力,并且要耗费私人时间,又没人付钱给你,但你要硬着头皮顶上去,为何,就由于这是最快最快的成长方式。并且我还建议你尽量的公开本身写的源码,哪怕写它们最初的目的只是给本身用,或者只在公司里用。若是公司比较开明,不会反对你这么作。若是我要搜你的名字,我但愿看到一堆的与软件和开源有关的搜索结果,而不是什么约炮网站上的我的主页。
不要没一点存在感。什么脸书,推特,领英,Instgram,能注册的都注册起来,对了,还有博客。若是你是一个专业的资深的软件架构师,我怎么可能在 Google 上找不到你的名字对吧?别人也绝对会去搜。个人书《256 Bloghacks》能帮你正确找回存在感。
不要太宅。去参加一些聚会和交流会,至少每个月一次,你得去那些程序员汇集的地方。我不是要你表现的多突出——你只要在那看着就行。去得多了,你天然也会有些想法,愿意分享出来。记住,你的同事对你的评价不重要,重要的是市场和业界对你的评价。一个快乐的成功的软件架构师,是不会天天玩 GTA 到凌晨三点的。
不要懒得打理本身和放松享受。没人喜欢那种一年才剪一次头发、一身臭味的家伙。若是你是这样子的话,雇主只会把你看做是码猿,而永远不会考虑将公司层面的责任重担交给你,由于你看上去就是个精神不正常的家伙。因此,你的形象要看上去像个“懂生意的人”,哪怕你骨子里不是。因此,你要注意如何使用本身的业余时间——不是天天玩 GTA 到凌晨三点,而是去运动,去旅游,去夜店,等等。总之就是稍微像个正常人一点。
我要说的就这么多了。还有什么没提的吗?