前些天写了一篇《程序猿也爱学英语(上),有图有真相》,大概介绍了我学英语的一些基本资料以及心得体会,先后从发音(Pronunciation, 基本常用单词积累(Vocabulary), 新概念英语(New Concept English), 究竟需不需要学语法(English Grammar?), 走遍美国(Family Album U.S.A.), 常用英语(Daily English Situations), 老友记/六人行(Friends),享受英语的乐趣(Enjoy English)等进行了一些论述。
在写作这几篇《程序猿也爱学英语,有图有真相》文章的过程中,发生了两件比较重要的事情:
1. 在我的强烈推荐下,老婆也爱上了看《老友记》。因为是无字幕版的,刚开始的时候,她听不太懂,但是到了第三季的时候就慢慢爱上了它。现在她把一到十季整整看完一遍了,期间整个房间都是她的欢声笑语!借此机会也想对其他有同样问题的朋友说:“坚持就是胜利!”
2. 经过几个月的努力,老婆终于找到自己满意的工作!对于这个Offer,可以说是来之不易,因为老婆没有任何跨国公司的经验且才来新加坡几个月,所以对她来讲是完全在一个不熟悉的英语环境,而且还要面对各种面试,其中的辛酸苦辣我也看在眼里,痛在心底。作为老公,希望她的工作一切顺利!
扯远了,回归正题,《程序猿也爱学英语,有图有真相》实在太长,为了方便读者阅读以及多方面考虑,我把它拆分成了几篇。今天这篇我们就来讲一下社区,博客以及源码。
我经常访问的社区网站很多,不同的时期或者根据当时研究的技术的不同,也会有相应的变化。这里我总结了曾经自己使用最多以及对我帮助最大的一些社区和网站(可能大家或多或少都曾使用过他们,主要偏向于.NET方向):
我认为作为程序猿的我们不应该局限在自己的那一分三亩地(工作的内容),应该多注意以下几个方面
- 技术动态:了解自己关注的技术的最新动态。
- 技术广度:扩宽自己的眼界,了解更多的技术。
- 技术深度:更深层次的理解我们当前所使用的技术。
这个时候你订阅的国外大牛的技术博客往往会解决你这几方面的问题或者给我们更多的参考,让我们的知识更加全面化、更加体系化乃至更加专业化。
由于我最近几年一直致力于微软架构、管理、培训和企业解决方案,所以关注的博客也偏向于.NET方向:
首先还是研究微软的类库,对我们常见的应用进行研究,可以结合Reflector+VS调试内部代码功能一起研究(IL能帮我们看清楚一些内部原理,但是不推荐细究,因为它会浪费我们很多时间,毕竟是微软搞出来的这么一套东西,说不定微软哪天就换了)。另外微软也公开了一部分源码,如果有感兴趣的同学也可以下载来看看,里面注释都比较详细。
其次就是研究MONO源码(www.mono-project.com),这个是个非常好的东西,对.NET的功能大部分都进行了实现。我之前研究它不是因为它的跨平台,而是感兴趣它的源码,大家也可以在线查看它的源码(地址:www.java2s.com)。这里说到java2s这个网站,它也是我平时去得比较多的地方,因为这里的知识比较全面且浅显易懂。如果你仔细挖掘,你会获得意想不到的收获。
再其次就是研究一些开源的框架和项目,比如
针对框架的研究,自己也总结了几点:
1,首先看框架的相关介绍,了解相关的背景、功能、架构图以及其他一些相关信息——认识了解。
2,根据介绍查看并调试框架所提供的实例——熟悉功能。
3,自己写一些相关的Demo,主要是熟悉该框架。如果说要急于做项目,这里就可以把框架引入到项目当中,然后具体使用之——具体使用。
4,根据该框架提供的详细单元测试研究其源码,这也是我最喜欢研究这些开源框架的原因——原理剖析。
5,通过上面的步骤认真分析其原理及细节——准备重现。
6,自己也根据之前的思路重复开发这个框架,最好能用TDD——框架复原。
7,仔细分析及思考,吸取其中的经验,最好能打造一个自己的框架(当然这一步是可选的)。
这里要注意的是:在研究的过程中一定要先熟悉功能,再研究它内部的源码和实现,然后再创造出自己的框架。这样才能激发我们研究的欲望,才会产生作用与反作用力,才会使我们达到深入浅出、举一反三,进而真正受益的目的!
正如我前面所说,《程序猿也爱学英语,有图有真相(中)》实在太长,为了方便读者阅读以及多方面考虑,我把它拆分成了几篇。今天这篇我们讲了社区,博客以及源码,那么下篇我们将接着说其他的几个主题,希望能对大家有帮助。
备注:
- 海报