日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

每個程序員都必讀的10篇文章

 Pakin 2014-05-17

作為一名Java程序員和軟件開發(fā)人員,那些每個程序員都應(yīng)該知道的XXX的文章教會了我不少東西,它們提供了某個特定領(lǐng)域的一些實用的并且有深度的信息,這些東西通常很難找到。在我學(xué)習(xí)的過程中我讀到過許多非常有用的文章,我把它們添加到了書簽里,方便以后閱讀或者引用。我個人認(rèn)為所有開發(fā)人員都能從這些文章中受益,因此我也寫了篇“每個程序員都應(yīng)該了解的”文章,準(zhǔn)備分享給你們。這是我的個人收藏。在這篇文章中,你會看到每個程序員都應(yīng)該了解的一些經(jīng)典文章,涵蓋了內(nèi)存,unicode,浮點數(shù),網(wǎng)絡(luò),面向?qū)ο笤O(shè)計,時間,URL編碼,字符串等話題。這個列表對初學(xué)者和新手來說非常重要,因為他們現(xiàn)在缺的正是實戰(zhàn)的經(jīng)驗。而這些文章正好是實踐相關(guān)的,他們可以從中學(xué)到很多東西。在職業(yè)生涯的初級,早點了解一些基礎(chǔ)的知識有助于今后避免犯錯,這些坑已經(jīng)被其他的程序員和軟件開發(fā)人員在他們學(xué)習(xí)的過程中踩過了。你可能還搞不明白浮點數(shù)的一些細(xì)節(jié),或者被內(nèi)存的細(xì)節(jié)弄得暈頭轉(zhuǎn)向,不過將這份列表保留在手邊還是很有必要的,在適當(dāng)?shù)臅r候可以時不時的參考下。祝你好運,希望你能喜歡這些文章。順便提一句,如果有任何的程序員必讀系列的文章沒在這個列表中,別忘了分享一下。

  1. 程序員必知之內(nèi)存篇

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

  1. 每個計算機科學(xué)家都必知之浮點數(shù)運算

浮點數(shù)運算是一個非常有技術(shù)含量的話題,不太容易掌握。許多Java程序員都不清楚使用==操作符比較float/double類型的話到底出現(xiàn)什么問題。許多人在使用float/double進行貨幣計算的時候經(jīng)常會犯錯。這篇文章是這一系列中的精華,所有的軟件開發(fā)人員都應(yīng)該讀一下。隨著你經(jīng)驗的增長,你肯定想去深入了解一些常見的東西的細(xì)節(jié),浮點數(shù)運算就是其中之一。作為一名Java高級開發(fā)人員,你必須了解如何進行貨幣運算,何時使用float,double或者BigDecimal,如何對浮點數(shù)進行舍入運算等等。就算你知道了浮點數(shù)運算的一些基礎(chǔ)知識,讀下這篇文章,你肯定還會學(xué)到一些新的東西。

  1. 每個程序員必知之Unicode篇

字符編碼是另一個許多程序員痛苦掙扎的領(lǐng)域,”每一個程序員都絕對絕對應(yīng)該了解Unicode以及字符集(不許找任何借口!)“填補了這一空白。標(biāo)注一下,是的,這就是這篇文章的標(biāo)題。它是由的創(chuàng)始人之一,Joel Spolsky所寫的。Joel10年前就在他的博客上發(fā)表了這篇文章,不過對于現(xiàn)在而言仍然適用。這篇文章會告訴你什么是Unicode,什么是字符編碼,字符是如何通過字節(jié)來表示的等等。這篇文章最贊的一點就是它的語言及行文,盡管你根本不知道什么是Unicode,你也能夠很容易地看懂。一句話,這又是一篇程序員,碼農(nóng),軟件工程師必讀的文章。

  1. 每個程序員必知之時間篇

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

  1. 每個WEB開發(fā)人員必知之URL編碼篇

這篇文章介紹了Uniform Resource Locator(URL)編碼中的一些常見的誤解,然后試圖闡明什么是HTTP的URL編碼,最后列舉了一些常見的錯誤及解決方案。盡管這篇文章的內(nèi)容并不特定于某種編程語言,但它是用Java來進行問題的描述,并修復(fù)URL編碼中存在的問題。你會學(xué)習(xí)到URL的基礎(chǔ)語法,HTTP及其它協(xié)議中通用的URL格式。這篇文章還介紹了URL中的一些常見錯誤,比如字符編碼,URL不同部分的保留字符,以及URL編解碼問題。如果你是一名Java開發(fā)人員,你會學(xué)習(xí)到如何在Java中正確地處理URL,如何構(gòu)造URL,以及如何使用Apache Common Http client庫。最后它還提供了一些最佳實踐的建議,比如你應(yīng)該在構(gòu)建URL的時候進行編碼,確保你的重寫URL的過濾器正確地處理了URL,等等。這是任何WEB開發(fā)人員必讀的文章 。

  1. 每個程序員必知之WEB開發(fā)

這是programmers.上的一篇非常有趣的文章,它講的是程序員在將網(wǎng)站對外發(fā)布之前需要實現(xiàn)的技術(shù)細(xì)節(jié)。這包括接口設(shè)計及用戶體驗,安全性,WEB標(biāo)準(zhǔn),性能,搜索引擎優(yōu)化(SEO),以及一些重要的資源。當(dāng)今世界嚴(yán)重地依賴于互聯(lián)網(wǎng),很多程序員都有自己的網(wǎng)站,通常是一個博客。這篇文章中學(xué)到的東西可能對你的專業(yè)沒有幫助,但它對你個人的事情肯定會有所幫助。你會了解到一些關(guān)鍵的技術(shù),比如HTML,HTTP,XML,CSS,JavaScript,瀏覽器兼容性,減少網(wǎng)站加載時間的技巧,XML站點地圖,W3C規(guī)范,以及許多其它的關(guān)鍵的細(xì)節(jié)。

  1. 每個程序員必知之SEO

這對WEB開發(fā)人員,程序員,博主而言又是一篇很重要的文章。由于很多程序員同時也是博主,你無法對SEO視而不見,學(xué)一個搜索引擎優(yōu)化的基礎(chǔ)知識還是非常重要的,這能幫助Google檢索到你的內(nèi)容并推薦給其它程序員。在今天這個網(wǎng)絡(luò)互聯(lián)的時代,沒有任何公司可以脫離WEB而存在,SEO變得尤為重要。如果你有一家初創(chuàng)企業(yè)在賣一些產(chǎn)品,那么SEO就是你要關(guān)注的事情。所有程序員,尤其是WEB開發(fā)人員,都可以從這篇文章中受益良多。記住,SEO是一個很寬泛變化的題目,不同的搜索引擎,比如Google,Yahoo等,它們的SEO都各不相同。因此,要想掌握這項技能你得經(jīng)常更新你的知識庫。

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

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

  1. 程序員必知之網(wǎng)絡(luò)

這段話摘自這篇文章,”你是一個程序員。你有想過多玩家的游戲是如何實現(xiàn)的嗎?從外面看起來它是:兩個或多個玩家通過網(wǎng)絡(luò)共享相同的經(jīng)驗,就像他們在同一個虛擬世界中一樣。不過作為程序員,我們知道底下的真相和你看到的東西是有所區(qū)別的。事實上這都只是一個錯覺“。這是篇關(guān)于網(wǎng)絡(luò)的非常有趣的文章,它是為游戲開發(fā)人員而寫的,不過我認(rèn)為每個程序開發(fā)人員都能從中受益。

  1. Java程序員必知之String

這是我自己關(guān)于java.lang.String的一篇文章,我個人認(rèn)為每個Java開發(fā)人員都應(yīng)該了解一下。String在日常的Java開發(fā)中非常重要,這就是為什么每個Java程序員都應(yīng)該對它非常了解。這篇文章涉及到了String的許多重要的領(lǐng)域,包括String池,字符串常量,使用==和equals比較字符串,將字節(jié)數(shù)組轉(zhuǎn)化成String,為什么字符串是不可變的,如何正確拼接字符串,等等。高級程序員應(yīng)該都知道這些東西了,不過回顧一下也是不錯的。

  1. 程序員必知之安全

有一個計算機系的學(xué)生在StackOverFlow上問了這個問題。就像我們了解到的一些常見編程概念比如操作系統(tǒng),算法,數(shù)據(jù)結(jié)構(gòu),計算機體系結(jié)構(gòu),以及其它東西一樣,了解安全也同樣重要。安全是一個很大的話題,包括加密解密,SSL,WEB安全,混淆,認(rèn)證,授權(quán),等等,它是每個程序員都應(yīng)該了解的基礎(chǔ)知識。剛進這行的時候,我個人對安全這塊還不是很了解,這時候我就開始基于Servlet/JSP寫一些的Java WEB程序,后來我才了解到EWB安全性以及一些安全威脅比如SQL注入,拒絕服務(wù),XML注入,跨站腳本,等等。作為一名Java開發(fā)人員,我現(xiàn)在遵循fortify, PMP,以及其它一些靜態(tài)代碼分析器提供的Java安全編碼規(guī)范進行編碼。這篇文章是關(guān)于安全這個主題的一個很好的合集,不管你現(xiàn)在還寫不寫代碼,這些資源對你來說都非常有用。

  1. 程序員必知之延遲時間

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

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

譯注:我覺得還有一個必讀的,就是數(shù)數(shù),這里一共是12篇了。。有幾篇訪問不了的,我也搬運到自己的博客上了。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多