程式設計師的基本常識——職業篇

greylihui發表於2019-04-20

這個系列是《軟技能》一書的摘抄整理。這本書名聲在外,讀過後發現並沒有那麼好。一來是內容比較水,廢話太多;二來摻雜著大量的俗套勵志段落,還包含一些不靠譜的建議(理財)。

儘管如此,經過提純後,書裡還是有一些有價值的資訊,可以算是程式設計師基本常識。對剛剛入行,或是打算做程式設計師的人來說會比較有幫助。

這個系列會有 4 篇文章,分別對應職業、自我營銷、學習和生產力 4 個主題。我會抽取書中有價值的部分,適當進行改寫和擴充。歡迎評論補充相關資訊,或是糾正錯誤觀點。

1. 絕不要做他人都在做的事

  • 對待職業的首要原則:程式設計師要主動管理自己的職業生涯,「工作是屬於公司的,而職業生涯卻是屬於你自己的」。
  • 當你為了謀生一頭扎進寫程式碼的世界時,其實你和中世紀小鎮上開鐵匠鋪的鐵匠沒什麼差別。
  • 把自己當做是一個公司,而不是打工者。把僱主當做是你的軟體開發企業的一個客戶。你的工作就是出售你提供的服務。
  • 集中精力成為一位專家,專門為某一特定型別的客戶提供專業的整體服務。你只有真正專注於一類客戶,才能找到非常好的工作。

2. 必須要設立自己的人生目標

  • 為了安逸,我們傾向於遵循已經設計好的路線。缺乏對人生目標的具體認知。「死都不怕,就怕不安逸。」
  • 大目標必須足夠清晰,比如你希望自己 5 或 10 年後在哪裡,獲得怎樣的成績。最好把大目標寫在紙上,放在每天能看見的地方。
  • 逆向反推,將大目標分解為每年、每月、每週、每日的小目標。
  • 定期檢查和調整目標。

3. 選擇職業類別

可選項通常有三種:

程式設計師的基本常識——職業篇

通常情況下,你會先做一份全職工作,積累了實力和各類資源後,再考慮嘗試自由職業或創業。確保你做好了準備,比如積攢了能夠維持數年開支的積蓄,以便應對沒有穩定收入的情況。

你可以在業餘時間啟動你想建立的業務,等能從這項業務中產生足以維持生計的穩定收入時,再考慮辭職。採用這種方式時,確保你和公司簽訂的勞動合同裡沒有規定你的所有工作成果(包括業餘時間,或是使用公司資源的情況下)都歸公司所有,如果有相關條款,可以考慮諮詢律師。

4. 選擇技術方向

  • 對於自由職業 / 創業者來說,通常會選擇有潛力的小眾市場。這對選擇技術棧同樣適用,嘗試在一個專業方向上擁有專長(專業化),比如 Python 開發、Python Web 開發、Python 特定 Web 框架開發三者的專業化程度逐漸遞增。
  • 專業化的規則是:專業化程度越深,潛在的機會就越少,但獲得這些機會的可能性越大,競爭者也更少。
  • 可以嘗試發展兩個方向,選擇這兩個方向的交叉點作為職業方向。比如會 Excel 的老師,會英語的導遊,會程式設計的律師,都要比普通的老師、導遊和律師更有競爭力。
  • 但同時注意不要只會某種語言和專業方向,否則會因為行業變化而被淘汰。先從專業化開始,再擴充分支。
  • 避免陷入對某一技術的狂熱之中,這會讓你在職業生涯之路上走得更遠。不要試圖尋找最好的語言、框架、作業系統和文字編輯器,更沒必要為此浪費大量時間進行爭論。
  • 對技術保持開放的心態,而不是固守自己已經瞭解的技術,聲稱它是最好的,你會發現更多的機會為你敞開大門。

5. 選擇公司

程式設計師的基本常識——職業篇

考慮自己適合哪一種公司,可以在工作前和目標公司的僱員聊一聊。

6. 破解面試之道

  • 讓面試官對你懷有好感會有助於通過面試。方式有很多,包括:
    • 提前建立個人品牌
    • 提前熟悉目標公司的員工
  • 內推有推薦人的聲望背書,會更容易獲得面試機會。
  • 想辦法與公司內部人員建立聯絡,比如參加本地開發小組和行業會議,在論壇、IM 群聊、社交網站、GitHub 上建立聯絡。
  • 面試的時候,你要集中精力證明自己就是無需監督也能自動自發做好事情的員工;同時還必須要證明:在技術上你確實勝任工作;最好還能說服面試官相信你非常能幹,不會被困難阻擋。

7. 獲得晉升機會

  • 在任何公司裡能讓你脫穎而出的最重要法寶就是承擔更多的責任。
    • 沒有人願意涉足的領域是搜尋機會最好的地方。
    • 成為團隊中其他人的導師,建立聲譽。
    • 增加自己的曝光度:做內部分享,發表意見,解決技術難題。
  • 關於辦公室政治:儘管不能完全避開,但至少應該知道會發生什麼,哪種人需要避開,那種人永遠不要有交集。
  • 如果腳踏實地努力後仍然無法晉升,可以考慮換工作。

8. 成為專業人士

成為專業人士能幫你獲得更好的工作和更多的客戶:

  • 遵守自己的原則。
  • 專注於正確完成工作。
  • 不懼怕承認自己錯了,不會文過飾非。
  • 持續穩定。
  • 勇於承擔責任。
  • 完善自己,迎接挑戰,而不是降低標準。一旦你越多了底線,選擇妥協,就很難回頭。

9. 成為自由職業者

你為自己工作的時候通常會比為別人工作時更加努力,但熱情通常不會持續很久,你每天真正工作的時間也沒有你想象的那麼多。缺乏監督可能會讓你長久的陷入拖延和偷懶的境地,為此你需要:

  • 學習時間管理,並建立一系列日常原則。
  • 自我激勵,培養自制力。儘量排除干擾和誘惑,讓它們遠離你的工作環境。
  • 適應孤獨感,並適時的走出去,參見開發者聚合或行業會議,和其他從業者交流。

獲得客戶的最佳途徑:吸引式營銷(inbound marketing)。簡單來說,就是免費提供有價值的東西。通過寫部落格、錄視訊和播客、演講等方式提供與自己的服務相關的有價值的內容(大多是免費的)。

你的收費標準應該按照全職工作的兩倍時薪收取,因為你通常需要自己繳稅,購買商業軟體。如果你的工作能夠為客戶帶來更大的價值(提高他們的業務或是節省大量開支),你可以根據你能帶來的價值來定價。記得向客戶說明為什麼你的服務值這個價格。

如何建立你的第一個產品:

  • 不要在沒有找到客戶之前就構建產品。
  • 一個產品要解決何種問題,以及目標受眾是哪些人,這些問題必須在建立產品之前就弄明白。多和目標客戶溝通交流,不斷檢驗自己的想法。
  • 捷徑是提前在對應的領域建立影響力,通過建立部落格,演講等方式發展受眾。
  • 通過測試市場來驗證你的產品,看看你的潛在客戶是否真的願意為它買單。比如進行一場預售,為提前付費的客戶打折,看看有多少人願意買單。
  • 如果是創業產品,那麼就從小處著手,關注核心功能實現,快速建立產品原型並上線,及時獲得反饋並不斷改進,想法行不通就及時脫身。你可能需要重複多次這個過程才能建立一個成功的產品。

10. 成為創業者

  • 創業擁有巨大的潛在回報,但也極其危險。
  • 大多數創業公司的創始人都有所謂的退出策略,比如:
    • 當公司成長到一定規模的時候被收購
    • 上市
  • 當你有了一個好點子,有技術或是有技術合夥人,你最好還要擁有獨一無二的智慧財產權或行業資源,這可以確保你的產品不會被大公司快速複製。而且你的專案要有規模擴張的潛力。
  • 除了持謹慎策略的自力更生型創業公司外,大多數初創公司都希望獲得外部投資以快速成長。在開始的時候可以嘗試申請加入創業孵化器計劃。
  • 對創業公司來說,第一個重要里程碑就是獲得第一筆資金(種子資金),一般天使投資人會投給早期創業者,即種子輪 / 天使輪。拿到天使投資後你可以僱傭員工,開始擴張。
  • 種子基金燒光後,如果你的點子仍然可行,將會獲得第一輪投資(A 輪),風險資本通常會在這一輪介入(風險投資人 / 風投)。這之後,大多數創業公司還會經過幾輪融資,最後成功實現盈利,或者被收購。

本文首發於公眾號「李輝的程式碼廚房」。

相關文章