摘要:程序員
20多年前我就開始寫代碼,很喜歡寫代碼,直到如今爲止仍然熱度不減!人生老是會和你開點小玩笑,我在多年以前走上了」非程序員「之路。我以爲不管你未來是否繼續走技術路線,你的程序員經歷將爲你打下雄厚的基礎。本文爲你分享個人一些心得,爲你分享一些程序員也應該掌握的」非程序員「技能,但願對你有幫助。算法
什麼是」非程序員「?編程
什麼是程序員?這應該不用解釋了。因此」非程序員「就很容易解釋了,只要你從事的是IT類工做,但又不是寫代碼的,你就是」非程序員「!設計模式
」非程序員「常見的職位有:項目經理、產品經理、測試工程師、配置管理員、實施工程師、SQA等;除此之外還有部門經理、副總、總經理、老闆!學習
按照時間順序,我作過的職位有:程序員、項目經理、研發中心經理、副總經理、常務副總,後來我創業了,因此老闆我也當了一回!(PS:我這個老闆是光棍司令)測試
個人程序員之路職業規劃
若是我問你:你寫過代碼嗎?spa
你確定會說:寫過,並且還寫了不少!設計
請你留意,我說的是」寫「代碼,而不是」敲「代碼噢。調試
個人運氣比較好,高中一年級的時候學校就開課《BASIC語言》這門課。當時電腦是很稀缺的資源,家裏沒有計算機,雖然學校有計算機房,但上機的時間並很少。當時我編寫程序的方式就是用筆在練習本上寫代碼,調試程序的方法就是在腦殼裏面運行這個程序。平時我寫下大量的代碼在練習本上,很是珍惜上機時間,想榨乾在電腦房中的每一秒中。雖然當時個人大部分時間是在練習本上寫代碼,在腦殼中運行,但就是由於這樣的編程方式打造了個人編程基本功和素養。
我對計算機編程的強烈興趣,驅使我報考大學時的第一志願就是計算機軟件,但個人高考成績不理想,只考上了第二志願……
我大學讀的是」城鎮建設「專業。這是一個」偉大「的專業,咱們的系主任說:這個專業是用來培養建委主任的(如今叫建設局局長)!當時咱們興奮和自我陶醉了一翻,結果畢業時咱們沒有人能找到」建委主任‘的工做,直到如今好像也沒有同窗坐上了這個崗位。
大學畢業後我在某事業單位從事市政方面的工做,但我很快憋不住,我找到了一份新工做,在某軟件公司作程序員,開發建築預算方面的軟件,正式開始了個人程序員的生涯。接着下來的5年時間,我寫下了大量代碼。當時整個公司13個,其中程序員4人,但做爲程序員的我除了寫代碼,還須要本身分析需求,本身測試本身的軟件,本身管理本身等。這樣的工做模式,讓我獲得全面的鍛鍊。
個人非程序員之路
公司規模不斷擴大,開發人員的數量增長了很多,後來作的項目通常都會配備幾名程序員和一名測試,而我「理所固然」地當上了項目經理。最開始作項目經理的時候,還能夠寫一些代碼,後來要花更多的時間處理需求、客戶關係、項目管理、團隊建設等事情,基本上沒有時間去寫代碼了。
很少久,公司打算將我推向「研發中心經理」的職位,這是一個莫大的誘惑!剛接任研發中心經理一職,還指望能有一半時間來研究技術,實際上這是不可能滴。後來我還前後負責了ISO900一、CMM3級和CMMI5級的工做。
我從內心面實際上是更喜歡走技術路線的,當初選擇了管理路線讓我踏上了「不歸路」。我本來在技術上有不少「第一」:公司中編程最熟練的第一人,第一個最熟悉C#,第一個最熟悉SQLServer等等,多年所從事的「非程序員」工做雖然讓我掌握了很多新技能,但同時也在技術上「廢掉」了個人武功。
若是上天再給我一次機會,我會不會仍然選擇這樣的 一條路呢?
世界上沒有這麼多若是,咱們只能作到總結之前,把握如今,面向將來。
上文簡介了個人經歷,下面開始爲分享一些個人心得體會,不管你是否打算繼續走技術之路,但願對你能有幫助。
關於程序員的幾個誤區
1.)30歲不能再幹程序員
當年不知道誰說程序員不適合幹到30歲,由於人腦越老越不適應這樣的工做,程序員要趁30歲前作好轉型的準備。我當作了研發中心經理,選擇了管理路線,其中一部分緣由就是受這個「30歲不能再幹程序員」的影響!
國外四五十歲的程序員不少,人家寫的代碼越老越牛B,腦殼的思考能力徹底不見到減退,反而愈加厲害,因此"30歲不能再幹程序員"就是一句坑爹的話!
固然這句話在中國說是有背景的,那就是程序員沒日沒夜的加班,若是是這樣的狀態,固然是很難捱到30歲的。因此咱們要保護好本身的身體資源,特別是腦殼,記住兩句話:
a)加班有害健康!
b)工做是公司的,身體是本身的!
2)程序員 = 碼農
一些外行領導認爲程序員就是一種低技術含量的工種,隨便在街上能夠抓一把,你不幹還有不少人幹!就算是咱們程序員自己,也將本身自嘲爲「碼農」。
程序員是高技術含量的工種,若是你掌握了核心技術,你是至關值錢的!可是在咱們中國高技術含量項目或軟件太少了,因此若是你連續幾個月以爲本身技術上沒有什麼進步的話,你要想辦法找一些更有挑戰的工做了。
3)掌握的開發語言越多越潮就越好
開發語言不在多,在於精!對於編程老手來講,掌握一門開發語言的語法可能只須要幾天的時間,但編程的素養和深厚的編程功力是須要多年沉澱的。
我剛學會個人第一種開發語言BASIC,自認爲感受良好,自覺得憑藉本身小聰明就能運用BASIC寫出很強大的程序。後來參加了程序員興趣小組學習班,系統地學習了一些算法,才發現本身是井底之蛙。剛開始工做的幾年開發語言用的是VB,還學習了一些設計模式,自覺得本身很OO,後來隨着工做經驗的積累和遇到不一樣的問題,才發現本身是多麼的膚淺。
編程基本功須要在學校階段就打造,而且要讓本身愛上編程。除了要認真完成全部編程課程的課後做業、練習和課程設計外,你本身還要嘗試去挑戰一些高技術難度的題目。
給幾個題目你參考一下:
a)寫一個五子棋(或象棋)之類的程序。
b)寫一個畫UML圖的程序。
c)寫一個視頻播放程序,要本身寫解碼器。
本身獨立完成需求、設計、實現和測試等所有工做。
程序員應該掌握的幾個非程序員技能
程序員不只要學習技術,也須要掌握一些「非程序員」的技能,這些技能能幫助你開闊視野,加速你的成功!
1)需求分析能力
2)活用UML分析及解決問題的能力
3)軟件測試能力
4)項目管理基本知識
5)口頭表達能力和書面表達能力
6)團隊協做能力
以上知識不能只看書本,更關鍵是實際操練,操練的最有效辦法就是:本身獨立完成一個軟件的全部工做;當本身具有必定基礎後,就和幾個同窗或朋友去挑戰更高難度和複雜度的軟件項目。
職場上的一些小建議
1)想清楚本身想幹什麼。
星爺說過:人生沒有理想,和一條鹹魚沒有什麼分別!
人生能有多少個十年,要儘早發現本身想幹什麼,並要儘早作好通盤規劃。
2)多爲本身着想,不要太過顧全大局。
讀大學時,老師給個人評價是:綜合素質和能力很強。工做後,老闆給個人評價也是這樣。但這樣的評價,可能會帶來杯具的事情……
由於我綜合素質和能力強,因此在安排工做的時候,別人均可以挑一些他喜歡或他擅長的事情作,而我由於是「全能」的,因此我要去幹一些別人不喜歡或不擅長的事情。我曾經試過好屢次將本身想研究的技術點讓給別人,長此以往我就失去了不少掌握高精尖技術的機會。至今爲止我在技術上的一個最大遺憾就是,沒有能精通C++編程,我曾經有機會和有條件去開發C++的繪圖程序的,但我讓給別人了……
「人不爲己天誅地滅」這句話頗有道理,固然不是要你去自私自利,但也不能太過於「大公無私」,根據本身的發展路線,要主動去爭取一些能提高你的技能的機會。
3)不要說少多作,要多說多作。
「少說多作」被譽爲一種美德,但每一個公司都會有辦公室政治,少說多作會讓你吃大虧,你須要的是多說多作!除了要幹好事情,也須要讓你的老闆、同事及時知道你的工做成績。成功人士不只僅是靠實力的,還須要包裝和宣傳。
4)精通技術能幫你創業,精通管理可能只能幫你找到好工做。
大學畢業以前,個人職業規劃是這樣的:爭取幾年內達到月入過萬,而後爭取5年左右的時間能經過打工積累一點點的錢和技術,而後經過本身的技術去創業。可能不少程序員都有這樣的相似想法。
我曾經試過兩次創業:
第一次創業:我打工的同時和一些朋友合夥成立一個公司,我負責開發軟件,個人合做夥伴負責市場方面的工做。但最終仍是失敗了。
第二次創業:從2010年開始我辭職出來單幹,全職作軟件研發方面的諮詢和培訓服務。目前正在進行中……
若是你技術足夠牛B,能找到合適的合做夥伴,而且能找到投資人,那麼成功的機會是很大的!有技術你就有創業的本錢。
我第二次創業就比較尷尬了,當時我已經幹了不少年的管理工做,技術上已經被廢武功,個人去路可能只有兩個選擇:
a)找一個新公司任職管理層的職位;
b)創業搞諮詢和培訓方面的事情。
我不想再打工,因此選擇了b),但搞培訓和諮詢實際上是很難作大的,每次上課其實都是體力活+腦力活。
這與我多年前的夢想是徹底不同的,我期待本身的公司具有核心技術,而且這個核心技術能爲社會帶來很大價值,公司能經過這樣的模式賺到不少錢。
小結
每一個人都會有本身成長之路,每位企業家都會有本身的創業之路。
我走了很多彎路,本文分享一些當心得,但願能對你有一點點小幫助。
若是本文對你有幫助,麻煩點一下「推薦」啦,謝謝!
做者:張傳波
創新工場創業課堂(敏捷課程)講師
軟件研發管理資深顧問
CMMI首席專家
《火球——UML大戰需求分析》做者
軟件知識原創基地創辦人