一些程序員朋友找我聊個人職業發展,想起20多年前,我也是一個寫代碼的,就聊聊我是如何從寫代碼選擇了走產品路線。
?
1996年,大學期間,出于個人興趣,寫了第一個作品,用FoxBASE編寫的學校題庫系統,實現了出題、選題、組卷、考試答題、改卷功能。
?
2000年,我參與組織一個網絡課程的項目,用ASP實現動態網頁,可以進行圖文和視頻網絡課程的學習,這個時候,我發現自己一邊學一邊寫代碼,效率太低,一個人搞不定,于是就開始寫需求文檔,找到幾個計算機專業的同學一起完成了這個項目,這個過程中,我擔任的角色是產品經理,只是那個年代,還不知道這個職業崗位。
?
那個時候,也未曾想到自己居然把做產品這個事情干了20多年,中間經歷過教師、銷售、市場、產品運營、產品策劃等多個職業階段,現在的職業角色是深圳梅沙科技的合伙人,實際上,仍然在承擔產品經理的職責。
?
我算是一個早期的程序員的職業發展案例, 放棄了技術路線,走上了產品道路。
?
調侃一下,就是程序員的代碼能力沒發展好,跑去做了產品經理。
?
但是,在我的職場經歷中,遇到不少個案說明,程序寫不好,轉行做產品經理,也不容易;一些優秀的程序員,更容易成為優秀的產品經理。
?
我對一直堅定的走技術路線的實力派,是非常仰慕的,在多年的產品項目過程中,我和不少程序員同事建立了非常好的合作關系,很多是在一起加班熬夜過程中建立的戰友關系。
?
下面的分享內容,源自我的好幾位程序員朋友,尤其是現在的梅沙科技技術合伙人Martin提供的內容,他從一個校招大學生進入騰訊,經過5年時間,成為高級架構師,綜合幾位技術大咖的分析,整理了關于程序員職業發展的文字,這次應帥張邀請,分享給大家。
?
一、職場意識的覺醒
?
職場,多數人認為是從走出校門開始的,其實,從很早時候,就可以考慮職業發展了,多早呢,不好界定,有的人,從小就有一個夢想,未來要做點什么,這就是夢想的萌芽,例如從崇拜某個偶像開始,那個心目中YYDS,成為偶像那樣的人,微軟的創始人比爾蓋茨、蘋果公司的技術合伙人沃茲尼亞克、騰訊的馬化騰、張志東、張小龍、小米的雷軍都是優秀的程序員。雷軍在大學時候讀的一本書《硅谷之火》更是點燃了他的創業夢想。
?
因此,一個人的職業生涯能走多遠,源于他最初的夢想,滿足了最基本的生存需要之后,真正想做什么,是值得思考的問題。
?
職業覺醒,表現為知道自己想做什么,在大學不會迷茫,當別人在宿舍沉浸游戲的時候,找到夢想的人,就開始讀書,自學程序語言,盡早的找到一家公司實習,有意識的找到行業前輩,多認識幾個能幫助自己成長的職業導師去請教學習,這些都能為畢業求職打下扎實基礎。
?
二、如何系統扎實的準備好面試
?
對于剛剛走出校門,進入職場的技術人的第一份工作,企業不一定會要求你們掌握多么高深的技術問題,技術老司機們更看中基本功和成長性軟素質。
?
技術基本功
?
原騰訊高級架構師,梅沙科技技術合伙人Martin針對4種常見的技術職位總結了以下計算機基礎知識,相信對大家會有所幫助。
?
A. 協議、算法等基礎功底
?
1.有扎實的計算機基礎——加分項。如進程與線程知識,TCP/IP協議,數據與結構等。很多人認為計算機基礎知識只是做后端,做服務器開發的人才需要,像前端開發根本不需要,這是絕對錯誤的。對于只應付日常業務編碼的普通工程師來說,扎實的計算機基礎知識,是錦上添花的東西,但對于優秀的前端工程師來說,是必不可少的。操作系統的基礎知識,能更好的掌控代碼, 避免性能上不必要的開銷, 或者對其有所警覺, 同時也能避開一些邏輯上的問題。
?
2.數據結構和基本算法 清楚特定的基礎數據結構的可以處理的問題, 如果已經知道這些算法,那可以跳過很多耗時的技術選型階段,這就是知識的廣度帶來的優勢。
?
3.網絡協議知識TCP/IP等網絡協議知識,到應用層的HTTP/HTTPS等,對這些協議的深入理解,可以解決web頁面在移動網絡下的訪問耗時長等疑難雜癥,提出優化方案。
?
B.后端程序員
?
1. 操作系統基礎知識文件系統、任務調度、內存管理,進程與線程、進程間通信以及同步,鎖等知識必須要有。
?
2. 基礎語言一般要求有C、C++基礎,精通如但不限于C/C++/PHP/Java/Go等至少其中一種后端語言
?
3. 扎實的網絡協議知識TCP/UDP、HTTP、HTTPS協議,Linux網絡編程
?
4. 存儲數據庫知識 包含數據庫原理,sql語句的使用、優化。積累搭建mysql和運維mysql的經驗。
?
5. 數據結構知識 不要求能寫出RB樹的算法,但對常用的排序要熟悉。熟悉常用軟件設計模式
?
6. 熟識常用的框架與組件nginx,mysql,redis等
?
7. 實際的項目經驗能分析出系統各個模塊的關系,為什么這樣設計。系統瓶頸在哪里,如何優化性能
?
C.前端程序員
?
主要分為兩大部分:前端代碼技能部分(html、css和javascript),前端架構部分(構建工具,新生框架,優化以及安全性)。
?
如果把一張網頁比喻為一棟樓房,那么html相當于搭建一個主體結構,css相當于來做粉刷,javascript發揮的作用就是類似于水泥的粘合劑。其中任何一個環節出現問題,都會可能導致房屋出現問題。
?
1.html基礎,如各種Element的含義和用法。
?
2.dom結構與事件模型。
?
3.css樣式部分熟悉最基礎的布局方式、常用定位的作用和區別、css的一些常用的選擇器以及選擇器的權重。另外就是css的浮動部分,掌握浮動的應用場景和消除浮動的常用方法。是否熟悉響應式布局這塊,對最新的css3的知識掌握熟練程度以及移動端的經驗,屬于面試之中比較看重的一塊。css3中出現了很多的新的瀏覽器特性和效果,使用熟練程度之余還要知道它的兼容性。
?
4.javascript基礎理解閉包的概念和用途,原型鏈和繼承的概念。網絡基本知識像HTTP協議,Get/Post的區別與聯系。
?
5.前端與后端交互的數據格式Xml/Json等 進階部分包括得熟悉使用javascript的流行mvvm框架(vue,angular,avalon等等)其中的一種到兩種,構建工具(webpack,fis,gulp等等),以及系統后期的一個優化過程(包括靜態資源壓縮,合并,按需加載,分流)前端安全這塊的知識,如跨域機制,CSRF/XSS 漏洞等知識以及如何防范。
?
D.客戶端程序員
?
首先要對系統如何啟動App,App如何運行有一個整體的了解,這里就包含App啟動過程,沙盒機制的目的,實現原理等。
?
1. 操作系統中進程與線程的知識點,App怎樣處理圖片與外部網絡資源,也要有一個整體的認識。
?
2. App界面布局和交互的知識。
?
3. 語言基礎包含OC,Swift,至少精通其中一種。對象的生命周期,面向對象思想。
?
4. App界面知識點,自動布局, 自開發組件。
?
5. UIView, UIControl, UIScrollView, UIViewController 等核心類型的概念和關系。
?
6. App屏幕旋轉及屏幕適配,觸摸、手勢、加速計的使用。
?
7.網絡協議HTTP/TCP等基礎知識,
?
Socket/CFNetwork/NSURLConnection等類的使用
?
8.代碼管理如Git/Svn的使用,開發測試流程,Bug管理,打包上架到蘋果審核發布等知識。
?
9.常用類庫框架UIKit/Foundation/MapKit。
?
10.熱門技術如微信支付/友盟分享/第三方統計等的使用和注意事項。
?
11.性能調優方面,內存泄漏、網絡流量、耗電量方面的優化知識,Analyze的使用。
?
成長性軟實力
?
除了技術知識等硬素質,能驅動帶來可持續成長的軟素質同樣重要。今日頭條資深架構師夏緒宏提到,對候選人更看重:
?
1. 技術面與職位匹配 建議對照應聘的職位描述,做有針對性的準備,也讓企業了解到你的用心;
?
2. 技術熱情 對技術熱愛,善于使用技術解決問題,有「技術思維」;
?
3. 學習能力 技術不可能一開始全部具備,更新迭代快的環境下需要保持不間斷學習;
?
4. 溝通能力 團隊協作需要能溝通順暢、高效;真正在做項目時,如何正確、高效的與戰友溝通非常重要,與學校中不同,在職場上更多是并肩作戰;
?
5. 項目經驗 實習、生活中自己有項目嘗試。最好是有更多的實踐,不一定是實習,可以是自己日常去多做小項目嘗試,讓我們看到你對技術的熱情,這一點很重要,已經有相關經驗的同學會更有競爭力。
?
此外,初入職場的應屆生要做到基礎和工程并重,不要只偏重一方,這樣有助于擴展整體的技術視野,在思考問題的角度上更廣、更全面。在塑造自己的職場初印象時,大家可以參考以上這幾條,給外界一個完美的亮相。
?
三、如何選擇第一家供職企業——大公司,還是小公司
?
面臨大公司、小公司,究竟該怎么選擇呢?結合騰訊高級工程師、今日頭條客戶端技術總監等技術大牛的建議,歸納了一些要點:
?
1. 行業和公司層面,計算機專業主導行業有哪些?這些行業中top3的公司是哪些?這些公司的商業模式和競爭的護城河是什么?這些問題答案很大程度決定了公司未來的發展空間。通常建議只選快速發展行業中第一、二位的公司。
?
2. 崗位和興趣匹配,要多問自己內心喜歡的是做什么樣的工作,興趣是最好的老師,興趣也在后來的職業生涯中幫助更好地找準發展方向,即使在計算機專業領域,也是有很多細分的方向(例如安全領域,后臺領域,移動領域,算法領域等)可以發展的,把它給明確下來。明確了自身的興趣和發展方向后,就要對應地去匹配行業中有發展空間的top3公司的合適崗位,仔細看下這些崗位的Job Description的技能和知識要求,查漏補缺,把自身的能力短板補充好,做好充分準備。
?
3. 考慮團隊、導師和個人成長團隊的技術氛圍、mentor的水平直接影響到了你在該公司該崗位上的上升天花板的高度。選擇業界頂尖某項技術的大牛追隨,是對個人成長絕對有利的。
?
職場新人,尤其是比較優秀的新人,容易吹毛求疵,導師或者團隊有一些不足,就產生失望情緒。記住,人無完人,沒必要苛求導師每個方面都完美,當遇到導師或團隊產生問題時候,真誠的給出反饋,學會發現導師的長處,虛心請教學習,從導師變成朋友。
?
4. 公司產品、公司文化及CEO的認同比較成體系的優秀公司,無論是成熟大公司BAT還是超級獨角獸們,都有拳頭產品。在去公司之前你要體驗、了解、認可公司的產品,從內心熱愛一個產品將成為攻堅的動力。另外,特色鮮明的公司都有自己獨特的公司文化,這些文化反應了公司更看重的核心能力是什么,當你有了公司文化認同時,你未來的工作將會非常順手,并快速容如公司環境。通常這些價值觀也是通過CEO的發言傳遞出來。
?
5. 福利待遇 建議應屆畢業生不要在薪水上有太硬性的門檻標準,面對很好的平臺和職位,薪資在短時間內相比于成長空間是可以做取舍的。不過目前無論是大公司還是超級獨角獸們,為了吸引優秀人才進入,福利水準已經非常接近了,大家可以多去知乎等社區搜索或向前輩詢問了解。
?
6. 人才關注公司對人才發展的重視、培養和激勵也是非常重要的。
?
最后,我的親身感觸,任何行業的大牛,都是一個積累過程,不排除天才的存在,但概率上說,99%的人都不是天才,但是可以憑借自己的專注與努力成就職場的發展,很多人的努力程度其實并沒有到拼天賦的時候,所以,大家找好方向,按照自己的節奏,持續努力就好。
?
選獵頭公司就找乾坤獵頭,咨詢熱線: 400-6222-973
簡歷在線投遞請登錄:www.sbcknfd.cn
獵頭HR人脈資源群:3119474,高端交流,人才共享
平臺招募兼職獵頭及創業合伙人,歡迎獵頭公司加盟
更多獵頭職場資訊,請關注乾坤獵頭公司微信平臺:qiankunlt