評判一個程序員好壞的標準到底是什麼?

在這個IT技術火爆的年代,人人都喜歡學IT,人人都用IT技術,但是評判一個程序員好壞的標準到底是什麼呢?


翻開各大公司招聘網站,映入眼簾的是各種編程語言要求:大學本科畢業、英語四級、精通JAVA、3年以上JAVA開發經驗、熟悉Servlet和MVC、熟練使用MFC、熟練使用Win32 Socket、熟悉Linux網絡配置、熟悉Windows shell和Linux Shell,等等諸如此類的招聘條件。可以說,現在大部分公司招聘全都是這套路,培養人才也大概是這個體系,進入公司先做入職培訓,培訓如何使用公司的內部API高效的開發模塊,讓職員快速熟悉公司開發流程,然後就可以投入到生產流水線當中了。於是,我們看到大批程序員全按照此類標準要求自己,上來就看編程語言書,編程語言還沒完全精通就開始熟悉開發架構,架構還沒完全掌握就開始寫代碼了,如果你觀察,身邊此類程序員比比皆是。


那麼,這種模式到底對不對?我覺得倒並非無道理,因爲每個人定位不同,有人就想只寫代碼,如果按照這個要求的話,以上衡量模式未嘗不可,因爲這類人接觸不到實際中的問題,遇到問題有其他人解決,他們只負責實現,只負責coding,其他的他們不管,很多大牛在職涯初期也都是這麼過來的,一個公司總是需要有最底層的工作人員去做這些事情,但問題是,如果這種模式對程序員本身有沒有利?我的回答是否定的。《編程之美》上有句話我很贊同:編程的過程就是享受思考的過程,也就是說,編程絕不單單是做別人告訴你的事情,在這個過程中,你要思考,你要探索,你要找到解決問題的方法。而這個過程,絕不單單是熟悉編程語言就能搞定的。


編程語言和我們用的自然語言其實有相同的地方,他們的作用都是表達人的主觀意思,只要你能表達出你的意思,就達到了交流的目的,至於用的是英語、還是漢語,這個無傷大雅,但並不是說語言就不重要了,相同的一句話,不同的人說出來就有不同的效果,同樣,同一個算法,不同人實現起來效率和安全性也不盡相同,但如果相對於想表達的看法而言,顯然人內心想表達的看法是更重要的。這也就是我想表達的中心意思,一個程序員不應該只關注編程技術,編程技術再精湛,也是人下達的指令,讓計算機去做,你讓計算機怎麼做、怎麼下達指令,這更需要程序員關心。我們現在各大IT公司全以編程語言和編程架構來要求程序員,在我看來是這個社會浮躁的一種體現,他讓程序員過於關注上層技術,而忽略了底層原理,現在的程序員太關注新技術的發展了,今天學JAVA,明天學C#,後天學Python,用着Spring架構,還關注着QT和MFC,沒事還瞅.net兩眼,看開發網絡遊戲賺錢,馬上學遊戲策劃,看到移動應用賺錢,馬上學Android和ios,大家仔細想想,身邊這種人是不是很多呢?你能看到拼命寫代碼的人,但是很少看到鑽研算法的人,你能看到學Android開發的人,但是很少能看到研究Linux內核的人,你能看到用java做網站的人,但是很少看到研究TCP/IP協議的人,你能看到用.net做組件編程的人,但是很少看到研究OS組件開發的人。有些人也許會說,研究那些技術也用不上,有啥用?恰恰相反,我認爲那些技術是最實用、最本質的東西,深入學習那些東西才能做到事半功倍的效果,以不變應萬變,成爲一個真正的程序員。


但就像我之前說的,那些頂層的技術並非不重要,只不過現在的程序員有點太過重視那些,以至於矇蔽了自己雙眼,基礎沒打牢就搞高層,最後遇到瓶頸,無法提升自己。所以如果我評價一個程序員的好壞,會把是否熟悉計算機底層原理放在首位,在這個基礎上的解決問題能力、思考能力、交流能力是考量因素,至於是否熟悉編程語言,這根本不是問題,因爲對於熟悉計算機底層原理的人來說,學習程序語言、熟悉架構這些事情就是順水推舟的事情,掌握了最根本的東西,那些招式根本就不是個多費力氣的事。


我也希望我也能按這種標準要求自己,立足於原理和底層技術,往上發展,切忌浮躁,不要盲目追求代碼量,在原理上花大工夫,輔以適量練習,我相信這是正確的道路,我也相信,最紮實的學習方式恰恰是最有效率的學習方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章