成為一名硅谷的工程師可能是很多中國程序員的夢想。硅谷被公認是目前世界上云集了最多優秀工程師和知名科技公司、創業公司的地方,吸引了全球無數投資者、創業者和工程師的目光。在那里工作的工程師,有著令人羨慕的職業發展前景,薪酬待遇。此外,他們出眾的教育背景,扎實的專業能力,創新的思維,專注的敬業精神也成為了其他工程師們學習的標桿。
下面總結的10條建議,來自一些有關編程的網站、社交平臺和博客,給出這些建議的人大多數也是工程師(當中包括在硅谷工作的),以及一些專門研究計算機科學的學者。如果你有志成為一名出色的程序員,不妨借鑒一下這些寶貴的建議和他們在工作中的經驗和心得,從而令自己在編程的學習和工作中不斷提高。雖然不是每個程序員都可以有機會在硅谷工作,但每個人都可以通過努力,讓自己變得更出色,甚至有一天,你會比在硅谷的工程師更加優秀。
1. 精通一種編程語言
編程語言是一種用來對計算機進行操控的工具。精通一種編程語言要比對一堆編程語言都只是略懂皮毛要好。編程是一門專業性很強的工作,它對程序員的要求也是很嚴格的。優秀的程序員必須精通至少一種編程語言,能夠輕松地解決所碰到的問題。
2. 成為一名系統的調試員
成為一名系統的調試員,這意味著當你在進行調試的時候,你對你的代碼有一個很好的構思模型。這就是說,當你的程序出了問題時,你可以對一些出錯的程序作出假定,而不是盲目地進行修改直到你的程序正常為止。
3. 有一個出色的編程環境構思模型和硬件構思模型
大多數的程序員都需要與外界互動,因此了解你的編程環境是很重要的。這個包括了輸入/輸出,以及你的編程語言所提供的并發原語,你的程序獲得外界信息的方式(例如環境變量和命令行參數等),還有就是你的操作系統處理文件訪問,設備訪問,搜索路徑等等。
了解你所使用的硬件是如何工作的,這可以幫助你更有效地寫代碼。即使你正在使用一種更高級的編程語言,你仍然需要了解很多東西,例如調用堆、MMU、上下文切換的成本、記憶庫的層次結構,以及你所連接的網絡特性等等,這些將讓你在做出編程決定時得到預示。
4. 擁有很好的數學思維
雖然編程并不像行外人所想的那樣,需要很深奧的數學知識,但是當你著手處理一些比較棘手的問題時,你會發現如果擁有很好的數學思維會讓你的工作方便很多。很多有趣的編程領域,例如計算機圖形、信號處理和密碼使用法都要求要有深厚的數學知識。即使你只是在評估代碼的性能,它同樣需要一些統計思維。
5. 能夠從零開始寫一個程序和快速寫代碼
從零開始寫一個程序是一個優秀程序員必須具備的能力。很多時候,嘗試一些不同的解決方案并從中選擇最有效的,這樣比只是不停地思考一種解決方法更有效。優秀的程序員還具有能夠快速寫代碼的能力。這種能力是通過不斷地學習,思考和實踐積累而來的。
6. 擁有團隊合作精神
很多時候程序員要做的項目并不是從零開始的,而是要與其他人一起合作,共同開發一個項目,每個人負責部分工作,因此擁有團隊合作精神十分重要。和比自己優秀的人一起工作,樹立一個共同的目標,盡力幫助別人,而不是害怕競爭,這不僅有利于項目的順利完成,也有助個人能力的提升。對于團隊工作經驗不多的程序員,可以多參與一些社交平臺或社區的活動,看看那些大牛們如何寫代碼,還可以通過參與討論,觀看編程直播,在線交流等方式來提高自己的能力和團隊精神。 Livecoding.tv 就是一個不錯的社交平臺,那里聚集了世界各地的程序員,大家可以在線交流,討論如何寫代碼,還可以全程直播寫碼。
7. 通過實用的工具提高效率
這不是說一個優秀的程序員必須懂得使用所有工具,而是選擇適合自己和項目開發所需要的工具。很多程序員會在他們自己個人的社交帳號或社交平臺上推薦一些他們經常使用的編程工具和編程實例,多瀏覽這些信息,從中你會得到很多啟發。筆者在livecoding.tv上,看到有應用于各種程序設計語言的工具介紹。感興趣的朋友,可以瀏覽他們的博客空間。
8.通過開發實際的項目積累經驗
進行實際的項目開發是最好的讓一個程序員變得更優秀的方法。尤其是你要在壓力下開發一個項目,面對變化無常的客戶以及真實的多變的開發環境,還有很多真實發生的問題,這些困難會讓你快迅成長成為一個優秀程序員。
每年開發一個自己喜愛的項目,直至它完成為止。這樣可以讓你突破自己的界限和讓你對開發項目保持興趣。這個項目可以是你有過體驗的并且是喜愛的,也可以是你不知道的一些事情。例如如果你已經懂得了游戲開發,但不懂Ruby,那么你可以嘗試用Ruby來開發一個游戲軟件。
9. 站在終端用戶的角度來看待你的應用程序
優秀的程序員并不會是在封閉的空間里編寫代碼就可以了,而是要站在終端用戶的角度去評估自己所編寫的軟件。終端用戶不是專業人員,他們通常會把軟件看作是一件神奇的工具,而在程序員的眼中,軟件是一個邏輯的步驟。也可以說,在程序員看來一件簡單而邏輯性的事情,在普通的用戶看來是很難理解的事情。因此,優秀的程序員會擺脫程序員的身份,用普通用戶的角度去看待在軟件中可能存在的“令人討厭”的問題。這樣也有利程序員更好地進行測試。
10.永遠不要停止學習和閱讀
計算機世界變化的速度是驚人的。程序員被認為是最接近計算機世界的職業,幾乎所有的科技新產品都得由程序員來寫代碼。因此一個優秀的程序員應該具有淵博的知識,狹窄的知識面會讓你的技能停滯不前,跟不上技術發展的步伐而最終被淘汰。你今天還在引以為豪的技能,可能突然會成為一種“過時”的技能了。因此,在編程領域中那些知識淵博的工程師,無一不具有這樣的特質:不斷地學習新的技能,并且銘記在過往使用那些技能時得到的經驗。
一個真正優秀的程序員是從來不會停止學習的。在硅谷中的工程師也不例外。很多公司在招聘工程師的時候,也會很重視候選人對學習的態度。保持學習的態度可以體現在:閱讀大量的書籍,而不僅僅是瀏覽網站;以一種要提升自我的心態來閱讀,而不是只是為了最新的項目;同樣的,廣泛地閱讀,而不是只是關注最新的技術。此外,你還可以每年學習一種新的編程語言,了解這種語言的基本知識。這會有助你了解這種語言有哪些優勢,讓你在編程時會有更多新的想法。
-
工程師
+關注
關注
59文章
1572瀏覽量
68654 -
編程
+關注
關注
88文章
3637瀏覽量
93988 -
硅谷
+關注
關注
1文章
123瀏覽量
16573
發布評論請先 登錄
相關推薦
評論