所以,在博客园这个以 和架构之类为主的社区,我算是半个旁不雅者吧,我看到园子里很多朋友都把自己禁锢在自己创作发现的盒子里,所以我希望以旁不雅者的身份,给这些朋友提几个建议。
每半年接触并学习一门语言
有许多人通常感觉只要把一门语言学会学精就行,这个想法我感觉对了一半。一个法度员应该有一门精通的语言,可是还要不竭学习新的语言(当然不克不及太频繁),倒不是为了以防哪天万一用到这门语言,而是接触学习不合的语言会拓展法度员的视野。
如果你一直用C#,试试Lisp,你会赞叹于还有这样写法度的体例,嗯?看来我得去学学Lamda演算;试试Python,你会惊奇于还有如此小巧优美的东西;试试Lua,你会发现原来语言还能嵌入其它语言,要不要为WOW写个外挂试试?试试Eiffel,你会发现还有契约式编程这种体例,嗯?什么?Java上有iContract,那我要不要为 实现一个?随着这种学习过程,你的思维自然就被拓展开了,而不是满脑子的Class、Object、MVC、OO……
其实学习语言不一定是学习没听说过的,许多您听到耳朵长茧却历来没有深入学习的"老朋友",如C、PHP,如果您细心学下来,也会取得许多意外的收获。
例如在学C的过程中,你会发现不成能脱离Unix情况而把C学好,你会接触POSIX和System V,你会主动深入学习过程、线程、信号、I/O、IPC,你会接触TCP/IP协议。你会发现要学好C还要理解计较机组成原理,你还会发现原来还有年夜小端这个东西。
深入学习PHP,你会发现PHP远不但仅是一个做Web的脚本语言那么简单,你会体会到它SAPI、PHP Compiler和Zend Engine的优美布局,你会发现有opcode,你会发现PHP满身都是扩大点,你可以扩大功能,扩大Compiler和Zend Engine,甚至可以完全实现自己的编译和运行逻辑。你会体会APC是如何缓存opcode,APD是如何跟踪PHP的运行。
每次学习一门语言,你会发现这不是一门语言,而是一个崭新的新年夜陆,里面有太多让人兴奋和新奇的东西,而如果你执意禁锢在" 盒子"里,你就永远不会知道这些。
主动突破自己 接管更多挑战
如果什么东西都是用到才学,代码都是有用才写,那我只能很是抱愧的说你还不是个法度员,而只是个代码工人。法度员应该有主动出击的意识,应该对自己未接触的范畴有无限向往。幸运的是,互联网上的财富实在太多了,你应该尽其所能去接触学习未知的东西,而不要总想我学习这个东西能不克不及换来钱给孩子买尿布和奶粉。你可以有很多捏词,可是我想说,捏词想找总是有的,时间想找也总是有的,仍是看自己到底要什么。不要一边躺在盒子里一边又埋怨自己没有前进。
例如谷歌 Publication,这里有世界最优秀的谷歌工程师们理论和实践的总结,来读读这些伟年夜的论文吧,看看这个伟年夜的公司和一群伟年夜的人都干了些什么,体会一下Map Reduce是怎么回事,如果体会了你自然想去试试Hadoop,还有Bigtable和GFS,哦!太震撼了,原来存储数据也有这么多讲究,不是放硬盘里或通过Insert插入数据库就好了。也许这些英文论文读起来很坚苦,可是我想一周一篇的要求其实不高(我现在仍然保持着一周读两篇论文的习惯)。要知道,最新、最严谨的东西都在论文里,如果你只是通过书本或社区学习,那么你永远不会知道今天在计较机科学与手艺的范畴又产生了哪些使人震撼的事情,呈现了哪些新奇的东西。
不要太怠惰,你写增删改查写累了吗?Come on!有没有想过自己写一个小型的httpd?当然你需要先去学习HTTP协议(rfc2612),试试能不克不及写一个PHP的SAPI扩大令你的httpd措置PHP脚本。有没有想过自己用lex和yacc实现一个自己的小语言,也不是完全没用,也许你已经对你的范畴业务逻辑烂熟于胸,那么去实现一个自己的范畴语言吧。啊!我要去学习编译原理、形式语言与自念头……咦,这东西还挺有意思的,去看看计较理论去……如果到了这里,你已经起头接触计较机的数学素质了,而你的条理将会取得升华。
学习就是这样,主动突破自己,给自己一些挑战性的任务,生活才有趣。成天困在 的盒子里,我们还有脸称自己为法度员吗?
脱离IDE 玩玩纯文本与shell