給新手程序員的一封信

發(fā)布時(shí)間:2011-6-14 13:44    發(fā)布者:諸葛孔明
關(guān)鍵詞: 程序員 , 新手
首先,歡迎來(lái)到程序員的世界。在這個(gè)世界上,不是有很多人想創(chuàng )造軟件并解決問(wèn)題。你是一名hacker,屬于那些愿意做一些有挑戰性的事情的人。
  
“當你不創(chuàng )造東西時(shí),你只會(huì )根據自己的感覺(jué)而不是能力去看待問(wèn)題! – WhyTheLuckyStiff
  
對于下面的文字你不必完全接受,所有這些來(lái)自一個(gè)其貌不揚的程序員。我喜歡把事情做到最好,而不是對原來(lái)的東西修修補補。
  
僅僅是因為愛(ài)好開(kāi)始做一些創(chuàng )新,這是一個(gè)很好的開(kāi)始!如果你說(shuō)“我要先學(xué)習一下再開(kāi)始做”那么你永遠不會(huì )真正開(kāi)始。每個(gè)人都需要從某個(gè)地方開(kāi)始,所以現在打開(kāi)你的編輯器開(kāi)始寫(xiě)代碼吧。
  
下面是一些很重要的建議,雖然有人并不認同,但我保證你看完我的分析以后會(huì )站在我這一邊。一開(kāi)始,先不要管算法和數據結構。大多數簡(jiǎn)單的程序不需要用到算法和數據結構,所以當你真正需要時(shí)再去學(xué)習。編程一段時(shí)間以后,你就會(huì )知道在哪些地方用到他們。這時(shí)知道算法的名字并了解它們的功能,然后找一些相關(guān)的論文去理解算法并動(dòng)手編程實(shí)踐。如果沒(méi)有現成的函數庫(其他程序員提供的可重用代碼),你用自己喜歡的編程語(yǔ)言來(lái)實(shí)現它。

0. 選擇一門(mén)好的編程語(yǔ)言,一門(mén)你自認為可以用它快速地做出一些有用東西的語(yǔ)言。
  
不要選擇C語(yǔ)言作為你第一門(mén)編程語(yǔ)言。也許選擇C語(yǔ)言會(huì )給你一種過(guò)時(shí)的滿(mǎn)足感。雖然它比早期的匯編語(yǔ)言提供了更好語(yǔ)法描述,但是今天C(或者C++)不是能夠快速編寫(xiě)軟件的語(yǔ)言。毫不偏袒的說(shuō),我建議你學(xué)習一種動(dòng)態(tài)語(yǔ)言。選擇一種你覺(jué)得語(yǔ)法(文檔)讓你使用起來(lái)更舒服的編程。為此,你可能需要花費一些時(shí)間來(lái)在幾種不同的語(yǔ)言之間進(jìn)行比較。這么做目的不是為了讓你感覺(jué)更好或者讓編程更容易。更快地完成自己的作品并且能夠看到成果,才是激勵你編程的源動(dòng)力。不要選擇一門(mén)需要某種重量級的IDE(IDE是一種能夠幫助你編寫(xiě)并運行代碼的工具)才能輕松編程的語(yǔ)言。你所需要的僅僅是一個(gè)文本編輯器。(注:原文并沒(méi)有標號,是我們加上的,請大家別忘記了哦,我們是從零開(kāi)始數數的。
  
1. 選擇一個(gè)好的編輯器。
  
編輯器對程序員而言,就是像是弓對弓箭手一樣重要。這里有一些推薦的編輯器:

  • SublimeText 2 – 如果你剛開(kāi)始編程,推薦使用SublimeText 2
  • Emacs – 學(xué)習曲線(xiàn)陡峭,快捷鍵復雜。如果你想定制自己的使用習慣,需要學(xué)習Emacs Lisp.
  • Vim – 不僅操作簡(jiǎn)潔而且它默認包含在linux的發(fā)行版中,所以深受大家歡迎。我開(kāi)始使用了2年Emacs。由于Emacs的快捷鍵操作過(guò)于復雜,我的雙手開(kāi)始經(jīng)常疼痛,這迫使我轉向了Vim陣營(yíng)。了解Vim的快捷鍵是非常有必要的。當你在遠程的服務(wù)器上編輯代碼時(shí),你唯一不需要安裝的編輯器就是Vim。
  
注意!Emacs和Vim可能已經(jīng)成為成為古董了。但是,它們都具備一些現代編輯器多不具備的功能。
  
2. 選擇一個(gè)你可以從中學(xué)到東西的操作系統
  
Windows不會(huì )教會(huì )你任何東西。使用Windows你唯一學(xué)會(huì )的就是打開(kāi)一個(gè)exe(可執行)文件來(lái)安裝軟件和使用它?赡軇傞_(kāi)始的時(shí)候你會(huì )覺(jué)得很酷,但是長(cháng)遠來(lái)看,如果你立志成為一個(gè)web開(kāi)發(fā)人員,可能還是要具備基本的linux知識,尤其是當你要發(fā)布程序的時(shí)候。Linux也允許你根據自己的要求來(lái)定制程序。Macs也很酷,但是我認為你現在經(jīng)濟上還負擔不起。
  
3. 不要通過(guò)復制粘貼來(lái)做備份
  
一個(gè)新手程序員通常會(huì )把文件復制粘貼到一個(gè)臨時(shí)目錄下面來(lái)進(jìn)行備份。這也許也是他們唯一知道的方法。不要那么做!你需要使用版本控制軟件。我強烈推薦使用Git,它是個(gè)目前很流行的版本控制工具,而且使用起來(lái)非常簡(jiǎn)單。對一個(gè)Git新手,有一個(gè)良好的社區和很多參考資源來(lái)學(xué)習。(除了Git之外,還有mercurial, darcs, fossil等等。但是我還是建議從Git開(kāi)始,我有很多的理由來(lái)支持Git,這里就不多費口舌了。)
  
4. 知道去哪里尋求幫助
  
參加一個(gè)和你相關(guān)的(你使用編程工具相關(guān)的)程序員社區。比如StackOverflow就是程序員的Facebook。那里沒(méi)有消息狀態(tài)和回復,取而代之的是問(wèn)題和答案。除此之外還要學(xué)會(huì )使用IRC。IRC是一種老式的聊天室,現在還在被大多數開(kāi)發(fā)人員用來(lái)分享技術(shù)信息和幫助解決問(wèn)題。
  
5. 培養你的禮儀
  
知道什么時(shí)候問(wèn)問(wèn)題。你遇到的大多數問(wèn)題都是別人碰到過(guò)并且在Internet上能夠找到解答的。在IRC或者任何論壇里發(fā)問(wèn)之前,先搜索一下google(或者blekko)來(lái)看看是不是有現成的答案。在IRC上問(wèn)問(wèn)題需要有耐心。永遠記住,人們只是處于好心來(lái)免費幫助你。有時(shí)你發(fā)問(wèn)以后需要幾個(gè)小時(shí)才能有回復。所以,耐心等待。除此之外,記得問(wèn)問(wèn)題的時(shí)候要禮貌。世界很小,你怎么對待別人,別人就會(huì )怎么對待你。
  
6. 結交朋友,技術(shù)書(shū)籍只能教你解決常見(jiàn)的問(wèn)題(他們說(shuō):書(shū)是死的)
  
當你在搗鼓一些程序或者從程序的作者那里學(xué)習,你能學(xué)到一些書(shū)本上沒(méi)有的東西。當你散步的時(shí)候,請和遇到的朋友打招呼。你肯定不是唯一的程序員。和其他的程序員一起交朋友一起工作。你會(huì )注意到,當一群技術(shù)愛(ài)好者在一起的時(shí)候,不論話(huà)題是從什么地方開(kāi)始,最后總是以技術(shù)話(huà)題收尾。這是必然的現象。所以你可以盡情參與。在你的黃金年齡努力編程,我能告訴你的是,我在開(kāi)始6年前尋找朋友并開(kāi)始討論編程,從那時(shí)起才學(xué)到那些書(shū)本和文章不會(huì )我的東西。所以我總是說(shuō),我的編程經(jīng)驗有6年,因為只有那個(gè)時(shí)候開(kāi)始,我才開(kāi)始與人交流并開(kāi)始感覺(jué)真正地開(kāi)始學(xué)習編程。
  
7. 參加開(kāi)源項目
  
為開(kāi)源項目編寫(xiě)代碼能帶來(lái)回報。這不僅僅是幫助別人,你留下的代碼會(huì )被其他人使用或(可能)改進(jìn)。當別人給你的代碼添加功能或者提出修改意見(jiàn)時(shí),也是在提高你的編程水平。開(kāi)源軟件項目不一定要是一個(gè)大工程,編寫(xiě)一個(gè)下載youtube視頻的小程序也是很有用的。更重要的是,你會(huì )驚奇地發(fā)現你編寫(xiě)的代碼會(huì )成為與他人有效溝通的橋梁。
  
最后,若干年之后如果本文的內容曾經(jīng)對你有一點(diǎn)點(diǎn)的幫助,作為回報請寫(xiě)一封類(lèi)似的信給希望開(kāi)始編程并不知如何入手的朋友,有可能的話(huà)請糾正本文中過(guò)時(shí)的內容。
  
智者說(shuō)過(guò),掌握某個(gè)東西需要10年或10000個(gè)小時(shí),也就是漢語(yǔ)中的“十年磨一劍”,所以不用著(zhù)急。
本文地址:http://selenalain.com/thread-68507-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
王興梅 發(fā)表于 2011-7-10 16:05:19
好!
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页