帶你認識前端工程師
Tommy
經歷
- 飛肯設計學苑 - 前端講師(F2E, Node.JS, Git, JavaScript)
- 亞東技術學院 - 業界講師(App Inventor, Arduino)
- 台北前端社群 - 發起人
- Git.tw社群 - 發起人
- OB嚴選 - 資深程式設計師
- 美商交友網站 - 資深前端工程師
- 財經資訊軟體公司 - 前端工程師
- 民視電視公司 - 程式設計師
簡介
- 工業設計相關背景
- 國小自學電腦硬體組裝
- 曾為了想當聊天室站長自學網頁程式設計
- 第一本電腦書是HTML 4.0
- 第一個使用的瀏覽器是IE 3.0
- 第一種學習後端語言是ASP 3.0
- 第一次架站是用486電腦WinNT 4.0作業系統
什麼是前端工程師?
講直白一點
就是網頁水電工
以裝潢為例
- 網頁設計師 → 室內設計
- 前端工程師 → 水電工
- 後端工程師 → 供水供電供瓦斯
只要User看的到的地方
都屬於前端的範圍
從職缺上來看
前端需要的能力
從以上職缺
可以歸納出幾個重點
薪水高(誤)
Junior就有30K ~ 50K
Sneior 50k~90k都有
神人級百萬年薪不是夢
但是,沒有三兩三...
下一句就不用我說了
可以玩新技術(誤)
這年頭技術發展的速度絕對超過你學習的速度
有聽過摩爾定律嗎?
前端摩爾定律
前端技術每18個月會難一倍
以下有幾個你認識的技術?
Angular React Vue Gulp Npm Node.JS Git Sass Browserify SVG AMD RequireJS CommonJS Polyfill Susy Jade ES6 CoffeeScript TypeScript
需求都做不完了
哪有時間玩新技術
但身為前端工程師
就必須要不斷學習
目前你會的技術
估計三年後會慢慢淘汰
身為前端一定要會的
七種技術&三大能力
1.熟HTML,CSS,JavaScript
是基本條件而已
敢說很熟的請舉手
HTML常見面試問題
- doctype 做什麼用的?
- data- 屬性的好處在哪?
- cookies, sessionStorage 和 localStorage 有何不同?
- <script>, <script async> & <script defer>有何不同?
CSS常見面試問題
- relative、fixed、absolute 和 static 元件差異性?
- 描述 CSS sprites, 你如何實作在網頁或網站上?
- 什麼是media queries?
- responsive design 與 adaptive design 有何不同?
JavaScript常見面試問題
- 請敘述 this 如何在 JavaScript 中運作?
- == 和 === 有什麼不同?
- 什麼是 "hoisting" 和 "closure"?
- "attribute" 和 "property" 有何不同?
以上80%的問題你能回答
恭喜你獲得
前端面試入場券門票
但如果連60%都回答不出來
考慮是否轉行
提升技術能力
那需要多熟呢?
薪水你會嫌多嗎?
2.RWD
現在手機上網率超過桌機
但又不想維護兩種版本
說穿了就是使用
CSS 3 Media Queries
但需要花時間慢慢刻
有沒有偷懶簡單的方法?
有聽過Bootstrap吧
網格系統
Grid System
快速完成RWD架構的網頁
那你有聽過AWD嗎?
概念剛好跟RWD相反
3.會使用前端框架
那你知道什麼是框架?
什麼是程式庫嗎?
Library
程式庫 → 輔助你的工具
Framework
框架 → 規定你的工具
目前熱門的程式庫 Top 3
- jQuery 69.65%
- Lodash 32.39%
- Underscore 15.14%
目前熱門的框架 Top 3
- React 37.67%
- Angular 25.03%
- Vue 9.67%
jQuery仍然是目前使用度最高的程式庫
那為什麼還要使用框架呢?
所以...框架好棒棒?
馬上就從框架開始學
還不會走就想跑的下場就是摔得鼻青臉腫
因為如果只會使用框架
但不知背後的技術原理
你可能會被框架綁架
沒有框架就不會寫了
框架很吃JavaScript熟悉度
JavaScript基礎不好
學框架會很吃力
4.Git版本控制
是否曾經有過以下經驗
- 檔案被誤刪無法救回
- 完成的檔案被同事覆蓋掉
- 實驗某個功能怕被改壞
- 硬碟壞掉導致所有心血白費
- 需求反反覆覆一直改來改去
你可能會說:
「我可以複製貼上啊」
別再浪費生命複製貼上了
index.html
index - 複製.html
index - 複製(2).html
index - 複製(3).html
index - 複製(4).html
index - 複製(5).html
......
學Git絕對划算
省下不少複製貼上的時間
程式上錯版本
老闆:害我損失100萬業績
Git可以立刻還原上個版本
立馬封住老闆的嘴
可以早點下班
可以學新技術
也可以追隨大神的腳步
因為大神們都用Git
在GitHub上面
搜尋大神們的名子
5.Debug除錯技巧
很多人會來問我
這個Bug怎麼解決?
我只能跟他說
自己的Bug自己解
因為只有你自己最清楚這個Bug是如何產生的
Chrome Developer Tools
有好用的除錯工具
我可以教你工具怎麼用
解決Bug還是得靠自己
所以學會如何Debug的技巧
很重要!
偷窺網站的前端程式碼
前端的世界沒有秘密
就算用jsfuck也一樣
前端沒有解不開的code
只有值不值得花時間的問題
老話一句
不想公開的程式碼請放後端
切記...
公司重要機密程式碼
千萬別放到GitHub上喔
6.Node.JS前端工具
Node.js是基於JavaScript語言可在非瀏覽器上執行的環境
因此出現了很多
輔助前端開發的工具
你能想像每天都在做
重複的事情嗎?
前端工程師的日常
- Scss編譯成css
- Minify .css檔案
- ES6編譯成ES5
- Minify .js檔案
- 圖片最佳化處理(PNG, GIF, JPG)
- 找出是否有重複的檔案
- 佈署檔案到FTP伺服器
- ......
這些重複的操作都能由前端工具自動化處理
做好自動化
遠離肝硬化
7.HTTP基本概念
為什麼前端要懂HTTP概念?
在這裡講一個小故事
某天有個前端同事跑來問我為什麼這個BUG找不到原因
我幫他看了差點沒昏倒
有發現什麼亮點嗎?
Status Code 500?
- 1XX 接收的請求正在處理
- 2XX 請求正常處理完成
- 3XX 需要進行付加操作已完成請求
- 4XX 伺服器無法處理請求
- 5XX 伺服器處理請求發生錯誤
這是Server端的問題啊
麻煩請找後端同事處理
這就是為什麼前端要懂HTTP的概念
推卸責任
保護自己
職場是很陰險
如何與後端資料串接?
用JSON與後端API資料交換
更正確的說法
利用AJAX接收JSON資料
除此之外Header也比須了解
那什麼是HTTP Header?
常見的request header
- Host
- Cookie
- User-Agent
- Referer
常見的response header
- Content-Type
- Content-Length
- Set-Cookie
- Location
那什麼是TCP?
用更簡單的方式解釋TCP
那什麼是IP呢?
等等,我們今天沒有打算
太深入探討HTTP架構
1.跨瀏覽器問題解決能力
目前四大主流瀏覽器
Chrome
Firefox
IE/Edge
Safari
早期沒有統一標準
各自做各自的解讀
但是後來有了標準規範卻發現為時已晚
大家一定有聽過一句話
IE是個毒瘤
如果IE是第一名
Safari應該是第二名
身為前端一定會踩過雷
就是Chrome可以正常但是在IE卻沒辦法顯示
各種CSS Hack技巧
跨瀏覽器問題
只能靠經驗累積
2.流程邏輯與原理分析能力
人類的大腦分成左腦跟右腦
右腦 > 左腦 = 感性
右腦 < 左腦 = 理性
感性 → 設計師
理性 → 工程師
美感或許是天生的
但邏輯絕對可以靠訓練
如何訓練邏輯思考能力?
換個方式來說:
要如何學好英文?
你一定有聽過一種說法:
就是去國外生活一陣子
寫程式也是一樣
每天上班寫
8小時x5天x12個月
連續寫個一兩年
不會進步才怪
所以想要學好什麼
就必須要有那個環境
工作環境是最好的學習方式
如果沒有環境
上完課回家一定要練習
給自己訂個題目
盡可能實踐
原理分析能力
把一個複雜的問題
分解成多個簡單的步驟
分析:輪播廣告
3.英文閱讀與Google能力
很多技術文件大多都是英文
參加研討會都聽不懂
外國講者在講什麼
但是看到code就大概懂了
程式設計也是一種國際語言
所以要善用工具
閱讀技術文章時
不需要每個單字都要看的懂
關鍵字看得懂就可以了
若還是不行可以用翻譯軟體
Google搜尋能力
下對關鍵字事半功倍
下錯關鍵字事倍功半
善用空格搜尋多種可能引號搜尋完整文字內容
指定網站 site:
指定檔案類型 filetype:
講到這裡有沒有人想放棄了
如果沒有...
以下是我的建議
建議前端的學習過程
HTML, CSS
基礎JavaScript
基礎JQuery
進階JQuery
進階JavaScript
前端框架
GIT版本控制
Node.JS前端工具
Node.JS後端開發
以上建議學習的課程
剛好這裡都有喔
善用工具
就從手上的折價券開始
1月18日 二四晚班
Node.JS 與 API 後端開發入門班
1月21日 週六班
Front-End Engineer 前端工程師養成班
2月3日 六日晚班 3月6日 二四晚班
Git 與 GitHub 版本控制入門班
年後開班
核心JavaScript程式設計進階班
Thank you!
帶你認識前端工程師
By Yi-Tai Lin
帶你認識前端工程師
- 535