Kinnouka Bokudo

Kinnouka Bokudo

When you see me, and I try to be a good man, you see yourself.

马上订阅 Kinnouka Bokudo RSS 更新: https://kinnoukabokudo.com/feed

我如何自学 iOS 开发

Kinnouka Bokudo
2019年4月18日 10:39
其他
即将回重庆去完成毕业答辩,所以我想回顾我从自学 iOS 开发起至现在的历程,也谈谈对我目前短暂的开发生涯来说最重要的三样东西:兴趣、成就感和世界观。 其实我最开始的兴趣并不是编程,而是对于各种软件、系统的使用。在大三之后,我还是没有用到我真的所需要的那样的软件,也没有打造出我所想象中科技无限便利生活的环境,所以别人编写的程序满足不了我的需求,于是我有了自己编写软件的想法,同时这也是我的兴趣所在,不知道该如何去确切的描述这种兴趣,但我能感觉到,这并不是单纯的编程的兴趣,也许是想要一种改变。 大学时期 那时候是大三寒假末期,我不再像前几年那样整天泡在游戏,我买了二手 Macbook 开始自学 iOS 开发,我从网上找来许多电子书和视频,都是特别零散的学习资源,现在唯一还有印象的就是慕课网。前期我大概把 UIButton,UILabel,UIView 等这些基础控件全部试用了一遍,再是由于 Storyboard 的便利性,大三下期开学时,我已经可以做一些像是温度转换器之类的无聊应用。 然后我开始寻求更广阔的知识,而国内的大部分开发教程都是好几年前的,所以我不得不去找一些国外的新的资源,我偏向于视频学习,但那时候我英文很差,英文的视频教程我没办法看,于是我从英文书开始看起。 得益于 MacBook 的「用力点按」功能,在英文书中有任何不明白的单词只要重重按下触控板就会显示词意,再配上朗读功能还可以知道单词发音,如果是长段的英文就直接放进 Google 翻译。随着时间的流逝,我看英文变得越来越轻松。 在每本 iOS 开发的入门书籍里,都会讲到 UITableView,我那时就在想,不要只按照教程去做,我想独立开发应用,那时候我对 UITableView 最熟悉,所以我就想开发一款待办清单类应用。但仍保持继续学习,只是每当学到一些知识的时候,我会思考如何将它放进我的应用里。 在不断的学习中,不断将照自己的想法写入代码,将电子世界里的代码编译输出,在现实世界呈现并产生改变,这件事跨越两个世界,是极具成就感的。当花一个下午甚至好几天的时间去实现一个功能,或是修复一个错误,成功后,这种成就感无可比拟,这种成就感也推动我不断深入学习。 这段时期里,我差不多每天早上七八点钟起床,然后去食堂买早饭,在路上边走边吃,一直走到图书馆,正好吃完,然后上楼打开电脑写代码。有需要上课的话,就把电脑放在桌子下面写代码,下课再去图书馆写。吃午饭和晚饭前,我都会回寝室,把电脑充电,吃完饭后,再回寝室玩一玩,又再去图书馆。晚上大概九点离开图书馆,把电脑放回寝室后,再去操场跑几圈。 但我也会做其他事,比如晚上我也经常会在寝室看电影,下午也说不定会和朋友打羽毛球,上瘾了也有去网吧玩游戏,天气好还可以在操场晒太阳,下雨可以在我们学校的「花果山」上荡秋千,饭后可以去江边吹吹风,再参加参加校园摄影比赛,还可以作为正方四辩总结陈词…… 好像直到大四,我完成了两款应用的开发,其中一款名为:行动日 ,就是我想做的待办清单类应用,已经上架苹果应用商店,这是当时我为它写的介绍:我独立开发的第一个应用:行动日。另一款没能上架,所以我打算在毕业答辩时使用它。 那时我一些同学已经找到实习,我也广投简历,最初的面试经历惨不忍睹,然后才知道去看一般 iOS 面试时的问题,又在好像几个星期时间里,我不断的学习网上所流传的面试题所包涵的知识,最终在上海找到我的实习公司。 实习时期 在开始实习的第一个月里,我被分配到一个使用 OC 的项目,那时候我完全不会 OC,所以代码写得很慢,不过好在有同事可以请教。一个月之后,公司启动新项目,我去了一个使用 Swift 的项目,一直做到现在,已有半年左右,期间获益良多,除开发能力的提升外,也知道产品的开发流程,如何与同事协作等等,大学独自写了半年代码,实习期我和前后端十几位同事共同写了半年代码,到现在也算有一年开发经验。 实习期我感到,虽然每天都在写代码,但我并没有像大学时那样每天都会获取新知识,而只是在积累经验。但承蒙主管和老板们的关照,他们经常和我谈心,一方面担心我刚来上海的生活,一方面是对我的引导。在与他们的谈话中,他们都结合着自己的经历,告诉我去追求「广度」「深度」「责任感」与「自身价值」。 所以有时候,我会去公司天台、公司旁边的交大医学院的教室或者操场继续学习,那时我已经看完了几本的入门级的开发书籍,觉得都大同小异,然后我开始看进阶级的书籍,并关注了一些开发者、博客和 Youtube 频道等等。在看那些博文时,我几乎会对于每一篇都做笔记,但这里的笔记大部分都是对文中的重要段落和代码的摘录。 发现这样的知识转化率并不太高,于是我开始尝试费曼技巧,这是一种十分强大的学习方法,这种学习方法的核心含义是,只有我让别人也能掌握我所掌握的知识,那我才算真正掌握这种知识。所以我开始写博客,为了让别人明白我所写的内容,我被迫将我脑中含糊不清概念弄清楚,被迫去追究细节。 但还是觉得不够,有一些复杂理论或者逻辑,并不方便通过文字、图片、或者视频表现出来,于是我用工资买了 iPad mini 和 Apple Pencil,得益于 Mac OS 和 iOS […]