對于“前端”開發我們需要什么?
來自:http://lcepy.github.io/2015/07/20/%E5%AF%B9%E4%BA%8E%E2%80%9C%E5%89%8D%E7%AB%AF%E2%80%9D%E5%BC%80%E5%8F%91%E6%88%91%E4%BB%AC%E9%9C%80%E8%A6%81%E4%BB%80%E4%B9%88%EF%BC%9F/
我始終認為“工具”是第一生產力,為什么說英國“第一次工業革命”開始,蒸氣機的發明,“工具”變的非常重要,但是有時候又會想, 真的如此么?我在家鄉湘西地區開始生態農業的試驗,更多的是對生物多樣態的利用和研究,食物鏈的結合轉化,才能生產出有機食材,測量工具的使用功不可沒。
那么“前端”我們需要什么樣的工具?
Mac OS X 是基于 Unix 的,這太重要了,這意味著Unix下一堆好東西可以隨便撿,相信我,你值得擁有。在Mac上的開發環境,各種shell,應有盡有,不要客氣,隨便用。而 且Mac的工具以及操作方式,能讓你沉浸在編程的世界中,這無形中提升了程序員的生產構思的效率。
有了retina顯示屏你會更追究細節,我自己一貫追崇“細節”決定一切,好的產品,細節會讓人感覺很舒服,才會留住“回頭客”。
所以Mac OS X 也是迄今為止我認為開發最好的工具,不管從程序的運行效率,工具的多樣性,以及兼容unix來看,這都是我唯一的選擇。
廢話不多說,推薦一本書池建強老師的書《MacTalk 人生元編程》,推薦一個開源項目收集&推薦優秀的 Apps/硬件/技巧/周邊等,以及總結個人2015提高前端效率的方法和工具,不來看看絕對是你的損失。
在上一篇博文中闡述了我個人使用的提高效率的工具和方法,而今天,我想更進一步的闡述一些這么多年來的總結:我們需要什么?
狀態
就目前的形勢來看“前端”這個行業的熱火程度,應該可以用“爆發式”來描述,不管是PC端的原始開發技術, 移動端這幾年膨脹的“框架”,手機App混合開發的ionic以及react native,鏈接硬件的cylonjs和osbean,服務端的Nodejs,都預示著“前端”應該說是JavaScript這門語言的可應用程度,超 出了很多人的預期,那么我需要問自己,“學的完嗎?”
顯而易見,學不完。
該如何起航
如果是一個初學者,我想很可能會被這“玩意”嚇著了,平心而論,我們應該學會適應它,從你的職業規劃中尋找一個方向,方向會指引你的路途,佛教中講述“方向”是從修行者的實際出發,那么我們,也應該從你的職業規劃中出發,找尋一個方向。
一些借鑒該如何起航:
就初學來看HTML,CSS,JavaScript是你唯一的入門方式,如果反過來,我真心的推薦Apple的Swift做為你的入門語言,為什么?因為你需要了解程序的實質是什么,Swift可以很好的讓你了解什么是類型系統,什么是面向對象,什么是編譯器。
了解“程序”是你起航的開始。
====
前端可能是這樣的
分類 | 技術代表 | 評價 |
---|---|---|
PC | 原始生產HTML,CSS,JavaScript,最有代表的技術是jQuery | 相信是大多數人的入門,適合傳統頁面的編程。 |
PC | 開始考慮模塊以及代碼結構,最有代表的技術是RequireJS和Backbone.js,這一階段也會使用了一些工具函數庫,開始流行自動構建工具,比如Underscore.js和Grunt | 相信大家到了這個階段,也是Ajax使用最多的時候,無刷新頁面,客戶端模板也開始應用。 |
PC | 從Angular開始,整個業界開始風靡雙向綁定,依賴注入,自動化測試,Nodejs越來越多的應用在“前端”領域中,國內比較有代表的是司徒正美老師的avalon和尤小右老師的vue | WebApp興起,以及硬件設備越來越給力的計算能力和內存利用率,意味著“前端”開始更加的追求體驗,細致,的問題 |
PC | reactjs的出現,又開啟了一次新的嘗試,Nodejs也開啟了從分裂成iojs,又合并成為了Nodejs的進程 | Nodejs開始對于前端的工程化越來越重要,想想你使用的工具,多多少少都構建在Nodejs之上。 |
PC | 未來個人感覺web components,編譯型的JavaScript會成為很多團隊的首選選擇,比如Flow,TypeScript | 編譯可以減少在運行時的錯誤,可以檢查代碼有利于維護。 |
Mobile | 基于HTML5,CSS3編寫的頁面,比如營銷廣告,最有代表性的技術是Zepto,基于它的效果插件非常多 | 也許大家開始適應了沒有960px像素的時候 |
Mobile | HTML5單頁應用的出現 | 大多數人會選擇把PC端WebApp實現的技術移到這里來,相應的HTML5,CSS3技術開始大量的使用 |
Mobile | HTML5游戲的出現,《神經貓》在微信中的瘋傳,最有代表性的技術是COCOS2D-JS | 游戲是你復習數學幾何知識最好的基友 |
Mobile | PhoneGap的出現,讓使用HTML CSS JavaScript開發App成為了可能 | 探索與摸索 |
Mobile | ionic讓Angular與Apache Cordova結合開啟了高級HTML5混合移動應用開發框架的進程,它最有代表性。 | 利用HTML5 CSS3 JavaScript編寫的大量應用開始在市場上可以被找到。 |
Mobile | React Native讓開發移動App有了一個新選擇,雖然它實現的邏輯,已經有很多人在從前就實現了,但是愿意嘗試使用這個技術的人還是蠻多的 | 通過中間語言JavaScript轉換成Native語言實現,雖然只有UI |
Mobile | 未來個人感覺HTML5 CSS3 JavaScript會成為很多團隊開發App首選選擇,拋開一些(游戲)等需要高性能,復雜動畫的領域,為什么? | 快速,簡單,周期短,試錯的機會增加 |
Server | Node.js我相信這應該是最有代表性的,而且未來也會越來越重要 | 使用JavaScript的用戶數量巨大,服務器知識的普及,會讓學習成本低 |
Database | MongoDB應該是在這個領域比較有代表性 | 數據庫的出現,讓存儲的解決方案成為了可能 |
Docker | 也許你應該要了解一下什么是Docker | 你的開發效率會進一步提升 |
硬件領域 | 聽說有人使用cylonjs開發機器人 | 國內也有一家公司推出了智能機器控制器與快速開發框架,嗨,JavaScript已經入侵硬件領域了 |
自動化 | 最有代表的應該是Grunt | 但是你依然有很多選擇,gulp是其中之一 |
2015年 | 通過了ES2015,也許你目前還不清楚這是什么,那么我告訴你,這就是ECMA6,隨著今年(2015)Apple WWDC和Google I/O的落幕,一大波的硬件,軟件即將更新,數不盡的各種服務類SDK,以及HTML5 Device Api | 少年,未來的你面對無盡的學習,以及從PC切換到移動的思維邏輯,可能還有可穿戴設備喔 |
寫到這里,自己都有點感慨,原來這才是“前端”,在這個拼快速迭代,拼細致,拼用戶體驗的時代,如果你只具備div+css布局,會寫一點動畫效果,無疑在下一個五年很可能會被淘汰。
我們需要什么?
就工作來看移動肯定是大頭,那么我們還需要PC么?也需要,畢竟很多場景還是要在電腦上完成,比如在工作時,你可能就在工作的電腦上,瀏覽一些網站,下訂單,市場大不大?上班的人有多少,它就有多大。
做為一個過來人,我很認真的說,我們需要的是解放自己的心。一句老話,心有多大,你前進的力量就有多大。也許你不在編程領域,你的風采也會在別的領域綻放。
那么,不巧,你選擇了“前端”,你還需要堅定的信念,信念是你可以堅持下去的基石,是你不斷提高自己專業的力量源泉,很多人說編程是一個青春飯,我 個人覺得編程是一次青春思想的解放,是邏輯思維形成的開始,它帶給你的無形價值勝于“錢”這樣的有形價值,雖然“錢”也很重要。
你還需要規劃,這幾日我常常坐在雪峰山的山頭看星空,越發的感覺到個人的渺小,以及時間的寶貴,如果你不規劃,只會讓時間消耗在很多瑣碎的事情上,學習不成系統,實踐沒有沉淀。人腦是一個容器,但是隨著時間,很多信息片段將被遺忘。
你還需要“放棄”,學會放棄可能很艱難,確實,放棄是你一切的開始,不管之前或者之后,你都要有一個從零開始的心態,面對這些孜孜不倦。
下雨天,我也會瞪著三輪車去拖木屑,當然我指的放棄不是說放棄你的領域,而是要保持敬畏,生活就是這樣,拖完木屑,我會到下河街去吃完米豆腐和米粉,
最后你還需要前瞻性,了解技術未來的發展趨勢,你才能跟上隊伍。
孜孜不倦
前端對于你來說,這才剛剛開始。
個人建議:
-
Swift是你了解編程,很好的去處中文版 Apple 官方 Swift 教程《The Swift Programming Language》,現在已經開啟Swift 2.0翻譯了喲~
-
開始學習CSS布局咯學習CSS布局也順便學習一下HTML(不要看我,這個真的非常簡單),再來份指導吧,更易理解通用 CSS 筆記、建議與指導
-
了解一下基礎的JavaScriptJavaScript 標準參考教程(alpha)順便再看一下簡單使用jQuery
恭喜你,你可以做一些PC的網站了。
-
現在我們開始嘗試看一下編程的風格指南Airbnb 英文,中譯,以及Google JavaScript Style Guide,良好的習慣,是你可以進一步的基礎。
-
湯姆大叔翻譯的深入理解JavaScript系列(可能有點老了,印象中還是三,四年前閱讀過),不過不要緊只要不是ES2015,它還有用,順便如果有時間,也可以看一下《JavaScript 模式》
-
建議,從Angular開始,學習一個MVVM框架(其實它也是可以看成”MVC”喔,只不過C變成了ViewModel),一個入門的資源AngularJS入門教程——AngularJS中文社區提供,然后再來一個進一步的翻譯“AngularJS”中譯本 -《AngularJS》,以及模塊化思想。
-
然后學習,你的第一款自動化構建工具吧gulp,全中文的喔,少年,Gulp
又要恭喜親了,刷副本要升級了,現在你可以嘗試一下WebApp了。
-
進一步改變我們開發的方式,學習一下git,聽說這玩意猴子都能學會。
-
開始嘗試學習一下HTML5,API真的很全和CSS3CSS3 Tutorial 《CSS3 教程》,這玩意,你不學,我只能告訴你絕對吃虧。
-
準備好總結的項目Mars-騰訊移動Web前端知識庫和以前認識的一個朋友搞的開源總結mobileTech,順帶看一看zepto,是不是跟jQuery很像呀?
-
Nodejs也是不能錯過的七天學會NodeJS
這一次,你還未升級,不過可以開始嘗試做一些基于Nodejs的工具,和HTML5手機網站,小同志,你有向移動傾向咯。
- Mac工具,是你最好的良師益友,向某人給你推薦總結個人2015提高前端效率的方法和工具
- 可以看一看ECMA6和promises了
- 學習一下混合開發的框架ionic
- Nodejs也順帶看一看吧《Node.js 包教不包會》
這一次,ding了,快來行動吧,兄弟,制作你的第一款App并發布到市場
目前為止,“前端”的基礎打好了。
未來
多屏設備是你全力以赴的戰場,能否勝利,一切在于你的信念,勇氣,規劃和“放棄”。