如何从菜鸟程序员变成高手

最近有一些毕业不久的同事问我:“你工做的时候有没有什么窍门?怎么才能快速成为高手?”前端

 

想起当初刚入职,新人培训的时候,也跟其余同事讨论过这个问题:如何才能成为业界大牛?当时本身只是以为兴趣是最好的老师,思路方法什么的没有多想。linux

 

加入微博平台架构部的时间也不短了,趁着快过春节总结了一下本身入职微博以来的工做状况,从互联网开发的半个门外汉,到现在能设计一些架构、排查一些问题、分享一些经验,收获颇多,感想颇多,也逐渐意识到思路和方法的重要性,在此跟你们分享一下。主要分为学、作、想三方面。程序员

 

2.学会学习sql

 

学习无疑是程序员最为重要的素质之一,尤为是互联网这种突飞猛进的行业,把学习当作工做的一大半也不为过。编程

 

2.1.自主学习设计模式

 

最近发现身边的人并非不想学习,只是天天都在纠结本身到底学什么好:简单的没挑战,复杂的看不懂;旧技术怕过期,新技术没方向……服务器

 

讲讲本身毕业后的经历,毕业以后去了个不大不小的公司,工做主要是作一些XX管理系统之类的东西,没什么挑战,也用不上什么技术,基本上前端用个extjs后面套个sql server就解决了。工做稳定了几年,业余时间除了wow没别的事情作,以为这么闲下去不是办法,因而以后一年的时间里,用上班摸鱼和下班休息的时间学了这些东西:网络

 

闲着无聊想作个小游戏,发现游戏相关的书大可能是英文的,看不懂,一咬牙翻译了《Real-time rending 3rd》的前几章,刚开始前言都看不懂,只能一个词一个词的翻字典,一句话要琢磨几个钟头到底做者说的究竟是什么意思。翻译了几百页英文书以后,发现本身看英文书没什么障碍了,因而开始天天用休息和摸鱼的时间看书。 看完游戏引擎的书以后,把irrlicht引擎的代码看了一遍,而后本身山寨了一个3d渲染的场景管理器,还有个朴素的渲染引擎。 给本身的游戏引擎写了个基于脚本语言的解释器,为此看了很多编译原理和虚拟机的书,了解了程序到底是什么东西,这是我以为收益很大的一件事情。 看编译原理的书的时候发现操做系统的知识有些欠缺,又去看了linux内核相关的书。以后买了个开发板每天修改内核玩,毕业之后又一次了解了内核的cpu调度、内存管理和文件系统,了解了应用是怎么跑在操做系统上,操做系统又是怎么运行在硬件上的,这也是收益很大的一件事情。 看完操做系统又顺着看网络相关的书,以后把lighthttpd的代码看了一遍,用c写了个linux下的http服务器,把几种网络编程模型挨个实现了一遍。 实现http服务器的过程当中以为本身编码能力仍是有欠缺,把代码大全翻了一遍,顺着又去看了设计模式的书,而且用本身的理解把每一个模式用文字从新描述了一遍。 中间还看了不少语言和框架相关的书,就不一一列举了。能够参考这里。 我把学习的方向分为三类:架构

 

为了工做,知足当前工做所必备的知识 为了提高,与当前工做相关的知识(深度) 拓展视野,与当前工做无关的知识(广度) 学习(1)以后只是个熟练工,2和3才是提高本身的途径,伴随着知识储备的提高,接触新事物时更容易找到类似的知识加以类比,加快理解,也更容易掌握本质。若是天天都在纠结“到底学什么”,那么只能说明仍是学的太少了。(真正没什么可学的大牛们应该不会读到这里吧……)框架

 

因此,若是觉着没什么东西能够学的时候,那么能够考虑一下学一下更有深度的知识(好比虚拟机或编译器),或者彻底不一样的知识(新的语言或当前比较火的方向),甚至彻底不相干的知识(单纯练习英文阅读,学习ppt排版之类)吧。随着知识储备增长,本身的不足和将来的学习的方向也会更加明确起来。

相关文章
相关标签/搜索