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