IT工程師職業(yè)生涯是一段充滿起伏的有趣經(jīng)歷。考慮到其陡峭的學(xué)習(xí)曲線,完全可以預(yù)見(jiàn)你將經(jīng)歷挫折、啟蒙、驕傲自大這幾個(gè)時(shí)期,以及穿插其間的各種心路歷程。
階段1-菜鳥(niǎo)
初入職場(chǎng)的日子,我們都充滿激情。在此期間,你毫無(wú)頭緒,根本不知道該做什么。就像魚(yú)兒離開(kāi)了水,每一行代碼對(duì)你來(lái)說(shuō)都是個(gè)迷。Doctype?哈?見(jiàn)鬼,這個(gè)《div》到底是干什么用的?第一個(gè)階段令人生畏、讓人提心吊膽,卻又激動(dòng)人心。到底有多少種該死的語(yǔ)言要學(xué)啊?
不過(guò),你最大的優(yōu)勢(shì)或許就是你不知道水有多深(譯者注:原文”you have no idea how deep the rabbit hole goes”,典故出自《愛(ài)麗絲夢(mèng)游仙境》中愛(ài)麗絲掉進(jìn)了一個(gè)深不見(jiàn)底的兔子洞)。學(xué)習(xí)HTML只是向前邁出的一小步。
階段2-起步
雖然花了些功夫,你最終還是學(xué)到了足夠的知識(shí),邁出了你進(jìn)入編程世界的第一步。盡管第一階段完全是“我該怎樣/該從哪里開(kāi)始?”的懵懂狀態(tài),到了第二階段你已開(kāi)始慢慢地建立自己的技能體系。當(dāng)然,CSS定義樣式的語(yǔ)法對(duì)你來(lái)說(shuō)依然陌生,但至少你能夠在剛買(mǎi)的代碼編輯器中改動(dòng)一下代碼,并在瀏覽器中看看改動(dòng)的效果。那真是一種美妙的感覺(jué)!
階段3-極度沮喪
想象一下你在洞穴里迷路,打著手電照亮每一個(gè)隧道以尋找出路。每走一步,你都希望看到一絲光亮。不幸的是,我們這一行的學(xué)習(xí)曲線非常陡峭。我只能很抱歉地說(shuō),那一絲光亮不會(huì)持續(xù)很長(zhǎng)時(shí)間。你必須做好在這個(gè)階段花費(fèi)數(shù)百小時(shí)的準(zhǔn)備。當(dāng)你絕望地試圖搞清楚那些讓你抓狂的東西是什么意思的時(shí)候,你需要不斷,不斷,不斷地閱讀技術(shù)書(shū)籍。
如果你覺(jué)得太過(guò)沮喪而難以承受,請(qǐng)平復(fù)一下心情,想想我們每一個(gè)人都曾在職業(yè)生涯的這個(gè)階段或那個(gè)階段有過(guò)和你一樣的感受。你不是一個(gè)人在戰(zhàn)斗。堅(jiān)持下去,不久之后你就將到達(dá)“頓悟”階段。
階段4-頓悟時(shí)刻
“頓悟”那一刻是世界上最棒的感覺(jué)之一:一瞬間,突然,你“搞定了”“哦哦哦,現(xiàn)在我終于明白了”。拿我自己來(lái)說(shuō),我發(fā)現(xiàn)編程中的重大突破通常出現(xiàn)在夜里,此時(shí)其他人正在睡夢(mèng)之中。當(dāng)我讀了八遍代碼之后,原本捉摸不透的地方,現(xiàn)在至少有點(diǎn)兒清楚了。
這個(gè)階段,你學(xué)的所有技術(shù)和語(yǔ)言都開(kāi)始派上用場(chǎng)了。
階段5-脆弱的代碼
如同之前的階段,“脆弱”階段也相當(dāng)漫長(zhǎng)。在這一階段,你成功地構(gòu)建了應(yīng)用程序并實(shí)現(xiàn)了預(yù)想的結(jié)果,但是底層代碼無(wú)法應(yīng)對(duì)客戶需求的突然改變(At this point, you are successfully building applications and achieving your desired end result, but the underlying code is one client feature-request away from popping。譯注:but 后半句不大好翻譯,還望高手解救。)。此時(shí),你編寫(xiě)的方法長(zhǎng)達(dá)幾十行,而測(cè)試的觀念尚未在你腦海中形成。
但至少你在做一些實(shí)際的東西了。就目前來(lái)說(shuō),請(qǐng)將你在GitHub上的pull請(qǐng)求局限于書(shū)寫(xiě)文檔和改正拼寫(xiě)錯(cuò)誤。不要低估了這些工作能給他人帶來(lái)的幫助。
階段6-模仿
模仿階段很重要。模仿你心目中的大神編寫(xiě)的代碼——甚至是一行行地復(fù)制他們的代碼,除此之外沒(méi)有什么更好的辦法來(lái)學(xué)習(xí)恰當(dāng)?shù)木幊碳记闪恕e灰心,每種帶有藝術(shù)性的職業(yè)生涯都少不了模仿階段。幸運(yùn)的是,GitHub讓這種無(wú)聲的崇拜比以往更容易了。當(dāng)然,復(fù)制代碼只能幫到你這么多,但它開(kāi)了個(gè)好頭。模仿那些能夠啟發(fā)你的人,最終,你將開(kāi)始形成自己的風(fēng)格。
階段7-自以為是
此時(shí),你終于開(kāi)始陷入這樣一種境地:你當(dāng)然還有巨大的改進(jìn)空間,但自信心也在快速膨脹-或許太快了!人們常說(shuō),在頭幾年里,你還不足以認(rèn)清自己有多無(wú)知!
在這個(gè)階段,避免沖動(dòng)讓自己變得太驕傲自大。驕傲自大對(duì)任何人都沒(méi)好處,只會(huì)讓未來(lái)更出色的你在回顧過(guò)去時(shí)連連搖頭。當(dāng)你想要在GitHub、Reddit或者StackOverflow中留下嘲諷性的評(píng)論“哥們,學(xué)學(xué)怎么編程吧”的時(shí)候,千萬(wàn)別這么做。不久以前你自己也曾是個(gè)十足的菜鳥(niǎo)。請(qǐng)傳遞正能量,而不是打擊別人。我們?cè)谕粭l戰(zhàn)線上,只是處于不同的階段。
階段8-學(xué)習(xí)Vim
如果你曾觀察過(guò)與你共事的開(kāi)發(fā)者,驚訝于他在代碼編輯器中操作的速度,那么他有可能是在用Vim。盡管Vim的學(xué)習(xí)曲線十分陡峭,但一旦你精通了它,你的工作流程在旁觀者看來(lái)也將如魔術(shù)一般神奇。
這是你開(kāi)始掌控你的編程技術(shù)和工作流程的階段,合適的工具跟技術(shù)一樣重要。
階段9-當(dāng)代碼成為藝術(shù)
盡管要花上數(shù)千小時(shí),但終有一天,你看著自己的代碼,閱讀起來(lái)就像操作命令行那樣輕松,你會(huì)意識(shí)到它簡(jiǎn)直就跟藝術(shù)品一樣。你的代碼有版本控制、良好的抽象、完美的可測(cè)試性、可伸縮性,而且易于閱讀。在你職業(yè)生涯的某個(gè)階段,你可能曾陶醉于自己能夠?qū)懗錾衩亍⒘钊死Щ蟮苷_\(yùn)行的代碼。但是,利用編程語(yǔ)言中每一個(gè)可能的技巧和隱藏特性,或者只是為了炫耀自己的聰明才智而把復(fù)雜的邏輯簡(jiǎn)化為一行代碼,這些都不是成熟開(kāi)發(fā)者的標(biāo)志。相反,它展現(xiàn)的是一個(gè)自以為是的開(kāi)發(fā)者,完全不為將來(lái)的代碼維護(hù)者著想。
當(dāng)代碼的可讀性和它實(shí)現(xiàn)的功能對(duì)你來(lái)說(shuō)同樣重要時(shí),代碼就變成了藝術(shù)。到了這個(gè)階段,你就是在為人類而不是為機(jī)器編寫(xiě)代碼。
階段10—經(jīng)驗(yàn)豐富
當(dāng)編程成為一種本能,你就到達(dá)了職業(yè)生涯的下一個(gè)階段。此時(shí)你不再思考語(yǔ)言和框架層面的東西,而僅僅是發(fā)現(xiàn)問(wèn)題并從你的開(kāi)發(fā)工具箱中選擇正確的工具來(lái)提供解決方案。一個(gè)經(jīng)驗(yàn)豐富的開(kāi)發(fā)者懂得西部牛仔式的單槍匹馬蠻干為何很少是正確的道路。與項(xiàng)目組所有成員討論每一個(gè)新特性、準(zhǔn)備白板、編寫(xiě)故事(譯者注: story)、生成測(cè)試,這些都是在開(kāi)始寫(xiě)第一行實(shí)際代碼前完成的工作。
至此,你已成為一個(gè)成熟、思慮周全、其他人都愿意與你共事的開(kāi)發(fā)者。恭喜!
階段11——搖滾巨星
很少有人能達(dá)到這個(gè)階段。搖滾巨星階段是職業(yè)生涯的巔峰。除了日常工作,你經(jīng)常在研討會(huì)上發(fā)言,成為無(wú)數(shù)開(kāi)源項(xiàng)目背后的領(lǐng)軍人物;你要抽時(shí)間通過(guò)郵件列表參與到web的未來(lái)發(fā)展并為之貢獻(xiàn)力量,同時(shí)還要在IRC上幫助新人。你是那種以編寫(xiě)編譯器和解析器為樂(lè)的人。
別人稱呼你為搖滾巨星或是忍者,但你厭惡這類標(biāo)簽。你比其他任何人都清楚——學(xué)無(wú)止境!
-
工程師
+關(guān)注
關(guān)注
59文章
1571瀏覽量
68574 -
代碼
+關(guān)注
關(guān)注
30文章
4809瀏覽量
68826
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論