Fw: [心得] 轉職工程師經驗分享

作者: rollr (衛生紙的心情)   2016-10-07 23:51:39
※ [本文轉錄自 Soft_Job 看板 #1NzxEHZR ]
作者: rollr (衛生紙的心情) 看板: Soft_Job
標題: Re: [心得] 轉職工程師經驗分享
時間: Fri Oct 7 22:39:06 2016
※ 引述《strife00 (strifecloud)》之銘言:
看到這篇覺得很慚愧,同樣是非 coding 背景,從去年轉職至今似乎沒有什麼值得拿出來說嘴的真實力。
但即使如此,還是想要分享一下在寫 code 這方面的學習方法。
1. 有碰的東西才懂,沒碰的東西完全不懂,所以想辦法多碰。
身為公司的一個小小齒輪,專案裡面有很多東西是我沒碰過的,更甚是看不懂的 code。
因此建議有主題性的去練習一些功能。我這邊列出來是做為一些參考。
a. Custom TableViewCell
很常情況會需要用到客製的 cell,而且 cell 上還會有很多能互動的元件。
如 UIButton, UITextField 等,最好都想辦法在上面能實作。
b. Custom MapKit
Map 在這個年頭有非常多的應用。
了解客製 Annotation, 客製 CalloutAccessoryView(加 UIButton/UIImageView)
c. Push Notification
由於需要使用實機才能測,也牽扯到很多跟 coding 沒有直接相關的技術知識。
如憑證、金鑰等等,著實麻煩。
除了要會 Push 之外也可以試著去處理 Notification 傳來的資料。
推薦使用 NWPusher 來模擬推播資訊。
d. Photo Picker
選照片這功能也很常見。但選照片的介面要做的好就不容易
拿到照片之後還可以簡單的裁切一下。
e. Git flow
不懂 git 的合併原理,
會讓你寫 code 的心血在錯誤的 merge 之後就消失在地球上。
可以自己開一個新的專案,然後試著多開幾個 branch,改幾行 code 再合併,
看會發生什麼事。
要學的東西實在太多,我覺得以上5個先懂應該可以 hold 住一陣子。
2. 看書,看適合自己水準的書。
大約在9個月前,在 KKBOX 工作的 Zonble 出了一本 gitbook
https://www.gitbook.com/book/zonble/kkbox-ios-dev/details
名為 KKBOX iOS/Mac OS X 基本開發教材
裡面有相當底層的說明"為什麼 objective-C 會這樣運作"
如 virtual table, 基本 Design pattern, 新手常搞混的 NULL, nil, Nil。
總長度為1171頁,非常值得拜讀。
這本是 Zonble 用血和淚換來的經驗談,會說明那些奇怪的 bug&crash 到底要怎麼處理。
3. 參與社群活動
社群活動是一群對技術有熱忱,同時願意分享的人主辦的。
對於我們這種非 coding 背景的人來說,很多 coding 常識是我們最缺乏的。
參與社群活動,除了可以更了解 coding 的常識,也可以聽到最新技術的分享,一些 App 實務開發時遇到的問題
我目前經常性參與的社群如下
a. Cocoaheads Taipei-每個月的第二個週四舉辦
https://www.facebook.com/groups/cocoaheads.taipei/
活動前會在 fb 邀請講者。講者通常會分享自己最近在做的作品,
完成度都蠻高的。
b. Swift Taipei-每三週舉辦一次
http://www.meetup.com/Swift-Taipei-User-Group/
提供輕食、飲料和啤酒,主辦人 John 每次都會分析 Swift 目前的改版進度
也會有講者分享一些技術知識。
c. Test Corner-約3個月一次
https://testcorner.hackpad.com/0VAIoV41iJt
講測試的聚會,講者都是各大企業邀請來的好手,
因為剛好現在 App 正流行,所以6成以上的主題會講 App 或手機的測試
4. 作筆記
很多 coding 的東西,不管是觀念還是 code,都是可以重覆使用的。
我這邊用 evernote 去紀錄我所有 google 過的問題,也會去紀錄社群講者分享的東西。找自己的 evernote 比 google 第二次有效率多了,而且也可以學而時習之。
5. 善用工具,熟練工具
你會發現你辛苦的趕完 code 然後要 TestFlight/上架的時候,大概還需要半天的時間才能真的完成。
因為把 App 要上架需要設定一堆有的沒的,而且很多是很浪費時間沒什麼技術性的事。
善用工具可以讓你活的聰明一點。
-cocoapods 是好東西,雖然偶爾會出包但還是很值得用。
-多國語系工具 <-我還沒找到好用的,目前是自幹 excel。
-fastlane 已經在社群被推廣過 n 次的神兵。幫你處理很多 iOS 上架的瑣事。
恩,簡單的列出5大項,希望如果有下一個沒有 coding 背景的人,可以比較有方向。
其實寫 code 是不是一件快樂的事,就從你看到完成的程式碼可以運作的那一瞬間,你想到的是得救了還是破關了,做出會動的東西是真的很有趣的事,但寫程式本身其實並非一直都很快樂,想辦法維持動力才不會被 game over。
我除了平常的興趣之外,也會去解 leetcode,leetcode 是一堆演算法問題的集合處。
目前有支援 Swift (雖然我不知道是哪個版本的 Swift),解出那瞬間的成就感,讓我覺得寫 code 真的是很快樂的一件事。
也有人推薦我寫 check.io,是用 Python 去解的,也因此我學會了 Python。
我覺得身為一個工程師,除了本身要很熱衷技術、科技之外,還需要懂得品嘗生活。
前幾天跟朋友在聊天,他說他確定想當工程師,但卻不知道要做什麼工作才是他想做的。
我就建議他,好好的生活,才能更明白自己想做的是什麼。
因為程式的存在是為了解決問題,程式設計是用來解決問題的工作。
如果生活中事事無所謂,睡醒沒有目標,怎麼會有想要解決問題的動力?
我一直很想回這一篇文章,但遲遲沒有下筆,因為不知從何講起。
但我想到我的一篇文章,可能可以幫助後續的人,只要有一個人被我幫助到,我就功德圓滿,因此寫了這篇。
希望真的能夠幫助到後續的人。
作者: zerozzz7887 (Pu)   2015-10-07 22:46:00
作者: moonorblue (mike)   2015-10-07 22:48:00
推!感謝分享
作者: babypanda (熊貓寶貝)   2015-10-07 23:19:00
感謝分享
作者: glory5566 (榮耀5566)   2015-10-07 23:29:00
作者: prosea (prosea)   2015-10-07 23:36:00
推~
作者: ppppman (4pman)   2015-10-07 23:47:00
作者: travelerX   2015-10-07 23:50:00
作者: kmte019 (時間過很快)   2015-10-07 23:51:00
想請問原PO原本是什麼背景呢?
作者: uranusjr (←這人是超級笨蛋)   2016-10-08 00:31:00
Merge 錯不至於會讓程式消失在地球上啦, 去 commit log就翻得出來了; 不過確實這個要注意是沒錯I18n 可以試試 Transifex, 尤其如果公司願意付費的話
作者: elver (elver)   2016-10-09 02:00:00
一樣本身非寫Code者,轉職改程設,給推
作者: ho83leo (LWHo)   2016-10-10 21:14:00
給推
作者: egduj (同理心是個屁)   2016-10-13 17:32:00
推~本身也非coder,目前自學swift中...
作者: idletime (idle)   2016-10-20 23:52:00
我放棄swift了…從swift 3開始,一整個不習慣
作者: seanbabby (seanbear)   2016-11-16 12:53:00
淚推
作者: fir131 (李大威)   2016-12-01 17:26:00
給推 寫得很好 學到了 感恩

Links booklink

Contact Us: admin [ a t ] ucptt.com