最近,有位論壇會員陷入了一個與許多入門級程式設計師相同的尷尬局面中:企業們不喜歡僱傭沒有經驗的人,並且多數都不願意提供培訓。如果那麼多的企業都不僱傭沒有經驗的人,那麼這些人要從哪尋得他們所需的經驗呢?不幸的是,這種局面是大多數IT人士所面臨的主要問題。
通過與這位會員長期的交流與反覆的討論,就加快他的職業生涯發展,除了給他《開始程式設計生涯的5個建議》之外,我另外還提出了三條建議,以助他積累增加程式設計經驗。
1. 無償工作(或幾乎免費)
企業界通常可能並不想僱傭經驗少或沒有經驗的人,而非盈利界通常樂意(至少願意)僱傭這一類人。我在高中的時候,去我們當地發育性殘疾人家庭當志願者,我是這樣進入程式設計師這行的。我用Excel表格來為他們管理財務,幫他們把這些資訊整理到了一個網站上,等等。工作很吸引人嗎?完全不是那麼回事兒。我是無償地在每天下午和每個週末為他們工作。唯一的福利就是在那個地方我可以隨時從一個裝得滿滿的食品櫃裡拿東西出來吃。除了給社群做貢獻之外,它還給了我足可以寫上簡歷的工作經歷,還有一份推薦信。一些非營利組織還會支付給你少量薪水。
選擇一個“廢棄”的開源專案,再做二次開發。開源專案的工作經歷絕對是簡歷上的亮點。
如果你在當地找不到慈善機構或者非營利組織,也許你也可以為家人打工。說不定你的哪個親戚朋友的企業就需要一個程式設計師。主動地無償請戰吧,我敢打賭,你會發現你/你朋友的叔叔或阿姨會為你的加入而感到欣慰。
2. 拼命工作
如果你想成功,就必須趕快行動起來;我還沒見過哪個開發人員的機會是輕易得來的。我猜是一些開發人員是足夠幸運,亦或是他們的某個親戚在他們剛畢業的時候就高薪聘用了他們。還有一些人找到了很好的實習機會,最終引領他們找到了其他的好工作。但對大多數目前在校或是剛走出校園的學生來說,唯一既能突顯自己有能增長經驗的方法就是工作、工作、再工作。就是這樣!
你的老闆可能更想讓你在服務檯工作,而不太會讓你花太多時間在寫程式碼上,。那麼,如果你想在服務檯工作中獲得軟體開發經驗,就必須自己抽時間。利用午休時間來寫程式碼嗎?沒錯!下班後繼續工作嗎?沒錯!在家也要做計劃和研發嗎?沒錯!
我懂,我都懂……免費做事或者做那些預期之外的事,這聽起來太沒勁。不過,其實情況更能更糟。你是否曾經瞭解過醫生們在住院實習期間所做的工作嗎(先不提工資)?就把這個當作你自己的住院實習期吧。在今後的幾個月或幾年的時間中,你要額外刻苦工作,努力積累經驗。儘管你的下一份工作可能並不輕鬆(也不會輕鬆),但薪水會更高。
其實還有很多增長經驗和薪水的方法;訣竅就在於從工作的“後門”中一點點爭取。例如,我之前的工作是網路的管理與監督。當時我已經很長時間沒接觸程式設計院的工作了,並且我知道我想重操舊業。但是實際情況是我的大部分工作經驗都是在Perl語言領域(當時也已經基本荒廢了),並且我也好多年沒程式設計了,不過我很清楚我在完全有資格任職之前要增加我這方面的經驗。那麼我都做了什麼呢?我開始在空閒時幫助我們部門寫程式;有時候,我甚至下班後再編程式碼,所有的一切都是為了積累經驗和一份推薦。
也許你找不到一個軟體開發的工作,但是你也許可以找一個傾向那方面的工作,比方說,系統工程師或者服務檯。從那起步,你便可以開始顯示出你程式碼方面的實力從而選擇或者是為自己完善一份出色的簡歷後辭職,還是繼續晉升。實際上,服務檯或是系統工程師(或者叫“計算機操作員”)的工作都是一個逐漸熟悉這個領域的最古老的方法之一。
3. 在家工作(當自由職業者)
可能你找不到接受你無償寫程式碼的人。也許你根本就不能把程式設計融入到你的非程式設計性質的工作中(就像一個沒能得到加班授權的鐘點工)。這時你家的作用就突顯出來了。如果其他的選擇都行不通(或者為了補充目前的能力),就在家做些工作吧。找一個你真正喜歡的程式,用自己的風格寫出來。或者把你日思夜想的那個程式寫出來。另外,在家做自由職業者的話,可以參考伯樂線上的這篇文章《自由職業者:尋找客戶的三大首選途徑》,獲取客戶後,自然可以增加經驗了。
在家工作時,儘量試著模仿專業環境下的軟體開發流程。先寫出一個專案計劃,建立單元測試,晚上再執行程式碼等等。我保證有了它,你將成為一個更優秀的程式設計師,並且你也可以向僱主展示你的作品。這其實是很重要的。
我以前工作的時候,不能帶上自己的作品並且展示給潛在僱主們看。因為這既違反我的僱傭合同,又違反我的僱主與客戶之間的合同。但是當我在家用我自己的資源做我自己的工作的時候,我便可以自由地向潛在僱主們展示。
例如,當我想要找一份網路開發偏多,網站管理偏少的工作時,我會把簡歷中的亮點和推薦人的推薦語等其他東西,聚集做成一份Flash演示稿。我甚至會把演示稿壓縮製作成一張可以自動執行的精美CD,所以潛在僱主只需看CD。這張CD曾幫助我在網際網路泡沫時找到過工作。這真的很管用。
作為一個多次參與面試和被面試的過來人,我敢說,如果求職者有創業經歷時,會給你留下一個非常深刻的印象。這能和其他工作有相同級別的薪水麼?有時候能。我認為,在可靠的開源專案中做“實際工作”和正常帶薪工作的效果是一樣的;除非你參與的專案實在很糟糕,並且你又把它拿給面試官看了。所以,“無薪工作”是另外一個建議,這也通常能讓你在和競爭同一崗位的眾多入門級程式設計師中鶴立雞群。
編者後話
如果你也是從事堆碼事業,不知你當初是如何積累程式設計經驗的呢?除了像原文作者所說的3個增加程式設計經驗的方法之外,你是否還有其他更好的經驗呢?如果有,請不要吝嗇,請在評論或微博中分享你的建議,來幫助那些準程式設計師或者想轉換程式語言的IT人。
作者:Justin James 編譯:伯樂線上 敏捷翻譯 – 高志翔
歡迎轉載,但請註明原文來源和連結,否則視為侵權,謝謝合作!