查看原文
其他

突破技术发展瓶颈、成功转型的重要因素

2017-11-20 KARL--DujinYang GitChat技术杂谈

本文来自作者 KARL--DujinYang 在 GitChat 上分享「如何突破技术发展瓶颈、成功转型?」,「阅读原文」查看交流实录

「文末高能」

编辑 | 飞鸿

杜锦阳:如果连热情都无法保证,怎么确定你能继续往前走呢?

  • 我们所要关心的问题到底是什么?

  • 技术遇到瓶颈?不知道如何转型?有点迷茫了?

  • 做了几年技术不知道以后怎么样?想做管理,又不知道有哪些途径?

  • 不知道新任技术领导会遇到哪些挑战?

  • 不知道除了技术还能干什么?

开发的道路上,大多数伴随着未知和风险,风险来自哪?也许很多人不知道,有的是外包猝死有的是外派到国外后失联有的是落下了头痛和其它的职业病等,还有一些我们未涉及到的政治风险,看似遥远,却是离我们部分程序猿很近,也许某天的地铁上你身旁站着的程序猿就是这一类。

所以,无论是大神或是专家,首要建议的,必定是健康,如果你加过班,通宵赶过项目,牺牲所有时间保证项目的上线,那么你一定懂得,健康才是最重要的。 

工作几年后的,首要关心的,一定不是什么技术,而是自己的身体,所以请记住,健康,是第一位建议每隔一段时间就去体检一回,毕竟IT这个“高危”行业。


很多在工作几年后的程序员们普遍会比较焦虑,思考的是自己技术上没有提升或者以后该干什么?那么,技术遇到瓶颈怎么办

其实不然,技术并没有瓶颈,而是自己的思想陷入到了死循环里,大多数想着这门语言技术已经学会,并没有太过于深入,新技术层出不穷,你都学会了?

不,也许你看了,可是你并没有深入的去了解过,有些时候是自己知道要去补充哪些知识却没有主观意识去做,如果你深入了解完这些知识,你还觉得技术遇到瓶颈?

如果还觉得遇到瓶颈的话那么恭喜你,你可以升级去贡献开源框架让大家使用,第一可以帮助他人第二也可以监督自身并提升自己的技术,因为此时的你,已经有足够的实力去帮助其他人解决一些别人所不能解决的问题了。

但是也有的人想着转型,因为他的职业生涯走了很长的一段路,要么继续干技术,要么转架构或者管理,往往很多人到了某个特定的时期都会面临着这个选择,这个时候,我们需要确定四点:

  1. 心态

  2. 喜爱

  3. 进步

  4. 关注

这四点决定着你以后,首先要摆正好心态,毕竟迷茫期工作也是会受到影响的,其次,没有好的心态,是学不好任何技术的,试想,如果你每天抱着惶恐的心态,那么连代码都码不好,完全不在状态中,连工作都无法保证的人,怎么转型?

其次,要确定自己喜欢的领域,如果不是自己喜爱的领域,哪怕转型过去了,也是无法确定自己能保证这份热情,如果连热情都无法保证,怎么确定你能继续往前走呢?

然后,我们需要进步,这个进步不是平时讲的学习,而是保持思想上的进步,程序猿,并不仅仅是极限于代码的,以前我常和学生讲这个问题,但是很多学生并不能体会,因为并没有达到一定层次的工作经验和领悟,所以,无论是否理解,请记住,进步,并不止于代码。

最后,我们需要时刻关注未来的动向,好比人工智能和深度学习,几年前就有的概念,只是如今被一些媒体拿出来炒作后才得以强化市场,所以,我们关注市场的动态就好比给自己放了一个方向在那里,机会无处不在,梦想还是要有的,说不定哪天实现了呢?


我相信,大多数做了几年技术的程序猿们都会思考一个问题,如何转管理?不限于理论,我们需要准备:

  1. 管理知识

  2. 开阔视野

  3. 资本市场

第一点需要做的是补充管理的理论知识,毕竟,这不是蒙眼实干的,不同的环境不同的团队不同的公司所需的管理也是不同的,代码敲的好并不代表你管理上也会很好,所以,多读书总是没错的。

第二点无论是项目上还是交际上,要改变自身现在的状态,需要付出实践行动,平时可以多和朋友出去玩,也可以多参加技术沙龙活动,同时通过不同的渠道认识更多的大牛,同时也可以开阔视野和见识,这个往往是程序猿所缺乏的“交际”。

第三点资本市场,一谈及资本市场,大多脑海里闪现的应该是“资本市场怎么玩?”或是“关我P事”,不要紧,大致了解即可,因为大多数已经过了风投期,只需要知道大概即可,有兴趣或是不了解的可以私下加我。

职位如果走上了技术领导或CTO,或者还是任职码神的,无需担心,每个公司的框架和架构都是不同的,所用到的技术也是不一样的,所以不需要太担心技术性问题。

如果接手了公司这个位置,只需要跟着项目和公司的进度走,把逻辑理清,剩下的技术性问题都是一些小问题,因人而异,但对于多年的码神来说,这些都是“so easy”了,搞不定,那就来找我吧。


“不干技术了,我要回家种田。”一句玩笑话,却代表了万千程序员的心声,不是真的不干了,而是不干技术了我们还能做些什么?其实一开始我们的思路就限定在了一定的局域范围内,所以我们一直觉得好像没什么可以做的了,只是我们固化了这层思想,所以你就会觉得不做IT了,就好像没什么好做的了。

从产业到职业,IT市场占了一大半,难道一百多种你都挑不出一样自己做的?

换个方向来说,你搞个淘宝或者电商,时间长了用户有了,日常生活总不是问题吧?时间长了,说不定升级天猫呢?什么,你说这有点难?

其实这就是我想说的,做什么事没有不难的,想空手套白狼,除非你像奥特曼超人一样,从外星球飞入地球打个怪兽然后附带接受人类的祝福,没看懂?

打个比方,房地产用贷款的资金去盖楼出售给购买者获取利益一样,市场有着太多可玩性,古董拍卖会、渠道资源、天使投资、土地煤矿行业等等……看懂了吗?

各行各业都有自身赚钱的门道,入了门才能了解各行各业的规则,如果实在不明确自己是否适合做什么,建议就从自己的爱好下手,喜欢做什么就先去做,先入行再说,然后再看是否适合自己,慢慢的挑选,每个人的机遇都不一样,每件事情都没有定域的。

所以,先挑一个简单又适合自己的下手作为试练才是上上策,哪怕不是做产业,那,一百零八种职业中难道都没有你胜任的其中一种?所以说,不要担忧,每天过得充实才是最美好的,世界如此美好,你的身边,也并不只有代码。


生活才刚开始,慢慢来,别急,首先得踏出第一步,实践去改变,道理谁都懂,可是想得透彻想得明白并着手去做的人,占少数,贵在坚持,一点点看到自己进步。

最后目标才会现形,你的问题在于还没做就开始想得太多,《安徒生童话》里面有着一句话至今我印象深刻,“只要你是天鹅蛋,就是生在养鸡场里也没有什么关系。”

 所以,当你对所处的职位已经有了一定的了解,开始觉得自己如同“行尸走肉”的工作,成为一个开发工具的时候,那就应该要明确一下自己的发展方向了,程序员也许天生都有着一种逼迫感(包括快30岁的)总会想着再过几年应该怎么办?这时候,你就更应该明确一下目标,努力向自己的发展方向前进了。

迷茫,总是一贯的想法,那现在归纳一下,可从下面几项里选择适合自己的一条道路:

1. 从技术向业务过渡

国外大部分都比较重视人才,并且国外很早就发展机器学习这个方面了,国内应该是近期才火起来,而外企中一个高级的程序员与一个项目管理者Project Manager收入相差一般不超过30%。

国内由于培训结构的介入,人才泛滥的情况经常可以看到,尤其是在一些小公司或是创业公司里面经常会遇到这种,但不否认这确实帮助了一部分小白完成了转向,因为在大学里大部分都是没怎么学的,对技术和项目更是一知半解,虽然大部分是被忽悠进去的。

所以,从一个技术员过渡到一个PM是一条向前发展的一个选择,但同时也需要知道,要成为一个PM不单单是技术,而更重要的是对管理方面认识。

一个PM主要的工作是组织团队,控制成本,管理业务,控制项目进度,与客户进行沟通,协调工作,定期进行工作报告等。

所以要成为一个成功的PM更要重视组织能力,PM必须能提高团队的积极性,发挥团队所长,在有限的开发资源前提下为公司得到最大程度上的利润。

成为一个PM后,通常不需要直接接触技术开发,而着重管理的是业务发展,但PM对技术也需要有一定的了解(在下曾经为PM对技术了解的必要性写过一篇文章,得到很多支持但也惹来不少的争议)。

在这里我还是要强调自己的观点:要成为一个成功PM最重视的是管理能力,但对技术也应该有足够的了解。

因为这是与团队成员沟通的桥梁,只有这样才能与整个团队的成员有着紧密的结合,让团队成员感觉到他们自己存在的意义,从而调动团队的积极性,而不是漠视技术人员的存在。

技术并非成为一个成功PM的充分条件但却是必要条件!

2. 从程序员向技术管理发展

在网上看到几句话贴切地形容了PM与TL的区别:“技术人员乐于被’领导’,但他们不喜欢被管理,不喜欢像牛一样被驱赶或指挥。管理者强迫人们服从他们的命令,而领导者则会带领他们一起工作。

管理是客观的,没有个人感情因素,它假定被管理者没有思想和感受,被告知要做什么和该如何做。领导是引领、引导,它激励人们达成目标。

领导力是带有强烈个人感情色彩的,它不是你能命令的,也不是你能测量评估和测试的。”

其实 Team Leader 的职责与 Project Manager 很像,但是 Team Leader 更着重于技术方面,通常一个大型项目都会有几个开发团队由他带领,负责核心开发部分,而其它部分分派给不同开发小组或者分派给外包公司。

无论是PM与TL,对业务与技术都要有深入的了解,只是PM更侧重于业务的管理,盈利的多少,风险的大小等等,而TL则侧重于项目的成本,开发的难度,软件的架构等技术方面的问题。

在此时期必须注意的是与同事之间沟通,很多的开发人员喜欢独来独往,开发的项目总想一个人搞定,不受外界的干扰。但要明白团队协作的重要性,就算你有再强的本事,一项大型的项目也不可能由你一个人全扛下来。

所以团队的合作性与同事间的沟通是必要的,这也是成功一个TL的必要条件。

3. 成为行业资深专家

如果的确非常喜爱技术工作,而不擅长和喜欢与人沟通,则可以完全专注于自身的领域,以发展成为行业资深专家为方向和目标,当然,这一发展过程可能会比较漫长,任何一个领域的顶尖技术人才都需要长期的行业经验的累积和个人孜孜不倦的投入。

不过这类人才的一个优势是越老越吃香,当别人随着年龄的逐步增长而开始担心饭碗问题时,你则渐入佳境,开始进入职业发展的黄金时期。说白了,就是深入某项的技术领域。

这是提供的大致方向,比较普遍,但是每个人都可以用不同的方式成长,用自己的喜欢方式去计划自己的未来,毕竟三十岁以后,你的选择将变成:

  • 创业

  • 退居二线城市

  • 往高层走

  • 其它职业


三十岁以前,你不需要想太多了。

总结

首先不管是从事什么职业,都应该根据自己的自身情况,给自己做一个短期或者长期的职业规划,这样是为了不必要的迷茫,可以分多个TASK完成,如果要求不高,给自己定的目标不会要求太严格的话,过得还是会很健康的。

人活一世,健康是首位,过了是家庭,职业是其次的。也许你现在理解不了,但过了几年,你一定会回想起我这句话的。

—— 来自编程N年的奥特曼超人Dujinyang


近期热文

TensorFlow 人脸识别网络与对抗网络搭建

带你从零开始,快速学会 Matlab GUI

Docker 落地踩过的坑

如何快速入门网络基础知识(TCP/IP 和 HTTP

Node 企业项目大规模实践


「阅读原文」看交流实录,你想知道的都在这里

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存