若是你想成爲一名程序員,這些建議能夠幫助你走上正確的道路。前端
程序員不是一個容易的職業,每一年都有許多人從國內頂尖院校的計算機科學專業畢業,這是任何人都能從事的競爭最大的職業之一。同時,編程也是使人興奮的。隨着技術的進步,工業界天天都有創新。編程對於熱愛它的人來講是一項充滿激情的事業。程序員
當我 13 年前開始作程序員的時候,我但願有人能告訴我下面清單上的一切建議。這個清單能夠爲全部新手程序員節省大量的時間和精力,而且,你能夠在編程職業發展的整個過程當中都參考這些建議。即便這裏面有些觀點如今可能與你無關,但總有一天你會看到其中的智慧。web
做爲一名程序員,你正處在偉大的頂點。面試
你只要對本身要走的道路稍有了解就能夠開始冒險了。算法
1.你不須要學位,但你須要知識數據庫
我和許多沒有計算機科學碩士學位或計算機科學本科學位的程序員一塊兒工做。編程是少數不依賴學位的職業之一。然而,編程是一項知識密集型的職業。若是你想開始編程生涯,這是本基礎書籍你必讀的。這十本書將涵蓋計算機科學的基本概念以及如何在項目團隊中工做。它們能夠爲你的技術打下堅實的基礎,讓你對基本概念有一個深入的理解,而且讓你有能力去編寫功能性的代碼,順利進行技術面試並與同事交流。編程
2.創造性是提升解決編程問題能力的重要因素後端
大多數人都有這樣的先入之見:編程都是關於分析和解決問題的技能。這個觀點並非徹底正確的,編程也很是須要創造力。一般,你能夠用不少方法編寫給定的代碼。當你擁有了創造力,就能設計出最簡單、最有效的代碼時。設計模式
3.不要什麼都學,精通一部分知識網絡
編程語言有數百種。有一些編程領域有着明確的職業道路:Web 開發人員、前端開發人員、後端開發人員、軟件工程師、數據庫開發人員等。你須要決定要成爲哪一種開發人員,而後學習該職位所需的全部技術和技能。
4.你不須要活的像機器人
記住,你首先是一我的,其次纔是程序員。當您第一次開始編程時,很容易在代碼中迷失方向。有時我在完成項目的全部裏任務以前都不離開電腦。可是你是一我的,你須要笑,哭,減壓,和人交談。管理好你的生活,最大限度地提升工做以外的興趣愛好,這將程序員的工做帶來更多的創造力。
5.編程就是應用知識而不是爲了記憶
與研究不一樣,在研究中,你會發明和創造新的知識領域,但編程就是應用現有的知識。書籍、研究論文、在線文章和學習視頻成爲您常用的資源。不須要記住任何東西。你老是能夠搜索資源來找到答案。隨着你處理的項目愈來愈多,這些記憶會自動天然地出現。
6.你天天都要克服本身是「冒牌貨」的心態
編程彷佛是全部「聰明」人都傾向於作的一種職業。除非你是個天才,不然你會像我同樣,天天都會懷疑本身是個冒牌貨。當你天天都經歷這些的時候,你每每會想出一個辦法來解決這個問題。對我來講,我一直把它當作學習新事物的動力。我已經學會了站在正確的角度看待這個問題,而且知足於天天都有的一點點進步。
7.你必須有程序員之外的生活,不然你只會沉迷於編程
有時你會在宅在家裏。然而,要成爲一個快樂的程序員,你必須主動地在電腦屏幕以外尋找生活。你事業的成功每每取決於你遇到的人。當你是一個程序員時,社交網絡是必不可少的。擁有程序員之外的生活對於防止本身沉溺於編程是相當重要的。當你編程是由於激情而不是被迫的時候,你就能作出最好的工做。
8.若是你和其餘人共同完成一個項目,你會更快地學會編程
在你的職業生涯剛開始的時候,你會試圖把本身封閉起來,閱讀關於編程的書來創建你的計算機科學基礎。你猜怎麼着?若是你找到一個朋友一塊兒合做,你會學習得更快。我在和其餘小夥伴合做完成一個項目的過程當中看完了編程書籍。當你和其餘人一塊兒合做時,你全部的程序缺點就會暴露出來,你的代碼將受到批評。你將學會編寫有效的代碼,由於有人在監視你。你會想找出最好的方法去作事情,由於你的朋友也在學習。當你作程序員時,總有人在審查你的代碼。你永遠不會獨自編程,因此你須要習慣這些。
9.你不須要擅長數學和科學
在科技行業,你會遇到各類超級程序員,他們在接受了一生的文科教育後發現編程的邏輯思惟頗有吸引力。有不少畫家和做家在一邊追求藝術,一邊作着程序員。編程是一項艱苦的工做,作一個好的程序員所須要的只是堅持,任何人均可以經過編程書籍學習基礎知識。不少人在這個行業工做了一段時間後就開始學數學了。最終,這些人甚至能夠理解和實現複雜的算法,儘管他們並無接受任何形式的正式數學教育。
10.你須要成爲一個全明星的「學習者」
程序員是一個熟練的學習者。如今你可能不是一個大師級的學習者,但你會到達那一步的。有時候你的工做會要求你在六個月內學會三種編程語言,這就是技術創新的現狀。做爲程序員,咱們天天都在學習。對咱們來講,學習就像呼吸同樣天然。若是你對天天的學習感到不耐煩,你必須強迫本身去習慣這一點。
對web前端這門技術感興趣的小夥伴能夠加入到咱們的學習圈來,正由於我不是211,985,只是個普通的本科生,英語不是特別好,數學不是特別好。因此我選擇了前端。工做第六個年頭了,我慶幸本身選擇了這條路。767-273-102 秋裙。與你們分享一些學習方法,實戰開發須要注意的細節。從零基礎開始怎麼樣學好前端。都是一羣有夢想的人,咱們可能在不一樣的城市,但咱們會一塊兒結伴同行
11.專一於完成你的項目
編碼是真的會上癮。在你的編程生涯中的某個時刻,你將經歷一整晚的通宵編程。在完成裏目標以前,你不會想睡覺的。你會忘記吃飯、喝酒,甚至忘記從辦公桌上起來,由於你的大腦處理了太多的信息。不要緊,在作完後,到外面散散步,度個假吧。
12.你會花費成天找一個小 Bug
大多數時候,在一個項目中,許多部分是相互依賴的。一般,你會發現除非你修復了一個潛伏在你係統中的小 Bug,不然你沒法繼續前進。做爲一個程序員,除非你發現這個錯誤,不然你會對整個項目感到有壓力,你將成天坐在電腦前尋找它,再找到它以前你將在晚上夢見代碼。
13.你將花大部分時間搜索沒有人能告訴你的答案
若是你用一種流行的語言編程,你將可以找到你在網上遇到的大多數問題的答案。可是,也有例外。有時,沒有人遇到過你碰到的問題。在這種狀況下,參考編程書籍和在四處詢問一般會爲您指明正確的方向。
14.你會讀一本設計模式書
你是否畢業於最好的計算機院校關係不大。在每個程序員的職業生涯中,總有一段時間你會坐下來,從頭至尾地閱讀 Head First Design Patterns。對於一個新手程序員來講,這多是閱讀得最多的書之一。那麼,你還在等什麼?把它撿起來,從頭讀到尾。
15.你將學會專一於準確的拼寫
在每個程序員的職業生涯中的某個時刻,您將用您最喜歡的語言編寫了足夠的代碼,以便按照本身想要的方式來作事情。這包括爲變量、類甚至數據庫中的表按照你本身的命名約定進行準確的編寫。你將對此進行完全的審查。你最不想看到的是一些由於你拼寫錯誤而出現的 Bug。記住,若是理由足夠,那麼請專一於一件事情。但當你沒有很好的理由而去作某件事,這可能只是重複性的行爲。
16.你會放棄
我放棄了多少次?我已經數不清了。有時你會碰到你沒法解決的問題,有時候會你會由於困難而想中止,有時候工做環境會讓你想辭職。你的激情取決於你的堅持,這些正是考驗你的時候。是留下仍是離開?我每次都留下來了。有時,在幾年沒有寫一行代碼以後,我會做爲一個準備好完成一個項目的新人回來。當你知道你熱愛你的工做時,它會變成一個家,你會願意爲之冒險。
17.重啓你本身
若是你相信更高的力量,你可能會須要這個建議。我看到過不少人從新開始編程,一般他們都是由於熱愛,與錢無關。當你看到一我的像你之前同樣對編程樂在其中時,你是嫉妒的,你以爲你也不能放棄編碼。而後,忽然間,你又回到了一個項目中。你知道,在你的心裏深處,你的生活和呼吸都離不開代碼。這就是你知道本身是一個真正程序員的時刻。
18.你將回到某種形式的「學校」學習「正確」的作事方式
即便是從精英計算機科學專業碩士畢業的最好的程序員也會在工做後繼續他們的學習。事實上,在職培訓是在大型科技公司工做的最佳福利之一。公司會給你提供「昂貴」的課程和研討會,讓你瞭解他們但願你使用的最新技術。若是可能,你在工做中學到的知識是不夠的,你將參加許多在線編碼學院,查看 YouTube 視頻來提升你的技能。
19.你將被一個你不想爲之工做的人僱用
即便你是一個平庸的程序員,某些公司也會須要你的技能。當他們面試你時,請記住你也在面試他們。因爲公司的文化,你可能會發現本身想對一個輕鬆的 offer 說「不」。做爲一名程序員,你將工做很長時間,所以,找到一個文化和你契合的公司文化相當重要。愉快的心情能讓你更好地工做。若是你的技能合適,其餘公司也會來敲你的門,除非有必要,請不要隨意跳槽。
20.你會在技術面試中失敗
技術面試不是開玩笑。高級程序員常常爲了好玩而編造技術面試問題。一般,因爲某種緣由,這些問題是很是困難的。若是你沒有經過技術面試,那並非世界末日,它並不能證實你沒有編程能力,它只是在測試你的知識庫,試着往好的方面看。若是你的人際交往能力出衆,經理們會記住你的。若是他們喜歡你,而你不適合這個職位,他們可能還會打電話給你另外一個職位。
21.你會被告知你很棒
在你的職業生涯中,有時你會以爲本身是明星。依賴於你完成項目的經理會爲了激勵你,會告訴你你特別偉大。你會以爲本身在世界的頂端。記住,保持腳踏實地。老是有新技術須要學習,老是有比你更好的新程序員。
22.你會被告知你什麼都不知道
在你的職業生涯中,有時你會以爲本身什麼都不知道。對某個項目感到沮喪的人會告訴你你什麼都不知道。也許他們這樣作是爲了讓你安頓下來。可是,你徹底不該該否認本身。由於你知道的可能比你想象的要多得多。每過一天,你就會知道得比前一天多一點。一年後,人們會尊敬你的。請繼續努力,一段時間以後,你甚至可能獲得那個告訴你你什麼都不知道的人的尊重。
23.你會想和其餘你欽佩的程序員競爭
編程最棒的方面之一就是競爭。我喜歡和我崇拜的人一塊兒編程。當你能編寫一段讓你欣賞的程序員確定的代碼時,你會像剛剛中了彩票同樣開心。編程中的競爭是頗有趣的,它並非比誰最好,更多的是互相學習。
24.你不明白你的同事剛剛說的話
在最開始,這可能每週或每個月發生一次。在你的新編程工做中,你會不理解你的同事剛剛說的話。這可能有兩個緣由。一個可能的緣由是,你就是沒法理解他們的口音。在這種狀況下,能夠請另外一個同事翻譯。不能聽懂別人的話並不羞恥,極可能其餘同事也花了不少年才習慣這種口音。另外一個緣由是,你的同事剛剛說的話徹底超出了你的想象。但這也不要緊,畢竟,你的同事是專家。擺好椅子,請你的同事以圖片的形式解釋這一切。極可能,你須要一段時間去適應。
25.看到去年寫的亂七八糟的代碼你會感到羞愧
這也是常常發生的。在最開始,我也由於代碼不規範受到過批評。當時,設計很好且有着良好文檔,但我是用一種難以閱讀的語言寫的。但直到如今,無論我多麼努力,每一年我仍然會找到一些亂七八糟的代碼,這一般都是由於我想很快地完成工做。實際上這就是程序員的工做,咱們不停地完善和修改各類代碼。這並不羞恥。當你意識到它們是你寫的的時候,後退一步,若是能夠的話,好好地修改它。
26.當你虛弱得不能看一行代碼時,你將在你的數據庫項目中找到庇護
當你在進行一次愉快的編程之旅時,可能會發生這種狀況。你已經連續工做兩個月了,你須要休息一下。但你喜歡這種當時的狀態,因此你繼續前進。而後您會發現 SQL 頗有趣。你不明白爲何你看不進去一行代碼。但不知何故,將數據放入數據庫並將其取出,是一件使人愉快的事情。你陶醉於這種徹底符合邏輯的簡單語言。
27.你對黑客又愛又恨
黑客攻擊如今很常見。程序員在團隊中互相競爭,在這個過程當中,好幾個小時你都在高度緊張地學習。此時的黑客攻擊就想調味劑同樣,你可能會很是喜歡。但有時,你會討厭在高速敲鍵盤時被打斷。你也會討厭擁擠的辦公室和喧囂的活動。
28.在閱讀研究論文時,你會認爲你一個單詞都看不懂
你會說英語嗎?好吧,大多數人的回答都是確定的。可是,我向你保證,有時你會一遍又一遍地讀一些研究論文,並意識到本身徹底沒法理解它們。對我來講,在我學會大學數學的課程以前,大多數關於算法的研究論文都像是沒有意義的森林。而後,忽然某一天,一切彷佛都有了意義。
29.你要買耳機
在你的職業生涯中的某個時刻,當你全神貫注於你的代碼時,你會意識到任何一種噪音都會阻礙你的感官。一個好的耳機能夠消除外部噪音,這樣在擁擠的辦公室裏你也會隔絕外部干擾。在某些時候,你也會發現聽音樂能夠幫助你編碼。在我編碼生涯的早期,我發現音樂的節奏有助於我流暢地編碼。即便如今,我也會藉助一些音樂來提升本身的生產力。
30.你將去一個新的地方,若是幸運的話,它將是拉斯維加斯
在你的職業生涯中的某個階段,你會成爲對公司很是重要的核心開發人員。這時,你可能會被邀請到異地,和其它技術人員進行交流。高層管理人員可能會利用這個機會了解你。請別誤會,這並不表明着你能夠無憂無慮地喝醉酒了,而是你和你的同齡人交往和交流的好機會。