From programmer to project manager (5): learning points that not everyone understands

From programmer to project manager (5): learning points that not everyone understands

Learning is a fundamental ability. However, "My life has a limit, and my knowledge has no limit." If you don't pay attention to the method of learning, you will "follow the limit with the limit, and you will be at risk".

one. Learning is also an ability

Seeing this title, some people will say: "Learning, who can't?" Indeed, learning is just like eating and sleeping. It is a human instinct, and everyone has the ability to learn. When we were just born, we didn't know anything, it was a real blank piece of paper. We learned to walk, talk, and dress by relying on the instinct of learning... Later, when we went to school, the teacher took the knowledge from the book one by one. Instilled in our brains, we have more and more knowledge, but at the same time, our learning ability seems to be getting worse and worse, we are used to being fed by others, and seem to have forgotten how to feed ourselves.

Learning was originally just an instinct, not a kind of ability. However, after more than 20 years of continuous learning, learning has become a real ability, because we gradually lose it, it is even more precious.

In school, we basically learn passively, but after walking out of the ivory tower, no one will be responsible for you, no one will take the initiative to teach you, we need active learning. The so-called learning ability is actually the ability to learn independently.

A few years ago, there was a book that swept the management world called "The Fifth Discipline". This book advocated the establishment of a learning organization, because in the long run, the only sustainable competitive excellence of an organization is to be more competitive than its competitors. Faster and better learning ability.

A company is like this, so why not a person? As we all know, now is an era of knowledge explosion, knowledge update is very fast. It is said that the knowledge learned by a college graduate is only effective within 2 years after graduation, and the remaining 5%, not to mention our school and social needs are seriously derailed. What we depend on is not how much knowledge we have now, but how strong our ability to learn!

Learning is not only an ability, but also a crucial ability, and the core of this ability is the method and mentality of learning.

two. Buying books is the best investment

The ancients said: "Books have their own golden houses, and books have their own beauty like jade." This shows that the sages have long recognized that buying books is the most cost-effective investment.

When I first debuted, with a very meager salary, I once complained to my supervisor: "Books are so expensive now, and I can't even afford a meal with this salary, let alone buying books!" Said: "Don't be stingy with the money to buy books, you'd rather endure not eating, and don't endure not buying books, because buying books is the investment with the highest rate of return."

The supervisor's words shocked me. Later, when I saw a book I liked, did I ever soften my hand again? I continue to learn, the development ability has also been continuously improved, and the salary level has also been greatly improved. A year later, the increase in my salary for one month will be enough to buy two years of books. You say, is there a better investment than this?

A book, even if only one page is useful, will have a potential value that far exceeds the price of the book itself. Of course, there are not many books, and being able to digest a good book in a down-to-earth manner may be much more valuable than reading 10 ordinary books in general.

three. Read more classic books

Ten years ago, when I first entered the IT industry, I was really thirsty for knowledge. I had to go to the book buying center every week. Unfortunately, there were not as many books for programmers as there are now, and there were fewer high-quality books. . At that time, the more classic books I remembered were "Windows Programming", "The Essence of COM", "Java Programming Ideas", and Tan Haoqiang's "C Language Programming". Others that fill the bookshelf are books like "Mastering XXX in 21 Days", "XXX From Beginner to Mastering", and "XX Collection".

Looking back on the past, one of the things that made me more depressed was that when I was most motivated to study, I read too few high-quality books. It was like eating unnutritious instant noodles every day when I was growing up. Of course, this also has a lot to do with the lack of guidance. Learning alone has made me take a lot of detours.

Software development books, I roughly divide them into three categories:

(1) Simple introductory books.

The titles of such books are often "Mastering XXX in XX Days", "From Beginner to Mastering XXX", "XX Development Practice", etc. These books often start from the installation of software, and like to translate help files. It's not fair to criticize these types of books as bad and worthless. At least I myself have learned something from these books. Even in the 21-day series, there are people who are suitable for reading. However, it can only be read for 21 days. After that, it can be thrown into the garbage. This type of book is only suitable for beginners who have not yet started, and learn some introductory moves from it. This kind of book is generally enough to buy a copy when you are just starting out. If you are good at using search engines, this book can also be saved.

(2) Practical books written by experts at home and abroad.

这类书实战性很强,把技术及原理讲得很透彻。比如《windows环境下32位汇编语言程序设计》、《深入解析MFC》、《Delphi深度探索》、《深入浅出WPF》、《深入剖析Asp.net组件设计》等。以前这类书都是从国外翻译或从台湾引进,现在国内高手越来越多,出自国内作者的也越来越多。这类书如果在你学习的每个方向看个两三本,并且通过实践消化掉,那么毫无疑问,你会成为一个优秀的程序员。

(3)国外大牛写的、揭露本质、有丰富思想的书。

这类书就是所谓的经典书了,例如《代码大全》、《编程珠玑》、《设计模式》、《重构》、《代码整洁之道》等。经典书就像一个有深度、有思想的朋友,他会给你启发、每次阅读都会有新的收获,这类书具有真正的收藏价值。看经典书永远是正确的选择,它绝不会浪费你的时间,因为经典书是无数人沙里淘金、帮你挑选过的结果。

然而,阅读这类书并不是一件容易的事情,读者需要有丰富的开发经验,才能与作者产生共鸣。真正能消化经典书的人其实不多,这就好像饮酒,一个新手无论如何也品不出葡萄美酒的醇香。在酒桌上,人人都把杯中酒一饮而尽,当有人点评“这个酒不错”的时候,我只能无奈的苦笑一番,真的是甘苦自知。

如果一本经典书你看得很辛苦,很有可能就是因为你功力未够,这种情况下不要着急,慢点来,不妨先将其先束之高阁,多看看第二类实战型书籍,过一段时间再回头来看,也许你会有新的惊喜。

 

四.不要在上班时间看书

一个善于学习的人,首先要善于利用一切时间来学习。不知是伟大的雷锋叔叔还是鲁迅爷爷曾经说过:“时间就像海绵里的水,只要愿挤,总还是有的。”然而,当我们从上班时间中挤时间学习时,就千万要注意了,不要在上班时间看书!

上班时间看书不但是一件很敏感的事情,而且非常吸引眼球,很快就会引起周遭的不爽。首先老板心里不爽,他想:“我给你钱是让你来工作的,不是来学习的!”;其次同事们也不爽:“我们工作都做不完,瞧,这小子真闲哪!”用不了多久,你就会成为被众人排斥的异类。

当然,你可能会说,“我工作已经做完了,经理没有安排,当然可以学习了”,其实不然。你完成了一件事情,不等于所有的事情都完成了。一个优秀的员工,应该是主动要工作,而不是被动的等工作。工作完成以后,你至少还可以:

(1)主动汇报给你的经理,请他来检查你的成果,并安排新的任务;

(2)如果公司这一段时间确实比较闲,没有什么具体的任务,可以进行代码重构、优化;

(3)你还可以主动请缨,承担额外的工作或更艰巨的任务。

(4)如果一定要学习,也只能对着电脑屏幕来学习,纸质书最多只能拿来翻阅一下,而不能一直捧着,以免影响到其他人的情绪。

五、只学习与工作相关的东西

我曾发现不少程序员在学习方面找不到方向,一会学学C#,一会学学Java,看了最新的编程语言排行榜,又觉得该学C++。这样左抓抓,右挠挠,只会让你觉得更痒。

学习最忌三心二意。俗话说:“伤其十指不如断其一指”,每门都学一点,还不如专心学好一个方向。这个道理谁都懂,可是又该学哪个方向呢?难道只能跟着感觉走吗?

不!最实际的方向,应该跟着工作走,工作需要什么,我们就学什么,把工作需要的技能熟练掌握。我们为什么要学习和工作弱相关的东西呢?是为了转行或跳槽吗?可是,如果我们连现在本职工作都不能做好,又怎么能保证到新的岗位、用新学的技能就可以做得更好呢?

学习与工作需要的的东西,有很多好处:

首先,可以集中精力,在某一方面钻研得更加深入。所谓“百招会不如一招绝”,有了绝招,你还怕不能在“武林”立足吗?《天龙八部》中的慕容复武功博学无比,最后还不是被只会一招六脉神剑的段誉打得落花流水?

其次,可以学得更快、更深入,因为学习更具有针对性,而且可以立即在工作中运用,可以马上检验出学习的效果,对存在的问题可以进行深入的研究,因此掌握的知识也会更加的牢固。

第三,学习与工作结合在一起,工作时间也就成了学习时间,这样突破了三个8小时的限制。有人说,我们每天所有拥有的时间可以分为三个8小时,工作8小时,睡觉8小时,另外还有8小时自己可以自由支配的时间。工作和睡觉的两个8小时大家都一样,决定人生高度的是另外这个8小时。当我们把学习的焦点放到与工作相关的知识上时,工作时间中的很大一部分,同时也就成了宝贵的学习时间,这真是一举两得的美事啊。

六.织网式的学习

知识的广度和深度都很重要。作为一个程序员,深入把握技术细节,是写出优质代码的保证。但对于一个项目经理而言,知识的广度更显重要。项目中碰到的问题往往是综合性的,只有具有广博的知识,才能快速的对问题进行分析和定位。在程序员通往项目经理的道路上,我们必须有意识的扩大自己的知识面,形成更完善的知识体系。

每个人的知识体系就好比是一张网,我们学习其实就是要织这样一张网。 我曾看过渔网的编织过程,渔网虽大,也是一个结点起步,一个点一个点的编出来的,编织的过程中,始终只有一根主线。

学习又何尝不是这样,知识体系的大网也是由许多小的结点组成,要结这样一张网,只能由一个点起步。牵住一条主线,织出一个个的点,由点带出面,最后才能形成这张大网。

我曾经编写过一个网络信息采集软件,这个软件可以从具有列表页网站中按字段设置采集信息,支持自定义字段、页面多级关联、下载附件、支持多种数据库、可视化定义等特性。刚开始时,觉得这个软件也是一个比较大的功能点而已,后来发现这个不起眼的功能关联着大量的知识点,在开发过程中, 我顺藤摸瓜,各个击破,对很多知识点进行了细致的学习研究,软件开发完成后,个人的知识体系网也进一步得到了补充和完善。

 

图1 由知识点形成知识网

 

七.问题是最好的学习机会

日本经营之神松下幸之助曾经说过:“工作就是不断发现问题、分析问题、最终解决问题的一个过程,晋升之门将永远为那些随时解决问题的人敞开着。”可见,工作过程中有问题是正常,没有问题那才是真正的问题。在发生问题能时,能勇于面对问题、解决问题的人,才是公司真正的核心骨干。

现实中,很多人总是千方百计回避问题,当上司安排一项艰巨的任务时,也是想尽办法推托。殊不知,对于个人而言,其实问题是最好的学习机会。往往那些愿意接受困难工作的人,能力会变得越来越强,那就是因为他们在克服困难的过程中取得了巨大的进步。 

有一次,一位项目经理对我说:“有一个问题,客户有一台HP服务器要装磁盘阵列,没人会做,怎么办啊?”

“可以学啊,没有人愿意去吗?”

“我都问了,没人想去。”

“哦,正好明天我有时间,我也没装过磁盘阵列,那我明天去学着弄一下。”我说的是真心话。

第二天早上,当我准备出发时,项目经理告诉我不用我去了,因为项目组好几个同事都想去“学着弄一下”。

结果服务器很快就装好了,远远没有之前大家想像的那么困难嘛。更重要的是,在解决这个问题的过程中,大家都学会了怎么装磁盘阵列。

碰到困难时,迎难而上吧,千万不要拒绝这个最好的学习机会!

八.经常思考总结

子曰:“学而不思则罔”。只学习不思考,就会迷惑,难以把握事情的本质。这就好比一个学武之人,只习得其形,而未得其神,难以成为真正的高手。

一个程序员从入门,到成为高手的过程中,往往要经过几次顿悟。顿悟会让你跳出知识的丛林,一切豁然开朗,仿佛打通了全身的奇经八脉一般奇妙。记得我有一次,顿悟到了一个很简单的结论:“原来高级编程语言中的类库是封装了Windows API来实现的。”后来碰到一些自带类库无法实现的功能时,我就会想到,其实可以通过调用Windows API来实现。利用这个思路,我解决了一些看起来很难的问题,得到老板的赏识,从而很快获得提升。

顿悟非常可贵,然而它不是随便发生的,而是经过一次次苦苦思索之后、灵光闪现的结果。思考的过程,其实就是将外在的知识内化为自己的知识的过程,而顿悟,则是批量的实现这种内化,将无数个知识点连接在一起,达到融会贯通的境界。

九、克服“高原现象”

爱学习的人都会有这样的经历,学习持续了一段时间之后,往往会有一个瓶颈期,长时间似乎很久没有什么进步,于是内心非常着急。

这种情况实际上这是由人的学习规律决定的一种“高原现象”。据研究,学习者在刚开始进步快,随后有一个明显的或长或短的进步停顿期,后期进步慢,中间的停顿期叫高原期。

图2 技能学习练习曲线

在我看来,高原期实质是一个消化期,由于前期的学习积累了太多的知识点,这些知识点在大脑中乱作一团,还没有形成一个知识体系。这时需要一定的时间来消化它,将它融会贯通,经常思考总结可以快速帮你跨过高原期。

在处于高原期的时候,还可以换一个相关的方向来学习,例如编程语言学不下去了,你可以学习一下设计模式,设计模式也学不下去了,再换成数据库。通过学习这些相关的知识,不但补齐了知识体系中的短板,而且各个知识点之间可以互相启发,帮助你实现顿悟,跨过高原期。

十、学习要有好心态

(1)学习要静心

急于求成是学习过程中普遍存在的一种心态。这可以理解,毕竟作为一个程序员,要学的东西实在太多了,而社会又是那样的浮躁,让人觉得一切都是那样的不安全、不确定,似乎只有学得快一点,才能跟上社会的脚步。

可是“欲速则不达”,想快快的学,往往会形成东一榔头、西一棒槌的学习方式,每一个点都没有吃透。心沉不下去,知识也会沉不下去。要想成为真正的高手,只能静下心来,一步一个脚印的攀登。

(2)学习是一个持续一生的过程

人生的过程,就是一个自我完善过程。

孔子曾经说:“吾十有五而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲,不逾矩。”可见孔子也不是天生的圣人,也在不停的学习、进步,从“志于学”到最后“从心所欲,不逾矩”,孔子一共花了55年的时间。

作为一个程序员,更是需要不断更新自己的知识。我们所知道的东西,就像一个白色的圆圈,圈外则是黑暗的未知的世界。当圆圈越大,所接触到的黑暗部分就越多。我们只有不停的学习,打破更多的黑暗,找到更多光明。

(3)保持饥饿,保持愚蠢

看了《乔布斯传》之后,我最喜欢的一句话是“求知若饥,虚心若愚”(Stay Hungry,Stay Foolish),其实我更喜欢它更原生态的翻译“保持饥饿,保持愚蠢”。我们只有认识到自己还很饥饿和愚蠢,才会像没吃饱一样,由衷的需要学习、爱上学习。

当然,知易行难,知行合一才是学习的最高境界。我也始终是一个学习者,一直在路上。

 

http://developer.51cto.com/art/201211/364725.htm

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326478783&siteId=291194637