很多程序員, 包括我自己, 在職業生業道路上前進時會陷入一個誤區, 認為對程序員而言最重要的是技術,因而不斷的提升技術水平來武裝自己。
他們寫代碼是以技術為驅動的,比如說在項目中使用XX高端的技術,實現XX設計模式、精妙算法。 這沒有什么問題,追求技術水平的提高是好事, 能更好的解決問題,能提升自身的行業競爭力。 但是, 在追求技術的過程中,不能忽略掉一樣更加重要的事物。
程序員寫代碼的目的是什么? 毫無疑問,是創造出用戶喜愛的軟件, 這才是程序員這個職業存在的終極意義。 假如程序員寫一個軟件,這個軟件卻不受用戶歡迎,那么這個軟件就算實現技術再高端, 性能再優秀,也是沒有實際意義的。
程序員在自己職業進階的過程中,技術能力的提升必不可缺, 要是市面上到處都是菜鳥程序員,生產出一堆堆BUG滿天飛的軟件,那整個行業就會完蛋。
程序員在保證自己的技術足以解決問題和生產健壯穩定軟件的前提下,應該更多的去思考, 自己寫的軟件是否是用戶需要的,是否能為用戶解決問題? 換言之, 程序員應該多去思考產品經理思考的問題,畢竟這才是軟件被生產出來的意義所在, 代碼什么的,使用軟件的用戶是看不到的,他們也不關心。
程序員切記不能一門心思撲在技術上, 即便這是個人的興趣愛好,因為這對自己的職業發展非常的不利。寫一個編譯器, 寫一個操作系統,這些事情很有意思, 也很有挑戰,可這些軟件市面上都有了,做出來了也沒有人用。 程序員做的東西不應該只是針對自己的興趣,而應該是站在用戶的角度, 看看做出來的東西是不是用戶需要的。
一門心思研究技術是計算機科學家應該做的事, 程序員不是計算機科學家。
一般大學里學習計算機技術的地方會被打上計算機科學的標簽,這沒辦法,因為大學本來就是科研場所,但是當立志當程序員的大學生畢業以后,一定要分清楚計算機科學研究者與程序員的區別,程序員是生產用戶喜愛的軟件的,至於純粹搞計算機技術, 那不是程序員干的事情。