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