2014年在學習上是豐收的一年…,踩著過往的基礎,學習速度越來越快;但還有許多地方經歷不足,對於許多事情也相當任性,除了能力的上升以外,對於人生也要多學習啊~。
學習成就
學習上,今年算是收穫滿滿,不僅學習了許多新技術,也實際運用在工作上,產能也明顯有所改變。除此之外,還接觸了自身領域以外的技術,透過這樣的學習,越來越能夠分辨如何是好。不過也要思考,這樣的跨出自身領域的學習,也要適可而止,別讓自己迷失方向。
CSS Architecture
CSS的架構規範等不論是OOCSS、SMACSS,重點還是需要實際的運用,去年在工作上實作了一套CSS Framework,可以運用在數個專案上,並且可以客制調整所需,如色彩、文字大小、Class name都只需要修改設定檔即可,透過這樣的實作,才會瞭解何種架構是適合用在目前的專案上。
就以Bootstrap grid system 與 Susy 來說明,前者是整套的CSS Framework,已經將網格系統可能運用到的部分模組化,讓執行可以更加快速;Susy 可以自訂網格的各種方法,並且可以讓網格區塊更加語義化,讓HTML程式碼更為整齊。就結果上,Bootstrap grid system的概念較適合大型專案,並且產出專門的文件使協作更為容易;Susy 適合小型專案,可以快速建立彈性佳的網格,所以在使用上,必須了解目前專案適合的執行方式。故大型專案,我推類似Bootstrap grid system的方式執行(自幹啦)。
SASS & Compass
前年開始專精於CSS以及SASS,這兩者影響我非常多,2014年也有不斷地精進這部分,尤其是在寫法上有更多的變化。Sass的學習上,有一部分是多看其他人的做法(Bootsrap sass有很多架構面可以學習,另外台灣也有很多高手可以參考),還有多加練習及思考,只有實作才是進步的最佳方法;另外就是Sass 3.3的推出,多了許多新功能,不會這塊主要就用
Source map而已…,就沒有仔細繼續鑽研了…。
D3.js
鐵人賽D3.js列表:http://wcc723.github.io/d3js/2014/10/29/Ironman-30-days-30/
一度認為學了D3.js可以做出酷炫而且好用的圖表,這點我是誤會很深,在鐵人賽的時候花了很多時間學習D3.js(大概學了兩個多月),許多細節都還沒辦法相當了解,死命的硬刻出自己想要的圖表…。以下是學習後的感受:
- 資料從何而來:資料取得是一個大問題,且各個地方的資料格式不同,怎樣可以降低取得資料的難度也是個大問題。
- 圖表呈現的正確性:資料是正確的,轉換過程也沒有出錯,但是圖可能是錯誤的(表達方法錯誤),這樣會造成錯誤的訊息傳達。
- 演算法、統計學:圖表的製作,會牽扯到許多演算法及統計學的觀念,以我目前的能力完全無法了解這些學科,整個只能哭哭。
Git
Git從前年開始接觸,去年上保哥的課程以及保哥的30日挑戰Git,在觀念上有很大的進展,且後來在公司內推廣Git以及推坑架設Gitlab,不斷的磨練後可以應付許多基本
問題。
而Git的使用上,一開始是學習command line,現在多用Gui,主要原因是每次簽入時,我會習慣的整個看過簽入的檔案內容,檢查簽入內容是否正確、是否有不需要簽入的檔案、簽入訊息是否與檔案符合,這些步驟在Gui上較容易完成,而不足的功能,配合Google search及command line也足矣。
Gulp
當初也猶豫很久,已經有了Fire.app是否有需要學習Gulp,後來也是抱著嘗試的心態去學習。兩者之間的比較是Fire.app已經提供大部分前端常用的工具,如Sass、Coffeescript、livereload、Template language等等,且易於使用,而Gulp是可以自定義這些工具,但必須寫一些script去執行它。
所以在工作上只需要提供Html+CSS的專案上,我大多都是使用Fire.app;但如果是已經在進行的,或者是部分需要客制工具的專案(需搭配的部分較為複雜),我則會使用Gulp來自定所需要的工具。
Angular
雖然學過保哥Angular課程,但到現在我還只能算入門,但angular有很重要的觀念就是前端MVC以及two-way binding,如果說下一個要學習的Js lib,我會選擇angular專精…。
實務達成
除了學習上,也有達成一些工作以外的項目。
IT鐵人賽兩度優選
(獎盃寄到台北的家…還沒辦法拍照)
前年的IThome鐵人賽主題是CSS沒有極限
,當時費盡心力寫45篇,讓我的CSS功力大幅精進。
而去年IT鐵人賽運氣也不錯得了優選,主題是D3.js。
前年參加完,真的很累,想說別再參加這種競賽,結果去年又再一次…,今年會嗎…?
發起翻譯Google Matrial Design
Google Matrial Design 中譯版:http://wcc723.gitbooks.io/google_design_translate/
目前這本書再Gitbook上還在前5名,非常感謝曾經幫助我翻譯的人(還配合翻譯第二輪> <),且我也從執行這專案中學習了不少經驗。
- 開源專案的坑:在執行的開始,我知道要順利的完成,就必須讓參與者知道目前的狀態,不能讓參與者感覺到這專案的不安定性。我在hackpad上不斷的更新專案的進度以及預期的發展,讓參與者除了知道整體專案的狀態外,還可以知道其他參與者做了什麼。
- 把路鋪好:每個人都是從不同領域,憑藉的熱情來參與,在執行的習慣上多少有些不同,所以盡量將規則直接鋪好。在開始前我會先翻譯個幾篇當作範例,接下來會直接提供
英文版的格式
,讓翻譯者專注於翻譯,減少編寫習慣的不同,第一次時間上沒辦法執行的很徹底,但在第二次翻譯的時就是照這樣的方式執行。 - 更新:這部分也是相當費工的,如果有人檢查有翻譯上的問題,或者是Google Material更新,也是必須配合更新,好在有高手一起協助…。
2015的期望
技術學習上還沒有思考要繼續學什麼,可能是繼續專精CSS,或者是學Angular,也有可能玩玩Rails,這都還在思考中。
但有另一個比較明確的方向,就是在高雄推廣開源專案
。很羨慕台北有g0v
這樣的團體,許多不同專業的高手一起合作,設計師和工程師的協作,彼此拉高互相的價值,這樣活動讓許多國家稱羨。
希望能有機會參與類似的活動,但g0v也不就是先由少數人發起嗎?於是坑就在我的腦中浮現,慢慢的具現化…。