一、启蒙与选择
决定进入软件行业,从事程序员这份工作,始于大学的熏陶。当时的想法很简单,为了能够做出酷炫的东西,可以在同学面前炫技;也受学长大学四年经历的启示,在以后离开校园时,提前谋一条出路,学习一些技能,旱涝保收不怕饿死。炫技、谋生、未来主流,基于这三个原因构成了我最初学习技术的原动力。
学习的过程遇到了很多的问题,不知道从何入手、获取到的资料少、学习的方向不明确等,那个时候只要有机会和大佬面对面交谈和有人指导的机会都会百分百专注,希望不错过每一个对自己有帮助的东西,就希望天天粘着。
在这个艰难的学习期,有学长带了一学期,看视频自学了一学期,自己给别人培训了一学期,除此外就没有什么跟技术相关的活动了。而在不断摸索的过程中,学习能力也开始得到了锻炼,开始知道怎么查找资料,遇到问题怎么想办法解决,了解到的技术少,学习的方向就很单一,等到后面开始了解到越来越多的知识和技术时,反而有些纠结和迷茫,这么多的东西到底哪个才是自己主打的方向,不同的技术要了解什么,了解到什么程度都成了摆在自己面前的问题。这些也一直困扰着自己。
二、程序员职业对个人的塑造
1、规范性
程序员需要学习的东西比较多,面对的资料也多,如何整理这些资料文档,按照那种方式整理,是需要好好思考的,随便乱放是不行的,会影响你工作效率,也不利于工作经验的沉淀,所以,特别锻炼一个人文档整理的规范性,工作上的规范也一定程度影响你生活中做事的风格,是胡乱一丢还是分门别类。
2、细心
一个项目很多行代码,稍不注意一些小问题就会影响到整个项目,比如多打了一些东西,少打了一些东西,多删减了一些看似无用的东西,出补丁时少了一级路径,复制时少复制了一个字母等,各种各样小细节上引发的问题,就特别需要自己留心,多检查检查
3、学习能力
需要用到很多开发相关的软件工具,工具的学习,业务的理解,代码技术层面的学习,如何使用这些技术,遇到问题了查资料解决,看相关的专业书籍等,但是基于不同工作的性质,初期大踏步学习后,后期就开始平稳了,已有的东西足够应付工作上的事后,就容易求稳,所以保持持续学习力,除了工作迫使你学习,另外一点就是从内而外驱动,而从内部驱动往往是很难的,大多人更乐于被动学习,而一个有足够学习空间和成长空间的工作无疑是吸引人的,具备一定基础后,工作需要什么就学习什么这种学习能力是很强的竞争力。它代表了你的快速适应能力。
4、分析解决问题的能力
从一开始工作不知道做啥,到清晰整个工作流程和内容,同样地,编码过程遇到的问题,从不知道怎么下手解决到快速闭环,这中间体现了分析和解决问题的能力,从技术层面、架构设计层面、业务层面三个大方向出发,每一个方向里又有各种各样的技巧和思路。刨去广度意义上技术的多样性,每一项技术除了自身的一些设计特质和语言特质外,最终落实到处理问题上的,是你的分析和思考能力。
5、架构设计能力
这项能力体现了个人的技术栈,和宏观上对于技术的运用能力,能够从无到有的给出一个实现框架,然后剩余的人在这个框架下面做具体的填充工作,按部就班的走上几年,好的设计体现了扩展性,前人栽树后人乘凉,便于后来开发者开发维护。
6、抽象和逻辑思维能力
把一个复杂的东西通过表象发掘出其本质特性,就是抽象能力体现,抽象的层次越达到本质,扩展性就越强;逻辑思维就是把事情条理化展示出来。
以上,大致就是工作几年对于程序员这份职业带给我的思考,这些能力在不同阶段侧重都不同,比如架构能力,需要有长期的积累才能胜任,但是可以从当前开始有意识锻炼自己的技术选型,自己的宏观层面上的技术视野。
同样做程序员,做的情况也不同,从代码能力上分成3种,搬砖型、自主学习型、创造型。
大多数人刚开始是停留在搬砖阶段,做代码的搬运工,区别只在于熟练程度与经验,熟悉到一定程度了,成长也就逐渐停滞,除了工作内容外,本质上没有什么差别;能提升到自主学习型并持续精进的就少了,这个时候在熟练了代码搬运工作后,开始去思考项目代码的深度问题,并学习底层知识,增加个人技术厚度,开始能够理解项目的运行原理,能开始做一点创造性的代码工作;创造型,工作内容富有挑战性创新能力要求高,脑力劳动也更高,但与之带来的成就感更多,工作已不仅是工作,更多是精神层面上的追求。
三、程序员职业发展路径
1、走技术路线
在技术这条道上走到黑,属于匠人一类,跟其他传统制造行业的匠人是差不多的,这种属于知识型匠人,一辈子做一件事,到最后成为了万中无一的人。但是也有风险,如果不能保持时刻学习跟进的能力,那么随年龄增大,面对更多年轻人的竞争,被淘汰的可能也会变大。
2、走技术管理路线
有了一定技术积累后,转管理,技术相对不那么重要了,更多的学习管理一个项目一个团队,甚至一个公司。主要职责从过去的做好自己,到让他人变好,需要明白技术对于管理者的作用是啥,知人善用,确定未来技术方向很重要。越往后越靠软技能吃饭,越来越多的思考行业和技术的发展趋势,这种通用性的能力到哪里都不怕。
3、复合式发展
有过一段技术的经历,然后转到其他行业发展,复合式发展路线。技术从业经历让你有一定对技术的认知,受其熏陶,一定会影响你的一些习惯,这是工作本身的特点对人的影响。然后做产品,做销售,做运营等,这份经历可以给你的新工作加分。复合式发展路线,对一个人综合能力的锻炼挺多,这就需要你也要关注除技术以外的东西。
对于个人职业发展的思考,目前就想到这么多,后面还需要多留意相关的信息,积极思考与准备。
(欢迎关注我的公众号“海边的奔跑”,与您分享篮球、技术与生活!)