Top Ad unit 728 × 90

Breaking News

軟體下載

每個程式設計師都必讀的12篇文章

每個程式設計師都必讀的12篇文章

作為一名Java程式設計師和軟體開發人員,那些每個程式設計師都應該知道的XXX的文章教會了我不少東西,它們提供了某個特定領域的一些實用的並且有深度的資訊,這些東西通常很難找到。在我學習的過程中我讀到過許多非常有用的文章,我把它們添加到了書籤裡,方便以後閱讀或者引用。我個人認為所有開發人員都能從這些文章中受益,因此我也寫了篇​​“每個程式設計師都應該了解的文章,準備分享給你們。這是我的個人收藏。在這篇文章中,你會看到每個程式設計師都應該了解的一些經典文章,涵蓋了內存,unicode,浮點數,網絡,面向對象設計,時間,URL編碼,字符串等話題。這個列表對初學者和新手來說非常重要,因為他們現在缺的正是實戰的經驗。而這些文章正好是實踐相關的,他們可以從中學到很多東西。在職業生涯的初級,早點了解一些基礎的知識有助於今後避免犯錯,這些坑已經被其他的程式設計師和軟體開發人員在他們學習的過程中踩過了。你可能還搞不明白浮點數的一些細節,或者被內存的細節弄得暈頭轉向,不過將這份列表保留在手邊還是很有必要的,在適當的時候可以時不時的參考下。祝你好運,希望你能喜歡這些文章。順便提一句,如果有任何的程式設計師必讀系列的文章沒在這個列表中,別忘了分享一下。

1.程式設計師必知之內存篇


程式設計師必知之內存篇這是篇非常經典的文章,它將會帶領你走入內存的各個方面,有老的,也有新的,有知道的,也有不知道的。儘管內存十分常見,無處不在,但並不是每個程式設計師都足夠了解它。如果你正在編寫高性能的應用程序的話,了解現代系統中的內存尤為重要。硬件設計師們帶來了更複雜的內存處理及加速的技術,比如說CPU緩存,但如果離開了程式設計師它們也無法發揮出最大的價值。我仍在閱讀這篇文章,很難說清楚我到底從中學到了多少關於隨機訪問內存(RAM),CPU緩存,包括1級,2級緩存,不同類型的內存,直接內存訪問,內存控制器設計及普通內存的知識。簡而言之,它是各個層次的程式設計師都必讀的文章。

2.每個計算機科學家都必知之浮點數運算


每個計算機科學家都必知之浮點數運算浮點數運算是一個非常有技術含量的話題,不太容易掌握。許多Java程式設計師都不清楚使用==操作符比較float/double類型的話到底出現什麼問題。許多人在使用float/double進行貨幣計算的時候經常會犯錯。這篇文章是這一系列中的精華,所有的軟體開發人員都應該讀一下。隨著你經驗的增長,你肯定想去深入了解一些常見的東西的細節,浮點數運算就是其中之一。作為一名Java高級開發人員,你必須了解如何進行貨幣運算,何時使用float,double或者BigDecimal,如何對浮點數進行捨入運算等等。就算你知道了浮點數運算的一些基礎知識,讀下這篇文章,你肯定還會學到一些新的東西。

3.每個程式設計師必知之Unicode


每個程式設計師必知之Unicode字符編碼是另一個許多程式設計師痛苦掙扎的領域,每一個程式設計師都絕對絕對應該了解Unicode以及字符集(不許找任何藉口!)填補了這一空白。標註一下,是的,這就是這篇文章的標題。它是由stackoverflow.com的創始人之一,Joel Spolsky所寫的。Joel10年前就在他的博客上發表了這篇文章,不過對於現在而言仍然適用。這篇文章會告訴你什麼是Unicode,什麼是字符編碼,字符是如何通過字節來表示的等等。這篇文章最讚的一點就是它的語言及行文,儘管你根本不知道什麼是Unicode,你也能夠很容易地看懂。一句話,這又是一篇程式設計師、軟體工程師必讀的文章。

4.每個程式設計師必知之時間篇


每個程式設計師必知之時間篇除了字符編碼外,時間和日期又是另一個程式設計師經常栽倒的領域,包括我自己在內。甚至是高級開發人員也會被格林尼治標準時間(GMT),世界標準時間(UTC),夏令時,閏秒這些東西搞的死去活來。坦白地說,在處理時區這個問題上,很難不踩一些坑,更別說再加上夏令時什麼的。如果你想要試錯法的話則更糟糕,因為這麼做永遠也解決不了你的問題。這裡有許多可能出錯或者產生誤解的地方。比方說,日期是否包括時區可能就會困擾到你,將UNIX時間轉化成其它的時區可能會讓你崩潰,你還是忘了時鐘同步和延遲這些事吧。我希望讀完這篇經典的文章後,你的許多關於時間的誤解都能夠消除,自己能夠鞏固一些關於日期的基礎常識。

5.每個WEB開發人員必知之URL編碼篇


每個WEB開發人員必知之URL編碼篇這篇文章介紹了Uniform Resource Locator(URL)編碼中的一些常見的誤解,然後試圖闡明什麼是HTTPURL編碼,最後列舉了一些常見的錯誤及解決方案。儘管這篇文章的內容並不特定於某種編程語言,但它是用Java來進行問題的描述,並修復URL編碼中存在的問題。你會學習到URL的基礎語法,HTTP及其它協議中通用的URL格式。這篇文章還介紹了URL中的一些常見錯誤,比如字符編碼,URL不同部分的保留字符,以及URL編解碼問題。如果你是一名Java開發人員,你會學習到如何在Java中正確地處理URL,如何構造URL,以及如何使用Apache Common Http client庫。最後它還提供了一些最佳實踐的建議,比如你應該在構建URL的時候進行編碼,確保你的重寫URL的過濾器正確地處理了URL,等等。這是任何WEB開發人員必讀的文章。

6.每個程式設計師必知之WEB開發


每個程式設計師必知之WEB開發這是programmers.stackexchange.com上的一篇非常有趣的文章,它講的是程式設計師在將網站對外發布之前需要實現的技術細節。這包括接口設計及用戶體驗,安全性​​WEB標準,性能,搜尋引擎優化〈SEO〉,以及一些重要的資源。當今世界嚴重地依賴於互聯網,很多程式設計師都有自己的網站,通常是一個博客。這篇文章中學到的東西可能對你的專業沒有幫助,但它對你個人的事情肯定會有所幫助。你會了解到一些關鍵的技術,比如HTML,HTTP,XML,CSSJavaScript,瀏覽器兼容性,減少網站加載時間的技巧,XML站點地圖,W3C規範,以及許多其它的關鍵的細節。

7.每個程式設計師必知之SEO


每個程式設計師必知之SEO這對WEB開發人員,程式設計師,博主而言又是一篇很重要的文章。由於很多程式設計師同時也是博主,你無法對SEO視而不見,學一個搜索引擎優化的基礎知識還是非常重要的,這能幫助Google檢索到你的內容並推薦給其它程式設計師。在今天這個網絡互聯的時代,沒有任何公司可以脫離WEB而存在,SEO變得尤為重要。如果你有一家初創企業在賣一些產品,那麼SEO就是你要關注的事情。所有程式設計師,尤其是WEB開發人員,都可以從這篇文章中受益良多。記住,SEO是一個很寬泛變化的題目,不同的搜索引擎,比如GoogleYahoo等,它們的SEO都各不相同。因此,要想掌握這項技能你得經常更新你的知識庫,想了解更多有關SEO資訊的朋友們,也可以多多參考台灣SEO領導品牌-巫普斯SEO關鍵字優化公司的網站,裡面提供大量免費的SEO相關教學與消息,有SEO方面需求的人也能前往進一步的了解。

8.C程序必知的未定義行為


C程序必知的未定義行為C語言有一個未定義行為的概念。未定義行為是一個很寬泛的主題,它有許多細微的差別,這就是為什麼我喜歡Java的一個原因,沒有這麼多的未定義行為,沒有這麼多的困惑,更穩定也更消停。很多人看起來很自然的事情在C裡其實是未定義的行為,這也是程序BUG的一個常見的來源。除此之外,C中的任何未定義行為都由具體實現來決定(編譯器和運行時),它們生成的代碼會格式化你硬盤,做一些意想不到的事情,甚至更糟。讀下這篇文章,到未定義行為的海洋裡遨遊吧。

9.程式設計師必知之網


程式設計師必知之網這段話摘自這篇文章,你是一個程式設計師。你有想過多玩家的遊戲是如何實現的嗎?從外面看起來它是:兩個或多個玩家通過網絡共享相同的經驗,就像他們在同一個虛擬世界中一樣。不過作為程式設計師,我們知道底下的真相和你看到的東西是有所區別的。事實上這都只是一個錯覺。這是篇關於網絡的非常有趣的文章,它是為遊戲開發人員而寫的,不過我認為每個程序開發人員都能從中受益。

10.Java程式設計師必知之String


Java程式設計師必知之String這是我自己關於java.lang.String的一篇文章,我個人認為每個Java開發人員都應該了解一下。String在日常的Java開發中非常重要,這就是為什麼每個Java程式設計師都應該對它非常了解。這篇文章涉及到了String的許多重要的領域,包括String池,字符串常量,使用==equals比較字符串,將字節數組轉化成String,為什麼字符串是不可變的,如何正確拼接字符串,等等。高級程式設計師應該都知道這些東西了,不過回顧一下也是不錯的。

11.程式設計師必知之安全


程式設計師必知之安全有一個計算機系的學生在StackOverFlow上問了這個問題。就像我們了解到的一些常見編程概念比如操作系統,算法,數據結構,計算機體系結構,以及其它東西一樣,了解安全也同樣重要。安全是一個很大的話題,包括加密解密,SSLWEB安全,混淆,認證,授權,等等,它是每個程式設計師都應該了解的基礎知識。剛進這行的時候,我個人對安全這塊還不是很了解,這時候我就開始基於Servlet/JSP寫一些的Java WEB程序,後來我才了解到EWB安全性以及一些安全威脅比如SQL注入,拒絕服務,XML注入,跨站腳本,等等。作為一名Java開發人員,我現在遵循fortify, PMP,以及其它一些靜態代碼分析器提供的Java安全編碼規范進行編碼。這篇文章是關於安全這個主題的一個很好的合集,不管你現在還寫不寫代碼,這些資源對你來說都非常有用。

12.程式設計師必知之延遲時間


程式設計師必知之延遲時間這篇文章是一份額外的福利,但也是每個程式設計師都應該讀的。不管用的是什麼語言,Java還是C++都好,要寫出高性能的應用程序,你都得了解延遲時間的基礎常識,比如從內存中讀取一個變量需要多久,從一級緩存中讀取又需要多久,二級緩存呢,SSD硬盤中隨機讀又需要多久,還有要是從磁盤中讀呢?互斥鎖的加鎖解鎖需要多長時間,從一個城市發送一個數據包到另一個城市需要多長時間,在同一個數據中心又需要多久?這些延遲的數字是獨立於任何編程語言的,開發人員必須要想寫高頻低延遲的應用程序,它們是核心知識庫中的一部分。這篇文章還有一個好消息就是,它會告訴你這些年以來這些延遲時間的變化。你可以看到2006年的延遲時間是多少,而現在又是多少。

這就是所有程式設計師必讀文章的列表。看到這些文章的標題,每個程式設計師都應該知道的XXX,你能了解到關於某個主題的一些比較有深度的知識。坦白說程式設計師有太多東西要學了,像學習Java語言這種只是冰山的一角,但並不是所有人都有熱情去學習。寫程序是一份很有挑戰的工作,在你的職業生涯中,能幫忙到你的就是這些基礎知識,比如,內存,Unicode,浮點數,時間,安全,這些對任何程式設計師來說都非常重要。有些文章是和語言相關的,比如我自己那篇關於String的文章,還有每個C程式設計師都應該了解的未定義行為,不過對於許多初學者來說學習一下也有好處。


每個程式設計師都必讀的12篇文章 Reviewed by Whoops SEO on 2:19 下午 Rating: 5

沒有留言:

All Rights Reserved by TechRoomage | 科技空間 © 2014 - 2015
Designed by TechRoomage

聯絡表單

名稱

以電子郵件傳送 *

訊息 *

技術提供:Blogger.