惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Spread Privacy
Spread Privacy
S
Schneier on Security
博客园 - 【当耐特】
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
美团技术团队
Application and Cybersecurity Blog
Application and Cybersecurity Blog
MongoDB | Blog
MongoDB | Blog
NISL@THU
NISL@THU
N
Netflix TechBlog - Medium
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Webroot Blog
Webroot Blog
月光博客
月光博客
T
The Exploit Database - CXSecurity.com
Forbes - Security
Forbes - Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 叶小钗
Recent Announcements
Recent Announcements
IT之家
IT之家
B
Blog
C
CERT Recently Published Vulnerability Notes
S
SegmentFault 最新的问题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
F
Fortinet All Blogs
Martin Fowler
Martin Fowler
Know Your Adversary
Know Your Adversary
Security Latest
Security Latest
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Troy Hunt's Blog
O
OpenAI News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
V2EX - 技术
V2EX - 技术
L
Lohrmann on Cybersecurity
C
Cyber Attacks, Cyber Crime and Cyber Security
H
Help Net Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Last Week in AI
Last Week in AI
Help Net Security
Help Net Security
Hacker News: Ask HN
Hacker News: Ask HN
A
About on SuperTechFans
Y
Y Combinator Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Engineering at Meta
Engineering at Meta
T
Threat Research - Cisco Blogs
Vercel News
Vercel News
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Recorded Future
Recorded Future
C
Cisco Blogs
Project Zero
Project Zero

木土金王可

复盘 2024,年度好物分享 落地 第二十台相机:宝丽来(Polaroid)Impulse AF 第十九台相机:哈苏(Hasselblad)X1D II 第十八台相机:宝丽来(Polaroid)Macro 5 SLR 第十七台相机:康泰时(Contax)S2 稻荷山 Dave Chappelle: The Closer 语言是思想的边界 对街头卖惨表演的看法 《民主森林》 电梯英雄 2023,年度好物分享 《大画幅 4x5》复活 新加坡华侨银行(OCBC)开户指南 第十六台相机:宾得(Pentax)PC35AF-M SEDATE 第十五台相机:沙慕尼(Chamonix)4x5 F2 Xbox 连接 Studio Display Twitter、Apple、Meta 和 Reddit 广告平台使用体验 第十四台相机:康泰时(Contax)S2 你到底什么时候买相机 拍摄胶片的理由 HomePod 不能作为 Mac 音响 男性生来就是残缺的女性 第十三台相机:柯尼卡(Konica)Big Mini 301 三年,十二台相机 恐怖片很好看啊 比残忍更残忍 用 SwiftUI 重构「行动日」 推荐《女生呵护指南》 你是左派还是右派? 驯服内心的猛犸象:为什么你应该停止关心别人对你的想法 想写点什么,但又不知道该写什么 摄影构图 精致的结婚照 中文没死,是有的人死了 上海爆发 COVID-19 疫情以来我收藏的文章(持续更新) 自我审查 25 美元,成为美国计算机学会(ACM)会员 将同事送我的仙人掌转换成 3D 模型 当我们谈论离屏渲染时,我们在谈论什么 如何让 iOS 给你的应用开后门 二零一九年夏秋之交工作生活的异动 一声一世 iOS 限制输入字数与特殊字符的巧妙方法 对于番茄学习法的误解 Swift 中的空字符串 为什么我不喜欢社交网络 如何与人见面 为什么我不喜欢即时通讯 以配置信息(UserDefaults)的形式存储应用数据 在文件沙盒中读取与写入应用数据 在 iOS 开发中使用键值对监听(KVO)与通知(Notification) 介绍 GCD 中的线程,队列,延迟执行,线程阻断,信号量,任务组与任务对象 iOS 原生 URLSession 网络请求 什么是自动引用计数(ARC)和引用循环 在 iOS 开发中使用代理与协议 独立开发的第一个应用:行动日 为什么我会把 Google Pixel 换成 iPhone SE? 手动进行 Nexus 和 Pixel 系列手机的 OTA 更新 开启 Chromebook 的夜间模式
我如何自学 iOS 开发
kinnouka bokudo · 2019-04-18 · via 木土金王可

即将回重庆去完成毕业答辩,所以我想回顾我从自学 iOS 开发起至现在的历程,也谈谈对我目前短暂的开发生涯来说最重要的三样东西:兴趣、成就感和世界观。

其实我最开始的兴趣并不是编程,而是对于各种软件、系统的使用。在大三之后,我还是没有用到我真的所需要的那样的软件,也没有打造出我所想象中科技无限便利生活的环境,所以别人编写的程序满足不了我的需求,于是我有了自己编写软件的想法,同时这也是我的兴趣所在,不知道该如何去确切的描述这种兴趣,但我能感觉到,这并不是单纯的编程的兴趣,也许是想要一种改变。

大学时期

那时候是大三寒假末期,我不再像前几年那样整天泡在游戏,我买了二手 Macbook 开始自学 iOS 开发,我从网上找来许多电子书和视频,都是特别零散的学习资源,现在唯一还有印象的就是慕课网。前期我大概把 UIButton,UILabel,UIView 等这些基础控件全部试用了一遍,再是由于 Storyboard 的便利性,大三下期开学时,我已经可以做一些像是温度转换器之类的无聊应用。

然后我开始寻求更广阔的知识,而国内的大部分开发教程都是好几年前的,所以我不得不去找一些国外的新的资源,我偏向于视频学习,但那时候我英文很差,英文的视频教程我没办法看,于是我从英文书开始看起。

我所看过的部分教学书籍

得益于 MacBook 的「用力点按」功能,在英文书中有任何不明白的单词只要重重按下触控板就会显示词意,再配上朗读功能还可以知道单词发音,如果是长段的英文就直接放进 Google 翻译。随着时间的流逝,我看英文变得越来越轻松。

「用力点按」功能演示

在每本 iOS 开发的入门书籍里,都会讲到 UITableView,我那时就在想,不要只按照教程去做,我想独立开发应用,那时候我对 UITableView 最熟悉,所以我就想开发一款待办清单类应用。但仍保持继续学习,只是每当学到一些知识的时候,我会思考如何将它放进我的应用里。

在不断的学习中,不断将照自己的想法写入代码,将电子世界里的代码编译输出,在现实世界呈现并产生改变,这件事跨越两个世界,是极具成就感的。当花一个下午甚至好几天的时间去实现一个功能,或是修复一个错误,成功后,这种成就感无可比拟,这种成就感也推动我不断深入学习。

这段时期里,我差不多每天早上七八点钟起床,然后去食堂买早饭,在路上边走边吃,一直走到图书馆,正好吃完,然后上楼打开电脑写代码。有需要上课的话,就把电脑放在桌子下面写代码,下课再去图书馆写。吃午饭和晚饭前,我都会回寝室,把电脑充电,吃完饭后,再回寝室玩一玩,又再去图书馆。晚上大概九点离开图书馆,把电脑放回寝室后,再去操场跑几圈。

但我也会做其他事,比如晚上我也经常会在寝室看电影,下午也说不定会和朋友打羽毛球,上瘾了也有去网吧玩游戏,天气好还可以在操场晒太阳,下雨可以在我们学校的「花果山」上荡秋千,饭后可以去江边吹吹风,再参加参加校园摄影比赛,还可以作为正方四辩总结陈词……

好像直到大四,我完成了两款应用的开发,其中一款名为:行动日,就是我想做的待办清单类应用,已经上架苹果应用商店,这是当时我为它写的介绍:我独立开发的第一个应用:行动日。另一款没能上架,所以我打算在毕业答辩时使用它。

那时我一些同学已经找到实习,我也广投简历,最初的面试经历惨不忍睹,然后才知道去看一般 iOS 面试时的问题,又在好像几个星期时间里,我不断的学习网上所流传的面试题所包涵的知识,最终在上海找到我的实习公司。

实习时期

在开始实习的第一个月里,我被分配到一个使用 OC 的项目,那时候我完全不会 OC,所以代码写得很慢,不过好在有同事可以请教。一个月之后,公司启动新项目,我去了一个使用 Swift 的项目,一直做到现在,已有半年左右,期间获益良多,除开发能力的提升外,也知道产品的开发流程,如何与同事协作等等,大学独自写了半年代码,实习期我和前后端十几位同事共同写了半年代码,到现在也算有一年开发经验。

实习期我感到,虽然每天都在写代码,但我并没有像大学时那样每天都会获取新知识,而只是在积累经验。但承蒙主管和老板们的关照,他们经常和我谈心,一方面担心我刚来上海的生活,一方面是对我的引导。在与他们的谈话中,他们都结合着自己的经历,告诉我去追求「广度」「深度」「责任感」与「自身价值」。

所以有时候,我会去公司天台、公司旁边的交大医学院的教室或者操场继续学习,那时我已经看完了几本的入门级的开发书籍,觉得都大同小异,然后我开始看进阶级的书籍,并关注了一些开发者、博客和 Youtube 频道等等。在看那些博文时,我几乎会对于每一篇都做笔记,但这里的笔记大部分都是对文中的重要段落和代码的摘录。

我的备忘录

发现这样的知识转化率并不太高,于是我开始尝试费曼技巧,这是一种十分强大的学习方法,这种学习方法的核心含义是,只有我让别人也能掌握我所掌握的知识,那我才算真正掌握这种知识。所以我开始写博客,为了让别人明白我所写的内容,我被迫将我脑中含糊不清概念弄清楚,被迫去追究细节。

但还是觉得不够,有一些复杂理论或者逻辑,并不方便通过文字、图片、或者视频表现出来,于是我用工资买了 iPad mini 和 Apple Pencil,得益于 Mac OS 和 iOS 之间的无缝衔接,再面对密布的代码时,我不用再去复制摘录,而是提炼,将我脑后中的数据和模型直接画在屏幕上,任意组合排列,这才是我真正想要的学习形态,一个完全大脑映射而出的笔记,不用再从电脑上来回切换 iBook,Safari 和 Xcode,这也是对我来说帮助最大的学习方式。

我在 iPad mini 上所记笔记

即使凭着兴趣和成就感,学习也难免会枯燥,所以真正好的学习方式并不是持续学习,而是平衡学习。除了编程以外,我还有很多兴趣和想要做的事情,所以我仍会像大学时那样,每个周末去看看艺术展,去一个来上海后还没去过的地方,和网友一起看《黑镜》跨年,看看经济学的书,尝试拍摄 Vlog,听来来往往的室友讲他们的故事……

来上海实习,我所遇到的都是很好的人,无论是新朋友、同事、领导还是房东,他们都跟我讲过许多话,帮我打开更大的世界的门,也无形中在塑造我编程的世界观。以前我代码的格局很小,只容得下我独断的思想,现在再写代码的时候,偶尔会去想,会去期望,我的代码,我所开发的应用,可以改变这个我所处的环境、社会、乃至世界,为所有使用我开发的应用的人带来益处。

资源推荐

除前文截图中所列书籍之外,再为各位读者提供我最常关注和对我帮助最大的 iOS 开发学习资源,这些网站、资源的背景都与 iOS 开发相关,所以不做特别介绍,如有帮助不胜荣幸:

专业网站

个人博客、Youtube 频道等

其他

2019 年 4 月 18 日