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

作者: rollr (衛生紙的心情)   2016-10-07 22:39:06
※ 引述《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)   2016-10-07 22:46:00
作者: moonorblue (mike)   2016-10-07 22:48:00
推!感謝分享
作者: babypanda (熊貓寶貝)   2016-10-07 23:19:00
感謝分享
作者: glory5566 (榮耀5566)   2016-10-07 23:29:00
作者: prosea (prosea)   2016-10-07 23:36:00
推~
作者: ppppman (4pman)   2016-10-07 23:47:00
作者: travelerX   2016-10-07 23:50:00
作者: kmte019 (時間過很快)   2016-10-07 23:51:00
想請問原PO原本是什麼背景呢?
作者: rollr (衛生紙的心情)   2016-10-07 23:52:00
網路廣告
作者: rayway30419 (RayWay)   2016-10-08 00:11:00
Push Notification真的超煩....
作者: keith222 (Keith)   2016-10-08 02:15:00
大推
作者: www16852 (LM31)   2016-10-08 03:44:00
作者: Chris926926 (Jan Egeland)   2016-10-08 04:33:00
推,很適合剛入門的人看看
作者: Andylovers (Smash)   2016-10-08 06:57:00
謝謝分享
作者: vn509942 (如履薄冰)   2016-10-08 08:15:00
非常同意 解決問題改善流程才是核心目的
作者: pttworld (批踢踢世界)   2016-10-08 10:15:00
有心給推。參加社群使能分享別人心得。
作者: hpo14 (hpo14)   2016-10-08 15:47:00
推大大
作者: landlord (91)   2016-10-08 16:06:00
好!
作者: sunfu (sun富)   2016-10-08 17:16:00
推!! 謝謝
作者: wesley234 (掃地)   2016-10-09 10:50:00
研究複雜的構造,卻找不出有意義的抽象成了無必要性的思維負擔,說穿了只是浪費生命
作者: VisualStudio (2015)   2016-10-09 23:01:00
推推
作者: csk (:))   2016-10-11 23:48:00
唉呦 這ID配網路廣告 你好像是我認識的人

Links booklink

Contact Us: admin [ a t ] ucptt.com