告別程式設計5年再次迴歸,我注意到很多變化

唐尤華發表於2012-04-23

在享受了6年的全職軟體工程師生涯之後,我決定換個活法。接下來的5年裡我進修了MBA課程,並嘗試了各種管理和投資型別的角色。我依舊關注技術,但在此期間並沒有積極參與軟體開發,也許配置一個wordpress主題或外掛可以除外——當然這不能和軟體開發相提並論。

我並沒有像以前一樣持續關注最新的技術潮流,因此對於程式設計技巧已非常生疏。

一旦決定了要做自己的事業,我想到從過去離開的地方重操舊業會相對容易。結果我發現,軟體開發和其他技術一樣需要持續的關注和時間投入,否則技能會喪失殆盡。

(在眾多的理由中)對於與軟體開發隔離這段時間,我已經解釋了自己是如何看待自身的程式設計技術。因此我打算在這裡談談在我告別軟體開發這5年裡,世界軟體行業的變化和發展。

從某種意義上講,我是在2006的夏天告別程式設計開發的。那時,我使用J2EE/Java進行後端伺服器軟體開發,採用了面世僅1年的Spring框架。再一次回到軟體開發,我已經不再和Java程式碼打交道了(不是因為我不喜歡Java,而是因為Java不適合我目前的工作)。坦率地說我沒有關注Java方面的進展,因此不會在這裡討論這5年中Java業界的變化。下面是離開程式設計之後我注意到的幾個顯著改變:

PHP成為了可用的企業級平臺

公平起見,在我之前的軟體生涯中我沒有開發過基於web的應用程式,所以我的觀點可能不準確。但是,我認識的絕大多數人都不曾考慮使用PHP構建企業級應用。PHP被用來開發輔助專案或者小型網站。我很少使用PHP,所以從未想過使用它開發公司產品(是的,我承認,我的名字叫Dan,我使用PHP為自己的創業公司開發產品)。

我想這種變化很大程度上歸功於Ruby on Rails(RoR)運動,而在離開軟體開發的5年中我完全錯過了。RoR在2005年12月釋出v1版本,所以我猜在我告別軟體開發之前RoR技術上就已經實現了,但並沒有成熟,因為在此之後的1年多時間裡我都沒有聽說過RoR。

譯註:Ruby on Rails: 是一個易於開發和部署的web框架,它構建在 Ruby 語言之上,被認為是現有企業框架的一種替代。

我認為RoR推動了PHP的成熟。現在,使用最新的PHP版本(5.3+)結合一些新的框架(我選擇的框架是Lithium),PHP已經成為了很多型別的應用開發可以信賴的基礎語言。

我可以簡單地將RoR列為本文介紹的要點之一,然而由於在迴歸軟體開發之前我從未使用過,因此決定還是不將它列到我的清單中。我可以肯定,很多人(事實上昨天就有人這麼告訴我!)會說,如果我不採用RoR就意味著我還沒有徹底迴歸軟體開發,所以我想還有很多新東西等待我去發現。

社交化的軟體開發

在我告別軟體開發的時候,像SourceForge和FreshMeat(現在改名叫Freecode)就已經出現了,但就社交化的軟體開發而言,我認為他們沒有取得像GitHub 這樣的成就。GitHub在2008年起步,所以在對社交化軟體的理解上能夠從Facebook以及類似產品中得到啟發。花時間檢閱GitHub並從別人的程式碼中學習是如此的容易,以至於讓我感到非常驚奇。我承認,我沒有像別人那樣自由地分享自己的程式碼。我雖然使用GitHub,但只打算將自己的工作封閉起來。我猜這麼做的一個原因就是,在離開的這段時間裡我錯過了社交化軟體開發。

Reddit Hacker News這樣的網站對社交化軟體開發也做出了巨大的貢獻。這兩個網站都是在我離開這段時間起步,所以我正在努力進入和了解(大多數時間我都在閱讀Hacker News)。

很明顯,社群的概念已經存在一段時間了。但我已經習慣了從像TheServerSide.com和其他一些網站(名字已經不大記得了)閱讀專業的技術新聞,然而這些網站的風格更像是社論而不是社交式的評論。

NoSQL資料庫

等等,你告訴我在我離開這5年裡,人們已經完全拋棄了SQL?想問我是否喜歡這種變化?你恐怕是瘋了,因為這是不可能的。關聯式資料庫和SQL是軟體開發世界中的一個常量。無論你選擇的程式語言是什麼,在某種程度上每個人都會在資料庫層次用SQL作為標準來處理資料。

在重拾軟體開發後,我開始聽到像CouchDB和MongoDB這些資料庫。我意識到,我正在試圖用MySQL處理非結構化的資料(例如,把json賦值到一個column)並開始研究MongoDB。

譯註:JSON:(JavaScript Object Notation) 是一種輕量級的資料交換格式,是基於JavaScript的一個子集。

讓我驚奇的是,我能夠迅速拋棄多年來用結構/關聯式資料庫的方式思考問題(不是你認為NoSQL做不到的功能,而是我正在談論的內容)。我在研究生階段以及工作中學到的東西突然都不起作用了,就是那種感覺。想想就很瘋狂。

移動軟體開發

這是我錯過的最重要的部分,未來我打算用一整篇的內容來詳細討論。如果我還在忙碌於軟體開發中,我應該會走在這股潮流的最前沿。在離開軟體開發之前,我已經涉足很多移動軟體開發。我構建了基於J2ME(它現在還存在嗎)的應用程式,BREW(還有人記得Qualcomm平臺嗎?)以及無線標記語言(WML) 。那些都已經成為美好的回憶。我們的WML應用曾經在許多運營商中名列前茅。那時我們面對的記憶體少得可憐,螢幕也非常小,而觸控式螢幕只是一個未來的構想。

在蘋果將其作為戰略之前,儘管人們認為這是有可能的,但我懷疑手機能否成為應用開發平臺。2007年,在我離開軟體開發1年之後,蘋果公司釋出了iPhone釋出。接下來,正如他們所說的那樣,一切都成為了歷史。

現在,我又回來了。我決定放棄Objective-C/Android Java而直接轉而使用HTML5/Javascript開發移動應用,我相信這就是我的產品所需要的。

JavaScript

哇靠,為什麼還會有JavaScript?在我離開的時候,由於瀏覽器相容的問題,JavaScript只能完成一些非常基礎的功能。我還記得第一次開發web程式時,為了在IE瀏覽器中支援我不得不同時編寫JavaScript和VBScript,為此我會盡可能減少編寫與瀏覽器相關的指令碼。

2006年8月,幾乎是在我全職程式設計工作的最後幾天,JQuery V1版本面世了,所以我完全錯過了這件大事。

現在,考慮Javascript能否勝任編寫整個應用包括伺服器和客戶端這樣的想法已經是難以置信了。而且,現在我已經開始對JavaScript加速(我採用Backbone.js而不是廣泛使用的客戶端),我為JavaScript的能力所震撼(儘管不是很完美)並期望在我未來的新專案中融入NodeJS。

每個人都可以創業

最後我要說的就是這個瘋狂的想法:如果有創業的想法,每個人都應該創立自己的公司。2000到2006年,我的第一份工作是做軟體開發,那可不是最佳的創業時間。當時,第一輪網際網路泡沫剛剛破滅,我覺得能找到一份軟體開發的工作已經是非常的幸運。事實上,我是在我兼職的公司開始了全職程式設計師生涯。那時,我所在的開發小組一半人下崗,我沒有被解僱的唯一理由是,裁員那天我正好在學校並且管理層不知道如何聯絡我(在2000年我甚至沒有手機!!)。所以,我是第二天在公司出現時才知道團隊中有一半人被解僱,公司最終決定留下我是因為他們知道我能夠勝任專案開發工作(事實並非如此,但我是這麼告訴他們的)並且價格低廉,那時我還是兼職。在我畢業時情況開始開始好轉,所以他們僱用我做全職開發。

現在的我已經有了一些閱歷和勇氣(或者說傻氣)可以拒絕好的C-level管理職位並開創自己的事業,我非常感激現在的環境,創立一家公司變得更加容易了。創業的成本更低(我能夠自己承擔啟動資金),有更多的投資(儘管我選擇了拒絕風投),並且有很多現成的免費資源可以使用。現在真是一個絕佳的創業時間

總結

儘管在過去5年中 我學到了很多,我知道自己一定也錯過了很多。過去的一年裡,我開始加速回顧所有軟體開發的相關內容,現在的我感覺已經進入正軌並準備在今年重新起航。

 

英文原文:Danny Does   編譯:伯樂線上 – 唐尤華

【如需轉載,請標註並保留原文連結、譯文連結和譯者等資訊,謝謝合作!】

 

相關文章