高貴的前端程序猿們:
如何在前端開發這種高精尖的技術領域找到心儀的工作?實現在咖啡館喝喝咖啡敲敲代碼就能升職加薪、買房買車、迎娶白富美走上人生巔峰的職業夢想?這篇《進化論:從 0 到 100,前端猿茁壯成長的精神飼料史》,肯定能給你事業的加速動力。
前端開發工作已經變的越來越復雜,僅僅是想羅列一份前端開發的學習列表就已經是一件艱巨的工作。曾經只要會編寫 HTML, CSS 和 Javascript 就是能夠找到一份前端開發工作的全部要求。而現在,web 開發遠遠不止是簡單編碼。因為我們的互聯網上有了更多的內容,也因為有更多的人、更多設備可以訪問互聯網, web 前端開發技能也就更多了。我們現在需要考慮的問題很多,比如載入時間,性能,不同的屏幕尺寸, 不同的輸入方式, build 系統, 部署策略,還有如何組織好我們的代碼。
這還是想象中前端開發么?好吧其實只要你有熱情,這些還是很有趣的,現在就來仔細看看,一份前端開發的工作,到底需要你準備些什么?
入行行頭:5 大硬件
請準備好以下東西
一顆人類的大腦:智商在平均水平線以上即可一份強烈的渴望:我的代碼要可以運行在任何一個有瀏覽器的設備上。一臺筆記本電腦:不需要花費很多錢得那種,只要它可以運行 Windows, Mac OS X, 或 Linux 系統。當然你也可以只用一臺臺式機,但是那樣就不能帶著它坐在咖啡館里…一個文本編輯器:可以推薦的比如 Atom,Visual Studio Code, TextMate, 它們都有在 Mac OS, Windows 的免費版本,什么還有 Sublime, WebStorm? 啊,那些都很流行,不過需要需要一筆不少于 70 美元的花費…一個代理:這個大家都懂的,我就不解釋了初級資質要求
一些專業基礎
你需要學會瀏覽器能理解的三大語言:HTML, CSS, Javascript – 神圣的三位一體!
非常重要的一點是,一定要理解這三大語言后再去學習別的,確保知道怎樣在各種尺寸的屏幕上排列好你的網頁,怎樣在一個按鈕被按下后 do something!
一些很有用的學習資源
Codeacademy: interactive, code-along tutorials (this site is the bomb btw)Web Development for Beginners: article from webplatform.org.MDN:https://developer.mozilla.org/en-US/docs/Web中級進階路徑
一旦掌握了三大語言,就可以開始學習專業的開發流程啦:
Command line:好吧,命令行也許都會,但是要掌握最基本的操作,熟悉怎樣配置你的環境,還有那些奇怪的 shell 腳本,因為你會經常用到它們。CSS 已經不夠用了,我們有了 CSS 的預處理:Sass, LESS。知道如何搭建一個 build 系統:Gulp 或 Grunt 這類的構建任務腳本器,編譯 LESS 成 CSS, concatenating Javascript, minify 壓縮靜態資源, 選一個異步或同步的方式加載它們,然后一個好的 build 系統要能自動做到那些,包括一個本地的 web 服務器用于測試代碼。代碼版本管理,git。在 github 上分享你的代碼!部署! 讓你的網站上線。可以找一個免費的服務提供商,比如 heroku.com, https://pages.github.com這些幾乎就是現代前端開發者會用到的工具和技術,好了,你現在可以成為一個前端開發工程師了。
高級炸裂裝備
你已經能夠為你的朋友的業務搭建一個網站了,簡潔的排版,高清大照片,你成功了,它甚至在你的手機都看著很棒。那么還有什么值得學的?
把你的網站和一個內容管理系統 (CMS)集成在一起。一個 CMS 能夠讓你通過用戶界面增、刪、改、組織你的內容,不需要任何代碼。這就是那些博客網站如何工作的。比如免費的 WordPress,去熟悉一個開源的 CMS 吧,會很有用的。
學習怎樣搭建一個 CMS,意味著你講要熟悉一個服務器端的語言,比如 Node.js, 或 PHP,然后你還會想要知道怎樣和數據庫打交道,比如 MySql 或者 MongoDB。
來熟悉一種 Javascript 框架吧,這樣你可以真正的搭建一個交互出色的 web 應用,那真的很重要,比如 Angular, React, Ember。只要挑一個你喜歡的,但是一定要精通它。
Javascript design patterns,javascript 也有設計模式? 是的,讀一下吧。
突破天際的大招
溝通技巧!你需要和你的小伙伴們溝通,他們是你的 coder 伙伴,你的老板,你的用戶,你的….stackoverflow.com, 有問題找 stackoverflow,擴展一下人脈把,上 meetup.com, 在博客上寫一些你的學習體驗, 在 Gitgub 貢獻一下你的 Pull request。
界面設計和用戶體驗設計 UI/UX design,前段開發的小伙伴需要具備基本的 UI/UX 設計知識。
搜索優化,要知道怎樣提高網站的搜索排名,更容易被人們搜索到。
CSS 過度效果,給你的按鈕寫一個 hover 的 CSS 動畫,還有你的從右邊滑入的導航菜單也需要一個平滑的動畫。
關于性能,讓你的網站盡可能快的被加載,減少 DOM 的 reflow 和 repaint 操作,防止滾動性能瓶頸,優化 Javascript, 讀一讀這個吧 google web developer fundamentals。
用一些測試框架來實現 Javascript 單元測試,比如 Jasmine,QUnit。
持續集成 Continuous integration (CI),知道怎樣配置一套和伙伴們一起使用的自動測試和部署的工具,比如 CircleCI, Travis CI, Jenkins.
超好用的其他加成技能
↓↓↓這些并非必須,但能幫你脫穎而出:
用 CSS3, SVG, Canvas API 實現動畫。
后端開發, Node.js
最后:去找工作吧!
有了技能是不夠的,你需要能展示它們,你還能干的是:
搭建一個小網站,公開你的 gitub 代碼庫,確保你的代碼和文檔清楚漂亮,還有一份 README去 meetup.com 找你的老板或者投資人吧,開一個博客,申請一個 linkedin 帳號因為 web 技術總是在變化,最后,即使找到了一份稱心的工作,還是需要 stay motivated, 你需要時常去下面這些地方轉轉:CSS Tricks,SitePoint,Smashing Magazine當然還有些像 CSDN 這樣中文社區,總之遇到任何難題,社區里有總有樂于助人的。保持好的職業態度:Stay humble, and build cool shit1. 從事基于Web的UI開發工作,參與公司移動端項目研發工作;
2.負責手機端wap站點及app內HTML5自適應頁面開發;
3.獨立完成前端需要用到JS的特效工作;
4.獨立解決開發過程中遇到的各種問題(快速處理頁面自適應、瀏覽器兼容等問題)。H5的開發使得WEB平臺更加完善,使得其中的視頻、音頻、圖像、動畫以及交互等都有了規范法則。HTML5 是Web時代的前沿技術,具有強烈的互聯網時代特征。但如果要讓網頁的內容更加生動,提供更多交互形式的用戶體驗,以滿足企業級別的需求。那么還需要掌握基本的Web前端開發技術,其中包括:CSS、HTML、DOM、Ajax、JavaScript等。
作為一名從業多年的IT人,我來回答一下這個問題。
Web前端工程師是當前IT行業內從業人群相對比較大的崗位,在移動互聯網的推動下,Web前端工程師的崗位任務邊界也在不斷得到拓展,逐漸在向移動端進行覆蓋,同時在云計算的推動下,一部分Web前端工程師還需要從事一定的后端開發任務,所以當前的前端開發也被稱為“大前端”。
早期Web前端工程師的工作壓力還是比較大的,一方面前端的迭代速度本身就比較快,所以開發人員的工作量相對比較大,另一方面前端開發技術的更新速度也比較快,這導致很多前端開發工程師學習壓力也比較大。在多方面因素的推動下,Web前端開發人員的職業生命周期也確實存在相對較短的情況。當然,至于能夠從事到多大年齡,更大的決定權依然在程序員手里,目前依然有不少80后在從事前端開發工作。
從前端開發的發展前景來看,未來前端程序員的職業生命周期會逐步得到延長,原因有以下幾點:
第一:前端開發平臺化。目前前端開發正在向平臺化方向發展,實際上隨著云計算平臺和大數據平臺的相繼成熟,前端開發也正逐漸向平臺化方向遷移,這在一定程度上減輕了前端程序員的工作量,目前很多平臺會自動生成呈現頁面,前端程序員可以根據自己的需求進行修改。隨著PaaS相關服務的落地應用,前端開發可以采用更多模塊化的開發方式,這也會在一定程度上減輕程序員的工作壓力。
第二:前端開發智能化。隨著人工智能產品的不斷推出,前端開發的智能化程度會越來越高,而且隨著人工智能技術的不斷發展,未來前端程序員將被從繁雜的迭代任務中解放出來,這會在一定程度上延長前端開發人員的職業生命周期。
第三:前端開發全棧化。前端開發全棧化是一個比較明顯的發展趨勢,隨著目前大數據技術的發展,更多的開發團隊開始采用“并行迭代”的開發方式,這一方面導致了開發團隊的小型化,另一方面也促使程序員要承擔更多的開發任務,從而推動程序員走向全棧化。
我從事互聯網行業多年,目前也在帶計算機專業的研究生,主要的研究方向集中在大數據和人工智能領域,我會陸續寫一些關于互聯網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收獲。
如果有互聯網、大數據、人工智能等方面的問題,或者是考研方面的問題,都可以在評論區留言,或者私信我!