10條建議分享:幫助你成爲與硅谷工程師同樣優秀的程序員

成爲一名硅谷的工程師多是不少中國程序員的夢想。硅谷被公認是目前世界上雲集了最多優秀工程師和知名科技公司、創業公司的地方,吸引了全球無數投資者、創業者和工程師的目光。在那裏工做的工程師,有着使人羨慕的職業發展前景,薪酬待遇。此外,他們出衆的教育背景,紮實的專業能力,創新的思惟,專一的敬業精神也成爲了其餘工程師們學習的標杆。程序員

 

下面總結的10條建議,來自一些有關編程的網站、社交平臺和博客,給出這些建議的人大多數也是工程師(當中包括在硅谷工做的),以及一些專門研究計算機科學的學者。若是你有志成爲一名出色的程序員,不妨借鑑一下這些寶貴的建議和他們在工做中的經驗和心得,從而令本身在編程的學習和工做中不斷提升。雖然不是每一個程序員均可以有機會在硅谷工做,但每一個人均可以經過努力,讓本身變得更出色,甚至有一天,你會比在硅谷的工程師更加優秀。編程

 

1. 精通一種編程語言

編程語言是一種用來對計算機進行操控的工具。精通一種編程語言要比對一堆編程語言都只是略懂皮毛要好。編程是一門專業性很強的工做,它對程序員的要求也是很嚴格的。優秀的程序員必須精通至少一種編程語言,可以輕鬆地解決所碰到的問題。網絡

 

2. 成爲一名系統的調試員

成爲一名系統的調試員,這意味着當你在進行調試的時候,你對你的代碼有一個很好的構思模型。這就是說,當你的程序出了問題時,你能夠對一些出錯的程序做出假定,而不是盲目地進行修改直到你的程序正常爲止。併發

 

3. 有一個出色的編程環境構思模型和硬件構思模型

大多數的程序員都須要與外界互動,所以瞭解你的編程環境是很重要的。這個包括了輸入/輸出,以及你的編程語言所提供的併發原語,你的程序得到外界信息的方式(例如環境變量和命令行參數等),還有就是你的操做系統處理文件訪問,設備訪問,搜索路徑等等。編程語言

 

瞭解你所使用的硬件是如何工做的,這能夠幫助你更有效地寫代碼。即便你正在使用一種更高級的編程語言,你仍然須要瞭解不少東西,例如調用堆、MMU、上下文切換的成本、記憶庫的層次結構,以及你所鏈接的網絡特性等等,這些將讓你在作出編程決定時獲得預示。工具

 

4. 擁有很好的數學思惟

雖然編程並不像行外人所想的那樣,須要很深奧的數學知識,可是當你着手處理一些比較棘手的問題時,你會發現若是擁有很好的數學思惟會讓你的工做方便不少。不少有趣的編程領域,例如計算機圖形、信號處理和密碼使用法都要求要有深厚的數學知識。即便你只是在評估代碼的性能,它一樣須要一些統計思惟。性能

 

5. 可以從零開始寫一個程序和快速寫代碼

從零開始寫一個程序是一個優秀程序員必須具有的能力。不少時候,嘗試一些不一樣的解決方案並從中選擇最有效的,這樣比只是不停地思考一種解決方法更有效。優秀的程序員還具備可以快速寫代碼的能力。這種能力是經過不斷地學習,思考和實踐積累而來的。學習

 

6. 擁有團隊合做精神

不少時候程序員要作的項目並非從零開始的,而是要與其餘人一塊兒合做,共同開發一個項目,每一個人負責部分工做,所以擁有團隊合做精神十分重要。和比本身優秀的人一塊兒工做,樹立一個共同的目標,盡力幫助別人,而不是懼怕競爭,這不只有利於項目的順利完成,也有助我的能力的提高。對於團隊工做經驗很少的程序員,能夠多參與一些社交平臺或社區的活動,看看那些大牛們如何寫代碼,還能夠經過參與討論,觀看編程直播,在線交流等方式來提升本身的能力和團隊精神。 Livecoding.tv 就是一個不錯的社交平臺,那裏彙集了世界各地的程序員,你們能夠在線交流,討論如何寫代碼,還能夠全程直播寫碼。測試

livecoding.tv上也有不少來自國內、臺灣和香港的程序員經過平臺直播寫碼。網站

 

 

7. 經過實用的工具提升效率

這不是說一個優秀的程序員必須懂得使用全部工具,而是選擇適合本身和項目開發所須要的工具。不少程序員會在他們本身我的的社交賬號或社交平臺上推薦一些他們常用的編程工具和編程實例,多瀏覽這些信息,從中你會獲得不少啓發。筆者在livecoding.tv上,看到有應用於各類程序設計語言的工具介紹。感興趣的朋友,能夠瀏覽他們的博客空間

 

 

 

8.經過開發實際的項目積累經驗

進行實際的項目開發是最好的讓一個程序員變得更優秀的方法。尤爲是你要在壓力下開發一個項目,面對變化無常的客戶以及真實的多變的開發環境,還有不少真實發生的問題,這些困難會讓你快迅成長成爲一個優秀程序員。

 

每一年開發一個本身喜好的項目,直至它完成爲止。這樣可讓你突破本身的界限和讓你對開發項目保持興趣。這個項目能夠是你有過體驗的而且是喜好的,也能夠是你不知道的一些事情。例如若是你已經懂得了遊戲開發,但不懂Ruby,那麼你能夠嘗試用Ruby來開發一個遊戲軟件。

 

 

9. 站在終端用戶的角度來看待你的應用程序

優秀的程序員並不會是在封閉的空間裏編寫代碼就能夠了,而是要站在終端用戶的角度去評估本身所編寫的軟件。終端用戶不是專業人員,他們一般會把軟件看做是一件神奇的工具,而在程序員的眼中,軟件是一個邏輯的步驟。也能夠說,在程序員看來一件簡單而邏輯性的事情,在普通的用戶看來是很難理解的事情。所以,優秀的程序員會擺脫程序員的身份,用普通用戶的角度去看待在軟件中可能存在的「使人討厭」的問題。這樣也有利程序員更好地進行測試。   

 

10.永遠不要中止學習和閱讀

計算機世界變化的速度是驚人的。程序員被認爲是最接近計算機世界的職業,幾乎全部的科技新產品都得由程序員來寫代碼。所以一個優秀的程序員應該具備淵博的知識,狹窄的知識面會讓你的技能停滯不前,跟不上技術發展的步伐而最終被淘汰。你今天還在引覺得豪的技能,可能忽然會成爲一種「過期」的技能了。所以,在編程領域中那些知識淵博的工程師,無一不具備這樣的特質:不斷地學習新的技能,而且銘記在過往使用那些技能時獲得的經驗。

一個真正優秀的程序員是歷來不會中止學習的。在硅谷中的工程師也不例外。不少公司在招聘工程師的時候,也會很重視候選人對學習的態度。保持學習的態度能夠體如今:閱讀大量的書籍,而不只僅是瀏覽網站;以一種要提高自個人心態來閱讀,而不是隻是爲了最新的項目;一樣的,普遍地閱讀,而不是隻是關注最新的技術。此外,你還能夠每一年學習一種新的編程語言,瞭解這種語言的基本知識。這會有助你瞭解這種語言有哪些優點,讓你在編程時會有更多新的想法。

 

 

最後,想和你們分享一些對程序員頗有幫助的網站或社區:

    1. Stack Overflow: 這個網站相信你們都很熟悉了,這是一個爲程序工程師提供技術交流的平臺。不管你在開發設計時遇到什麼問題,均可以在網站上提出來,你會得到頗有幫助的答案。
    2. Toppcoder.com: 這裏彙集的是世界各地的來自軟件開發,數據科學和設計領域的優秀人才。會員能夠以自由職業者的身份接工做。該網站還會按期舉辦各類專業比賽。
    3. Livecoding.tv: 這個網站是2015年才上線的,但成長速度很快。最大的特點是程序員能夠在線實時直播編寫代碼,互相交流學習。它有別於其它的教育平臺,由於這裏所開發的都是真實的產品,並且表現出色的工程師還能夠有機會被一些公司聘用。
相關文章
相關標籤/搜索