在很多人印象里,程序員總是那些呆板的形象。那么什么才是真正的程序員,什么才是優秀的程序員呢?
國內的互聯網蓬勃發展,但是卻很多程序員在吐槽,這是為什么呢,程序員在國內的環境究竟如何呢?
能力
能力在程序員的世界里其實是非常容易衡量的,而且是非常容易區分的。我曾經面過一些人,也被面過很多次,這里來簡單說下。
差的程序員
學習別人教給他們的,學會需要使用到的,能夠運用學會的知識,解決一些簡單的問題。
這也是為什么近些年這么多培訓機構,然而程序員的職位依然短缺的原因。沒有一定的知識基礎,大學學的一些其他輔助學科,僅僅學會一門語言,一種編程模式,是沒有什么太大意義的。就如培訓機構所說的,幾個月就讓你學會Java開發。這種量產出來的東西終究不能成為一名合格的程序員。
合格程序員
會自主的學習新的知識,學習別人的項目,學會使用別人的功能。
這種人員能夠自我提高和更新,主要體現在技術的體量和深度上。一個合格的程序員不僅僅知道自己項目中存在的一些功能,還知道其他人也實現了類似的功能,以及之間的區別優劣。他能完成很多分派的任務,也不需要去擔心太多的風險。
可以說,很多公司其實就是要這樣的人,這也是沒有辦法的事實,畢竟所有公司的目的是為了盈利,而不是為了更好的程序。對于他們來說,足夠就行,而不是足夠優秀。
優秀程序員
除了會主動學習,更多的是會主動思考。思考如何讓一個項目更穩定,更加完美。
這是一種完美主義者的追求,所以很多時候經常搗騰點東西。可能有時候會給項目帶來一點點小麻煩,也有可能會給項目帶來極大的提升。但總的來說是往好的方向發展。
這個非常依賴個人的主觀意見,每個人的理解并不一致,有些人可能覺得知識的體量和深度是衡量的標準,也有人可能認為創造性是一個標準。總而言之,這一區段的人員很難從合格中區分開來,需要有一定的見地,才能比較有效的衡量。
特別優秀程序員
這是一個可以影響這個行業的人,將在優秀期間的思考升華,創造出擁有足夠影響力的東西。
這個階段的人也特別容易區分,往往已經成為業界的大佬。當然,也是寥寥幾人。
做人
以下可能有些會讓人覺得不愉快,如果你覺得我說錯了,就當我在胡說吧。
標準
上面說到一名優秀的程序員是比較難以被辨識出來的,而且每個人在不同的角度來看也是不同的。
之前看到有一條動態,有人在嘲笑阿里p8的員工去面試,連基礎的幾個概念都搞不明白,在嘲笑阿里的技術水平。我們再從第三者的角度來看看這個問題。先不論這位阿里員工技術水平,招人方肯定是以技術能力來衡量的,面試官問一些細節、生僻的問題,來體現自己的厲害,但是這有意義嗎?他們需要的是一個可以干活的合格程序員,又不是一個管理者或者架構師。
然而這個現象在招聘中依然非常普遍,因為其他方面的能力真的太難只經過一場面試就看出來了,所以只能通過技術來考察。而越是厲害的人可能更有所專精,通用的技術考察往往又不能達到他們的深度,可能他們的面試結果還不如某些刷了很多面試題的人呢。
所以現在就有很多人抱團取暖,相互貼金。
做人
程序員這個群體都太過于自信和高傲了。這種自信對于寫代碼來說是必要的,可是在做人方面是完全失敗的。
用通俗一點的話來說,你不干了,公司可以找一百個,一千個人來替代你,你又不是行業的大佬,這些人完全可以比你做的更好。不像其他的職位,做的久了,會建立很多關系,會有很多的回頭客。這種現實又導致這個行業的極度缺乏安全感和安定。
就像現在的網絡直播一樣,有多少技術高超,甚至是世界冠軍的人,在開播的時候還有些人來捧場,可是時間一長,身上的光環退去,也只能被淹沒在眾多的播主中間。
所以在學會做一件事之前,更多的去學會如何做一個人吧。
淘汰
同時,程序員之間的競爭是非常殘酷的。技術的更新迭代實在太快了,幾乎每年都會有新的技術出現,所以程序員需要不停的去學習。只要你停下來了,就會有很多努力的人會超越你。
這樣的現象更加嚴重的加劇了上述的一些現象,也更加壓縮了程序員的時間。
有很多故事,都是碰到領導空降,趕跑了一大群老員工。不敢說是不是老員工真的能力不行,或者是反抗新領導。很大程度上是新領導為了自己的業績,從而犧牲一些無關痛癢的老員工吧,誰讓你是這么容易就可以被替代呢?不論老員工如何的哭訴,在老板那里肯定也是盡是老員工的不是吧。
那么,等年紀大了,不能達到公司產出的要求了,各方面能力都不及從前了,是不是就很容易被公司所拋棄了呢。
最后
現在的互聯網行業還是非常年輕的,但也是競爭非常嚴峻的,很多事情也不像代碼這般清晰。所以程序員,收起你的自負,去學習如何做一個人吧。