告別編程5年再次回歸 我注意到很多變化
在享受了6年的全職軟件工程師生涯之后,我決定換個活法。接下來的5年里我進修了MBA課程,并嘗試了各種管理和投資類型的角色。我依舊關(guān)注技術(shù),但在此期間并沒有積極參與軟件開發(fā),也許配置一個wordpress主題或插件可以除外——當(dāng)然這不能和軟件開發(fā)相提并論。
我并沒有像以前一樣持續(xù)關(guān)注***的技術(shù)潮流,因此對于編程技巧已非常生疏。
一旦決定了要做自己的事業(yè),我想到從過去離開的地方重操舊業(yè)會相對容易。結(jié)果我發(fā)現(xiàn),軟件開發(fā)和其他技術(shù)一樣需要持續(xù)的關(guān)注和時間投入,否則技能會喪失殆盡。
(在眾多的理由中)對于與軟件開發(fā)隔離這段時間,我已經(jīng)解釋了自己是如何看待自身的編程技術(shù)。因此我打算在這里談?wù)勗谖腋鎰e軟件開發(fā)這5年里,世界軟件行業(yè)的變化和發(fā)展。
從某種意義上講,我是在2006的夏天告別編程開發(fā)的。那時,我使用J2EE/Java進行后端服務(wù)器軟件開發(fā),采用了面世僅1年的Spring框架。再一次回到軟件開發(fā),我已經(jīng)不再和Java代碼打交道了(不是因為我不喜歡Java,而是因為Java不適合我目前的工作)。坦率地說我沒有關(guān)注Java方面的進展,因此不會在這里討論這5年中Java業(yè)界的變化。下面是離開編程之后我注意到的幾個顯著改變:
PHP成為了可用的企業(yè)級平臺
公平起見,在我之前的軟件生涯中我沒有開發(fā)過基于web的應(yīng)用程序,所以我的觀點可能不準(zhǔn)確。但是,我認(rèn)識的絕大多數(shù)人都不曾考慮使用PHP構(gòu)建企業(yè)級應(yīng)用。PHP被用來開發(fā)輔助項目或者小型網(wǎng)站。我很少使用PHP,所以從未想過使用它開發(fā)公司產(chǎn)品(是的,我承認(rèn),我的名字叫Dan,我使用PHP為自己的創(chuàng)業(yè)公司開發(fā)產(chǎn)品)。
我想這種變化很大程度上歸功于Ruby on Rails(RoR)運動,而在離開軟件開發(fā)的5年中我完全錯過了。RoR在2005年12月發(fā)布v1版本,所以我猜在我告別軟件開發(fā)之前RoR技術(shù)上就已經(jīng)實現(xiàn)了,但并沒有成熟,因為在此之后的1年多時間里我都沒有聽說過RoR。
譯注:Ruby on Rails: 是一個易于開發(fā)和部署的web框架,它構(gòu)建在 Ruby 語言之上,被認(rèn)為是現(xiàn)有企業(yè)框架的一種替代。
我認(rèn)為RoR推動了PHP的成熟。現(xiàn)在,使用***的PHP版本(5.3+)結(jié)合一些新的框架(我選擇的框架是Lithium),PHP已經(jīng)成為了很多類型的應(yīng)用開發(fā)可以信賴的基礎(chǔ)語言。
我可以簡單地將RoR列為本文介紹的要點之一,然而由于在回歸軟件開發(fā)之前我從未使用過,因此決定還是不將它列到我的清單中。我可以肯定,很多人(事實上昨天就有人這么告訴我?。f,如果我不采用RoR就意味著我還沒有徹底回歸軟件開發(fā),所以我想還有很多新東西等待我去發(fā)現(xiàn)。
社交化的軟件開發(fā)
在我告別軟件開發(fā)的時候,像SourceForge和FreshMeat(現(xiàn)在改名叫Freecode)就已經(jīng)出現(xiàn)了,但就社交化的軟件開發(fā)而言,我認(rèn)為他們沒有取得像GitHub 這樣的成就。GitHub在2008年起步,所以在對社交化軟件的理解上能夠從Facebook以及類似產(chǎn)品中得到啟發(fā)?;〞r間檢閱GitHub并從別人的代碼中學(xué)習(xí)是如此的容易,以至于讓我感到非常驚奇。我承認(rèn),我沒有像別人那樣自由地分享自己的代碼。我雖然使用GitHub,但只打算將自己的工作封閉起來。我猜這么做的一個原因就是,在離開的這段時間里我錯過了社交化軟件開發(fā)。
像Reddit 和Hacker News這樣的網(wǎng)站對社交化軟件開發(fā)也做出了巨大的貢獻。這兩個網(wǎng)站都是在我離開這段時間起步,所以我正在努力進入和了解(大多數(shù)時間我都在閱讀Hacker News)。
很明顯,社區(qū)的概念已經(jīng)存在一段時間了。但我已經(jīng)習(xí)慣了從像TheServerSide.com和其他一些網(wǎng)站(名字已經(jīng)不大記得了)閱讀專業(yè)的技術(shù)新聞,然而這些網(wǎng)站的風(fēng)格更像是社論而不是社交式的評論。
nosql數(shù)據(jù)庫
等等,你告訴我在我離開這5年里,人們已經(jīng)完全拋棄了SQL?想問我是否喜歡這種變化?你恐怕是瘋了,因為這是不可能的。關(guān)系數(shù)據(jù)庫和SQL是軟件開發(fā)世界中的一個常量。無論你選擇的編程語言是什么,在某種程度上每個人都會在數(shù)據(jù)庫層次用SQL作為標(biāo)準(zhǔn)來處理數(shù)據(jù)。
在重拾軟件開發(fā)后,我開始聽到像CouchDB和MongoDB這些數(shù)據(jù)庫。我意識到,我正在試圖用MySQL處理非結(jié)構(gòu)化的數(shù)據(jù)(例如,把json賦值到一個column)并開始研究MongoDB。
譯注:JSON:(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,是基于JavaScript的一個子集。
讓我驚奇的是,我能夠迅速拋棄多年來用結(jié)構(gòu)/關(guān)系數(shù)據(jù)庫的方式思考問題(不是你認(rèn)為NoSQL做不到的功能,而是我正在談?wù)摰膬?nèi)容)。我在研究生階段以及工作中學(xué)到的東西突然都不起作用了,就是那種感覺。想想就很瘋狂。
移動軟件開發(fā)
這是我錯過的最重要的部分,未來我打算用一整篇的內(nèi)容來詳細討論。如果我還在忙碌于軟件開發(fā)中,我應(yīng)該會走在這股潮流的最前沿。在離開軟件開發(fā)之前,我已經(jīng)涉足很多移動軟件開發(fā)。我構(gòu)建了基于J2ME(它現(xiàn)在還存在嗎)的應(yīng)用程序,BREW(還有人記得Qualcomm平臺嗎?)以及無線標(biāo)記語言(WML) 。那些都已經(jīng)成為美好的回憶。我們的WML應(yīng)用曾經(jīng)在許多運營商中名列前茅。那時我們面對的內(nèi)存少得可憐,屏幕也非常小,而觸摸屏只是一個未來的構(gòu)想。
在蘋果將其作為戰(zhàn)略之前,盡管人們認(rèn)為這是有可能的,但我懷疑手機能否成為應(yīng)用開發(fā)平臺。2007年,在我離開軟件開發(fā)1年之后,蘋果公司發(fā)布了iPhone發(fā)布。接下來,正如他們所說的那樣,一切都成為了歷史。
現(xiàn)在,我又回來了。我決定放棄Objective-C/Android Java而直接轉(zhuǎn)而使用HTML5/Javascript開發(fā)移動應(yīng)用,我相信這就是我的產(chǎn)品所需要的。
JavaScript
哇靠,為什么還會有JavaScript?在我離開的時候,由于瀏覽器兼容的問題,JavaScript只能完成一些非常基礎(chǔ)的功能。我還記得***次開發(fā)web程序時,為了在IE瀏覽器中支持我不得不同時編寫JavaScript和VBScript,為此我會盡可能減少編寫與瀏覽器相關(guān)的腳本。
2006年8月,幾乎是在我全職編程工作的***幾天,JQuery V1版本面世了,所以我完全錯過了這件大事。
現(xiàn)在,考慮Javascript能否勝任編寫整個應(yīng)用包括服務(wù)器和客戶端這樣的想法已經(jīng)是難以置信了。而且,現(xiàn)在我已經(jīng)開始對JavaScript加速(我采用Backbone.js而不是廣泛使用的客戶端),我為JavaScript的能力所震撼(盡管不是很***)并期望在我未來的新項目中融入NodeJS。
每個人都可以創(chuàng)業(yè)
***我要說的就是這個瘋狂的想法:如果有創(chuàng)業(yè)的想法,每個人都應(yīng)該創(chuàng)立自己的公司。2000到2006年,我的***份工作是做軟件開發(fā),那可不是***的創(chuàng)業(yè)時間。當(dāng)時,***輪互聯(lián)網(wǎng)泡沫剛剛破滅,我覺得能找到一份軟件開發(fā)的工作已經(jīng)是非常的幸運。事實上,我是在我兼職的公司開始了全職程序員生涯。那時,我所在的開發(fā)小組一半人下崗,我沒有被解雇的唯一理由是,裁員那天我正好在學(xué)校并且管理層不知道如何聯(lián)系我(在2000年我甚至沒有手機?。。?。所以,我是第二天在公司出現(xiàn)時才知道團隊中有一半人被解雇,公司最終決定留下我是因為他們知道我能夠勝任項目開發(fā)工作(事實并非如此,但我是這么告訴他們的)并且價格低廉,那時我還是兼職。在我畢業(yè)時情況開始開始好轉(zhuǎn),所以他們雇用我做全職開發(fā)。
現(xiàn)在的我已經(jīng)有了一些閱歷和勇氣(或者說傻氣)可以拒絕好的C-level管理職位并開創(chuàng)自己的事業(yè),我非常感激現(xiàn)在的環(huán)境,創(chuàng)立一家公司變得更加容易了。創(chuàng)業(yè)的成本更低(我能夠自己承擔(dān)啟動資金),有更多的投資(盡管我選擇了拒絕風(fēng)投),并且有很多現(xiàn)成的免費資源可以使用?,F(xiàn)在真是一個***的創(chuàng)業(yè)時間。
總結(jié)
盡管在過去5年中 我學(xué)到了很多,我知道自己一定也錯過了很多。過去的一年里,我開始加速回顧所有軟件開發(fā)的相關(guān)內(nèi)容,現(xiàn)在的我感覺已經(jīng)進入正軌并準(zhǔn)備在今年重新起航。
英文:Danny Does
原文鏈接:http://blog.jobbole.com/16390/
【編輯推薦】