打一手好酱油的gravatar头像
打一手好酱油 2016-04-26 17:38:36
程序员的技术学习经验分享

很多同学都参加工作了,有的很有上进心,买了很多书来学习,但是没有清晰的学习方向,花费了大量时间却又收益不大。今天,主要讲下程序员的技术学习路线,在新手阶段应该学习些什么东西。

1、不要舍近求远

作为程序员,大多数时间都是在维护项目,也总是在抱怨公司项目太烂。但是,要知道,你认为这个很烂的项目是有客户为它买单的,也许正是这样的一个烂项目公司才能维持下去,才有钱给你发工资。要知道,无论是在大公司还是小公司,没有完美的项目,任何一个项目都存在大量的bug,都有很多的垃圾代码难以维护。因此,对于任何项目,不要带着偏见的眼光去看。就像每个项目都存在问题一样,每个项目也都有它优秀的地方。你应该去学习它的架构中好的设计,对于你认为烂的地方去思考如何重构改进才能使这个项目更加完善。

软件开发没有万能的架构,需求不同架构就会不同,只有在需求之上才能开发出优秀的架构。如果你想通过自己凭空想象的需求设计出一个优秀的架构,最终你极有可能会徒劳无功,当然汽车的发明、iPhone的设计除外的,但我们远没有乔布斯的水平,老老实实从头做起吧。像你公司的项目都是建立在真实的需求基础上的,这个项目就是你很好的一个学习案例,来培养自己架构设计的思想。

在我做开发时,面对像这样的烂项目时,我都会饶有兴趣的去研究:这样的一个烂架构是怎么保证用户能正常使用的呢?而我也总能发现这里面的一些巧妙设计。对于糟糕的地方,我会思考怎样设计会更好些,接下来就动手做一个我认为更好一些的架构。不要去抱怨,你就能发现值得学习的地方,也总能学到更多东西。

2、学习花架子不如多练练内功

现在流行的框架越来越多,同行之间聊天总爱谈各种框架,自己用的不是主流框架就会觉得低人一等。于是,花费大量的时间学习各种框架,最后却总有一种不得要领的感觉。主要原因,一是因为框架脱离实际业务,做的东西只能是个花架子;二是缺少内功的修炼,学了理解不了,知其然却不知其所以然。因此,不能太过偏重招式,而要多做内功的修炼。内功修炼都学习哪些东西呢?

首先是语言的基础,不仅要熟练掌握语法,还要了解语言的特性。作为程序员最少要熟练掌握两门语言,而对于Java程序员,首选就是Java和JavaScript这两门语言。一个静态的高级语言,一个动态的脚本语言,语法又很类似,很多地方可以互相对比,深入理解语言的特性。其他语言也可以了解一下,这样对语言的理解都是很有帮助的。语言的学习推荐《Thinking in Java》这本书,作为一本入门书籍,不要指望看上一年半载的,对自己狠一点,哪怕枯燥,硬着头皮一个月看完。这个时间已经很长了,自己想要学习就不能怕辛苦。

有人说初学者学习设计模式没用,等有了一定架构经验再学习更好。但是,以我的学习经验,即使是初学者,学习设计模式也可以帮助你更好的理解面向对象思想,并且可以为架构设计打下一定的基础。设计模式我看过几遍,每次看都感觉自己对面向对象、接口、架构有了更深层次的理解。总之,设计模式对编程是极有帮助的。学习设计模式推荐《深入浅出设计模式》。

数据结构也是锻炼内功极好的秘籍。学习数据结构,不仅可以对语言有更深的理解,还能提升你的逻辑能力,并且,可以打下一些算法的基础。数据结构的书看过很多本,严蔚敏的《数据结构》写的很好,不过都是伪码看起来也许比较吃力,找一本《Java与数据结构》看就完全可以。

内功的修炼要循序渐进,逐层递进,否则会容易走火入魔。更高深的内功修炼可以学习算法,但有两个前提条件,一是前面的内容学习很轻松,不太吃力,二是具备一定高数知识。如果有任何一个条件不满足,可以跳过算法不学。现在的编程语言做了大量的封装,已经极大的弱化了算法的地位,即使你不掌握那些算法也不影响你成为一名优秀的程序员。学习算法的话,一本书就足够了,那就是《算法导论》。并且,一定要结合网易公开课(open.163.com)上麻省理工大学的算法导论课程学习。我第一次只是看书感觉没太多收获,工作几年忘得也差不多了。后来,跟着视频再去学习才发现这本书实在是精彩绝伦。


打赏
最近浏览
水光浮藻  LV6 2021年4月26日
时至秋雨  LV6 2017年12月12日
hhmm924613  LV4 2017年11月9日
daijingming66  LV1 2017年5月22日
zhangyao_ping  LV2 2017年2月22日
灬六道魔君灬  LV2 2017年1月11日
zjp666888  LV2 2016年12月26日
springlala  LV2 2016年12月8日
NopeHzau1  LV1 2016年12月7日
li6540123  LV2 2016年11月30日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友