很多同學在考試時很煩惱能不能考上好的學校。但更多人在考上好學校之後,緊接著迎接的不是舒服的日子,而是更惱人的未來工作到底該具備哪些才能。想想,其實沒有那麼多時間在台上跟大家講清楚,所以就在此書寫一些我個人的想法,希望對正在閱讀此文的你,能有所助益。


About program.這個議題有好多人問過我了,到底要學什麼樣的程式語言?到底是不是開始的第一份工作要寫程式?到底業界需要什麼樣的程式人員?我就針對上述這三個問題逐一說明:

  1. 學程式其實是件好事,但希望你能從根本瞭解程式的運作原理,而非只是選擇一個熱門的語言去努力背誦它的撰寫方式。這對你沒有太大幫助,相信我除了C語言之外,其它語言都會隨著時間被逐一取代。舉個例子O.O.的王者Java也才十年就成王了,而現在的App時代,新的程式語言跟SDK又各自崛起,若真的要挑一種建議你三選一:Java solution.NET frameworkC or C++系列這裡三擇一即可。不要求廣,反而要深,越深入你會發現很多語言的原理其時大同小異,就算日後遇到新的語言也沒有那麼困難。
  2. 沒有人規範你工作一定得寫程式。我一直覺得資管、資工、資科等人才,不應該只侷限在寫程式的角度而已。畢竟真正發光發熱的產品跟平台,很多都跟很複雜的程式無關,反而是去關注『資訊系統能彌補人的哪些需求上的缺口?』,這才會成功。Google看清了人在網路做搜尋的苦、人在管理行程上的不便、人在收發mail的必要性;Facebook看清了人群相處之道,真正的相處是需要實名制而非匿名制,此外人本來就是群體的動物,這些的領悟造就了它的成功。極少人去探討googlefacebook用了什麼程式撰寫,so…真的一定要會寫程式嗎?我到覺得如果把資訊類科侷限到那麼狹隘,是一種極度對未來缺乏信心的表徵,這非你所過,是教育體制該反思之路。
  3. 看完第2點,若你覺得真的對程式有熱誠,那給你一些建議囉~現在流行的雲端中,講白了就是再談web programmingdata store的技巧。Web programming的語法多的驚人,googlefacebook用比較多的其實是老掉牙的PHP,原因無它:因為PHP+Apach server的可承載服務量最佳;但若你想寫的是企業服務解決方案,Java會是一個好的total solution。就以java來談好了,要寫好一個web systemclient/server的世界裡,java是寫server side的程式,業界現在用最多的是MVC(Model-View-Controller)的架構。現在有許多的framework(你可以把他想成可以幫你達到某些效果的半成品),可以幫你達到web systemserver side關切的設計原則:struts framework常拿來幫助你達到MVC的效果、spring framework常拿來幫助你達到IoCAOP(這兩個都會讓系統彈性變的更好)的效果、hibernate常拿來幫助你達到ORM(就是用物件來操作資料庫底層的內容,不需要在去下太多sql指令。簡單來說,就是操作物件時等同操作資料表)的效果。上述三者strutsspringhibernate簡稱為SSH解決方案,聽完應該想哭了吧,沒有一個懂得~如果現在你想開始學java…太多東西等著你學囉!諸如:java servlet原理、JSPspringstrutshibernatedesign patternweb-based溝通原理,這些可都要會喔!在說一個讓你覺得更傻眼的事情,上述的東西都學完了之後,通常業界會請一個大學生來寫程式就好了,會了那麼多其實一個月才3萬出頭即可~是不是覺得便宜到不像話注意,這些語法就算背完一下子就又有新的版本跟架構出現,你若還是想漂在這麼表面的語法世界,那我想你最好趕快熟悉跟google做好朋友,因為未來你一定會常用到他。再來,請深呼吸一下,學完這些只是前半段而已,server side會了之後,其實還有client要寫耶,挖…client現在要會的也不少喔!諸如:javascriptcssHTML4HTML5ajax相關的frameworkjQuery上述這些快變成基本配備了,試想你的人生經的起幾次這種程式語言的轉變。往原理著手吧!當原理懂了,很多東西期時沒有那麼複雜,上述這些語法很多大學生只要去恆逸資訊或資策會上完課就寫的行雲流水了,值錢嗎呼~老實講嗯嗯難矣!


我想看完上述的說明你應該對程式死心了,但若對程式完全不懂,那身在資訊業的你也只能被玩弄在手掌之間,因為就算讓你當PM你還是不曉得怎麼估時程、什麼算合理、工程師有沒有虎你。怎麼辦呢?老話一句:挑一種程式把他學深,再來多看看client/server溝通真正的協定跟原理,例如web常用的http協定到底client怎麼送requestserver、而server怎麼接收request之後處理後產生responseclient?另外javascriptjsp或其它後端的程式到底差異性在哪裡,那個時間點會被執行,誰會先做、誰後做。把概念想清楚,另外軟體工程的理念不要一直停留在課本教的SDLC,看看agile programming(敏捷式開發)方式吧,現在大家早就都在用這種有效率的開發方式再開發了,SDLC…這名詞好久沒有在業界聽到了,就算有聽到,百分之90都沒有正確執行,因為軟體產業中唯一不變的就是『客戶永遠在變』,你的SDLC怎麼做analysis phase…!當你開始瞭解了上述這些原理,那程式在怎麼換就不重要了。


在這篇文章中,相信大多數年輕人看完一定對未來更佳不安,但這是事實,沒有人可以迴避,給你的建議是分工吧~找到志同道合的人,有人熟DB、有人熟網路、有人熟程式、有人懂軟體設計架構,未來的世界很難一個人一步到位把全部的程式學會。話雖如此不要了,現在是雲端的世界,其實未來(記得是不久後的未來)你會面對到根本不需要寫程式的時代,因為將會有需多易用的自動化程式產生平台可以幫你把你的程式產生,並且有效率、有品質的在雲端執行。那個世界中:你不需要會程式、網路概念、資料庫等技術你唯一得記得的是什麼是使用者要的,若你想不出來,那就等著被不會寫程式但有想法的人宰掉吧!


切記,雲端的來臨你只有兩條路可以走:要寫程式就要寫到最深處、要嘛放棄程式,去尋找你的目標客戶的缺口,把他補滿。安安穩穩寫程式就能過活的時代,已經是10~15年前的觀念了~你還停留在此嗎?身處在資訊業的年輕人,看完後畏怯了嗎?放心凡事一體兩面,聽完了沮喪的事,下一篇會談談讓你為之一振的新藍海!

 

 

arrow
arrow
    全站熱搜

    劉逸 發表在 痞客邦 留言(4) 人氣()