算法⼯程师程序员职业规划
⾃从硕⼠毕业后,⼀直从事算法⽅⾯(视频编解码,深度学习,全景VR)的⼯作,⽬前⼈到中年,感觉有点在⼗字路⼝,不知道未来规划是什么样的,因为最近搜索了⽹上关于程序员的职业⽣涯规划。
根据⾃⼰理解,出我认为值得我后⾯注意的地⽅,记录下来,朝着正确的⽅向前⾏。⽬前下⾯的内容基本赞向,唯⼀不确定的是到底是在某个技术⽅向深耕好,还是在某个⽅向有优势的前提下发展多个⽅向。
⾮常感谢视频编解码⾥⼀位⼯作14年的⼤⽜提出他的想法:⼀直在⼀个⽅向深耕的可能发展更好。
我⼀直相信这样⼀句话:真正的危机,来源于在正确的时间做不正确的事。没有在正确的时间,为下⼀步做出积累,这才是危机的根源。
1.知识结构
因为⼀个清晰的⽬标,可以让你的职业成长围绕着⼀个点去积累经验,⽽这种⽇积⽉累的经验积累,也是你⽇后升职加薪的筹码。
要脱离具体的操作层⾯的问题,把你看待问题的眼光放得更⾼⼀些,更远⼀些,成为⼀个具有“远见卓识”⽽不是“⿏⽬⼨光”的⼈。
java开发的职业规划
你要向这个⾏业⾥最优秀的⼈看齐,并以他们为⽬标,作为⾃⼰修炼成长的榜样,⼀步⼀步弥补与优秀之间的差距。这个时候,在职学习、进修等等都需要提上⽇程,学会⽤新的知识充实⾃⼰的头脑。
你的能⼒没有提升可能是:
· ⼀种是频繁跳槽,没有在⼀个⽅向上积累,⽆⼀技之长;
· ⼆是虽然在⼀个⽅向上长期积累,但只是第⼀年是成长的,剩下的⼏年都是在做重复劳动,原地踏步。
2. 不断学习的能⼒,这⾥有两种⽅向。
(1)要坚持使⽤⼀个开发平台,框架或语⾔
在过去⼗年间,我所犯的最⼤错误是:⼏乎每次我换⼯作时也转换了开发平台。
我的经历从 Java 企业开发开始,到嵌⼊式 C 编程,到⽤ VB、C# 和 C++ 开发 Windows 桌⾯应⽤程序,然后⽤ Objective-C 写 iOS 应⽤程序,到⽤ NDK 编写 Android 库,最后到写 Android 应⽤。
这个职业经历听起来令⼈敬畏,但实际上雇主并不关⼼。雇主们并不会重点关注你拥有 10 年各式各样
的开发经验,但如果他们看到你没有⾜够的 Android 应⽤开发经验,你就不可能获得⼀个 Android 开发的⼯作。
转换平台会对你的简历产⽣巨⼤的负⾯影响。对于⼀个雇主来说,实际上他没办法通过简历来验证你是不是某⼀特定开发领域的专家,为你付出⼤量资⾦是否合理。
⼤多数公司都不关⼼你的过去,技术⾯试会更加重要。这就是为什么很多经历尚浅但专业对⼝的开发者可以到⼯作的原因。
那么我们如何适应市场的变化呢?只要你不停地敲代码,你就能⾃然⽽然地适应市场,但你也需要投⼊⼀些时间在新技能上,应在空闲时抽出时间来学习新技能,⽽且你也要降低期望薪⽔。你需要后退⼀步,才能前进两步。
⼀旦你到⼀个让你觉得舒服的平台,框架或语⾔,就应该坚持下去。从长远看,你期望的薪⽔和你的⼯作能⼒都会⽐频繁跳槽来得更⾼。到最需要你的专属技能的好公司,然后踏实地在那⾥⼯作。我知道这听起来很简单,但我花了很多年才意识到这点。
(2)在某个⽅向上深耕
我们会在很多场合听到对「精钻」这个词语的推崇,包括在职场上,我们常常听到前辈教导我们对待
⼯作要精益求精,但事实上,在某⼀⽅⾯做到万⾥挑⼀的⼤⽜是⼀条可取的道路,却不是职业发展的唯⼀道路。
尤其是对于那些未来的职业发展规划是进⼊明星创业团队担任技术负责⼈的程序员来说,在之前的积累过程中寻机会尽量多地接触各类业务场景并寻解决⽅案,可能是⼀条更可⾏的路径。
这⾥的业务场景分为⼤业务场景,也分为⼩业务场景。⼤业务场景即不同的细分⾏业,如电商、内容、视频、共享平台等等。我建议程序员们在进⾏⼯作选择的时候不要被⾃⼰原先所属的细分领域太过限制,认为⾃⼰原来在电商公司以后也必须在电商公司。事实上,多去尝试不同领域的公司,去了解不同领域的公司在技术实现上有什么异同,对于程序员更深⼊地理解技术是很有帮助的。
尤其是当今⾏业发展⽇新⽉异,某⼀细分领域很难在⼀个⼈ 15-20 年的职业⽣涯中⼀直处于蓬勃发展的状态,如果之后⼜出现了新的细分市场,复合背景积累的经验会帮助程序员快速切⼊到新的细分市场。
⽽⼩业务场景则是指同⼀个技术在同⼀家公司的不同业务范畴。例如算法⽅向,可以分为排序、推荐、NLP、图像识别和⽤户⾏为研究等,攻坚某⼀领域是⼀条发展路径,但横跨不是⼀个领域也是⼀条发展路径。这就需要程序员⾃⼰把握机会,不断跳出舒适区去承担新的业务和需求。
3.树⽴⾃⼰在⾏业内的影响⼒。
你要想成为优秀的职场⼈⼠,也必须向那些最优秀的⼈看齐,树⽴在这个⾏业内的影响⼒,⽤你的思想去影响别⼈。
成为开发者社区的⼀员
当我还在⼤学的时候,我总是懒得参加各种社团和俱乐部活动。当我到我的第⼀份开发⼯作时,最不乐意做的也是和其他开发者闲聊闲逛。
但是我错了。
同⾏聚会和进⼊开发是很有趣的事情,是结识开发者伙伴的好地⽅。如果你想在这个⾏业⾥做到最好,就尽量不要消极被动。与坐在你旁边的⼈交谈,提供你的帮助,分享你的经验。每个⼈都喜欢谈论⾃⼰的经历,更何况你也许会遇到很多潜在的雇主。
在那⾥你会碰到许多需要教练的初学者团体,你可以指导新⼿,给他们提供练⼿的机会,甚⾄赞助活动。
当然,要学习别⼈的开发技巧并且勇于实践,要热情地欢迎不同意见的⼈讲话,勇敢地听取他们的意见。
4.锻炼其他⽅⾯的能⼒,
(1) 你的⼈际关系处理能⼒这其中包括与你的上司的关系,以及与你的同事的关系。
(2)除了编程之外,程序员要尽量培养⼀些其他⽅⾯的技能,例如演讲、写作等等。这样做⼀⽅⾯可以为程序员提供⼀些兼职机会,如主讲技术相关的直播课程、参考⽂章或书籍的撰写等。类似的机会在提供报酬的同时也会增加员⼯的知名度和⾏业影响⼒,更有甚者,在社交媒体上发表了相关⽂章之后,吸引了⼀批志同道合的同⾏,开始合伙创业,有了更⼤的机遇。
5.不要为⾼⼯资追求管理⾓⾊
以前我总是以为那些穿着西装,作⾏政决策的管理者拿的薪⽔⾼得令⼈神往。虽然在⼀些情况下这没错,但这所占⽐例很⼩,经验丰富的开发者的薪⾦⼀般会⽐中等管理者更好。
在我早期的职业⽣涯中,我⼀直想进⼊项⽬管理。我⾃修了管理硕⼠,在那⾥我学到了很多有趣的东西。最后,我在⼀家西班⽛公司作了⼀阵开发经理,然⽽我意识到这不并适合我。
在做开发者的时候,我总是感到公司缺乏企业⽂化,尤其是缺少技术因素的企业⽂化。然⽽在做了管理者之后,不仅编程⽔平⽆法提⾼,⽽且在企业⽂化的孤独感甚⾄更加强烈。最终当我离开这个岗位重归技术开发时,我终于开始重新欣赏我的开发⼯作。
如果你对敲代码感到厌烦了,那么转成管理岗并不是解决⽅案,更好的办法是横向移动,换⼀个部门,
换⼀家公司,或者是旅⾏,甚⾄可以选择在国外⼯作来解放你的思想,在全世界有许多技术中⼼,那⾥对开发者的要求很⾼,这能帮助你打开眼界。
6.保持紧密沟通
有些程序员认为⾃⼰做的是技术性⼯作,只要写好代码就可以了。这是错误的认知。根据以往服务候选⼈的经验来看,那些有意识在⼯作之余关注⾏业动态,积攒⼈脉资源,并且乐于与同⾏沟通的程序员,往往在职业发展的路上⾛得更远。
⼀⽅⾯,程序员可以通过这些⽅式随时评估⾃⼰在市场上的价值和优势,当⾏业和技术的风向发⽣转变时,及时对⾃⾝查漏补缺,避免被时代抛弃。另⼀⽅⾯,⼈脉资源的积累,有时也能对⾃⼰下⼀次换⼯作起到雪中送炭的作⽤。
可见,⾏业信息、公司动态的互通有⽆对于职业发展有着⾄关重要的影响,准确地把握⾏业动态有助于员⼯抓住⼀些转瞬即逝的机会。
⽽对于信息的获取,⾃⼰的朋友、前同事、公司 HR 还有靠谱的猎头、100offer 的职业顾问等,这些都是可以利⽤的资源,同时也可以参加⼀些展览、峰会等线下活动。尤其对于那些⾃⼰感兴趣的技术⽅向,尽量积累⼀些⼈脉资源,⼀次有效的内推往往⽐海投简历更有效果。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。