前言(Introduction)
前些天写了一篇《程序猿也爱学英语(上),有图有真相》,大概介绍了我学英语的一些基本资料以及心得体会,先后从发音(Pronunciation, 基本常用单词积累(Vocabulary), 新概念英语(New Concept English), 究竟需不需要学语法(English Grammar?), 走遍美国(Family Album U.S.A.), 常用英语(Daily English Situations), 老友记/六人行(Friends),享受英语的乐趣(Enjoy English)等进行了一些论述。
在写作这几篇《程序猿也爱学英语,有图有真相》文章的过程中,发生了两件比较重要的事情:
1. 在我的强烈推荐下,老婆也爱上了看《老友记》。因为是无字幕版的,刚开始的时候,她听不太懂,但是到了第三季的时候就慢慢爱上了它。现在她把一到十季整整看完一遍了,期间整个房间都是她的欢声笑语!借此机会也想对其他有同样问题的朋友说:“坚持就是胜利!”
2. 经过几个月的努力,老婆终于找到自己满意的工作!对于这个Offer,可以说是来之不易,因为老婆没有任何跨国公司的经验且才来新加坡几个月,所以对她来讲是完全在一个不熟悉的英语环境,而且还要面对各种面试,其中的辛酸苦辣我也看在眼里,痛在心底。作为老公,希望她的工作一切顺利!
扯远了,回归正题,《程序猿也爱学英语,有图有真相》实在太长,为了方便读者阅读以及多方面考虑,我把它拆分成了几篇。今天这篇我们就来讲一下社区,博客以及源码。
社区(Forum)
我经常访问的社区网站很多,不同的时期或者根据当时研究的技术的不同,也会有相应的变化。这里我总结了曾经自己使用最多以及对我帮助最大的一些社区和网站(可能大家或多或少都曾使用过他们,主要偏向于.NET方向):
| |
| |
| |
| |
| |
| |
| |
还有很多很多,这里就不一一列出…… |
博客(Blog )
我认为作为程序猿的我们不应该局限在自己的那一分三亩地(工作的内容),应该多注意以下几个方面
- 技术动态:了解自己关注的技术的最新动态。
- 技术广度:扩宽自己的眼界,了解更多的技术。
- 技术深度:更深层次的理解我们所当前所使用的技术。
这个时候你订阅的国外大牛的技术博客往往会解决你这几方面的问题或者给我们更多的参考,让我们的知识更加全面化、更加体系化乃至更加专业化。
由于我最近几年一直致力于微软架构、管理、培训和企业解决方案,所以关注的博客也偏向于.NET方向:
博客 | 地址 | 介绍 |
Scott Guthrie | http://weblogs.asp.net/scottgu/ | Scott Guthrie 被称为ASP.NET 之父,他的文章涉及的面也比较广,从ASP.NET ,ASP.NET MVC,Silverlight,Visual Studio,.NET框架以及现在正热的Windows Azure。 |
S. Somasegar | http://blogs.msdn.com/b/somasegar/ | 如果你关注Visual Studio和.NET框架的发展,你肯定对Soma这个名字不陌生。Somasegar是现任微软开发工具事业部全球资深副总裁,负责Visual Studio,Expression系列,.NET框架,Team Foundation Server等一系列产品,同时还负责管理MSDN、TechNet等网站。在他的博客上,可以看到这些产品的最新消息,以及他个人对整个产业的观点与看法。 |
Martin Fowler | http://www.martinfowler.com/ | 《重构—改善既有代码的设计(Refactoring)》《企业应用架构模式(Patterns of Enterprise Application Architecture)》 |
Windows Azure Team Blog | http://blogs.msdn.com/b/windowsazure/ | 如果你关注云计算且关注微软的云计算Windows Azure,那么这里就有你所需要的资料和讯息。 |
SQL Server Blog | http://blogs.technet.com/b/dataplatforminsider/ | 如果你想了解SQL Server的最新动态以及新版本的特性等,这里可能有你所需要的答案。 |
ASP.NET Weblogs | http://weblogs.asp.net/aspnet-team/ | 这个博客应该对做ASP.NET 或者ASP.NET MVC的同学来说并不陌生,里面有大量ASP.NET 或者ASP.NET MVC的学习资料和最新讯息。 |
Josh Smith | http://joshsmithonwpf.wordpress.com/ | 传说中的MVVM之父,最开始我也是从他这里慢慢开始熟悉这个模式,后来便一发不可收拾。 |
Laurent Bugnion | http://www.galasoft.ch/mvvm/ | 如果大家使用过MVVM Light,那么你一定会认识Laurent Bugnion,这个家伙对技术的热情很令人钦佩。目前MVVM Light支持WPF,Silverlight,Windows Phone以及时Windows 8。 |
还有很多,这里就不一一列出…… |
源码(Source Code)
关于源码的研究,我曾经在《WPF基础到企业应用系列7——深入剖析依赖属性(WPF/Silverlight核心)》以及《WPF企业内训全程实录(中)》有所提及。有时候我们需要挖掘更深入的知识或者学习其代码、规范以及注释书写等,研究源码无疑是一种比较有效的方法,同时也顺带提高了英语。
首先还是研究微软的类库,对我们常见的应用进行研究,可以结合Reflector+VS调试内部代码功能一起研究(IL能帮我们看清楚一些内部原理,但是不推荐细究,因为它会浪费我们很多时间,毕竟是微软搞出来的这么一套东西,说不定微软哪天就换了)。另外微软也公开了一部分源码,如果有感兴趣的同学也可以下载来看看,里面注释都比较详细。
其次就是研究MONO源码(www.mono-project.com),这个是个非常好的东西,对.NET的功能大部分都进行了实现,我之前研究它不是因为它的跨平台,是感兴趣它的源码,大家也可以在线查看它的源码(地址:www.java2s.com),说到java2s这个网站,也是我平时去得比较多的地方,因为它比较全面和方便。如果你仔细挖掘,你会获得意想不到的收获。
再其次就是研究一些开源的框架和项目,比如
BlogEngine.NET(http://www.dotnetblogengine.net/)、Spring.NET(http://www.springframework.net/)、Castle(http://www.castleproject.org)、
log4net(http://logging.apache.org/log4net/)、NHibernate(http://www.hibernate.org/343.html)、iBATIS.NET(http://ibatis.apache.org)、
Caliburn(http://caliburn.codeplex.com/)、MVVM Light Toolkit(http://mvvmlight.codeplex.com/)、Prism(http://compositewpf.codeplex.com/)等等。
针对框架的研究,自己也总结了几点:
1,首先看框架的相关介绍,了解相关的背景、功能、架构图以及其他一些相关信息——认识了解。
2,根据介绍查看并调试框架所提供的实例——熟悉功能。
3,自己写一些相关的Demo,主要是熟悉该框架。如果说要急于做项目,这里就可以把框架引入到项目当中,然后具体使用之。
4,根据该框架提供的详细单元测试研究其源码,这也是我最喜欢研究这些开源框架的原因——原理剖析。
5,通过上面的步骤认真分析其原理及细节——准备重现。
6,自己也根据之前的思路重复开发这个框架,最好能用TDD——框架复原捷径。
7,仔细分析及思考,吸取其中的经验,最好能打造一个自己的框架(当然这一步是可选的)。
这里要注意的是:在研究的过程中一定要先熟悉功能,再研究它内部的源码和实现,然后再创造出自己的框架。这样才能激发我们研究的欲望,才会产生作用和反作用力,从而才会使我们真正受益。
总结&待续...(Summary & To Be Continued…)
正如我前面所说,《程序猿也爱学英语,有图有真相(中)》实在太长,为了方便读者阅读以及多方面考虑,我把它拆分成了几篇。今天这篇我们讲了社区,博客以及源码,那么下篇我们将接着说其他的几个主题,希望能对大家有帮助。
备注:
- 我不是牛人,只是一枚普普通通在海外漂泊的程序猿。写作本文只是自己一时兴起,或者说是自己的兴趣使然,保持交流和分享的心态发布出来。文中的观点只是自己的学习心得和体会,属一家之言且鉴于本人不是学英语出身,如有不对的地方,也请大家见谅并指正。
- 欢迎转载,但请注明作者、出处及保持内容完整(因为本文只是自己个人的一些粗浅认知,错误在所难免,也希望读者能反馈一些信息,及时纠正和更新以上内容)。
- 最后,如果你觉得文章对你有所帮助,别忘了推荐或者分享,因为有你的支持,才是我续写下篇的动力和源泉!