我想成為 web development。我是自學的,我瞭解 front-end & back-end 概念,目前在 treehouse 學習編程。
有很多國外的 bootcamps 程式學校都是學習 ruby on rails,為什嗎?
如果我想成為 web developer(full stack),我該學習 php/mysql, ruby on rails 或其他?
各位有經驗者可以給我建議指引我或學習路線嗎?謝謝!^^
回複內容:
我想成為 web development。我是自學的,我瞭解 front-end & back-end 概念,目前在 treehouse 學習編程。
有很多國外的 bootcamps 程式學校都是學習 ruby on rails,為什嗎?
如果我想成為 web developer(full stack),我該學習 php/mysql, ruby on rails 或其他?
各位有經驗者可以給我建議指引我或學習路線嗎?謝謝!^^
假如編程基礎不深,目標是 full stack,那麼我建議分下面幾步走,純個人見解,歡迎討論:
Step 1:建立編程思想,要紮實的掌握一門程式設計語言,瞭解基本的編程方法、程式碼群組織結構和設計模式。
在這一步裡,專註於一門語言是比較重要的,徹底弄懂它。對你來說,以 js 或 php 開始或許比較好,這兩個語言入門門檻比較低,ruby 的話學習曲線有些陡峭,不推薦一開始就去啃。在這期間,可以同時學習很多的東西,但要以語言為重點,多寫代碼、多讀一些代碼量較小的架構、多問。
如果系統深入的學習完一種語言後,比如 js,然後再看另一種完全沒學過的語言,比如 go,會有一種“啊,這兩個大同小異嘛”的感覺,並且在短時間內就能用新語言隨便寫個能跑的小程式,那麼你應該已經有足夠的積累,可以繼續前進了。
Step 2:充實 web development 所需要的知識體系,開始廣泛涉獵搭建一個網路應用所需要的各種技術。
有了很好的語言基礎後,學習其他任何一種新技術都不會成為問題。想學 mysql?很簡單,看看 SQL,看看 mysql api 基本用法,再在網上找一些 mysql 設計的 best practise 什麼的,很快就能上手。
在這個時候需要思考的是,一個網路應用,從用戶端到伺服器端到底涉及哪些你還不懂的知識,會用到哪些開發和調試工具。你可以開始參考 前端知識體系 裡面提到的各種東西,開始廣泛涉獵,讓新東西充斥自己的大腦,最好什麼都要瞭解一點。
這個時候你還需要有一個很好的實踐環境,不能滿足於自學,而是要進入一個有技術含量的公司(不一定是大公司),瞭解這個公司從前到後有哪些技術,參與進去,跟設計的人討論,實踐自己的想法,等等。
等自己頭腦裡已經對各種東西有了基本的印象,已經建立了一個從前到後完整的知識體系,那就算是突破這一步了。
Step 3:選擇一個具體的方向深入下去。
也許會很讓你失望,full stack 不是重點。所謂的 full stack 並不是什麼都精通,而是什麼都瞭解一些皮毛,半吊子而已,所以我覺得這是個半褒半貶的詞。對於新手來說很高大上,對於浸淫編程上十年的人來說就是個突破不了的天花板。要只是滿足於什麼都瞭解一些,遇到新東西都能夠快速的切換上手,那是拼不過未來的小朋友們,也體現不了自身的最大價值的。
選擇一項深入下去吧,無論是深入研究瀏覽器裡的各種網頁開發技術,還是深入研究資料庫效能最佳化和設計,還是把 node.js 源碼研究得像自己前兩天剛寫的代碼一樣透徹,這都是非常有價值的。
最後祝題主成為一個厲害的開發人員,加油~
建議如果做web developer 你找到的幾個語言中首選是PHP,原因有幾個,第一PHP的工程師數量要多於其他的語言,交流和討論問題甚至求助都比較容易,第二活躍的社區和團體組織相對較多,周末的分享活動和學習活動較多,第三工作機會相對較多,特別是入門級新手的工作需求量也是比較大,入門後比較容易找到工作。