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