最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

學(xué)計(jì)算機(jī)必看:程序員部落酋長(zhǎng),給計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的 6 個(gè)建議!

2020-08-04 17:01 作者:C語(yǔ)言編程__Plus  | 我要投稿

如果你喜歡編程,那么你真是受到了上天的眷顧。你是非常幸運(yùn)的少數(shù)人之一,能夠以自己喜歡的事謀生。大多數(shù)人沒(méi)有這么幸運(yùn)。你認(rèn)為理所當(dāng)然的觀念“熱愛(ài)你的工作”,其實(shí)是一個(gè)很現(xiàn)代的概念。通常的看法是,工作是一種讓人很不開(kāi)心的事,你為了拿工資才不得不去上班。

你工作的目的是為了攢下錢(qián)去干那些自己真正喜歡干的事,但是前提是你得等到65歲退休之后才行,而且還有不少條件。條件一,你的積蓄必須足夠多;條件二,你沒(méi)有老到走不動(dòng),你還有體力去干那些事情;條件三,你喜歡的事情不需要用到脆弱的膝蓋、昏花的視力,也不要求你走上一里地不喘氣,等等。

我剛才說(shuō)到哪里了?對(duì)了,我要提建議。

畢業(yè)前練好寫(xiě)作

如果不是Linus Torvalds不斷地散布福音,請(qǐng)問(wèn)Linux操作系統(tǒng)會(huì)成功嗎?雖然他是一個(gè)非常聰明的計(jì)算機(jī)天才,但是Linux吸引來(lái)全世界一大批志愿者的真正原因卻是Linus Torvalds的表達(dá)能力。他通過(guò)電子郵件和郵件列表用書(shū)面形式傳播自己的想法,最終引起了所有人的注意。

你聽(tīng)說(shuō)過(guò)現(xiàn)在風(fēng)靡一時(shí)的“極限編程”(Extreme Programming)嗎?我在這個(gè)地方不談我對(duì)極限編程的看法,我只說(shuō)如果你聽(tīng)過(guò)這個(gè)詞,那么原因就是它的倡導(dǎo)者都是一些非常有才華的作家和演說(shuō)家。

即使我們縮小范圍,將目光局限在任何一個(gè)軟件開(kāi)發(fā)團(tuán)體中,你也會(huì)發(fā)現(xiàn)該團(tuán)體中最有權(quán)勢(shì)和影響力的程序員正是那些表達(dá)能力強(qiáng)的程序員,他們無(wú)論是做書(shū)面表達(dá)還是做口頭表達(dá),都能夠清晰、自如、具有說(shuō)服力地傳達(dá)觀點(diǎn)。此外,長(zhǎng)得高也有助于提升影響力,不過(guò)這個(gè)不取決于你。

一個(gè)普通程序員與一個(gè)優(yōu)秀程序員的區(qū)別,不在于他們懂得的編程語(yǔ)言誰(shuí)多誰(shuí)少,也不在于他們喜歡用Python語(yǔ)言還是喜歡用Java語(yǔ)言,而在于他們能否與他人交流思想。如果你能說(shuō)服其他人,你的力量就可以得到放大。如果你能寫(xiě)出清晰的注釋和技術(shù)規(guī)格說(shuō)明書(shū),其他程序員就能夠理解你的代碼,因此他們就能在自己的代碼中使用,而不必重寫(xiě)。如果你做不到這一點(diǎn),你的代碼對(duì)其他人就沒(méi)有價(jià)值。如果你能為最終用戶寫(xiě)出清晰的使用手冊(cè),其他人就能明白你的代碼是用來(lái)干什么的,這是唯一讓別人明白你的代碼有何價(jià)值的方法。SourceForge[ ]上有許多優(yōu)美的、有用的代碼,但是它們都像被埋葬了一樣,根本沒(méi)人來(lái)用,原因就是它們的作者沒(méi)有寫(xiě)好使用說(shuō)明(或者壓根就沒(méi)寫(xiě))。這樣一來(lái)就沒(méi)有人知道他們的成果,他們杰出的代碼就衰亡了。

如果一個(gè)程序員不會(huì)用英語(yǔ)寫(xiě)作、沒(méi)有良好的寫(xiě)作能力,我就不會(huì)雇他。如果你能寫(xiě),不管你去哪家公司工作,你很快就會(huì)發(fā)現(xiàn)寫(xiě)作技術(shù)文檔的任務(wù)會(huì)落到你頭上,這意味著你已經(jīng)開(kāi)始在放大自己的影響力了,管理層正在注意到你。

大學(xué)里有些課程被公認(rèn)為“寫(xiě)作密集型”(writing intensive)課程,這就是說(shuō)為了拿到學(xué)分,你必須寫(xiě)作多得可怕的文字。一定要去上這樣的課程!不要管學(xué)科,只要這門(mén)課每周甚至每天都要你寫(xiě)東西,你就去上。

你還可以動(dòng)手寫(xiě)日記或者網(wǎng)志。你寫(xiě)得越多,寫(xiě)作就會(huì)變得越容易。寫(xiě)起來(lái)越容易,你就會(huì)寫(xiě)得越多。這是一個(gè)良性循環(huán)。

畢業(yè)前學(xué)好C語(yǔ)言

第二點(diǎn)我要講的是C語(yǔ)言。請(qǐng)注意,我說(shuō)的是C語(yǔ)言,而不是C++。雖然在實(shí)際使用中C語(yǔ)言已經(jīng)越來(lái)越罕見(jiàn),但是它仍然是當(dāng)前程序員的共同語(yǔ)言。C語(yǔ)言讓程序員互相溝通,更重要的是,它比你在大學(xué)中學(xué)到的“現(xiàn)代語(yǔ)言”(比如ML語(yǔ)言、Java語(yǔ)言、Python語(yǔ)言或者其它正在教授的流行垃圾語(yǔ)言)都更接近機(jī)器。你至少需要花一個(gè)學(xué)期來(lái)了解機(jī)器原理,否則你永遠(yuǎn)不可能在高級(jí)語(yǔ)言的層次寫(xiě)出高效的代碼。你也永遠(yuǎn)無(wú)法開(kāi)發(fā)編譯器和操作系統(tǒng),而它們恰恰屬于目前程序員能夠得到的最佳工作之列。別人也永遠(yuǎn)不會(huì)放心將大型項(xiàng)目的架構(gòu)設(shè)計(jì)交給你。我不管你懂多少延續(xù)(continuation)、閉包(closure)、異常處理(exception handling),只要你不能解釋為什么while (?s++ =?t++);這句代碼的作用是復(fù)制字符串,或者不覺(jué)得這是世界上對(duì)你來(lái)說(shuō)再自然不過(guò)的事情,那么你就是在盲目無(wú)知的情況下編程。在我看來(lái),這就好像一個(gè)醫(yī)生不懂得最基本的解剖學(xué)就在開(kāi)處方,他看病的根據(jù)完全是因?yàn)槟切┩尥弈樀尼t(yī)藥廠商銷(xiāo)售代表說(shuō)這種藥有用。

畢業(yè)前學(xué)好微觀經(jīng)濟(jì)學(xué)

如果你沒(méi)有上過(guò)任何經(jīng)濟(jì)學(xué)課程,那么我首先來(lái)做一個(gè)超短的評(píng)論:經(jīng)濟(jì)學(xué)是這樣的學(xué)科之一,剛開(kāi)始學(xué)的時(shí)候轟轟烈烈,有許多有用的、言之有理的理論和可以在真實(shí)世界中得到證明的事實(shí),等等;但是,再學(xué)下去就每況愈下,有用的東西就不多了。經(jīng)濟(jì)學(xué)一開(kāi)始那個(gè)有用的部分正是微觀經(jīng)濟(jì)學(xué),它是商業(yè)領(lǐng)域所有重要理論的基礎(chǔ)。跟在微觀經(jīng)濟(jì)學(xué)后面的東西就不行了。你接下來(lái)學(xué)的是宏觀經(jīng)濟(jì)學(xué),如果你愿意,盡管跳過(guò)去,也不會(huì)有什么損失。宏觀經(jīng)濟(jì)學(xué)開(kāi)頭的部分是利息理論,內(nèi)容比方說(shuō)是利率與失業(yè)之間的關(guān)系,但是怎么說(shuō)呢,看上去這部分里面還沒(méi)有被證實(shí)的東西多于已經(jīng)被證實(shí)的東西。學(xué)完這部分,后面的內(nèi)容越來(lái)越糟糕,許多經(jīng)濟(jì)學(xué)專(zhuān)業(yè)的學(xué)生實(shí)際上都變成在搞物理學(xué),因?yàn)檫@樣才能在華爾街上找到更好的工作。但是不管怎樣,你一定要去學(xué)微觀經(jīng)濟(jì)學(xué),因?yàn)槟惚仨毟愣┙o和需求,你必須明白競(jìng)爭(zhēng)優(yōu)勢(shì),你必須理解什么是凈現(xiàn)值(NPV),什么是貼現(xiàn),什么是邊際效用。只有這樣,你才會(huì)懂得為什么生意是現(xiàn)在這種做法。

為什么計(jì)算機(jī)系的學(xué)生也應(yīng)該學(xué)經(jīng)濟(jì)學(xué)?因?yàn)?,從?jīng)營(yíng)一家公司的角度來(lái)看,比起那些不懂的程序員,一個(gè)理解基本商業(yè)規(guī)則的程序員將會(huì)更有價(jià)值。就是這么簡(jiǎn)單。我無(wú)法告訴你有多少次我是那樣地充滿挫折感,因?yàn)槲铱吹搅颂嗟奶岢鲆恍┋偪竦南敕ǖ某绦騿T,這些想法在代碼上也許可行,但在資本主義世界中毫無(wú)意義。如果你懂得商業(yè)規(guī)則,你就是一個(gè)更有價(jià)值的程序員,你會(huì)因此得到回報(bào)的,但是前提是你要去學(xué)習(xí)微觀經(jīng)濟(jì)學(xué)。

不要因?yàn)榭菰锞筒贿x修非計(jì)算機(jī)專(zhuān)業(yè)的課程

想提高GPA績(jī)點(diǎn)的一個(gè)好方法就是多選修非計(jì)算機(jī)系的課程。請(qǐng)千萬(wàn)不要低估你的GPA的重大意義。千千萬(wàn)萬(wàn)的人事經(jīng)理和招聘人員在拿到一份簡(jiǎn)歷的時(shí)候,第一眼就會(huì)去看GPA,包括我也是這樣。我們不會(huì)為這種做法道歉。為什么?因?yàn)镚PA不反映單個(gè)的成績(jī),而是代表了許多個(gè)教授在一段很長(zhǎng)的時(shí)間中,在不同的情況下,對(duì)你的表現(xiàn)的一個(gè)總的評(píng)估。SAT成績(jī)難道不夠嗎?哈,那只不過(guò)是一場(chǎng)幾個(gè)小時(shí)的測(cè)試罷了。GPA中包括了四年大學(xué)期間你的小論文、期中考試和課堂表現(xiàn),總數(shù)有幾百次之多。當(dāng)然,GPA也有自己的問(wèn)題,不是百分之百準(zhǔn)確。比如,這些年來(lái),老師對(duì)學(xué)生的打分越來(lái)越寬松,學(xué)習(xí)成績(jī)有通貨膨脹的趨勢(shì)。再比如,GPA無(wú)法反映課程的難度,沒(méi)人能夠看出你的GPA是來(lái)自無(wú)名社區(qū)大學(xué)家政系的輕松課程還是來(lái)自加州理工學(xué)院針對(duì)研究生的量子力學(xué)課程。漸漸地,我形成了一套自己的做法,首先我會(huì)過(guò)濾掉所有來(lái)自社區(qū)大學(xué)、GPA低于2.5的簡(jiǎn)歷,然后我會(huì)要求剩下的人給我寄成績(jī)單和推薦信。我再?gòu)闹邪l(fā)現(xiàn)那些成績(jī)一貫優(yōu)秀的人,而不是那些僅僅在計(jì)算機(jī)系課程中得到高分的人。

為什么我要關(guān)心某人的“歐洲歷史”課程成績(jī)呢,畢竟作為雇主我要找的應(yīng)該是程序員???何況,歷史是那么枯燥,不得高分很正常。哦,這么說(shuō)來(lái),你的意思是我應(yīng)該雇用你,而不用考慮一旦工作變得枯燥你會(huì)不會(huì)努力工作?別忘了,在編程工作中也有很枯燥的東西。每一項(xiàng)工作都有枯燥難耐的時(shí)刻。我不想雇用那些只想干有趣事情的人。

選修有大量編程實(shí)踐的課程

我依然清楚記得我發(fā)誓絕不讀研究生的那一刻。那是在一門(mén)叫做“動(dòng)態(tài)邏輯”的課程上,教師是活力十足的耶魯大學(xué)教授Lenore Zuck,她是計(jì)算機(jī)系那些聰明的老師中最聰明的人之一。

如今, 由于記憶力糟糕, 我已經(jīng)差不多把這門(mén)課的內(nèi)容忘光了,但是不管怎么說(shuō),在這里我還是想要對(duì)付著說(shuō)一下。大致上,形式邏輯的意思是說(shuō),如果條件成立,你就能證明結(jié)論也成立。比如,根據(jù)形式邏輯,已知“只要成績(jī)好,就能被雇用”,然后假定“Johnny的成績(jī)好”,你就可以得到一個(gè)嶄新的結(jié)論“Johnny會(huì)被雇用”。這完全是經(jīng)典方法。但是,一個(gè)解構(gòu)主義者(deconstructionist)只需要10秒鐘就能破壞形式邏輯中所有有用的東西。這樣一來(lái),留給你的只是一些趣味性,而不是實(shí)用性。

現(xiàn)在再來(lái)說(shuō)動(dòng)態(tài)邏輯。它與形式邏輯其實(shí)是一回事,但是必須再多考慮時(shí)間因素。比如,“你打開(kāi)燈之后,就能看見(jiàn)自己的鞋子”,已知“燈以前是亮的”,那么這就意味著“你看見(jiàn)了自己的鞋子”。

對(duì)于像Zuck教授那樣聰明的理論家,動(dòng)態(tài)邏輯充滿了吸引力,因?yàn)樗瓷先ズ苡邢M屇阍谛问缴献C明一些計(jì)算機(jī)程序的相關(guān)理論問(wèn)題。這樣做說(shuō)不定很有用。比如,你可以用它在形式上證明,火星漫游車(chē)的閃存卡不會(huì)發(fā)生溢出(overflow)問(wèn)題,不會(huì)因而整天一遍又一遍地重啟,耽誤了它在那顆赤紅色的星球上漫游尋找火星人馬文(Marvin the Martian)。

在第一堂課上,Zuck博士寫(xiě)滿了整整兩面黑板,甚至黑板旁邊的墻上都寫(xiě)上了很多證明步驟。需要證明的問(wèn)題是,有一個(gè)控制燈泡的開(kāi)關(guān),現(xiàn)在燈泡沒(méi)有亮,這時(shí)你打開(kāi)了開(kāi)關(guān),請(qǐng)證明燈泡將會(huì)點(diǎn)亮。

整個(gè)證明過(guò)程復(fù)雜得不可思議,處處都是陷阱,必須十分小心。保證這個(gè)證明不出錯(cuò)太困難了,還不如直接相信打開(kāi)開(kāi)關(guān)燈就會(huì)亮。真的,雖然證明過(guò)程寫(xiě)滿了許多塊黑板,但是還是有許多中間步驟被省略了,因?yàn)槿绻獜男问竭壿嬌贤暾C明所有步驟,那就瑣碎得無(wú)法形容了。許多步驟是用各種經(jīng)典的邏輯證明方法推導(dǎo)得到的,包括歸納法、反證法等,甚至有些部分還是由旁聽(tīng)的研究生證明的。

留給我們的課后作業(yè)是證明逆命題:如果燈原來(lái)是關(guān)著的,現(xiàn)在卻亮了,那么請(qǐng)證明開(kāi)關(guān)的狀態(tài)一定同原來(lái)相反。

我動(dòng)手開(kāi)始證明,我真的去證明了。

我在圖書(shū)館里待了很長(zhǎng)時(shí)間。

我對(duì)照著Zuck博士的原始證明想依樣畫(huà)葫蘆。研究了幾個(gè)小時(shí)之后,我在其中發(fā)現(xiàn)了一個(gè)錯(cuò)誤??赡芪页瓕?xiě)的時(shí)候抄錯(cuò)了,但是這使得我想通了一件事。如果花費(fèi)3個(gè)小時(shí),寫(xiě)滿了一塊又一塊的黑板,每一秒鐘都可能出錯(cuò),最后能夠證明的卻只是一個(gè)很瑣碎的結(jié)論,那么這種方式有多大的實(shí)用性呢?在活生生、充滿趣味的現(xiàn)實(shí)世界中,你永遠(yuǎn)都不會(huì)有機(jī)會(huì)使用它。


但是,動(dòng)態(tài)邏輯的理論家們對(duì)這一點(diǎn)不感興趣。他們看上它不是因?yàn)樗杏?,而是因?yàn)樗梢詾樗麄儙?lái)終身教職。

我放棄了這門(mén)課,并且發(fā)誓絕不會(huì)去讀計(jì)算機(jī)科學(xué)的研究生。

這個(gè)故事告訴我們,計(jì)算機(jī)科學(xué)與軟件開(kāi)發(fā)不是一回事。如果你真的非常幸運(yùn),你的學(xué)??赡軙?huì)開(kāi)設(shè)很像樣的軟件開(kāi)發(fā)課程。但是另一種可能是,你的學(xué)校根本不教你在現(xiàn)實(shí)中如何編程,因?yàn)榫W(xué)校都覺(jué)得,教授工作技能最好留給職業(yè)技術(shù)學(xué)校、犯人重返社會(huì)的培訓(xùn)項(xiàng)目去做。你到處都能學(xué)怎么寫(xiě)代碼。別忘了,我們是耶魯大學(xué),我們的使命是培養(yǎng)未來(lái)的世界領(lǐng)袖。你交了16萬(wàn)美元的學(xué)費(fèi),卻在學(xué)循環(huán)語(yǔ)句的寫(xiě)法,這怎么可以?你以為這是什么地方,難道是機(jī)場(chǎng)沿途的酒店里臨時(shí)拼湊起來(lái)不靠譜的Java語(yǔ)言培訓(xùn)班?哼哼。

麻煩在于我們沒(méi)有一種真正教授軟件開(kāi)發(fā)的專(zhuān)門(mén)學(xué)校。你如果想成為一個(gè)程序員,你可能只能選擇計(jì)算機(jī)科學(xué)專(zhuān)業(yè)。這是一個(gè)不錯(cuò)的專(zhuān)業(yè),但是它同軟件開(kāi)發(fā)不是一回事。在那些400等級(jí)的課程代號(hào)中,去尋找名稱(chēng)中帶有“Practicum”這個(gè)詞的課程吧(編者注:指供人實(shí)習(xí)的課程)。不要被這個(gè)拉丁語(yǔ)單詞嚇倒,這些都是有用的課程,之所以起這種名字,只是為了讓那些文縐縐、裝腔作勢(shì)、滿嘴胡說(shuō)八道的公司經(jīng)理們覺(jué)得高深莫測(cè)。

找一份好的暑期實(shí)習(xí)工作

精明的招聘負(fù)責(zé)人都知道,喜歡編程的人高中時(shí)就將牙醫(yī)的信息輸入了數(shù)據(jù)庫(kù),進(jìn)入大學(xué)前就去過(guò)三次電腦夏令營(yíng),為校報(bào)做過(guò)內(nèi)容管理系統(tǒng),有過(guò)軟件公司的夏季實(shí)習(xí)經(jīng)歷。招聘負(fù)責(zé)人就是要在你的簡(jiǎn)歷上找這些東西。

如果你喜歡編程, 就不要隨便什么工作都答應(yīng),否則你會(huì)犯下最大的錯(cuò)誤。不管是暑期工作,還是兼職或者其他性質(zhì)的工作,只要與編程無(wú)關(guān),就不要輕易接受。我知道,其他19歲的孩子都想去購(gòu)物中心里打工,在那里折疊襯衫。但是你與他們不同,你19歲時(shí)就已經(jīng)掌握了一門(mén)非常有價(jià)值的技能。將時(shí)間浪費(fèi)在折疊襯衫上是很愚蠢的,等到畢業(yè)的時(shí)候,你的簡(jiǎn)歷上本應(yīng)該寫(xiě)滿了一大堆與編程相關(guān)的經(jīng)歷。就讓那些財(cái)經(jīng)類(lèi)的畢業(yè)生去租車(chē)公司“幫助人們滿足他們租車(chē)的需要”吧,你要干的是別的事(在電視中扮演超人的Tom Welling注1除外)。

為了讓你的生活變得更容易一些,也為了強(qiáng)調(diào)這整篇文章完全是為了滿足我的個(gè)人目的,我要告訴你,我的公司——Fog Creek軟件公司——提供軟件開(kāi)發(fā)方面的暑期實(shí)習(xí)機(jī)會(huì)。我們非??粗睾?jiǎn)歷?!氨绕鹌渌镜膶?shí)習(xí)工作,你在Fog Creek最有可能學(xué)到更多的編寫(xiě)代碼、軟件開(kāi)發(fā)、商業(yè)運(yùn)作方面的知識(shí)?!边@是去年夏天我們的一個(gè)實(shí)習(xí)生Ben說(shuō)的。他會(huì)這樣說(shuō),并不完全是因?yàn)槲遗闪巳说剿乃奚嶙屗@樣說(shuō)。我們接受實(shí)習(xí)申請(qǐng)的截止日期是2月1日。一起來(lái)吧。

如果你聽(tīng)從了我的建議,你還是有可能落得一個(gè)悲慘的下場(chǎng),比如很早就賣(mài)掉了微軟公司的股票,再比如拒絕了谷歌公司的工作機(jī)會(huì),原因是你想要一間自己的可以關(guān)上門(mén)的獨(dú)立辦公室,或者做出了其他生命中愚蠢的決定。但是,這些可不是我的錯(cuò)。我一開(kāi)始就告訴過(guò)你,不要聽(tīng)我的話。

大學(xué)想提升你的編程能力,成為一個(gè)強(qiáng)大的程序員找到一份好工作嗎?

學(xué)習(xí)C/C++編程知識(shí),提升C/C++編程能力,歡迎關(guān)注UP一起來(lái)成長(zhǎng)!
另外,UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~


學(xué)計(jì)算機(jī)必看:程序員部落酋長(zhǎng),給計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的 6 個(gè)建議!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
兰坪| 夏河县| 双桥区| 营口市| 淮南市| 道孚县| 若尔盖县| 芒康县| 太保市| 夏河县| 建瓯市| 那坡县| 秀山| 姚安县| 宜城市| 开化县| 闸北区| 永城市| 青田县| 烟台市| 内黄县| 乌兰察布市| 交口县| 沈阳市| 荃湾区| 北海市| 闵行区| 海门市| 庆元县| 桐乡市| 仙居县| 海阳市| 旌德县| 潜山县| 宁阳县| 琼中| 房山区| 郑州市| 玛曲县| 贺兰县| 甘南县|