今天早上坐車的時間正好讀完了這一篇文章 《一位資深程序員對當前軟件行業的技術感悟》,覺得有一點意思,可以拿來寫寫
作者有15年的IT工作經驗,3年的管理經驗,想想自己,如果算上大學自己兩年做的項目,加上工作6年的經驗,也有8年了
作者說:“不過在這同時,給公司內部也做了很多J2EE的項目,例如公司的門戶網站,公司內部的release平台,以及team內部用的小工具。不過好景不長,從開發就轉向了管理,一管就是3年,在這三年中不誇張的說去趟廁所都是跑着去跑着回,這還不是最杯具的,最杯具的是根本沒有時間寫任何代碼!!!”
其實很多人期待從技術轉向管理,技術人員轉讓管理人員最大的挑戰就是會有一種失去安全感的感覺,發現好像不看技術了,只做純管理,貌似沒有了生存的根本,當初自己也在猶豫了很久,也做了差不多一年的管理,這段時間很累,在民企管人是一件很苦逼的事情,除了考核權,發現沒有其他的權力了。后來堅決不做了,有從事技術,不過大都數時間都很少在寫代碼了,現在學學objective c,自己業務時間做移動互聯網的開發,覺得比較有意思。
作者建議:“還是最少要寫上15年以上的代碼之后再去考慮管理,要不然你會很快被淘汰”
這一點不是很認同,程序員並不是限定於寫代碼,我覺得代碼這個是寫不完的,而是從寫代碼中去提升自己的技術實力。有一些人寫一年代碼頂有一些人寫5年代碼,當你發現你寫代碼開始都是control +c 和 control + v 的時候,就應該想辦法提升了,天天寫CRUD的時候,你也應該考慮是不是該換個領域里。個人覺得應該深入一門語言,然后擴展其他的編程語言。這一點我做的不是很好,直到現在,才開始接觸一些客戶端編程。如果是以前,我肯定會去學python。同時多看看代碼比純粹的多寫代碼更好,看一些開源的代碼實現,不僅僅能夠讓你使用他更輕松,也能夠增強你的設計能力。
作者關於編程語言的看法:相對來說比較認同
在目前主要的三個領域,傳統軟件,互聯網,移動 ,java的確不怎么占據優勢,而且我覺得java會在互聯網和傳統企業軟件領域慢慢丟失市場份額。
怎么說,我是學習java的,在互聯網,除了一些電商類和支付類等對大型復雜的,分布式 高並發,事務型系統,java比較有優勢,主要分析下來,優勢包括
1 開源提供的解決方案比較多,例如jpa,hadoop,jboss,esb,消息中間件
2 java比較適合大型團隊,比如上百上千的開發團隊,因為語法死板,有一定的編程規范,每個人寫出的代碼的風格不會有太大的差異。
3 因為開源,基本上所有的軟件資源都有免費的,開發工具eclipse,web服務器apache,j2ee容器jboss,消息中間件 activeMQ,數據庫mysql,操作系統Linux。阿里最近都在搞去oracle,全部替換成為mysql。
4 使用開源產品,發現問題可以自己看源代碼搞定,也可以對開源產品進行定制優化。例如淘寶最近就開源了自己定制的 jvm。而沒有必要想服務廠商交服務咨詢費用。
所以亞馬遜,ebay,蘇寧,淘寶,支付寶 都主要采用java作為開發平台,京東也在往java上面轉。
但是java存在的問題也有很多
1 java的框架太多,每個公司用的都不一樣,而且版本混亂,有一些很重量級的
2 開源產品同類的多,需要取舍,而且有一些自以為很牛逼的架構師喜歡在開源的產品上封裝,搞自己的框架,搞的各個公司的框架都不一樣,學習成本高。光一個xml解析工具,都有幾十種。
3 開發效率向相當低,遠遠比php,python這些靜態語言低很多
所以對於web2.0這樣的網站來說,非常不適合用java。我比較贊同使用php或者python。比如豆瓣,優酷。
在企業級市場,.net會是非常不錯的選擇。首先環境統一,開發效率高,微軟的開發工具非常強大,這一點我不得不佩服,而且微軟針對整個開發周期都有配套的工具,都能夠比較好無縫的結合,對開發人員來說比較友好。不像java,東拉一點,西湊一點,這一塊不想互聯網市場,不會出現大規模集群。所以就算全部使用微軟的解決方案,軟件成本的支出也不會很高。而且微軟的服務據說特別好。
不過作者也忘記了一塊越來越重要的市場,就是雲計算,java在這個領域比較有優勢,主要是還是因為開源世界的支持以及google,亞馬遜這些IT廠商的支持。學習java的同學可以關注這一點,可以把hadoop了解深入,我想去大公司應該沒有太大的問題。不知道到微軟在雲計算上目前的進展如何。
ps:這一篇只是自己的看法,編程語言沒有所謂的好與不好,只有在合適的地方使用合適的語言才好。對於編程語言之爭之類的,我是比較反感的,也是最沒有意義的。編程語言的背后是設計思想,這個才是最重要的。作為程序員,我覺得應該多學習幾門風格不同的編程語言,這樣可以加強你對編程的認識和理解。
上一幅搞笑的圖,大家輕松一下: