那些程序員小白還沒掌握的30件事
從事編程并不容易。每年有許多人從各國的頂級計(jì)算機(jī)科學(xué)專業(yè)畢業(yè),這是所有人都向往的有競爭力的職業(yè)之一。與此同時(shí),編程也振奮人心。隨著技術(shù)的進(jìn)步,每天都有新的創(chuàng)新。對于喜歡編程,并立志從事編程的人而言,編程是其熱愛且為之奮斗的事業(yè)。
本文的這個(gè)列表可以幫助新手答疑解惑,節(jié)省精力。即使目前某些內(nèi)容可能暫時(shí)不需要,但是總有一天它會派上用場。
1. 從事編程無需學(xué)位,但需要有所了解。
編程是少數(shù)幾個(gè)不取決于學(xué)位的職業(yè)之一。但是編程是一項(xiàng)知識密集型職業(yè)。如果你要從事編程行業(yè),閱讀一些基本的涵蓋計(jì)算機(jī)科學(xué)的基本概念等書籍是必要的。除了編寫功能代碼之外,為你的技術(shù)打下堅(jiān)實(shí)基礎(chǔ),對基本概念有一個(gè)深刻理解,這使得你能夠贏得技術(shù)面試有助于與同事交流。
2. 在問題解決技能上,編程十分具有創(chuàng)造力。
大多數(shù)人都有這樣一種先入為主的觀念,即編程就是分析和解決問題的能力。這只說對了一部分。編程還涉及許多創(chuàng)造性。通常,可以使用多種方式編寫給定的代碼。當(dāng)你設(shè)計(jì)出最簡單有效的編碼方式時(shí),創(chuàng)造性就產(chǎn)生了。
3. 掌握所有編程語言是不可能的,訣竅是將一門語言學(xué)到極致。
世界上有數(shù)百種編程語言。有一些編程領(lǐng)域?yàn)樘囟ǖ穆殬I(yè)道路鋪平了道路:Web開發(fā)人員,前端開發(fā)人員,后端開發(fā)人員,軟件工程師,數(shù)據(jù)庫開發(fā)人員等。明確希望成為哪種開發(fā)人員,然后學(xué)習(xí)該職位所需的技術(shù)技能。
4. 你不需要成為一個(gè)機(jī)器,保持作為人的狀態(tài)就更好了。
請記住,你首先是人,其次才是一名程序員。初次編程時(shí),很容易迷失在代碼中。你是一個(gè)人,你需要笑,需要哭哭,需要減壓,需要與人交談。作為一名程序員,平衡生活,盡可能的發(fā)現(xiàn)工作之外的樂趣與激情將為工作帶來更多創(chuàng)造性。
5. 編程是應(yīng)用知識而不是死記硬背。
與發(fā)明和創(chuàng)造新知識領(lǐng)域的研究不同,編程就是應(yīng)用現(xiàn)有知識。書籍,研究論文,在線文章和學(xué)習(xí)視頻將成為經(jīng)常使用的資源。沒有必要記住所有知識??梢酝ㄟ^搜索資源找到答案。隨著處理的項(xiàng)目增加,知識也會自然而然銘記于心。
6. 你每天都會與冒名頂替綜合癥對抗。
編程是所有“聰明”人都超同一個(gè)目標(biāo)前進(jìn)的行業(yè)。除非你是天才,否則你會每天都覺得自己不配取得成功。當(dāng)你每天都為這種感受所困時(shí),會試著想辦法解決這一問題。你可以一直將其作為學(xué)習(xí)新事物的動(dòng)力,正確看待問題。
7. 作為一名程序員,你還需要有工作之外的生活,否則,你只會沉迷于編程。
有段時(shí)間你可能會宅在家里不出門。但是,要成為一名快樂的程序員,必須主動(dòng)尋求計(jì)算機(jī)屏幕之外的生活。職業(yè)生涯的成功往往取決于你遇到的人。人際關(guān)系對程序員而言必不可少。保持程序員之外的個(gè)性特征對于防止沉迷于編程至關(guān)重要。當(dāng)你樂在其中而非強(qiáng)迫自己時(shí),工作才會更加出色。
8. 與他人合作會學(xué)得更快。
在職業(yè)生涯初期,你會想要斷開與外部世界的聯(lián)系,沉溺于閱讀這十本有關(guān)編程的書籍,以建立計(jì)算機(jī)科學(xué)基礎(chǔ)。你猜怎么著?如果你找到一個(gè)學(xué)習(xí)伙伴,會學(xué)得更快。當(dāng)你與他人合作,所有的編程“缺點(diǎn)”都會暴露出來。編寫的代碼會得到審閱。由于有第三方的存在,你將會學(xué)著編寫高效的代碼。由于伙伴也在學(xué)習(xí),所以你會想找到最好的辦法。當(dāng)你從事程序員這一工作時(shí),總會有人審查代碼。你永遠(yuǎn)不是獨(dú)自一人這是你需要習(xí)慣的。
9. 不需擅長數(shù)學(xué)和科學(xué)。
在技術(shù)行業(yè)會遇到各種超級明星程序員,他們在接受了長期的文科教育之后,發(fā)現(xiàn)了編程在邏輯思維方面的吸引力。有很多畫家和作家在追求藝術(shù)的同時(shí)以編程謀生。成為一名優(yōu)秀的程序員,你需要的是堅(jiān)持不懈。編程很辛苦。但是,一旦有了恒心,任何人都可以通過閱讀編程書籍掌握基礎(chǔ)知識。在這個(gè)行業(yè)工作一段時(shí)間后有很多人重拾數(shù)學(xué)。最后他們甚至可以在沒有接受正式數(shù)學(xué)教育的前提下理解實(shí)施復(fù)雜的算法。
10. 成為全明星“學(xué)習(xí)者”。
程序員的學(xué)習(xí)能力都很強(qiáng)。剛開始也許你的學(xué)習(xí)能力并不出色,但最終將會得到提升。有時(shí),工作會要求你在六個(gè)月內(nèi)學(xué)習(xí)三種編程語言。這就是技術(shù)創(chuàng)新的狀態(tài)。作為程序員,每天都在學(xué)習(xí)。學(xué)習(xí)就像呼吸一樣。即使你對每天都需要學(xué)習(xí)的狀態(tài)不太舒服,你也會被迫習(xí)慣。
11. 你將對完成項(xiàng)目上癮。
編碼成癮是真實(shí)存在的。在編程生涯中的某一階段,你將經(jīng)歷通宵編程的馬拉松。在完成項(xiàng)目之前,你都不會想要睡覺。由于大腦正在處理大量的信息,你會忘記吃飯,喝酒,甚至不會離開辦工作。不要緊,工作做完后,就到外面散散步或者度度假吧。
12. 耗費(fèi)一整天只為找一個(gè)小漏洞。
多數(shù)時(shí)候,在編程項(xiàng)目中許多部分彼此相互關(guān)聯(lián)。通常,你會發(fā)現(xiàn)除非修復(fù)了系統(tǒng)中潛藏的一個(gè)小漏洞,否則無法繼續(xù)進(jìn)行下一步操作。作為程序員,除非找到這處漏洞,否則你會對整個(gè)項(xiàng)目倍感壓力。你會整天坐在電腦夙夜難寐,只為找到這一漏洞。這種現(xiàn)象只有找到它后才會消失。
13. 你將花費(fèi)大部分時(shí)間在谷歌搜索無人能為你解答的答案。
如果使用流行的語言編程,那么大部分的問題都能得到解答。但是,也有例外。有時(shí),你也會出現(xiàn)別人碰不到的問題。在這種情況下,參考編程書籍并詢問編程委員會通常會幫助你答疑解惑。
14. 閱讀設(shè)計(jì)模式的書
是否畢業(yè)于國內(nèi)外最好的計(jì)算機(jī)科學(xué)專業(yè)并不重要。在每個(gè)程序員的職業(yè)生涯中,都會坐下來仔細(xì)閱讀Head First Design Patterns。它可能是新程序員最常閱讀的書籍之一。還在等什么?趕緊拿起它并從頭到尾閱讀。
15. 學(xué)會專注于確切的拼寫
在每個(gè)程序員的職業(yè)生涯中,都會用自己喜歡的語言編寫足夠的代碼,以便按照自己的方式做事。這包括為變量,類,甚至數(shù)據(jù)庫中的表提供的命名約定的準(zhǔn)確拼寫。仔細(xì)審查這一點(diǎn)。你最不想發(fā)生的就是因?yàn)槠磳戝e(cuò)誤而產(chǎn)生的系統(tǒng)漏洞。記住,當(dāng)理由充分時(shí)沉浸與值得關(guān)注事情是情有可原的。但是如果無據(jù)可依,那不過只是無意義的重復(fù)。
16. 你可能會放棄
有時(shí)你會遇到無法解決的問題。有時(shí)問題難到讓你懷疑人生,只想要辭職。有時(shí)工作環(huán)境會讓你想要放棄。激情取決于堅(jiān)持。這時(shí)候質(zhì)問自己,是要堅(jiān)持還是放棄?當(dāng)遇到挫折和困難時(shí),你就把它當(dāng)做港灣和下一次騰飛的跳板。
17. 重頭再來
當(dāng)你看到那些和從前的一樣熱愛編程的人,你會很羨慕接著發(fā)現(xiàn)自己無法放手。你不能放手。然后又會回到編程項(xiàng)目上來。你意識到在內(nèi)心深處,和編程同呼吸共命運(yùn),這是你才成為一名真正的程序員。
18. 回到某種形式的學(xué)校教育,去學(xué)習(xí)系統(tǒng)的知識。
即使是從精英計(jì)算機(jī)科學(xué)碩士課程畢業(yè)的優(yōu)秀的程序員也將在工作中學(xué)習(xí)。事實(shí)上,在職培訓(xùn)是大型科技公司工作的福利之一。公司將送你去學(xué)習(xí)“高昂”的課程和研討會,以培訓(xùn)你使用他們希望使用的最新技術(shù)。如果碰巧在工作中沒有學(xué)到足夠的知識,你將接觸到許多在線編碼學(xué)院和youtube視頻,以提高你的技能。
19. 被不喜愛的公司聘用
即使你是一個(gè)平庸的程序員,某些公司也會需要你的技能。當(dāng)他們面試你的時(shí)候,試著記住你也在面試他們。根據(jù)公司的文化,你可能會發(fā)現(xiàn)自己想對這份看似輕松地工作說不。作為程序員,工作時(shí)間很長。找到適合自己的公司文化幾乎至關(guān)重要。幸福度會帶來好的工作表現(xiàn)。如果你的技能無可替代,總會有其他公司排隊(duì)挖你。非必要情況,不要輕易妥協(xié)。
20. 技術(shù)面試不合格
技術(shù)面試不是開玩笑。高級程序員經(jīng)常以編寫技術(shù)面試問題為樂。通常,出于某些原因,這些問題總是格外難。如果技術(shù)面試不合格,這也不是世界末日。這當(dāng)然不能證明你的編程能力。它只測試你的知識庫。試著想想積極的一面。如果個(gè)人技能出色,經(jīng)理們會記住你。如果他們看好你的能力,然而你并不適合擔(dān)任這個(gè)角色,他們?nèi)钥赡軙?lián)系你,為你提供另一個(gè)職位。
21. 被告知你很出色
在職業(yè)生涯中,有時(shí)候你會覺得自己像個(gè)明星。經(jīng)理需要依靠你完成項(xiàng)目,他們夸贊你很棒,以激起你的干勁。你會覺得自己處于世界之巔。注意了,這是在誘導(dǎo)你變得自負(fù)。請保持謙虛,畢竟學(xué)無止境,人外有人山外有山。
22. 被貶得一無是處
在職業(yè)生涯中,有時(shí)你會覺得自己一無所知。對項(xiàng)目沒信心人會告訴你,你什么都不知道。也許他們這樣做是為了讓你了解自己身處的位置。但是,既然你正在閱讀這篇文章,你就會大踏步前進(jìn)。因?yàn)槟阒赖目赡鼙饶阆氲倪€要多。你所掌握的知識也會隨著時(shí)間增多。一年后,人們會尊重你,所以請堅(jiān)持下去。假以時(shí)日,甚至可能贏得那位曾經(jīng)將你貶得一無是處的人的尊重。
23. 與你所欣賞的其他程序員競爭
編程最絕妙的方面之一就是競爭。當(dāng)你編寫一個(gè)你欽佩的程序員認(rèn)為值得的代碼時(shí),會開心地像贏了彩票。編程競爭總是很有趣。精妙之處不在于誰是最好的而是互相學(xué)習(xí)。
24. 可能理解不了同事的話
一開始,這種情況可能是每周或每月一次。在新編程工作中,你可能理解不了同事剛剛說的話??赡芤韵聝蓚€(gè)原因。鑒于生活環(huán)境的不同,你可能聽不懂他們的口音。在這種情況下,請另一位同事翻譯。不能理解某人的言論并不可恥。很可能,其他同事也花了多年時(shí)間才得以習(xí)慣這種口音。另一個(gè)原因是同事剛才所說的完全超出了你的知識范圍。那也沒關(guān)系。畢竟,同事是專家。讓同事以圖片形式解釋一下。你會想要拉把椅子坐下詳聽,因?yàn)檫@可能需要一段時(shí)間。
25. 看到去年寫的面條式代碼,你會感到羞恥
這事兒常常發(fā)生。開始時(shí)因?yàn)镻erl代碼,我被批評了。這是一個(gè)記錄良好的代碼,設(shè)計(jì)也很好。但我卻用一種難以閱讀的語言寫出來。所以,我寫了面條式代碼。但是,每年,無論我怎么努力,我仍然會找到一些我清除由于快速完成工作而編寫的面條式代碼。這就是程序員的日常。我們解決問題并修補(bǔ)問題。不必覺得羞愧。當(dāng)你意識到這是你寫的,返回修正即可。
26. 當(dāng)你厭倦了看另一行代碼時(shí),你將在數(shù)據(jù)庫項(xiàng)目中躲避
當(dāng)你進(jìn)行一次精彩的編程攻關(guān)時(shí)會發(fā)生這種情況。已經(jīng)兩個(gè)月了。你需要休息一下。但是你喜歡這種勢頭,所以繼續(xù)前進(jìn)。然后你意識到SQL很有趣。無法弄清楚為什么你不能看另一行代碼。但不知何故,將數(shù)據(jù)放入數(shù)據(jù)庫并再其取出使你感到愉悅。你陶醉于完全邏輯語言的簡單性。
27. 對編程馬拉松又愛又恨
編程馬拉松現(xiàn)在很常見。程序員加入團(tuán)隊(duì)并相互競爭。在這個(gè)過程中,他們會在幾個(gè)小時(shí)內(nèi)進(jìn)行高密度學(xué)習(xí)。你會因?yàn)閳F(tuán)隊(duì)精神愛上編程馬拉松,也會因?yàn)榭焖俅a字造成的腕關(guān)節(jié)綜合癥而討厭它。你也會討厭工作擁擠的房間以及在編程時(shí)感官的過度刺激。
28. 閱讀研究論文時(shí),會覺得一個(gè)字看不懂
你會說英語嗎?好大多數(shù)人會說是的。但是,你可能會一遍又一遍地閱讀一些研究論文,并發(fā)現(xiàn)自己一頭霧水。對我來說,在學(xué)習(xí)基礎(chǔ)數(shù)學(xué)之前,大多數(shù)關(guān)于算法的研究論文看起來都像是一片巨大的霧林。然后,突然間,一切似乎又都撥開迷霧了。
29. 購買耳機(jī)
在職業(yè)生涯的某個(gè)階段,當(dāng)你專注于代碼時(shí),會發(fā)現(xiàn)任何類型的噪音都會阻礙你的感官。買一個(gè)能夠隔絕外部噪音的好耳機(jī),可以讓你在嘈雜房間內(nèi)專心工作。在某些時(shí)候,還會發(fā)現(xiàn)音樂有助于編碼。編碼生涯的早期我就發(fā)現(xiàn),音樂節(jié)奏有助于流暢地編碼。即使是現(xiàn)在,需要提高工作效率時(shí),我還會找些音樂來聽。
30. 抓住與同伴交流的大好時(shí)機(jī)。
在職業(yè)生涯的某個(gè)階段,你會成為公司非常重要的開發(fā)人員群體。這時(shí)你將被邀請到異地技術(shù)專業(yè)人員將在這里進(jìn)行社交活動(dòng)。高層管理人員會借此機(jī)會了解你。這并非是無憂無慮、享受的時(shí)候。相反是與同伴交往和交流的大好時(shí)機(jī)。有時(shí),外出活動(dòng)還包括與其他公司的技術(shù)專家的會議。