個人程序員到項目經理之路

這篇文章其實很早就想寫了,但說實話一直不寫的緣由是有點心虛,畢竟我也才畢業不到5年時間,不是什麼行業大牛,也不是知名大V,懼怕本身寫很差給讀者帶來誤導。但又轉念想一想,誰不是這樣過來的呢,大部分人剛畢業都不可能立馬找到滿意的工做,大部分人對本身的職業規劃也是充滿迷茫,都是慢慢積累,一路摸着石頭過河。今天我就大膽寫出來,哪怕對你有一點點啓發,能幫你少走一點點彎路,我就以爲值了。java

我14年畢業於一個普通的本科院校,計算機與科學技術專業,算是所謂的科班出身吧。從大學畢業順利拿到畢業證和學位證來說,我算是合格的,但從畢業就業所需的專業技能來說,我是學渣。這裏我並不想過度強調中國大學教育與社會所需工做技能的脫節。現在的互聯網時代,想要學習任何的技術知識大多都能找到,關鍵是你怎麼利用學習資源了,因此不要抱怨本身的學校和大學教育環境。程序員

如今想一想,個人大學日子過的太爽了,籃球、dota、妹子、一幫好兄弟、熱鬧的班集體,肆無忌憚的揮霍着本身的青春,大學四年能夠說是目前爲止我人生裏最美好的一段回憶了吧。但時間是公平的,有的人肆意揮灑青春,畢業就面臨着失業,而有的人早早就爲考研或是工做準備着,他們大多也都能如願。我是前者,但我也不後悔,那段時光短暫而美好,青春無悔。面試

大三末的時候,雖然是專業技能不好,但編程仍是有一點基礎的,就硬着頭皮試着去找了一份工做,是一家作電商網站的公司。記憶深入的是當時那個公司老闆給我開出一個月的工資是2000,須要說明的是當時是2013年,我還沒畢業,並且我所在的城市是一座四五線的內地小城市,一個月2000感受真的不少了。跟我一塊兒進去的還有幾個實習的同窗,私底下我問了都才1000多點。我心裏當時那個高興啊,我想這主要源於我面試時候的表現吧。其實當時的技術水平都很低,我感受主要是那個老闆以爲我綜合能力更強,但願我將來能帶領一個小團隊。我大學期間是班長,自認爲溝通能力還不錯吧,我想這個是主要緣由,在面試的溝經過程中,我表現出的自信,叫吹牛逼也行,我以爲征服了那個老闆,固然也多是由於我太帥(噢,那個老闆好像是女的)。編程

後來臨近畢業,家裏人讓考公務員。我也確實努力考了一把,差點進面試,說實話我如今想一想幸好沒考上,若是當時真當了公務員,我可能會後悔,雖然說工做穩定,但必定見識不了外面世界的精彩。公務員考試失敗後,我就想着繼續找計算機相關工做了,當時還真沒想去大城市,以爲去像北京這樣的大城市,可能就是去找死,水平這麼低,找不到工做的,如今回過頭想一想那時候真傻逼。一個堂哥給個人建議是,你要下定決心從事計算機行業,就別小城市發展,要去就去IT彙集地北上廣,當時他給我舉了個形象的例子,至今記憶猶新,在小城市裏作IT就像在小河湖泊裏划船,只有到大城市的大江大海里,才能歷經風雨,揚帆遠航。如今回想過往幾年,確是這樣。微信

從認爲本身來北京是找不到工做、是找死,到我下定決心來北京,經歷了不少,包括家裏人的反對、本身痛苦的思想鬥爭。很慶幸我打敗了本身,很感激當時本身下定決心的勇氣。年輕的時候不去冒險,不去嘗試,要等到本身老了嗎?架構

我大學的時候學的是Java,剛來北京的時候,僅有一點基礎知識,編碼能力頗有限,投了一部分簡歷,收到面試也不多。相比之下,當時有不少同窗參加了培訓,他們也確實比我更快找到了工做。因爲以前的實習經歷,我對本身仍是有信心的,我以爲我不培訓也能找到工做,我更願意在工做中去學習,而不是再回到上課的日子裏,事實證實我能夠。雖然面試機會很少,但我抓住了每次面試機會,每次面試都是提高本身的機會。基本都是白天面試,晚上回來學習,我發現這樣效率很高。針對職位要求去準備相關知識,我記得找工做面試那一週我晚上都是熬夜到兩三點才睡覺,終於功夫不負有心人,收到了兩家公司的offer,一個是作測試的,一個是作java開發。考慮到之後的發展方向,我選了java開發。框架

在公司的前半年基本都是白天在公司跟着別人作項目,晚上回去本身再學習。說實話很辛苦,當時水平過低,你們也都很忙,遇到問題,不到萬不得已也不會輕易問別人,基本都是本身查資料,本身摸索。這裏說下,有時候有些技術難題若是本身一段時間還沒解決,就厚點臉皮趕忙問同事,沒啥很差意思的,技不如人不可怕,可怕的是你不敢面對,別人的指點能讓你少走不少彎路。通過半年的努力,我漸漸從一個Java小白開始跟着作項目,本身也學着搭建框架了。工做雖辛苦,常常加班,但有幾個一塊兒進公司的同齡人,咱們一塊兒加班一塊兒玩,漸漸成爲了朋友,工資不高但還算過的開心。這樣的日子過了快2年,漸漸地,我發現了問題,一是在這個公司裏我能學到的東西已經很少了,技術氛圍不夠,提高空間有限;二是領導一直口頭上說要給咱們加薪,但一直日後拖,每次加班一段時間後,就帶領你們下館子,大吃一頓,喝一場酒,講一場兄弟情。只怪當時咱們太年輕,居然每次都被領導的兄弟情感動,巴不得爲他上刀山下火海。後來瞭解到,2個愛喝酒的,跟領導玩的好的老員工,私下領導都給了「好處」。而他們就是平時指揮咱們幹活的人,其實咱們乾的活比他們多的多。認清了這一點,咱們幾我的相繼跳槽換了公司,臨走時領導還極力挽留,說如今行情很差,很差找工做。誰能再信你的鬼話,尼瑪不出來不知道,咱們的薪資基本都翻了2-3倍。正在看這篇文章的童鞋,若是你的領導是這種總拿兄弟情洗腦的人,如今是市場經濟,聽哥一句話,找個機會趕忙撤吧。學習

到下一家公司,開始仍是作Java開發,這個時候水平離大牛還很遠,但基本也能在項目中擔任重要角色,甚至在有些項目中挑大樑了。但漸漸的我又發現問題了,此次不是公司的問題,是我本身的問題。這時候作研發快3年了,在思考個人將來發展方向時,我迷茫了。往什麼方向發展呢?那段時間我看了不少關於職業規劃的書,不少書中基本都指向了2條路,一條是管理方向,一條是技術大牛、架構師方向。我對比了本身,問了本身幾個問題,我喜歡寫代碼嗎?我能在技術的道路上走的更深嗎?測試

說實話當初考大學選專業的時候,想必大多數人同樣,都不知道本身喜歡什麼。當時選專業的時候,我就以爲計算機象徵着科技、將來,就選了計算機專業。其實也不知道本身喜歡不喜歡這專業,未來會不會喜歡寫代碼。大學期間學渣不說了,參加工做寫了幾年代碼後,我發現有時候我是喜歡寫代碼的,特別是在我用本身的思路實現一個牛逼功能的時候,那時候我甚至以爲本身能改變世界。但我發現這種得到心裏知足感、自豪感的時候並很少,更多的時候多是出於完成任務。同時我發現,周圍不少人是這種狀況,但也有少部分人,他們不只喜歡寫代碼,並且擅長寫代碼。好比,一樣的功能開發,擅長的人可能半天完成,而我也能完成,但須要1天甚至更長的時間。也許有人會說,這說明你不努力,你沒有及時掌握牛逼的技術知識。咱不要擡槓,即使你努力,在作同一件事上,你必須認可,有些人是更有天賦的的,這叫擅長,而你最多叫喜歡。我特別喜歡打籃球,有時候甚至幻想能去打NBA,看NBA的都知道科比牛逼,除了我科天天看洛杉磯凌晨4點鐘的太陽,你覺得人家沒有天賦嗎,努力加天賦,人家這叫擅長,我就算全天24小時再努力打籃球,最多叫喜歡。網站

認清了喜歡和擅長的差距,我逐漸認清了本身,我最多算喜歡寫代碼,但我並不擅長寫代碼。成爲技術大牛,也許擅長的人須要5年,我可能須要10年甚至更長時間。也許我加倍的努力,理論上有可能實現的,但有時候選擇可能比努力更重要。也許別人5年後成了大牛,而我在成爲大牛的路上已經熬成了禿瓢大爺。我認清本身後,決定了本身之後不會走技術大牛這條路線。固然這只是說我選擇路線時候的考慮,不一樣的人狀況不一樣,並非說管理就好,技術就很差。就算我下定決心之後要走管理路線,但對於技術,在我成爲項目經理以前我也仍是不敢有絲毫懈怠,由於這是當時的安身立命之本啊。至於管理路線,當時也是隻知其一;不知其二,不知道本身具體管理路線怎麼走。可是當時我內心就埋下了一顆種子,等待着它的發芽。

在明確本身之後要走管理路線的狀況下,我也沒有放棄技術的精進,我會留心觀察一些以前我沒有關注的事情,好比項目上的一些溝通、客戶或產品經理提出的需求、項目範圍控制、項目里程碑節點、項目階段總結等等。這些以前我都認爲是瑣事,是沒用的事。花時間在這些事上不如讓我靜心寫幾行代碼,不用理會那麼多亂七八糟的人和事。我想大多數程序員也是這麼想的,但這些看似跟程序員關係不大的事情,後來我發現也是完成一個項目必不可少的,甚至有時候比寫代碼重要的多。

下面說2種狀況,看你遇到過沒。我剛寫代碼的時候,小組長佈置了開發任務,我啥也不問,以爲理解就直接開始作了,結果快作完了,組長告訴我他想要的並非這樣,臥槽,辛苦寫了半天的代碼要重寫。這是很典型的程序員遇到的一個問題,一方面是缺少對功能需求的理解,只想着如何實現這個功能,卻不知跟實際的需求相差很遠。另外一方面缺少與佈置任務人的溝通。還有一種狀況,有時候客戶需求說的很清晰,咱們理解的很清楚,溝通也不錯,貌似咱們作的都對,但卻有一種現實讓咱們很痛苦,感受功能越作越多,尼瑪啥時候能作完啊,需求感受沒邊沒頭的,爲了工期咱們還要苦逼加班加點。向着目標咱們工做加班加點也能理解,可是像這種項目給你形成了很大的精神壓力,徹底沒有了當初改變世界的興奮。上面說的第一種狀況,須要咱們程序員寫代碼的時候多理解需求、多溝通,避險陷入孤島的思惟陷阱,但後面一種狀況,看似與程序員寫代碼無關,但直接影響到了咱們,這其實就是項目經理要解決的問題。

上面說的第2種狀況,在項目管理中叫項目範圍蔓延,屬於項目範圍管理中的問題。那麼項目經理通常怎麼處理這種問題呢,這就要說到項目範圍管理中的定義項目範圍,定義範圍其實就是明確需求的過程,肯定哪些需求在項目範圍內,哪些將排查在項目範圍外,從而定義出項目產品、服務或成果的邊界。這個定義範圍的過程當中會有一個輸出叫項目範圍說明書,它的前身叫項目工做說明書(SOW)。這個文件通常是須要項目甲方、乙方肯定的,大部分狀況是很正式的書面文件,有雙方的負責人簽字的。在項目進行過程當中須要項目經理根據這個及時把控項目範圍,若是出現範圍蔓延就要及時找客戶相關方負責人溝通了,通常客戶看到這個當初你們達成一致的文件就不會再逼逼新增需求了,固然也有例外的,這時候若有必要就問題升級了。現實項目中遇到的問題可不只僅是這一種狀況,還有不少,好比項目時間管理、成本管理、質量管理、溝通管理、風險管理等等,每個展開都能寫一篇文章,受限於篇幅,這裏不一一展開講了,之後有機會挑你們感興趣的說說個人理解。

回到個人經歷上來,在我不斷精進本身技術的同時,我會很留心項目經理作的事,常常在完成本身的工做的前提下,去協助項目經理處理一些工做。有段時間公司項目不少,但項目經理人員有限,項目經理都是一我的同時帶幾個項目。我參與開發的項目,完成本身的開發任務以外,我基本都會盡最大努力去幫助項目經理作一些事,好比寫一些項目文檔,業務需求分析,跟客戶溝通等等。面對不一樣的客戶,溝通方式也不同,這塊我學到了很多。但也很累,好多時候半夜裏還在幫着寫文檔,不要覺得項目經理就很輕鬆。

相比開發,更多時候是專一本身的代碼,完成功能就行。而項目經理從項目一開始到結束,都在各類操心。項目開始的時候要制定項目計劃、定義項目範圍,執行過程當中要隨時把握項目進度、評估各類風險,項目驗收階段要保證知足客戶驗收標準,期間還有各類會議、彙報工做等等。有時候我甚至以爲倒不如寫代碼痛快,但我以爲凡事都有個過程,不可能一開始就能處理好全部事情。漸漸的,我熟悉了一個項目的完整流程。有一次,我所在的項目中,項目經理家中有事不得不離開,整個項目須要一個能掌控進度的人,項目經理向領導推薦了我,我頂着壓力接了,畢竟這是個機會,期間遇到我不能解決的問題,及時領導彙報,磕磕碰碰,最後項目總算是結了項。我平時的努力部門經理也都看在眼裏,經過此次機會,我也證實了本身,不只能寫代碼,我還能帶項目。雖然短時間內職位上沒有變化,但後續的項目中我開始帶項目了,我作的就是項目經理的工做,後來也確實獲得了職位晉升。

有一點須要注意的是,項目經理大部分都是從技術作起,從項目作起,慢慢歷練出來的,不少時候是被提拔出來的,不是說你剛剛畢業或忽然想轉項目經理就能作的了,這須要一個過程,須要你踏踏實實作好本身的工做的前提下,多去關注,多去學習。還有一些人若是對客戶需求敏感、對產品設計感興趣,也能夠作產品經理,這也是管理路線的一個選擇。

不知不覺,感受寫了好長,很感謝你能看到這裏,後續我會常常在公衆號裏分享本身的一些感悟。不管是作技術仍是管理,但願你們都能找到適合本身的路。最後再說一點,不論你從事任何工做,都要培養下本身的寫做能力,多記錄,多總結,多分享,每次寫做都是一次很棒的自我對話,這真的是將來很重要的一項我的技能。

PS:但願以上內容對你有幫助,若是你對本身的職業規劃有疑惑,想獲得一些建議,歡迎你們掃描下面二維碼關注個人公衆號「kevinsheng」,關注後有機會能夠添加到個人我的微信,我會常常分享一些本身的職場經驗、感悟、提高認知的內容,期待與你們溝通交流,一塊兒進步。

有須要Java資料的能夠加我

相關文章
相關標籤/搜索