Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

一个程序员的成长之路 #1

Open
awanglilong opened this issue Sep 3, 2020 · 6 comments
Open

一个程序员的成长之路 #1

awanglilong opened this issue Sep 3, 2020 · 6 comments
Assignees

Comments

@awanglilong
Copy link
Owner

awanglilong commented Sep 3, 2020

程序员的中年危机。

中年危机

1、技术的更新迭代速度特别快,尤其是前端领域,你会发现很少有能真正沉淀下来的东西。

2、企业如何对待35岁以上员工。

3、最后一点,就是随着年龄的增长,选择的成本会越来越高,你会有家庭,即便公司觉得你没有价值,你也不能走了,走不动了。

这些触动了我,开始要去思考。

我们做技术,尤其是前端,很多时候我们做出的产品,看到的都是UI设计,交互设计 ,产品设计,即便我们做的产品非常成功,成功点在哪儿?可能是UI设计得漂亮,也可能是推荐算法精确,而前端的产出给产品带来了什么?还有前端技术深要深到什么程度?做久了技术就必须要转型管理吗?这些问题我当年没有答案,我可以坚持不懈得写页面,但是这个事情做5年,6年,10年不还是一样吗?现在我能做什么?未来我想做什么?

我把整个职业生涯分三个阶段:

  • 第一阶段,一技之长。就是深耕你的专业技能,你的专业技术。
  • 第二阶段,独立做事。当你的一技之长达到一定深度的时候,需要开始思考如何独立做事。
  • 第三阶段,拥有事业。选择一份使命,带领团队实现它。

大致是这样的三个阶段,接下来我逐一拆解一下:

第一阶段:一技之长。

我把它分成五个层次:栈内技术、栈外技术、工程经验、带人做事、业界发声。

第一、所谓栈内技术,是指你的专业领域技术,对于前端工程师来说,就是那些我们熟悉的JS、CSS、HTML等基础,深入了解我们的程序所运行的宿主环境——浏览器,能掌握并灵活操纵在浏览器内发生的一切。前端没有秘密,所有可访问的页面都近似于开源,所以检验栈内技术的标准就是看你是否能最终形成技术上的“写轮眼”——那种看到任何前端产品都有能独立复刻和洞察它的自信。

虽然我现在在做技术管理,但始终不会放弃我作为前端这个一技之长的根本。遇到一些前端同学工作几年以后前端做得比较熟了,考虑转行到其他岗位。但是我想说,当你转行那一刻起,就把要转的领域变成了你新的“栈内技术”,然后又要重新走一遍技术沉淀的过程,匆匆几年,又过去了,所以不要轻易"换方向",前端绝对是可以长时间坚持的领域,现在新型的软件生态,无论是小程序,快应用,甚至区块链,都会首先瞄准JS开发者,因为有庞大的开发者群体,工具链也比较完善,所以长期坚持从事前端工作,在可预见的未来都不会“过时”。

核心技术:iOS开发

第二、栈外技术,是指栈内技术的上下游,领域外的相关专业知识,包括但不限于服务端技术、运维、CDN、测试,甚至UI设计、产品设计等等,扩展你栈内技术的周围领域,充分理解你的工作在整个技术研发体系中处于怎样的环节。工作之余多投入一份精力,把其他栈外技术不断纳入到你的知识体系中来,建立栈外能力。前端想要做的深入,往往会涉及到缓存、模板渲染、用户体验等知识,没有相当的栈外技术积累,你很难为自己的团队争取到足够的话语权。

我个人非常推崇”大前端“的概念,有点类似”全栈工程师“,但不是要求一个人全面专家,而是以前端为根,展开上下游的栈外技术学习,一专多能。

延伸:前端开发、后端开发、产品、运营、公司业务

第三,工程经验。是指建设专业技术体系的“解决方案”,通俗的说,就是做事的“套路”,掌握从0到1,1到60,甚至60到100分阶段建设专业技术体系的过程。工程经验涉及到技术选型、架构设计、性能优化,CI/CD,日志监控、系统测试等,这些是跟工程相关的方法论。

很多的工程师没有总结自己工程经验的能力,我面试经常会问,你们觉得自己工作了两年、三年、四年和刚毕业的学生有什么差别?面试者说掌握了某某技术,但其实往往说的只是一些知识点。那些“今晚查完明天就会了的”不叫技术。决定你比别人更有专业价值的,其实是领域工程经验。你看过再多的文章也没有用,没真正实操过都不能称之为“掌握”。所以我建议要想掌握足够丰富的工程经验,需要在业务中多争取实践的机会。

工程经验才是技术水平的分水岭。

工程经验:代码大全、人月神话属于工程经验总结.是唯一能沉淀下来的,其他的都会过时

第四,带人做事。之前三项都是个人专业技能方面的深度要求,带人做事是对团队协作能力的要求。我以前非常不理解一件事情,就是我自己明明做的很好,来了一个新人不能get到我的要求,怎么办?非常着急的时候,我说你别做了,我来吧。带人做事,是把自己擅长的事情,良好的习惯传递给他人,实现1+1>2的生产力提升,让整个团队的产出高于自己。另外,这个阶段大家要特别注意『管』与『带』的区别。所谓『管』是"我不懂某个领域,但我知道你懂,你必须给我做好",而『带』则是"我特别懂这个领域,我知道你不懂,我要教你做得更好"。有点授之以渔,甘当人梯,成就他人的意味。带好一个人或者带起一支有战斗力的团队,是做人做事成熟的表现。

你带人呢,要尽量尝试把A和B之间有差异的地方转换成提问,你问他遇到这个问题怎么解决,遇到那个问题怎么解决,一直问到形成A,他会带着思考去做事情。如果没有这个过程,没有让他思维演化的过程,虽然他收到了A的指令,但是他不理解,他会用别的方式做出来,最后得出来一个C,然后你又重构一遍,陷入一个怪圈不能自拔,这就是我以前的误区,所以我现在特别注重提问的艺术。

第五,业界发声。如果你前面做的非常好,基本上到了可以对外发声的程度。把自己的工作经验总结对外发布,与他人交流,碰撞思想,看到更高的山峰,然后修正自己的想法,日臻完善,是能走得更远的一种方式。有的时候真的要把自己的思想放到业界的层面验证它,自嗨有毒,大家好才是真的好。如果别人不认可你的这套思路,你的想法,基本上你也可以判定为自己没有达到一个更高的水平。不过通过业界发声获得认可,往往需要机会,可遇不可求,得之我幸,失之我命,这也和你所在的公司平台有关。在我技术声誉成长最快的地方就是在百度那几年,刚好一个大平台,做出一点成绩,但是小型创业公司出来分享,基本上没有人理你。

永远不要放弃一技之长,没有所谓的转行或者转型,永远坚持你最初的领域,扩充你的外延,最终达成比较全面的能力,所以一技之长是值得你长期信仰的。

名声很重要

第二阶段:独立做事。

独立做事也有几个层次:

  • 独立Coding:给你一个目标自己做完,不让别人给你擦屁股就可以了。
  • 独立带人:要注重提问的水平,帮助他演进他的想法。
  • 独立带团队:进入到这个阶段,要关注的更多,整个团队的氛围、工作效率,运用你一技之长的工程经验带领团队高效优质的产出成果,实现1+1>2。
  • 独立做业务:团队稳定之后,开始关注所做的业务,行业的发展,理解你的用户,他们是谁,他们在哪,他们为什么使用你的产品,为团队指引下一步的产研方向。
  • 独立生存:独立做事的最高水平,就是能带领一群人养活自己,独立生存下来。互联网的商业模型只有有限的那么几种,深谙其中的玩法,寻找擅长的合适的模型养活一群小伙伴,意味着一次更大的蜕变。

独立做事每个阶段,都是一次比较大的跨越,需要思想和多种软素质发生较大的变化,抛开技术人的身份不讲,独立做事的几个阶段,也是一个人逐渐成熟的过程。

前面讲到中年危机,在我看来,独立做事的最后一个阶段,独立生存,就是解决中年危机的终极答案。

第三阶段:拥有事业。

职业生涯最后一段,是拥有事业,在这个阶段,你已经有团队,能独立生存了,接下来需要寻找到一份团队使命。

我想去做一个最赚钱的直播,估计台下很多人觉得没有人愿意跟我去做的,但是如果我说我想做年轻人最爱看的直播,也许很多人心动,这就是使命感的力量。使命可以凝聚人才,使命背后还需要有完善的商业模式。阿里巴巴的企业使命是『让天下没有难做的生意』,他们始终坚守这个企业使命,一开始做了阿里巴巴,又做了淘宝,发现跟用户沟通又做了旺旺,后来发现交易需要解决付钱的问题,又做了支付宝,后来又有了物流,所有大的战略方向无不围绕着自己的企业使命。

你已经有团队,能独立生存了,接下来需要寻找到一份团队使命。

独立生存才是最难的

@awanglilong awanglilong added the question Further information is requested label Sep 3, 2020
@awanglilong awanglilong self-assigned this Sep 3, 2020
@awanglilong
Copy link
Owner Author

awanglilong commented Sep 3, 2020

技术在一个项目、一个公司的成败上往往并不占据关键位置。但垃圾的技术也会导致项目失败。

@awanglilong
Copy link
Owner Author

awanglilong commented Oct 23, 2020

根据我长期的观察,做开发技术的人按照其人生路线设计,可以分成几类。

第一类是把自己的命运寄托在一项事业上。 这样的人知道自己想干什么,而且有能力把技术当工具来实现自己的想法和事业。这里所说的事业是广义的,并不是说你非要自己开公司当老板,而是说你认可一件事情,比如促进人们交流和言论自由,带给大家更多娱乐,提升大众身心健康水平,增强国家国防实力,或者提升某个行业的信息化水平,然后你能够以技术为手段,在这个事情上做出成绩。这种人做着自己认为值得一生投入的事情,愿意领略这一追求带来的人生起伏并且无怨无悔,我认为这是做技术的最高层次。也是做人的最高层次.

第二类是把自己的命运寄托在组织和团队上。 这种人虽然不知道自己到底想干什么,但是技术水平出色,而且综合素质突出,勇于变化,能够把技术当敲门砖进入某个优秀的团队,以团队的目标为目标,依据团队的需求而转型或者坚持,跟团队一起干出一番成绩。这类人有令人羡慕的职业背景,在大公司里高薪厚禄,生活比较安定舒适,但是中年以后会经常自问到底做了什么自己想做的事情,为自己过于风平浪静的人生感到惆怅。但总的来说,这个层次也是比较高的。

第三种是把命运寄托在技术上。 这种人有能力成为技术的专家,然后就希望奇货可居,待价而沽,把技能当商品出售谋求富足人生。这种人没有大的人生目标,不想把自己的命运跟企业和组织绑定在一起,也不愿意做什么改变,只是满足于技术高手的层面,寄希望于其技术专长能够长期值钱,有点投机主义者的意思。

第四种是还处于出卖劳动力的阶段。 在这里就不多说了。

我想说的是,在过去很多年里,很多技术人实际上是把自己定位在第三种人里。而实际上,只有成为第一类和第二类人,才算达到了比较成功的状态。第三类人实际上最危险,因为技术的变迁不但是可能的,而且是一定的。他们要么马上被淘汰,要么追得老了累了追不动了以后被淘汰,被淘汰只是时间问题。 因此,如果你认为某个软件技术的兴起或者衰落对你个人的职业生涯构成了决定性的影响,那么你可能正走在错误的路线上,应当尽快改弦更张。

@awanglilong
Copy link
Owner Author

awanglilong commented Oct 23, 2020

对个体软件人来说,什么是核心竞争力?不是时间差,不是技术,不是基本功,不是什么思想,也不是聪明脑瓜,而是你独特的个性知识经验组合。

有人把某个技术、框架、平台研究得里外通透,以为这样就能奇货可居。实践中,这种人能红火一时,但很难超过5年。这是现阶段技术发展生命周期所决定的。此外,现在越来越多人意识到了,能够靠读书看文章读代码做练习学会的东西没什么门槛,智力正常的人只要愿意花功夫,都不难达到你的程度。有的人认为,自己有能力驾驭技术潮流,哪个红学哪个。我在技术行业里不敢说阅人无数,见过的高手上百是有的,说句不怕得罪人的话,能够连续抓住两个以上的潮流并且始终处于领先位置的人及其少见,一只手就数的过来。更常见的情况是,上一个阶段的成功会成为下一个阶段的障碍,所谓随机应变屹立潮头之说,往往只不过是当红小生给自己壮胆的狂言,时过境迁之后,他就只能听着新一代当红小生的豪言壮语而默默苦笑。

有人强调基本功,这是对的。在任何技术性行业里都一样,基础打得多深,上面就能造得多高。现实中,基本功扎实的人很少见,这跟中国教育的弊病有关,所以基本功好的人,一般应变能力强,学习速度快,比较受欢迎。但说基本功是核心竞争力,还是没有抓住本质。我们经常能看到基本功差不多的两个人,一个发展的很好,一个发展平平,这表明基本功成功职业生涯的是重要条件,但不是决定因素。

有人强调这个那个思想,实际上软件行业里的伟大的思想就那么屈指可数的几个,窗户纸一点就破,其他衍生出来的思想,就跟技术风潮一样,各领风骚三五年,成不了你核心竞争力。

还有人强调自己的智商,聪明脑瓜,觉得自己比别人聪明,自己的聪明是核心竞争力。大学生、刚毕业的人持这个观点的比较多,然而有过人生阅历以后,自然会对这种观点不以为然。本质上这是因为社会对于“聪明”的定义与学校不同,一个解题高手在学校里可能是受人仰慕的聪明脑瓜,但在职业人生中则可能是个大傻蛋。我们身边很多人走了一条不尽如意的人生道路,往往不是因为他们不够“聪明”,而是因为他们太“聪明”了,聪明反被聪明误。我想这也是为什么人们要发明“智慧”这个词以区别于“聪明”的原因。另外,关于这种观点,还有一点不得不指出,那就是在软件这个行当里,一般聪明就可以了,绝顶聪明占不到多少便宜。

那么核心竞争力是什么?我观察圈子里很多成功和不成功的技术人,提出一个观点,那就是个人的核心竞争力是是他独特的个性知识经验组合。这个行业里拥挤着上百万聪明人,彼此之间真正的不同在哪里?不在于你学的是什么技术,学得多深,IQ多少,而在于你身上有别人没有的独特的个性、背景、知识和经验的组合。如果这种组合,1,绝无仅有;2,在实践中有价值,3,具有可持续发展性,那你就具备核心竞争力。因此,当设计自己的发展路线时,应当最大限度地加强和发挥自己独特的组合,而不是寻求单项的超越。而构建自己独特组合的方式,主要是通过实践,其次是要有意识地构造。

行业,业务逻辑!!

@awanglilong awanglilong added 发展规划 and removed question Further information is requested labels Jan 22, 2021
@awanglilong
Copy link
Owner Author

能在什么领域,用什么方式,帮什么人,解决什么问题?

@awanglilong
Copy link
Owner Author

技术发展趋势

移动端变得轻量级化、跨平台。如Fluter。

前端将客户端化,变得更重量级。如React。

移动端和前端开发范式上会趋于统一。

后台开发微服务化,单体开发变得更简单。但是微服务治理与高并发会成为难点。

多年开发与一两年开发的主要区别,主要在工程问题(代码大全描述)和设计模式。

软件开发就是管理复杂度,模块发是管理复杂度的通用方法。

@awanglilong
Copy link
Owner Author

公司业务

一核两翼。基于城市操作系统的城市治理现代化(大数据分布式架构和大数据处理AI体系)。

AI加产业发展(城市公司产业发展)和现代生活服务业(类似智能社区、智能园区)。

App抓取数据为城市操作系统提供数据,并提供服务和赢利点(积分体系保证用户存留)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant