菜鸟成长之路

在这里插入图片描述

作为一个刚进入编程开发这个行业的新人,总会有一段较长的迷茫期,遇到资深的前辈,总会问“工作的时候有没有什么窍门”、“怎样才可以快速成为高手”等这样或那样的问题,当然,每个人都会经历一段什么都不太懂的迷茫期,下面,一线互联网企业高级架构师、技术畅销书《亿级流量网站架构核心技术》作者张开涛老师,就跟大家谈谈如何从菜鸟到大牛:视频来自-享学课堂

张老师在视频中讲到两个重点:体系化和重复。

对于体系化的构建以及重复性的学习我认为可以从以下几点着手:
一、学会学习

学习无疑是程序员最为重要的素质之一,尤其是互联网这种日新月异的行业,把学习当做工作的一大半也不为过。

1.1、学会自主学习

有一个现象很明显,我们大多数人并不是不想学习,而是经常会纠结于“我不知道学什么好”,总认为简单的没挑战,复杂的看不懂,旧技术怕过时,新技术没方向……

实际上,学习的方向可以分为三大类:

(1)为了工作,满足当前工作所必备的知识

(2)为了提升,与当前工作相关的知识(深度)

(3)拓展视野,与当前工作无关的知识(广度)

刚步入职场的新人,我们要学习(1),先做好自己本身的工作,熟悉工作技能;当工作稳定之后,我们就要通过学习(2)、(3)来提升自己的整体知识,伴随着知识储备的提升,接触新事物时更容易找到相似的知识加以类比,加快理解,也更容易掌握本质。如果每天都在纠结“到底学什么”,那么只能说明还是学的太少了。所以,如果觉着没什么东西可以学的时候,那么可以考虑一下学一下更有深度的知识(JVM虚拟机,多线程高并发),或者完全不同的知识(新的语言或当前比较火的方向),甚至完全不相干的知识(单纯练习英文阅读,学习ppt排版之类)吧。随着知识储备增加,自己的不足和未来的学习的方向也会更加明确起来。

1.2、向历史学习

相比于思考“现在怎么样”,不如关注“它是怎么变成今天这样”,任何时候,用发展的眼光看待问题,了解过去的经验教训,收获会比简单学会一个技能更大。

(1)公司内部的资料库、wiki等大都会有旧时的资料,刚入职时大多不会太忙,这些资料库简直是挖不完的宝藏

(2)部门内部分享

(3)多问一下自己“它为什么不那么设计”

(4)多听老员工的忆苦思甜

1.3、向他人学习

学习他人的思维方式,而不是某个具体的知识点,特别是像技术大牛学习,除了他们的口头禅,还有他们特定处事原则和思维方式,会让你收获匪浅。

二、多做有意义的事

有的人每天时间浪费在跟问题本身无关的事情上,比如我要设计架构的时候还要考虑架构图怎么画,写完代码还要反复部署测试好几轮才pass,查bug的时候把时间浪费在扫日志上。人的精力总是有限的,把时间浪费在这些事情上面,让自己提高的时间就变得少了。

2.1、重复的练习

做有意义的事不代表只做自己不懂的事,很多人连基础都没做好,就开始想学高级的知识了,这是不对的。

作为程序员,写代码是基本功中的基本功,编码的规范、设计的权衡、甚至顺手的IDE快捷键都要靠平日的试错和积累,很难通过几本书或者几天培训领悟到。所以,要多练习写代码,每天都要写,养成好习惯。

2.2、善用工具

工具能解决的事情就用工具去解决,好的工具能节约大把的时间用在更有意义的事情上。

工具的范畴很广,比如linux的各种命令、比如团队内部的各种系统、比如顺手的应用。只要能节约时间、提高效率,那就值得一试。

在这里我列举几个大幅度提升了我的效率的东西:

(1)双屏显示器

(2)顺手的键盘

(3)google(不是baidu!不是bing!)

(4)mac

(5)mac上的应用:idea、v*n、charles等。

2.3、提高时间的利用率

时间就是金钱,所以,要将碎片化的时间整合起来,提高时间的利用效率。

程序员的加班是常态,但是这个加班如果不能对个人进步产生足够多的收益。如果加班只是用来处理无意义的工作的话,那应该是日常工作出了什么问题。

三、学会思考

3.1、遇到问题要深究

当遇到问题暂时无法解决时,我们经常会有拖延和逃避问题的习惯,事实上我们应当克服畏难心理,正确的做法应该是:

(1)遇事多想为什么,并且要反复问为什么。很多貌似理解了的问题过一阵再重新想想,往往会发现之前还有没考虑到的地方

(2)问题要有明确答案,哲学之类的就别纠结了

(3)查找资料时选权威的书籍或者网站,避免被误导

(4)找人讨论,或者直接拉小伙伴入伙,既可以互相交流,又可以互相监督

(5)分享你的成果

(6)不要所有事情全都深究,会给自己太多压力

3.2、多说多写多交流

作为程序员,可能会比较宅,所以,日常工作中,我们应该做到以下几点:

(1)隔一段时间最好能书面形式总结一下最近的工作,比如说写个心得感悟,或者持续更新自己的简历

(2)写作的时候有两个难点:对要说明的事情做总结和抽象,形成观点统一、调理清晰的主线;从对方的视角考虑,把事情说明白,避免自言自语。

(3)找人讨论之前自己先要有个基本完整的思路,否则大部分的时间都要耗在解释原理之类的上网查反而更快的事情上。

(4)讨论之后要有一句话就能说明白的结论和描述清晰的时间点。

(5)有些人喜欢纠结于“这个不是我的问题,为什么要我处理”之类的事情。在我看来这是很好的机会。既能增长见识,又能展示水平,还能留个认真负责的好名声,何乐而不为呢。