程序员从幼稚到成熟的过程
Posted 四猿外
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员从幼稚到成熟的过程相关的知识,希望对你有一定的参考价值。
我个人认为,从幼稚到成熟很重要的一方面就是:思维方式
为什么是思维方式?下面说两个我自己的成长过程。
1.
我毕业后第一家小公司只有几个程序员,在小公司干了两年多后,我进入一家几千人的公司,某信。那是我第一次进大公司,非常期待和兴奋。
入职后分给我的第一个任务就是,开发一个简单的用户管理功能,这是给浙江移动做的系统中的一个功能。
本来,我以为只需要收到需求后直接埋头开发即可。没想到不断地有业务人员找过来,对这个简单的功能指手画脚,导致我必须和这些“热心参与”的同事们没完没了的开会商讨需求。
从小公司初来乍到的我哪经历过这些?
我根本对这种情况应接不暇,开会经常扯皮到晚上八九点,头都晕了,再想去开发,根本毫无状态。
我彻底陷入了慌乱的状态,我很担心由于完不成任务被开除。
同时,也非常迷茫,如果开发工作都是以扯皮为主,那我做这种工作有什么意义呢?我难道要一辈子陷入到这些无休止的扯皮当中吗?
最终,我的开发还是被耽误了。用户管理功能没开发出来不说,代码写的还非常混乱。
我被领导狠狠的批评了一顿。
这次批评让我有了辞职的念头,我去找了我们领导谈了离职的事情。
他很诧异,和我说,这个简单的功能他认为我能开发出来的(他面试的我,所以对我的水平很清楚),但是没想到我干的一塌糊涂。
我当时想,反正也要离职了,就把心里的想法一五一十的告知了领导。现在想来,我依然非常感激那个领导,没有他,我很可能无法继续我的 IT 生涯。
我和他的对话到现在都历历在目。当时,他听了我的想法,没有怎么说话,思考了片刻。
“你知道你的问题在哪里吗?”
“不知道,我很努力的在做了,也问了周边的同事。难道还有更好的办法吗?”,我很诚恳的请教道。
“需求永远都是无限的,而且大部分公司都是以业务为导向,所以,他们的话语权是很大的。而你能让自己不陷入这类需求旋涡的唯一办法就是去看每个提需求的人他们的目的是什么。你要明白,重要的不是需求人员说了什么,重要的是他们为什么这么说。”
这一番话瞬间让我醍醐灌顶般的清醒过来,我突然知道我后面该怎么做了。我有点迫不及待的想把领导告诉我的这种方式去实践一遍了。
当天,我撤回了我的离职决定。
以后再和业务沟通的时候,我都会去想想对方为什么这样提需求,这个需求到底紧不紧急。然后根据需求的重要性和紧急程度再去和各需求人员协调出更合适的开发时间。
而对于那种无谓的来回变动,我则是果断地进行了拒绝,并给出了我的理由以及当前的情况说明。
这一切都让我的工作逐渐变得可控起来。
就在当年,我收获了最佳新员工奖。
你们看,仅仅做了一点思维方式的改变,我的进步是如此巨大。可惜的是,由于当时我的见识有限,并不知道这是思维方式带来的巨大进步,只是单纯的认为是领导的一句话震醒了我。
而真正意识到是思维方式的提升才带动了我的进步,还需要等到几年后我更深刻的感知到思维方式这个东西的存在。
2.
时间轮转,又过了一段时间,由于我在工作中出现问题少,和业务人员们沟通也最顺畅,所以同事们对我的评价都很不错。也由此,领导开始让我独当一面,一些小项目开始逐渐全部交由我设计与管理。
这个时候的我对新技术的好奇心极其强烈。很多时候在工作中用的开源组件包,总是要把源码下载下来仔细琢磨。
但是,中间出现了两个问题:
- 首先,看源码我总是印象不深,东一片西一片,今天看明白了,明天就忘记了。
- 其次,由于源码很复杂,经常读着读着,我就陷入混乱当中,不知道该如何进行下去了。
因此很多组件的了解都是半吊子,其实根本没有学到什么东西。
这实在让我不甘心,因为我当时的技术提升遇到了瓶颈,急需要能吸取一些新鲜的技术和思想,而代码是除了技术书籍外的另外一种重要途径。
更重要的是,看懂了工作中需要的组件代码,对于以后的问题追踪和解决更是紧要无比。
但是,看代码如此之难,让我根本没办法按照设想进行下去。
当时,就到处到网上去 Google 别人怎么看源码的,相关文章很多,但是对我的帮助都不是很大。
某一天,我照常的去 Google,意外地在国外一个犄角旮旯里,发现了这么一段话:
“系统的关键是反馈。看问题要系统的看,要看到联系,联系的本质就是反馈。”
我的直觉告诉我,这其实就是我需要的。但是还不够。我又以这段话为线索,继续追踪,最终,我发现了“系统思维”这种东西的存在。
系统思维对我的帮助在于,我知道了看源码首先要把要看的组件视为一个系统。
要理解这套系统的办法不是先一头扎进去成为一只挠头苍蝇,而是应该先对系统加以分解,将系统分解成组件后,再去关注组件之间的联系,并把它们通过系统循环图给画下来。
以下是我曾经用系统思维分析 Redis 源码的一幅系统循环图:
根据画出来的系统循环图,我可以做到有的放矢的去深入观看某些代码,并不会产生混乱。同时,我对这些组件的架构,分层,联系做到了心中有数,对这些组件的思想也有了比较透彻的了解。
总的来说,系统思维对我帮助十分巨大,具体表现在以下三个方面:
- 我能快速的理解新技术了
- 我能快速的分析出问题的原因了
- 我能把自己的观点系统化的输出了
这时候,我才真正的理解到了思维方式对我职业生涯的巨大帮助。
在以后的职业生涯里,我遇到难题,经常会主动去搜寻一些思维方式,并也因此得到了巨大的回报。
我们看到的世界并不是现实的世界,而是我们想像中的世界。你在任何情景中的所见在很大程度上取决于你脑中固有的东西。
我们的心智模式塑造了我们生活中所见到的机遇和威胁。
所以,一直到现在,我都始终在孜孜不倦地更新自己的各种思维方式,让自己变得更加成熟。
以上是关于程序员从幼稚到成熟的过程的主要内容,如果未能解决你的问题,请参考以下文章