幾年前,我交替干著園藝工作和餐飲的工作。那時候我剛離開大學(xué),還不知道我這一生到底該干什么。
我有很多想法,但是沒有方向。在那段時間里,我開始自學(xué)編程。最初是因為喜歡,我認(rèn)為編程是件很酷的事情,可以只動動腦子寫寫代碼就創(chuàng)造出各種事物。
然后我開始思考人生,認(rèn)為編程可能成為我的生活。
一開始我并沒有這種想法。我沒有錢來支付真正的教育。因為沒有錢,我已經(jīng)從大學(xué)退學(xué)了,如果我進入計算機科學(xué)領(lǐng)域,就必須重新開始。我離開學(xué)校6年了,還有超過 $50,000 的債務(wù),所以不會有這種想法。
然后我開始思考,我可以自學(xué) Web 開發(fā)并達(dá)到可以實習(xí)的程度。
我最初的計劃是到鎮(zhèn)上的幾家公司自薦,并問他們是否愿意會見我。我想一邊在學(xué)校學(xué)習(xí)一邊和他們一起工作,這樣我就有錢進學(xué)校同時還能獲得一些經(jīng)驗。
因此我認(rèn)真的對待 Web 開發(fā)這件事情。我開始做了一個作品集(portfolio),并把自己的技術(shù)記錄下來,我開始活躍在像 Stack Overflow 這樣的地方。我在 Github 上建立了幾個實際的應(yīng)用,雖然并無過人之處,但至少可以表明我會編程。
有一家公司不接受我兼職工作。他們并沒有說歡迎我在獲得學(xué)位之后回來,而是直接提供了一份 6 個月試用期的全職的初級程序員的工作。
我欣喜若狂。事實證明我一旦認(rèn)真起來有目的的進行開發(fā),能自學(xué)不少東西。我可以回答他們的問題,我可以給他們講解自己創(chuàng)建的初級應(yīng)用,我還可以解釋我的項目是如何進行的。我在那家公司待了兩年半,然后在我居住的城市成為一名真正的 Web 開發(fā)者。
以學(xué)徒的身份審視自己
讓我轉(zhuǎn)變?yōu)閷I(yè)開發(fā)者,有很重要的一個部分,就是在之前的公司作為學(xué)徒的時候,竭盡所能地學(xué)習(xí)。
在公司的工作中所學(xué)的關(guān)于現(xiàn)實的知識是無價的。如何與客戶、同事并在一定的內(nèi)部約束下一起工作,這些都是基本要素。而這些只能在一定的領(lǐng)域中學(xué)習(xí)。
現(xiàn)在的我可能比剛開始工作的時候知道得更多,但我不會停止以學(xué)徒的身份審視自己。要想成為一個出色的開發(fā)者,就要有持續(xù)學(xué)習(xí)的欲望。當(dāng)我們看到自己掌握了某項技能,那一刻開始我們(關(guān)于這項技能)的成長就停止了。
海明威說得好:
我們都是某項手藝的學(xué)徒,沒人會成為大師。
他說的是寫作,但同樣適用于開發(fā)。
自學(xué)和在公司工作的結(jié)合讓我學(xué)到很多(我甚至在寫書)。我理解 Web 開發(fā)實踐,知道如何從業(yè)余到專業(yè)。這是一條任何人都可以走的路,不管你是否有時間,也不管你能力如何。
舉個例子,我曾一次做了兩份工作 —— 其中一個需要我凌晨4點起床駕駛叉車。
作為一個忙碌的成年人,學(xué)習(xí)編碼需要決心,動力以及頑強的堅持。
從業(yè)余愛好者過渡到專業(yè)開發(fā)者
下面是一個你可以參考的過程。每個人的成長軌跡都會有所不同,但是你可以采取一些步驟來幫助你更快地走上正確的道路。
1. 相信自己可以做到
每個人都可以自學(xué)成為開發(fā)者。千萬不要認(rèn)為自學(xué)是只有某種類型的人才能做到的,雖然在某種意義上可能這也是對的。你需要自我驅(qū)動,激勵自己,而不是讓這種想法成為付費學(xué)習(xí)的動機。
社會上很多人會認(rèn)為有些人生來就有某些特質(zhì),而別人沒有。這對成長是不利的,也是造成許多人對生活感到不滿的原因之一。
如果你一直覺得你要么“擁有”,要么“沒有”,就很容易沮喪。
任何人都可以學(xué)會自我激勵,自學(xué)編程。或許是開始一個成功的業(yè)務(wù),亦或許是實現(xiàn)長期目標(biāo)。這和你的出生無關(guān),關(guān)乎到的是你的毅力。
如果你能把自己放低一點,堅守住最困難的時刻,你可以做到任何你想做的事情。
當(dāng)然,所有的事情都存在運氣的因素。例如,我主動聯(lián)系了一個網(wǎng)頁開發(fā)機構(gòu),很幸運,他們恰好在那個時候正在尋找一個開發(fā)者,而我恰好滿足了他們的需求,我很幸運地得到了這份工作。但是如果我沒有對自己的發(fā)展方向做出決定,那我絕對不會有這份幸運。
運氣確實是一個因素,但是如果你不堅持在某件事情上做到很好,運氣可能永遠(yuǎn)不會找到你。
2. 持續(xù)專注于你的技術(shù)
我最大的缺點就是容易感到無聊和分心,總想跳入下一個項目。
聽起來似乎很自由,能夠在任意項目之間彈跳以適應(yīng)當(dāng)天的心情,但…
這是一個陷阱!請記住:
成功成為專業(yè)開發(fā)人員的首要任務(wù)是 commit 。持續(xù)堅持 commit,直到你完全掌握。這也適用于所有事情。
人們往往強調(diào)選擇使用哪個框架。但更重要的其實是挑選一個,并堅持下去。等你完全掌握了以后,可以轉(zhuǎn)移和學(xué)習(xí)新的語言和框架。
此外,重要的是在開發(fā)過程中獲得的解決問題的技能,以及像真正的開發(fā)人員一樣思考的能力。
我自學(xué)的是 Laravel 框架,雇用我的公司使用的是 CakePHP 。但沒關(guān)系,他們知道我有切換框架所需的技術(shù)和技能。
選擇一個方向,盯著它,不管是什么,消除被別的東西分心的可能性。這很不容易,但一旦你學(xué)會忽視分心,你會更享受工作。
人們常常容易不開心,因為他們不斷再尋找完美的職業(yè)生涯。但激情往往來自于你對技術(shù)那份不可阻擋的欲望。一旦保持了這種心態(tài),你作為開發(fā)人員的能力將會得到升華。
3. 立即采取行動
很多充滿激情的開發(fā)人員可能會陷入閱讀陷阱,而不采取行動。
教程和書籍是非常適合學(xué)習(xí)基礎(chǔ)知識,問題是它們也對開發(fā)者灌輸了一些信心上的錯覺。
你有沒有在看完一本編程書后,去自己構(gòu)建一些東西只是為了驗證自己到底知不知道如何去做?如果有,那你肯定明白我在說什么。
這個解決方案很簡單,但不容易。
隨便做一些什么。做一個解決自己生活中遇到的問題的應(yīng)用程序,亦或者是解決你身邊的人的問題。
做點什么,并把它放出去。讓它開源并放在 GitHub 上。你不是為別人做的,而是為了你自己,所以不用擔(dān)心別人的意見。
剛開始你的代碼肯定是丑陋的。我回顧了幾個月前寫的一些代碼,自己看到都想吐。但是,如果沒有構(gòu)建這些東西,就無法學(xué)習(xí)開發(fā)。書是很棒,我也很癡迷想去盡可能的閱讀更多,但你必須應(yīng)用這些知識。
在這過程中你會遇到問題,你會去想辦法解決。那很好,這段時間里我們將真正學(xué)到更多東西。
4. 建立你的在線形象
一旦你開始去構(gòu)建一些東西,你將需要建立一個在線的形象。你的 GitHub 帳戶將是一個好的開始,這是一個能夠安置你正在開展的項目并與世界分享的舞臺。
但是如果你想比這更進一步,我建議你建立自己的 portfolio。
這個網(wǎng)站可以做這些事情:
把你的能力展示給潛在的雇主;
一個你可以展示你的工作成果的地方;
作為你的平臺;
最后一個非常重要。一旦你開始構(gòu)建一些東西,你應(yīng)該馬上開始寫下來,分享你正在做的工作,并分享給別人你所知道的一切。
這是給潛在雇主展示的最好的方法之一,告訴他們你是誰,你能做什么。這也是一個讓你的名字展示在那里的方式,也為自己建立了一個平臺。最終可以帶來更好的就業(yè)機會,提高通過寫書或做自由職業(yè)獲得更多收入的可能性。
此外,你的網(wǎng)站應(yīng)該提供非常具體的目的。
大多數(shù)人找工作只是創(chuàng)建在線簡歷,但你可以做到更多。你的具體目標(biāo)(職業(yè)方向)是什么?那你的網(wǎng)站就應(yīng)該圍繞該目標(biāo)進行設(shè)計和創(chuàng)建。如果你想要在某個項目或某個框架上工作,請把它也放在你的網(wǎng)站上。
我建議你的網(wǎng)站要有 4 大核心區(qū)域:
1. 主頁
主頁是網(wǎng)站的入口。它應(yīng)該提供一個關(guān)于你是誰和你在做什么的一個很簡單的概述。并且應(yīng)該引導(dǎo)人們?yōu)g覽與他們最相關(guān)的地方。
例如,你可以有兩個主要按鈕。一個引導(dǎo)用戶到你寫作的部分了解更多關(guān)于網(wǎng)頁開發(fā)的信息,另一個引導(dǎo)至雇用頁面,如果有人有興趣招聘你。
2. 寫作
放你的博客和教程的地方。盡可能地在這里多寫,不要害怕分享。
3. 關(guān)于
詳細(xì)介紹你是誰,你在做什么,而不是談?wù)撃愕膫€人生活,談?wù)撌裁磳?dǎo)致你進行網(wǎng)絡(luò)開發(fā),你的旅程到目前為止,以及你想去哪里。可以提及一些你最喜歡的項目并鏈接到它們。
4. 雇傭我
你的網(wǎng)站的重要組成部分,如果別人有興趣招聘你去做開發(fā),那么這里就是他們要去的地方。
確保在推銷自己和誠實之間找到適當(dāng)?shù)钠胶狻_@個頁面和“關(guān)于”的頁面之間可能會有一些重疊,但是這個頁面將更具體地說明你的技能。
該頁面也應(yīng)該有聯(lián)系方式,以便人們可以聯(lián)系到你。
5. 開始分享你所知道的一切
Nathan Barry 曾講述了 CSS Tricks 創(chuàng)始人 Chris Coyier 的故事。
在該網(wǎng)站剛開始建立時, Chris 就公開分享了他正在學(xué)習(xí)的東西,以便其他人可以跟進。現(xiàn)在它已經(jīng)成為了最大的 Web 開發(fā)網(wǎng)站之一。
我想說的是,你不必等到自己成為世界上最出色的專家,才開始寫作和教學(xué)。
在網(wǎng)絡(luò)商業(yè)世界中,有一種說法,每個人相對于別人都是一個專家。
令我困擾的是“專家”一詞。教導(dǎo)你所知道的事情并不會有什么問題,如果對別人有價值,甚至可以出售這些信息。
但是自稱一個專家可能會把事情弄得太過了。所以當(dāng)你分享你的內(nèi)容時,還不如誠實一點。
我更愿意在公共場合學(xué)習(xí)。有很多人剛開始都只是一個公眾學(xué)習(xí)者。他們正在學(xué)習(xí)一種手藝,并記錄他們正在學(xué)習(xí)的東西。隨著學(xué)習(xí)到的東西越來越多,你就可以建立自己的內(nèi)容,并在此過程中快速成長。隨著時間的推移,你所在的行業(yè)中的其他人將開始將你為權(quán)威人士。
6. 奔著解決問題的目的去構(gòu)建
成為專業(yè)開發(fā)人員最重要的方面之一就是完成一個具體目標(biāo)的所有事情。
Web 開發(fā)商店真正的商業(yè)價值不是編碼,而是他們正在解決的問題。編碼只是他們用來實現(xiàn)這一點的首選工具。
閱讀任何營銷或文案,他們會告訴你銷售的產(chǎn)品的好處,而不是功能。
Web 開發(fā)人員應(yīng)該推銷的是應(yīng)用程序,以顯示它們能如何有效地解決客戶的問題,然后用具體的數(shù)據(jù)驗證這些觀點。客戶通常對這種方法的反應(yīng)更為敏感,而不是開發(fā)者所謂的那些尖端技術(shù)。
如果你能夠展示你的編程技能,以及你能夠以解決問題和制定更有意義的應(yīng)用等具體意圖來編寫代碼,對于雇主來說,你會更具吸引力。
所以,當(dāng)你與潛在的雇主或客戶溝通,以及在為你的網(wǎng)站撰寫內(nèi)容時,請考慮優(yōu)勢與功能。
當(dāng)然,你也應(yīng)該提到你的編碼熟練程度,雖然大多數(shù)人都花時間在這上面。簡要介紹一下讓潛在的雇主知道你能做什么。
7. 保持學(xué)徒心態(tài)
你以為掌握所有東西的那一天就是你停止學(xué)習(xí)的那一天。
采納終身學(xué)徒的心態(tài)。總是有更多知識去學(xué)習(xí),總是更多的地方需要改進。
這在你職業(yè)生涯的早期階段尤為重要。如果你是兼職或?qū)嵙?xí),或擔(dān)任初級開發(fā)人員,那么你需要盡可能立即進入學(xué)徒心態(tài)并盡快成長。
你應(yīng)該真的要這樣做,即使你擁有一位實際的“導(dǎo)師”。
在 Jeff Goins 的 “The Art of Work” 一書中,他談到了21世紀(jì)的師徒關(guān)系模式。
回到中世紀(jì),這種關(guān)系非常正式。師傅將會接管學(xué)徒多年,學(xué)徒們將慢慢開始掌握師傅的手藝,直到他們達(dá)到了大師的頭銜,到此他們就可以收徒了。
這種關(guān)系已然發(fā)生了變化,但把自己當(dāng)做學(xué)徒已然很重要。主要的區(qū)別是,現(xiàn)在你必須密切注意潛在的導(dǎo)師和學(xué)習(xí)機會,并且你的人生旅程中將會有很多導(dǎo)師。
在網(wǎng)絡(luò)開發(fā)的世界中,我們不斷地在互聯(lián)網(wǎng)上瀏覽,所以這可以有多種形式。
書籍、教程、課程、論壇和其他形式的學(xué)習(xí)都是有價值的。然而,我認(rèn)為,最有價值的學(xué)徒形式來自于目前向處于你希望的職位的人的學(xué)習(xí)。
這就是為什么渴望和愿意學(xué)習(xí)是如此重要的原因。獲得你的第一份開發(fā)工作并不是旅程的結(jié)束,而是開始。
那就是你真正開始學(xué)習(xí)和以指數(shù)級拓展你的知識的時候。
8. 學(xué)會協(xié)作
將編碼作為愛好還是以編碼為生的最大區(qū)別之一是學(xué)會與人合作。在整個職業(yè)生涯中,你需要與同行、老板、同事、客戶、合作伙伴公司以及各種人物進行交互和協(xié)作。學(xué)會如何有效地與別人協(xié)作是很重要的。
在 Web 開發(fā)領(lǐng)域,溝通是關(guān)鍵。當(dāng)一家公司進來并告訴你他們想要什么,但你并不是很清楚這具體是什么樣的樣子的時候,這可能在之后會引起很多問題和困擾。
同樣,如果你無法與你合作的人溝通,你工作也將異常痛苦,你將無法完成工作。當(dāng)你還在學(xué)習(xí)階段時,有很多好辦法可以做到這一點。當(dāng)你開始教授你所知道的一切時,這種情況將會來臨。人們會與你互動,有時是負(fù)面的,你將學(xué)會如何處理這些情況。
我也強烈建議為開源項目做貢獻。這樣可以讓你了解在一個項目上協(xié)作的方式,其中不同的人可能會對處理問題的最佳方式有不同的想法。對開源項目做貢獻可能令人生畏,但它可能為你的事業(yè)發(fā)展做出奇跡。
走出去并以此為生
成為一名 Web 開發(fā)人員很難。這意味著永無止境地學(xué)習(xí)和適應(yīng)新技術(shù)的生活。這是職業(yè)生涯中不可或缺的技術(shù)之一,商務(wù)和溝通技巧也是。
這是一條非常值得的道路。你可以做到這些:解決人們的問題,使他們的生活更輕松,同時過上夢幻般的生活。
網(wǎng)上有無數(shù)的資源可以幫助您學(xué)習(xí)編碼,其中很多都是完全免費的,但似乎缺乏資源來幫助人們實現(xiàn)到專業(yè)開發(fā)人員的轉(zhuǎn)變。
我希望這本簡短的指南為您提供一個良好的路線圖,讓您開始成為專業(yè)的開發(fā)人員。
請記住,除非你采取行動,否則不會發(fā)生任何改變。建立一個簡單的投資組合網(wǎng)站,通過電子郵件發(fā)送給幾個潛在的雇主,在媒介上寫一些帖子。僅僅是開始做一些事情。
你嘗試的次數(shù)越多,你做的就越多,你會越快從業(yè)余水平進階到專業(yè)水平。
-
Web
+關(guān)注
關(guān)注
2文章
1256瀏覽量
69349 -
開發(fā)
+關(guān)注
關(guān)注
0文章
366瀏覽量
40811
發(fā)布評論請先 登錄
相關(guān)推薦
評論