論程序員的自我修養
最近招了大半個月的人,結果是沒有找到一個合適的。其實我們的要求不高,只想找兩個合格的程序員而已。但是沒有,所以有感而發,寫下這篇嘮叨。。。
我對合格程序員的定義是:
1、可以獨立解決問題。
這個問題不是編程問題,而是業務問題,或者說是公司生存和發展道路上遇到的問題。當然,生死存亡的大問題輪不到程序員來解決,所以大家就不必在這上面擡杠了。
問:你面對問題時,一般都是個什麽套路?業務上的。
答:先看日誌,找到問題後調試一下,看看哪裏代碼有問題改一下就好了。
沒毛病!碰上bug我們都是這麽幹的不是麽?可我已經說了是業務上的問題啊,難道還不夠直白?好吧,我只能認為他根本就沒有思考過業務問題,從來都是領導怎麽吩咐就怎麽做的。這不是程序員!這是碼農!!我們團隊不想要碼農!!!
那麽,遇到業務問題該如何解決呢?
我想大家都會有自己的套路,我這裏簡單說下我的套路,拋磚引玉。
首先,得搞清楚問題是什麽,對吧。對癥才能下藥。只有抓住問題的核心,明了其本質,才能真正解決問題。
其次,要制定解決方案。我們知彼之後,還得知己。要確定自己需要什麽樣的結果,以及擁有的資源和能夠付出的代價。做到了知己知彼,那解決方案就不會是紙上談兵了。只有可以落地執行的解決方案,才是有用的解決方案。
然後,找齊相關人員開會討論,形成一個決策。
最後,就是按決策來執行了。
2、要有自己的見解和思想,不人雲亦雲。
沒有思想,寫不出好的代碼!只會翻來覆去地重復搬磚的,還是碼農。搬磚5年和搬磚1年,有區別麽?你好意思在簡歷上寫5年工作經驗麽?
問:你拿到任務後,工作流程是怎麽樣的?
答:都是領導告訴我需求,然後我按需求開發。
好吧,我輸了。你接到任務難道不先做設計麽?哪怕別人已經做過設計,你也得自己做個設計進行對比才知道別人的設計合不合理啊,才能學習進步啊。什麽?不會做設計?那不是剛好是個學習的機會麽?天天抱怨沒有機會,天天對機會視而不見,這樣真的好麽?
3、工作上不獨立特行,可以和團隊其他人一起愉快地工作。
有能力有主見是好事,但如果因為性格問題和團隊格格不入,就不是好事了。我目前還沒面過這樣的人,不知道是幸運還是悲哀。。。
論程序員的自我修養