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