“大多數(shù)優(yōu)秀的程序員從事編程工作,不是因?yàn)槠谕@得報(bào)酬或得到公眾的稱贊,而是因?yàn)榫幊淌羌腥さ氖聝?。?/p>
——林納斯·托瓦茲(Linus Torvalds)
在美國亞馬遜,有一本書的影響力超高的Python入門書,Kindle版本在美國亞馬遜網(wǎng)站的計(jì)算機(jī)軟件、軟件開發(fā)分類中排行均為第一,超越了眾多實(shí)力派Python書,眾多五星好評(píng)。也許你有所耳聞,這本書就是《Python編程無師自通——專業(yè)程序員的養(yǎng)成》
《Python編程無師自通——專業(yè)程序員的養(yǎng)成》作者是一名自學(xué)成才的程序員,作為一名文科生他通過自學(xué)編程,掌握了編程技能并在eBay找到了一份軟件工程師的工作。這本書是作者結(jié)合個(gè)人經(jīng)驗(yàn)寫作而成,旨在幫助讀者從外行成長為一名專業(yè)的Python程序員。
這本書可以滿足幾乎所有想要學(xué)習(xí)編程的初學(xué)者。本書適合高中、大學(xué)階段想要自學(xué)編程的學(xué)生,以及其他行業(yè)想入門編程的人,同時(shí)也適合作為編程入門的培訓(xùn)教材。
《Python編程無師自通——專業(yè)程序員的養(yǎng)成》
作者:[美] 科里?奧爾索夫(Cory Althoff)
作者自述
我畢業(yè)于克萊門森大學(xué)政治學(xué)專業(yè),曾考慮過是否選擇學(xué)習(xí)計(jì)算機(jī)科學(xué)專業(yè),還在大一那年報(bào)名參加了“編程概論”課程,不過很快就退出了。實(shí)在是太難了。畢業(yè)后我一直住在硅谷,我發(fā)現(xiàn)我需要學(xué)習(xí)編程。一年后,我成為了eBay公司的一名中級(jí)軟件工程師。我不想讓大家覺得這是很輕松就能做到的。實(shí)際上,這是極具挑戰(zhàn)的一件事。在這一年的不斷嘗試努力過程中,我得到了很多樂趣。
剛開始,很多人學(xué)習(xí)的是如何用流行的編程語言Python來進(jìn)行編程。但是本書不僅是教你如何使用某種特定的語言編程,還會(huì)介紹標(biāo)準(zhǔn)教材中所不包括的其他所有知識(shí)點(diǎn)。本書分享的是我在成為軟件工程師過程中不得不自學(xué)的內(nèi)容。不管你的目標(biāo)是成為一名軟件工程師、企業(yè)家,還是在其他的崗位上使用編程技能,你都是本書的目標(biāo)讀者。
學(xué)會(huì)一門編程語言還不夠,你還需要學(xué)會(huì)其他技能,才能像計(jì)算機(jī)科學(xué)家一樣地工作。我會(huì)教授大家我從編程新手到專業(yè)軟件工程師過程中學(xué)到的一切。我寫是為了向有志于編程崗位的人分享他們需要掌握的知識(shí)框架。編程概論的書籍都大同小異——用Python或Ruby介紹編程的基礎(chǔ)知識(shí),然后就讓你自己摸索。我經(jīng)常從讀完類似書籍的朋友那聽到這樣的反饋:我現(xiàn)在該做什么?我還不是一名程序員,也不知道下一步該學(xué)什么。
本書,就是我給出的答案。
本書結(jié)構(gòu)
本書中涵蓋很多主題,作者的目標(biāo)不是包羅你需要了解的每個(gè)主題的所有細(xì)節(jié),而是提供一份指引——一個(gè)編程職業(yè)發(fā)展所需要的所有技能的導(dǎo)覽。
▌第一部分:編程簡(jiǎn)介。讓你盡快寫出自己的第一個(gè)程序,最好在今天。
▌第二部分:面向?qū)ο缶幊毯?jiǎn)介。這部分將介紹不同的編程范式,著重闡述面向?qū)ο缶幊獭D銜?huì)開發(fā)一個(gè)游戲,體會(huì)編程的強(qiáng)大能力。讀完這部分后你會(huì)沉迷于編程。
▌第三部分:編程工具簡(jiǎn)介。將介紹提升編程生產(chǎn)力的不同工具。這時(shí),你已經(jīng)沉迷于編程,并希望變得更好。你將會(huì)學(xué)習(xí)相關(guān)的操作系統(tǒng)、使用正則表達(dá)式提升效率、安裝并管理他人的程序,以及使用版本控制與其他工程師協(xié)作的知識(shí)。
▌第四部分:計(jì)算機(jī)科學(xué)簡(jiǎn)介。將簡(jiǎn)要介紹計(jì)算機(jī)科學(xué)知識(shí),主要涵蓋兩個(gè)主題——算法和數(shù)據(jù)結(jié)構(gòu)。
▌第五部分:找到工作。最后一部分是關(guān)于最佳編程實(shí)踐,如何找到軟件工程師的工作,團(tuán)隊(duì)協(xié)作以及程序員的自我提升。本文會(huì)分享如何通過技術(shù)面試與團(tuán)隊(duì)協(xié)作的建議,以及如何進(jìn)一步提升自己的技能。
從終點(diǎn)出發(fā)
一般來說,你會(huì)先花很多時(shí)間學(xué)習(xí)理論,理論知識(shí)學(xué)的太多以至于許多計(jì)算機(jī)科學(xué)的畢業(yè)生甚至不知道如何動(dòng)手編程。杰夫·阿特伍德(Jeff Atwood),在其博客“為什么程序員不會(huì)編程”中寫道:“和我一樣,許多人都碰到了這樣的情況,編程崗位的200位申請(qǐng)者中,有199個(gè)根本不會(huì)寫代碼。重申一遍:他們一點(diǎn)代碼都不會(huì)寫。”這種現(xiàn)象直接促使Atwood發(fā)明了FizzBuzz代碼挑戰(zhàn),一種用來在面試中篩選申請(qǐng)者的編程測(cè)試。大部分人都通不過測(cè)試,這也是為什么你要學(xué)習(xí)本書并掌握實(shí)踐中要使用到技能。
《王者之旅》電影中的主角喬什(Josh Waitzkin),在《學(xué)習(xí)的藝術(shù)》一書中回憶了他如何反向?qū)W習(xí)國際象棋。他沒有和其他人一樣研究開局,而是從學(xué)習(xí)象棋殘局。這樣做讓他對(duì)國際象棋有了更深的理解,并贏得了多次大賽冠軍。與此類似,先學(xué)習(xí)如何編程再學(xué)習(xí)理論的方法更高效,因?yàn)槟銜?huì)擁有了解背后原理的強(qiáng)烈驅(qū)動(dòng)。雖然理論很重要,但是在你擁有了編程經(jīng)驗(yàn)之后,理論的價(jià)值才更大。
《王者之旅》電影截圖
你不是一個(gè)人在戰(zhàn)斗
畢業(yè)后再學(xué)習(xí)編程,已經(jīng)越來越常見。Stack Overflow(一個(gè)程序員在線社區(qū))在2015年的一份調(diào)查中顯示,48%的受訪者不是計(jì)算機(jī)專業(yè)卻從事編程職業(yè)。
自學(xué)的優(yōu)勢(shì)
在eBay工作期間,作者的團(tuán)隊(duì)中有從斯坦福大學(xué)、加州大學(xué)和杜克大學(xué)計(jì)算機(jī)科學(xué)專業(yè)畢業(yè)的程序員,還有兩名物理學(xué)博士。當(dāng)時(shí)他25歲,而年僅21歲的同事對(duì)編程和計(jì)算機(jī)科學(xué)的知識(shí)比其強(qiáng)10倍這個(gè)事實(shí),讓作者尤其惶恐。
雖然與擁有計(jì)算機(jī)科學(xué)學(xué)士、碩士甚至是博士學(xué)位的同事一起工作的壓力很大,但別忘記了你還有“自學(xué)的優(yōu)勢(shì)”。你選擇讀本文,不是出于老師布置的任務(wù),而是因?yàn)槟銉?nèi)心學(xué)習(xí)的渴望,這一點(diǎn)是你所擁有的最大優(yōu)勢(shì)。蘋果公司的創(chuàng)始人斯蒂夫·沃茲尼亞克(Steve Wozniak)就是一位自學(xué)成才的程序員;還有因在美國宇航局的阿波羅登月計(jì)劃中做出卓越貢獻(xiàn)而獲得總統(tǒng)自由勛章的瑪格麗特·漢密爾頓(Margaret Hamilton);還有Tumblr 的創(chuàng)始人大衛(wèi)·卡普(David Karp),Twitter的創(chuàng)始人杰克·多西(Jack Dorsey),Instagram 的創(chuàng)始人凱文·斯特羅姆(Kevin Systrom),他們都是自學(xué)成才的程序員。
為什么應(yīng)該編程
不管你從事什么工作,編程都有助于你的職業(yè)發(fā)展。學(xué)習(xí)編程將給你自己賦能。你喜歡嘗試新想法,時(shí)刻都有希望啟動(dòng)的新項(xiàng)目。學(xué)會(huì)編程后,你就可以坐下來自己實(shí)現(xiàn),而不需要依賴他人。
編程也會(huì)提升你在其他方面的技能。因?yàn)槟闶炀氄莆樟藛栴}解決能力,鮮有其他工作不會(huì)因此而受益。如我最近要在網(wǎng)上租房,搜索并篩選房子是個(gè)非常費(fèi)力的活兒。但是我寫了一個(gè)程序來代替我搜索,最后將結(jié)果以郵件形式發(fā)送給我。學(xué)會(huì)編程,將把你從重復(fù)性工作中解放出來。
如果你想成為軟件工程師,市場(chǎng)上對(duì)這類崗位的需求也日益增長,但是符合要求的候選者卻總是供不應(yīng)求。到2020年,預(yù)計(jì)將有一百萬個(gè)編程崗位空缺。即使你的目標(biāo)不是成為軟件工程師,科學(xué)和金融等領(lǐng)域的崗位也開始傾向那些擁有編程經(jīng)驗(yàn)的申請(qǐng)者。
堅(jiān)持不懈
如果你之前沒有任何編程經(jīng)驗(yàn),擔(dān)心自己無法勝任編程工作,但是你要相信自己:你完全有能力做到。人們對(duì)程序員有一些常見的誤解,比如程序員都得擅長數(shù)學(xué)。這是錯(cuò)誤的印象,不過編程確實(shí)是一件困難的工作。幸運(yùn)的是,本書涵蓋的內(nèi)容將讓這一切變得比你想象得更加容易。
為了提高編程技巧,你應(yīng)該每天練習(xí)編程。擋在你面前的唯一障礙就是無法堅(jiān)持,所以我們要采取一些措施確保自己能夠堅(jiān)持不懈。準(zhǔn)備一張檢查清單,來確保每天都有做練習(xí),而且也能夠幫助你保持專注。
如果你還需要其他幫助,效率專家Tim Ferris建議采用如下技巧來保持驅(qū)動(dòng)力。事先給家人或朋友一筆錢,如果你在規(guī)定的時(shí)間內(nèi)完成了目標(biāo),就讓他們把錢還給你,否則就將錢捐獻(xiàn)給你討厭的機(jī)構(gòu)。
本書使用的技術(shù)
為了讓讀者盡可能的積累編程經(jīng)驗(yàn),書中會(huì)介紹多種技術(shù)。在某些情況下,必須在許多不同的技術(shù)中做出選擇。我們將會(huì)學(xué)習(xí)Git的基礎(chǔ)知識(shí)。Git是一個(gè)流行的版本控制系統(tǒng),選擇介紹Git是因?yàn)楣P者認(rèn)為它已經(jīng)成為版本控制的業(yè)界標(biāo)準(zhǔn)。書中用Python來編寫大部分的編程示例,因?yàn)樗且婚T很流行的初學(xué)者語言,而且即使從來沒有使用過Python的人學(xué)習(xí)起來也比較簡(jiǎn)單。此外,目前幾乎每個(gè)領(lǐng)域?qū)ython開發(fā)者的需求都非常大。不過,會(huì)盡量做到內(nèi)容與技術(shù)無關(guān)——注重概念,而非技術(shù)本身。
-
軟件開發(fā)
+關(guān)注
關(guān)注
0文章
622瀏覽量
27384 -
編程
+關(guān)注
關(guān)注
88文章
3634瀏覽量
93866 -
python
+關(guān)注
關(guān)注
56文章
4802瀏覽量
84885
原文標(biāo)題:美亞Kindle排名第一的Python 3入門書,火遍了整個(gè)編程圈
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論