學習英文之社區,博客及源碼

前言(Introduction)

前些天寫了一篇《程序猿也愛學英語(上),有圖有真相》,大概介紹了我學英語的一些基本資料以及心得體會,先後從發音(Pronunciation, 基本常用單詞積累(Vocabulary), 新概念英語(New Concept English), 究竟需不需要學語法(English Grammar?), 走遍美國(Family Album U.S.A.), 常用英語(Daily English Situations), 老友記/六人行(Friends),享受英語的樂趣(Enjoy English)等進行了一些論述。

在寫作這幾篇《程序猿也愛學英語,有圖有真相》文章的過程中,發生了兩件比較重要的事情:

1. 在我的強烈推薦下,老婆也愛上了看《老友記》。因爲是無字幕版的,剛開始的時候,她聽不太懂,但是到了第三季的時候就慢慢愛上了它。現在她把一到十季整整看完一遍了,期間整個房間都是她的歡聲笑語!藉此機會也想對其他有同樣問題的朋友說:“堅持就是勝利!”

2. 經過幾個月的努力,老婆終於找到自己滿意的工作!對於這個Offer,可以說是來之不易,因爲老婆沒有任何跨國公司的經驗且纔來新加坡幾個月,所以對她來講是完全在一個不熟悉的英語環境,而且還要面對各種面試,其中的辛酸苦辣我也看在眼裏,痛在心底。作爲老公,希望她的工作一切順利!

扯遠了,迴歸正題,《程序猿也愛學英語,有圖有真相》實在太長,爲了方便讀者閱讀以及多方面考慮,我把它拆分成了幾篇。今天這篇我們就來講一下社區,博客以及源碼。

社區(Forum)

我經常訪問的社區網站很多,不同的時期或者根據當時研究的技術的不同,也會有相應的變化。這裏我總結了曾經自己使用最多以及對我幫助最大的一些社區和網站(可能大家或多或少都曾使用過他們,主要偏向於.NET方向):

p_w_picpath_thumb2
名稱:w3schools
地址:http://www.w3schools.com/
描述:這個網站大家再熟悉不過了,W3Schools是於1999年創立的一個網站開發教程門戶。W3Schools由位於挪威提供軟件開發、諮詢的Refsnes Data公司所成立,提供的免費網頁開發教程包括HTML、XML、CSS、JavaScript、PHP、ASP等等。
p_w_picpath_thumb43
名稱:StackOverflow
地址:www.stackoverflow.com
描述:這個就不需要我來做更多的介紹,相信每個朋友或多或少都用過它來找技術答案,Stack Overflow是全球IT界最受歡迎的技術問答網站。
clip_p_w_picpath004
名稱:MSDN
地址:http://msdn.microsoft.com/en-us/
描述:這個網站是大家學.Net的初始網站,也是.net方面官方和權威的資料,相信大家都知道或經常訪問這個網站。即是初學者的最佳學習資料場地,同時也是中高級開發者的參考資料庫。裏面還包括很多視頻、library、每月技術雜誌、社區等。

p_w_picpath_thumb46

名稱:CodeProject
地址:http://www.codeproject.com
描述:分類十分的清晰,同時涵蓋了.net技術的方方面面,最關鍵的是幾乎所有文章都帶有源碼且文章由淺入深、淺顯易懂。如果熟悉這個網站,
你可以學到很多有用的知識,同時也能鍛鍊一下英文。

clip_p_w_picpath008

名稱:CodePlex 
地址:http://www.codeplex.com/
描述:這個網站相信大家也比較熟悉,裏面包含了很多大大小小的開源項目,同時也包含一些官方和非官方的ToolKit,也包含很多成型的開源項目。如果你仔細看,你會發現有很多社區的朋友也上傳了自己的開源項目。
clip_p_w_picpath016
名稱:C# Corner
地址:http://www.c-sharpcorner.com/
描述:上面有很多.net技術方面的文章,就像學英語有英語角一樣,這個網站對.net以及和.net交互的技術都有介紹,文章都比較短小,學習起來也比較容易。
p_w_picpath_thumb3
名稱:Careercup
地址:http://www.careercup.com/
描述:CareerCup是一個非常好的網站,它主要爲從事軟件工作的程序猿們提供一些求職面試準備,你可以通過上面的問題來了解包括Microsoft、Google,Yahoo,Amazon等公司的面試流程、常見問題以及注意事項等,同時你可以看到裏面有很多求職的指導。
p_w_picpath_thumb51
名稱:TopCoder
地址:http://www.topcoder.com/
描述:TopCoder,是一家專門組織計算機程序設計競賽的公司。TopCoder 在線舉行算法競賽(SRMs)、組件設計競賽和組件開發競賽。算法競賽在世界上與ACM、google code jam並稱爲三大賽。相信衆多程序猿們在大學使用過這個網站。
上大學時比較喜歡去做做題,但最近幾年因爲工作等原因,就沒有再使用。
p_w_picpath_thumb1
名稱:About.COM
地址:http://jobsearch.about.com/od/interviewsnetworking/u/jobinterviews.htm
描述:About.com是美國的一個入門網站,創立於1997年,部份內容爲付費內容。它主要爲網民提供各種各樣的生活瑣碎問題的解答。隨着時間發展,它現時已發展成爲一個包含500多個專題的超級指導網站。
我們要關注的是裏面關於工作、求職、面試等資料。

clip_p_w_picpath017

名稱:SourceForge
地址:http://sourceforge.net/
描述:這個網站提供了軟件開發領域的各個行業的開源項目,語言不限,一般只在上面找對開發有幫助的開源項目。
clip_p_w_picpath014
名稱:InfoQ
地址:http://www.infoq.com/
描述:是一個時刻關注企業軟件開發領域變化與創新的在線獨立社區,讀者受衆羣主要爲技術架構師、技術團隊帶頭人(高級開發人員)和項目經理等。
通過由各個技術領域專家提供的最新的新聞、技術文章、視頻訪談、視頻演講和迷你書等,InfoQ 爲Java、.NET、Ruby、SOA、敏捷和架構六大社區提供一流的資訊。
p_w_picpath_thumb47
名稱:GitHub
地址:https://github.com/
描述:GitHub於2008年上線,目前,除了Git代碼倉庫託管及基本的Web管理界面以外,還提供了訂閱、討論組、文本渲染、在線文件編輯器、協作圖譜(報表)、代碼片段分享(Gist)等功能。正因爲這些功能所提供的便利,又經過長期的積累,GitHub的用戶活躍度很高,在開源世界裏享有深遠的聲望,形成了所謂的社交化編程文化(Social Coding)。

p_w_picpath_thumb49

名稱:ASP.NET/ ASP.NET MVC
地址:http://www.asp.net
描述:ASP.NET/ ASP.NET MVC學習的最佳場所,裏面可以看到最新的特性和一些培訓的視頻,很有幫助。目前比較熱的ASP.NET MVC 4和Web API等文章和視頻也比較多。
p_w_picpath_thumb50
名稱:Channel 9
地址:http://channel9.msdn.com/
描述:Channel 9可以說是.NET最好的視頻網站,裏面除了有大量的技術視頻之外,還有我們熟悉的p_w_picpath_thumb8p_w_picpath_thumb7等。我相信絕大多數.NET程序員並不陌生。

p_w_picpath_thumb9

名稱:Java2s
地址:http://www.java2s.com/
描述:Java2s 是一個比較不錯的技術網站,裏面除了包括Java相關的學習資料以及源碼外,也包含了諸如C#, ASP.NET, Javascript, C++, Python, Android等,如果你仔細發掘,我相信你會喜歡上這個網站。
p_w_picpath_thumb14
名稱:Youtube
地址:http://www.youtube.com/
描述:YouTube是世界上最大的視頻分享網站,早期公司總部位於加利福尼亞州的聖布里諾。在比薩店和日本餐館,讓用戶下載、觀看及分享影片或短片。公司於2005年2月15日註冊,網站的口號爲“Broadcast Yourself”(表現你自己),所以這裏麪包括了各種各樣的視頻資料。有了它,你基本不用再去下載你需要的視頻。
還有很多很多,這裏就不一一列出……

博客(Blog )

我認爲作爲程序猿的我們不應該侷限在自己的那一分三畝地(工作的內容),應該多注意以下幾個方面

  • 技術動態:瞭解自己關注的技術的最新動態。

  • 技術廣度:擴寬自己的眼界,瞭解更多的技術。

  • 技術深度:更深層次的理解我們所當前所使用的技術。

這個時候你訂閱的國外大牛的技術博客往往會解決你這幾方面的問題或者給我們更多的參考,讓我們的知識更加全面化、更加體系化乃至更加專業化。

由於我最近幾年一直致力於微軟架構、管理、培訓和企業解決方案,所以關注的博客也偏向於.NET方向:

博客地址介紹
Scott Guthriehttp://weblogs.asp.net/scottgu/Scott Guthrie 被稱爲ASP.NET 之父,他的文章涉及的面也比較廣,從ASP.NET ,ASP.NET MVC,Silverlight,Visual Studio,.NET框架以及現在正熱的Windows Azure。
S. Somasegarhttp://blogs.msdn.com/b/somasegar/如果你關注Visual Studio和.NET框架的發展,你肯定對Soma這個名字不陌生。Somasegar是現任微軟開發工具事業部全球資深副總裁,負責Visual Studio,Expression系列,.NET框架,Team Foundation Server等一系列產品,同時還負責管理MSDN、TechNet等網站。在他的博客上,可以看到這些產品的最新消息,以及他個人對整個產業的觀點與看法。
Martin Fowlerhttp://www.martinfowler.com/《重構—改善既有代碼的設計(Refactoring)》《企業應用架構模式(Patterns of Enterprise Application Architecture)》
Windows Azure Team Bloghttp://blogs.msdn.com/b/windowsazure/如果你關注雲計算且關注微軟的雲計算Windows Azure,那麼這裏就有你所需要的資料和訊息。

SQL Server Blog

http://blogs.technet.com/b/dataplatforminsider/如果你想了解SQL Server的最新動態以及新版本的特性等,這裏可能有你所需要的答案。
ASP.NET Weblogshttp://weblogs.asp.net/aspnet-team/這個博客應該對做ASP.NET 或者ASP.NET  MVC的同學來說並不陌生,裏面有大量ASP.NET 或者ASP.NET  MVC的學習資料和最新訊息。
Josh Smithhttp://joshsmithonwpf.wordpress.com/傳說中的MVVM之父,最開始我也是從他這裏慢慢開始熟悉這個模式,後來便一發不可收拾。
Laurent Bugnionhttp://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/)等等。

2010-10-21 16-22-042010-10-21 16-34-312010-10-6 23-54-02

針對框架的研究,自己也總結了幾點:

1,首先看框架的相關介紹,瞭解相關的背景、功能、架構圖以及其他一些相關信息——認識瞭解。
2,根據介紹查看並調試框架所提供的實例——熟悉功能。
3,自己寫一些相關的Demo,主要是熟悉該框架。如果說要急於做項目,這裏就可以把框架引入到項目當中,然後具體使用之。
4,根據該框架提供的詳細單元測試研究其源碼,這也是我最喜歡研究這些開源框架的原因——原理剖析。
5,通過上面的步驟認真分析其原理及細節——準備重現。
6,自己也根據之前的思路重複開發這個框架,最好能用TDD——框架復原捷徑。
7,仔細分析及思考,吸取其中的經驗,最好能打造一個自己的框架(當然這一步是可選的)。

這裏要注意的是:在研究的過程中一定要先熟悉功能,再研究它內部的源碼和實現,然後再創造出自己的框架。這樣才能激發我們研究的慾望,纔會產生作用和反作用力,從而纔會使我們真正受益。

總結&待續...(Summary & To Be Continued…)

正如我前面所說,《程序猿也愛學英語,有圖有真相(中)》實在太長,爲了方便讀者閱讀以及多方面考慮,我把它拆分成了幾篇。今天這篇我們講了社區,博客以及源碼,那麼下篇我們將接着說其他的幾個主題,希望能對大家有幫助。

p_w_picpath_thumb161

備註:

  1. 我不是牛人,只是一枚普普通通在海外漂泊的程序猿。寫作本文只是自己一時興起,或者說是自己的興趣使然,保持交流和分享的心態發佈出來。文中的觀點只是自己的學習心得和體會,屬一家之言且鑑於本人不是學英語出身,如有不對的地方,也請大家見諒並指正。
  2. 歡迎轉載,但請註明作者、出處及保持內容完整(因爲本文只是自己個人的一些粗淺認知,錯誤在所難免,也希望讀者能反饋一些信息,及時糾正和更新以上內容)。
  3. 最後,如果你覺得文章對你有所幫助,別忘了推薦或者分享,因爲有你的支持,纔是我續寫下篇的動力和源泉!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章