何戈洲:思想枷鎖是程式設計師職業發展的絆腳石

發表於2011-08-24

注:本文轉載自何戈洲的部落格

開篇

首先、我是一個程式設計師,從大學畢業到現在,已經工作了近5年的時間,看著現在越來越多的朋友進入IT行業,並且年輕才幹的做軟體開發的朋友們,個個都是生龍活虎,精兵強將,年紀輕輕的就學習了很多知識,我感覺我們做這個已經有點力不從心了。程式設計師,一提大家都會說是吃青春飯的,是的,在國內的大環境下,如果程式設計師自身的技術本身並不是很出色,然後年齡又過30了,那麼就會有這樣的現實問題,現在公司招人,都是從利益的角度出發,會詳細的計算所謂的投資回報收益比,這也是我們作為職場人員,給企業打工逃脫不了的問題,所以生活還是很現實,當夢想照進現實的一剎那,思考總是引起漣漪。

可不、今天起了個大早,西安天氣很熱,房子蚊子多,真是悲催啊。唉不說了,想了很多,所謂夢想的追求,希望能最終經過努力來實現它,很多人說我們應該享受過程,呵呵,而不是看結果,不過有時候以結果成敗論英雄的。現實就是這麼殘酷。

摘要

我也是早上實在是睡不著,又不想寫程式,感覺腦子很亂,不過想到寫這篇文章的思緒卻很強烈,我一直思考一個問題就是,為什麼我以前考慮問題的時候,好像思維都是非常的固定,模式都很程式化,導致從事開發人員之後,自己做事都很固化,包括很多事情,原來敢於嘗試的,現在都不敢嘗試了,因為不知道前方會是什麼情況,所以從不敢試,然後,我推薦我們以後,當遇到一個自己從來沒有做過的事情時,可能我們剛開始並不知道如何去做,當我們對這個沒有做過的事情,用心,專注的去攻克它的時候,等你掌握了門路之後,你就回發現另一個春天,真的是這樣的,我現在遇到什麼困難的事情,都不會輕易的妥協,我不怕失敗,所以才會有可能成功。

關於專注、思維的轉變、放下枷鎖、改革開發思維也許是我們職業生涯的新起點。

讓我開始新的職業生涯之路吧。

思想的枷鎖

首先、我寫的更多是我的理解的所謂的思想的枷鎖。不代表全部,部分觀點可能有錯誤,或者是太片面,還請大家批評指出。thankyou!

我認為做程式設計師開發太久後,一般會有這樣的感覺。技術上,變化更新太快,感覺跟起來有點力不從心,不跟好像又不太合適,所以一直處於追趕的步伐,所以當程式設計師,會感覺很累,身體累就不說了,更多的感覺是心累,關於哪個語言的程式設計師最累,我想是做應用開發的,不管是Java還是.NET程式設計師相比其他的對技術上要跟風的東西太多了,不過,當我們思想上理解一點,其實就想明白了,應用技術的出現,無非是為了解決幾個問題,一是提高軟體的生產效率,二是降低開發成本,這裡所謂的成本就很多,時間、人力、後期的投入等等,所以易用性、快速等方面的要求就會要求比較明顯。我想這個大家應該神遊體會。我是從事微軟平臺之上的與同事一起合夥開發一套幫助企業及個人的快速軟體開發平臺,提供了強大的快速開發輔助工具,幫助開發人員更好的專注業務功能的開發。三是解決前輩們的一些不易解決的問題而發明的新語言或者是解決某些問題而生的新技術。例如目前比較或的雲端計算,總感覺又迴歸了,思想上呵呵,當然也有新的發展了,在原來的集中式主機+多個終端,現在只是形式上有所變化,並且給了個新名詞“雲端計算”呵呵,挺浪漫的話說。

再次、不得不說,技術的發展是日新月異的,而我們的技術水平應該也是在逐日提高的,不過我們的思想,有可能變化的總是一種模式,我下面簡單總結下一般程式設計師的思維,不代表全部,thankyou。

程式設計師的一般性思維:

上圖,我先說明下,上面的毛病,有時候是我自身也有的,我也在努力的改正,也有是我看到的,聽到的,感受到的呵呵。

後面我們就來仔細的簡單分析下,原因吧?

所謂的難溝通

其實、並不難溝通,真的,但是說實話,讓程式設計師跑商務或者是跟客戶見面,讓程式設計師做出和客戶面對面來溝通的時候,就可以感覺到一些事情,我簡單羅列一下吧,我自身也有這樣的問題存在。

1、往往我們想的軟體與客戶實際的業務場景和業務功能,會有一定的偏差,因為客戶希望的業務系統,在軟體上實現很難,當然並不是軟體實現不了,往往因為一些時間和進步上的關係,我們會考慮把這個難點繞過去,或者是用一種折衷的方案來一樣完成客戶希望的功能。

2、程式設計師考慮系統設計功能模組的時候,有時候喜歡考慮一些使用者並不常用的場景,反而認為是使用者未來可能用到的功能,而加大設計的力度和靈活度,其實現實中的軟體,並不是所有的功能開發出來,都被客戶所用到,科學的調查是,使用者往往使用的功能不會超過80%,甚至更低。

3、程式設計師的溝通與表達能力,有的時候與客戶或者是我們去調研需求的時候,表達的詞過於專業或者是使用者聽不懂,我們應該立足於某個行業,首先熟悉業務的專業名詞,不是要求我們成為業務專家,至少知道我們開發軟體的目的是為了解決什麼問題,應用在什麼業務背景和場景。

4、程式設計師與程式設計師之間溝通,如果技術相投的朋友,溝通起來比較愉快,一般就一些問題,達成共識會比較難一些,特別是一些自己思想上認為不太合適的問題,可能就無法接收一些觀點,也許現實中的這些觀點不對,不管站在另外一個與你溝通的人的觀點之上,他確實是正確的,所以這時候,很難接收,往往程式設計師與領導之間難達成共識。其實這是牽扯到商業等各方面目的,是利益權衡的結果。

程式設計師思想固化?

一個人的行為,還好改變,而改變一個人的思想,真的很難,程式設計師的思想其實也不是一天二天就形成的,從你接觸開始,或者包括就業,社會環境等等所有的事情,對你個人心裡和情感上總體的變化,最終形成了一個人的思想。每個人不管是在家庭、社會、工作、生活中所處的環境與地位等都各不相同,但是終究一點,人活著,不是為了受罪,而是一是滿足物質生活,二是追求精神生活。所以這個我們作為程式設計師,一樣也是希望能有一個精彩的人生。

堅持自我

關於程式設計師堅持自我的思想,我想最能表現出來的時候,就是與人溝通時,再沒有達成共識,或者是自己職位高於別人的時候,一般都會把自己的意志強加給別人,呵呵,說難聽一點,有點強/奸別人的意思,當別人提出批評意見的時候,往往心理上會不服,嘴上堅持自我,難以溝通。其實、程式設計師的邏輯思維能力很強,不然沒辦法當一個好的程式設計師。因為如果邏輯思維混亂,那麼不能說肯定程式寫的混亂,但是肯定不是非常好。或者說是嚴謹性與質量上。

所以,我不怕,呵呵,因為我是程式設計師。

思路窄

我這裡所說的思路窄,主要是以下的幾個方面,不代表全部。

一、解決問題的思路,一般來說,都是最快的解決問題就OK,沒有考慮一些更多的因素,比如程式碼的質量、效能。沒有尋求有沒有更簡單的解決問題的思路,

把問題容易複雜化。

二、對功能的認識,都認為是能實現功能即可,很少從使用者的角度出發,考慮使用者的實際使用場景,易用性等,對功能自我滿意度較高。

三、對事物的看法、一般對於不知道的事物是一點都不瞭解,瞭解的事務,都會整出很專業的一堆解釋。而且,生活中的知識一般知道的太少,為啥呢,因為都在寫程式。其實有些程式,不再我們寫的多,有些程式,你寫十遍和寫一遍是一樣的,但是有些則不然,古人說的沒錯。書讀百遍,其義自見。程式寫多了,也會衍生出自己的想法,自動就會對程式碼進行重構和設計。

四、對生活的認知,一般都會認為社會的每個行業其實都差不多,呵呵,而且認識的人一般都是程式設計師,因為見到的都是同行的人,所以每天溝通的話題,都是除了IT還是IT,生活總是離不開那個區域,讓人感覺好像,除了這塊可溝通,其他的東西,都不用考慮了,呵呵,我感覺這是我自身的毛病之一,要多接觸各行朋友,深入社會,才能在認知上擴大,並且擴大交際圈,人不能老是活在自己的世界裡。

五、更多。我也不知道還有哪些,大家補充吧。

放飛想法,走出禁區,展翅高飛,迎接精彩而又打上自己標籤的幸福生活吧!

憑經驗

這個怎麼說,為啥這麼說呢,這其實不光是程式設計師的思路,也是所有目前社會人士的思路,認為總體來說,就是瘦死的駱駝比馬大,大家應該能意會出意思吧,

呵呵我想也不用太明說。我們從招聘人的時候也能看出來大概,有時候我們在評價一個人的時候,總是從自身的標準,憑自身經驗去判定,往往都是主觀的評價,而不是客觀的評價,往往是以偏概全,常在河邊走,哪能不溼鞋?古人總結的話,總是經過多人實踐證明的。希望我們不要當憑經驗做事失敗的時候才後悔莫及啊。

還有就是認為,工作年限多的人比少的人能力強,呵呵,這個不能說100%就一定對吧,我認為憑經驗就認定,一棒子打死人也不對的呵呵,我們要具體情況具體對待,經驗有肯定比沒有好,就像很多做設計與系統分析的人員,有經驗,肯定比沒有經驗的好多了,這是肯定的,但是經驗不是全部,還要集合具體的東西,而常常我們都是憑經驗去辦事,認為以前有過這樣的經驗,這次肯定沒問題,有時候會因為準備時不充分或不足,做出來的系統或產品,與客戶的需求有偏差呵呵。當然有經驗比沒有經驗是好,但是一味的憑經驗辦事絕對就是有問題了。

經驗是財富,但是不是全部哦,有時候要具體問題具體分析。

轉換思維難

接收批評

很難接收批評,我想這是程式設計師心理上比較難接收的事情,而且程式設計師一般情況下,都比較會為人處事,我說的為人處事,是指不喜歡惹事生非,以和為貴,很少會與人撕破臉,爭吵之類的,反正我是不會,遇到牽扯到利益的事情,有時候都懶得抄,也許我是被嚇大的吧,怕怕!或者是懦弱?其實並不是。

當我們在工作中或是生活中,做錯事,當我們指導自己錯的時候,才會認錯,或者是在別人的威逼利誘之下,才會認錯,主動認錯的可能太少,一是因為面子上過不去,程式設計師,都比較好面子,希望別人誇他不錯,或者是能力強,不喜歡別人貶低自己不行,其實不只是程式設計師這樣,是人都這樣,但是如果我們程式設計師,想要比別人強,那麼首先得接受別人的批評,自己做得不好的地方去改進,所謂忠言逆耳利於行,我不想說古訓了,真的有道理,我也討厭別人批評我做事不好,不管是生活上還是工作上,都是如此,每次都希望自己做事能做好,讓人尊敬之類的,其實往往不是如此,為啥呢,我得出結論,領導分配任務,有時候只是跟你說想要的結果,有時候由於過程不同,往往成本與時間不同,最後的結果也許也會不同,程式設計師上進的吧,機會考慮每次專案都是學習的機會,不上進的就是重複勞動,外包公司一般的專案,你做個遍,就知道了,呵呵,接受批評也是進步,不能說是技術上的進步,應該說是人生的進步。成大器者必須接受別人的好的批評,當然不好的就當耳旁風吧,thankyou!

無法面對失敗

首先、沒有人喜歡失敗,不過在實際場景中,由於一些難以控制的情況,專案會有失敗的情況,其實我做過的成功的專案不少,失敗的專案也很多,我也是剛開始沒辦法面對失敗,生活中也是如此,我高考的時候,並不是一擊必中,而是二次才成功的,曾經因為一些前後的反差巨大,心理上承受不了,不管是各方面的壓力等,也許等你經歷了一些事情之後,才會更堅定信心。

程式設計師面對的失敗,更多的自己工作中的失敗,生活中的失敗,也會對工作造成影響,人家是這麼說的,當一個工作的狀態能夠反映一個人的生活狀態,當這個人工作的很帶勁,他的人生也必是積極向上的,或者是充實的。所以關於勵志的故事,這裡就不多說了,所謂失敗是成功之母,我們不應該因為某次不順或者失敗的情況,就放棄自己的理想或者是自己的目標。關於前人的路是不是可以複製,只要你努力,並且朝目標前進,你放心,付出總會有回報的,在技術道路上可以說是比沒問題的,你投入的時間多,技術水平肯定就上來了。這和生活中的一些做事的態度和專注力與取得的結果是一樣的。

商業思維

首先、我想說的是,程式設計師一般人很少會從商業的思維去考慮問題,或者是人生的規劃等,其實很多的程式設計師創業,一是為了理想,二是為了成功後能發筆財,不過有些事情,我也不好多事,牽扯的範圍太大,大家意會就可以了,社會壓力大,生活上與物質上的,我現在就遇到這樣的問題,生活最終要落地的,所以當你結婚之後,你就必須考慮如何去保證一定的經濟收入,孩子的奶粉錢和上學問題等,房子問題等,開銷等,所有的所謂的經濟壓力都會隨之而來,我們如何應對。打工來自穩定的收入,固然不用太愁,每月正常上下班,把安排的工作幹好,然後就等發工資,如果能幹的好,那麼還能分獎金,當然我說的不是全部,說的是好點的公司,有些公司可能沒有,不過大部分的北上廣的企業還可以。

給別人打工,工資收入穩定,到月就發,當然有些特殊的公司,那樣的不穩定發工資的公司,可以考慮閃吧,不過我最近接觸到的一些商人,分析下他們的經驗,當然關於對不對,我就不評判了。

1、商務的問題。公司的收入來源,沒專案沒錢。

2、技術問題。有專案,但是沒有合適的人員,這就很難開展,只能外包,賺取中間差價,這樣的公司一般很少需要程式設計師。

3、管理與運營問題。人多了,公司的就需要有人管理,除了商務,技術,還需要考慮公司的管理與運營,包括市場的推廣。

4、成本收支。必須考慮支出與開銷,控制成本等,投入的基礎設施的費用與人員費用,其他隱性支出。

有時候老闆必須考慮,企業的發展與自己的優勢,並且能夠給員工發工資,不然怎麼能留住人,沒人企業就沒辦法發展,也沒辦法壯大,人是企業的組成部分。

企業如何立足行業,提高行業的競爭力才能發展,否則只能被吞併。

我希望我們有時候,能夠轉變思維,並不是讓我們損失自己的利益,站在商人的角度來考慮問題,比如拖欠工資,其實與其這樣,我們還不如找個不拖欠工資的公司,我們做軟體其實不就是為了基本的生計問題嗎?能有口飯吃,當我們創業的時候,或者是想能夠把夢想照進現實,不管是為了創業成功後的發財還是發名,等等,反正都必須瞭解與熟悉商業上的模式,切換思維,才能更適合社會的行情與環境。

Andriod是開源的,但是並不免費,你可以深入背後,瞭解下器商業模式,可以很好的學習。我們有時候需要轉變思維?也許吧。

精英法則:2/8

相信大家都知道2/8原則了,呵呵,不用我怎麼解釋和說明了,不管社會進步到什麼程度,這個原則永遠適用。我認為,我們大家應該努力先向20%的目標進發,這個時候離成功和物質生活的改善就不遠了,365行,行行出狀元,這句話也比較有道理,我不是什麼學者也不是什麼專家,這些大道理,我想我沒有資格跟大家教導啥的,我自己現在也是在80%的範圍內,希望能夠成為20%的一員,我也是在加油的追趕。

如何成為精英,這個步驟,我是講不來了,這個大家可以看看各方面的資料了,如果我們是做技術想成為20%的精英,我認為可能有以下幾點:

1、用心,把敲門磚修煉成金磚。我們沒有錢,沒勢,不會拍馬屁,不會做事說話左右逢源,怎麼辦,先把技術修煉的剛剛的。

2、學習技術的時候,在一個行業內,目前是成為接近技術專家的偽專家,專業,用心,不斷學習,關注社會東西,清晰的人生目標。

3、修煉人生、修煉意志、接收現實與所處環境,與其抱怨不如潛心修煉,終有一日會達正果。

4、技術上想成為專家,一是技術與行業知識過硬,而是肯於交流與分享,不要把知識放在自己的肚子裡,消化不良容易。

在國內,技術人員很多的情況下,往往精英只是極少數,加油吧,兄弟們。

收入不平衡?

我想我們大部分,都有這樣的想法吧,反正不管你有沒有,我是有這樣的想法的。我們每天在公司做專案,公司的主幹人員,比如大公司的架構師或者部門經理,鮮能見到人,在工位,但是你放心,他的收入遠在你之上,或者是你的所謂的專案經理或者你看不順眼的領導和主管,程式設計師的工資,在一個企業內部可以說是底層的,為啥呢,我想是這樣的。

1、可能我們技術不強,能力不強。這個能力不光是技術與解決問題的能力,還包括溝通、管理等方面很廣。

2、技術強、但是不太會表達,不太會為人處事,不太會鎮得住場面,該說的時候,說不出來。這就很悲劇了,肚子裡面有墨,但是倒不出來,那麼很悲劇了,我發現,很多的技術強人,都有一些這方面的問題,我不是技術強人,我也不太會表達,有時候,悲催。

3、我是程式設計師,偶爾抱怨,領導一天不加班,也不寫程式碼,日子過得悠哉,提早下班,遲來上班,下班之後,車一開,工資我的好幾倍,時不時的放假能出去舉個會,旅遊啥的,悲催,程式設計師呢,平時加班寫程式碼,研究技術,週末好不容易休息,還得加班,或者研究新技術,日子是很充實,結果呢?不言而喻。經常抱怨的人,心態並不好,而且自己的工作與生活也常常如此,抱怨不如嘗試著去改變,接收而奮發圖強,成為強者。

4、我是程式設計師,當我們看到周圍的人,職位攀升的時候,我們是否也在想自己哪天也和他們一樣,其實你仔細看看,也許周圍的人付出沒有你多,但是他上去了,你卻沒有,為什麼呢,仔細想想吧,是你幹活少?不是,是你不會為人處事?有可能,是你不會表現與抓住機會?有可能,是你還不夠穩重,很急躁?這絕對是最大敗因,我們有時候在一個公司呆了2-3年,結果職位是周圍比自己爬得快的比比皆是,自己卻一直很慢,仔細考慮和反思吧,領導的想法很特別,我這裡就不一一道來了,這是寫不完的。

最後、生活是自己選擇的,但是記住,自己的生活軌跡是可以改變的,人不是生下來,就決定一定這輩子只能當編碼的程式設計師了,我們既然選擇了方向,我們就要努力。成為20%的精英,不管是自己有事業的想法還是在企業內部成為領導,我們都可以為之努力。當別人日子過的很滋潤,你還在考慮房子,車子,基本的物質生活時,別人有著漂亮的老婆和幸福的家庭,舒適的生活,記住,剛開始肯定不是這樣的,人家如果家庭條件並不好的時候,肯定人家也努力奮鬥過,如果是家裡有錢,那就沒啥好比的了,我是沒錢,也比不了,只有靠自己的雙手,來托起幸福的明天了,我們不希望繼續這樣的生活了,怎麼辦,自己想好出路與目標,先實現小目標吧。祝大家都能成為20%的精英。

20%的人創造了80%的財富,他們當然理所當然應該拿80%的收入。呵呵,我們應該也是如此。

 

相關文章