成长为 iOS 大 V 的秘密

成长为 iOS 大 V 的秘密

前言

绝不谦虚地说,我是国内 iOS 开发的大 V。我从 2011 年末开始自学 iOS 开发,通过 3 年时间,到 2014 年末,我不但写做了上百篇 iOS 相关的原创博客文章,完成《iOS 开发进阶》,同时还成功运营了「iOS 开发」这个国内最多 iOS 开发者订阅的微信公众号,另外个人微博(@唐巧_boy)粉丝超过 4 万。我是如何作到的呢?程序员

在武侠小说里面,武林高手一般生来就有慧根,是个学武奇才,就像周星驰《功夫》里面的星仔。另外,他们还一般会获得世外高人的指点,要么得到别人毕生修炼的真气(虚竹),要么得到绝世武功的秘笈(段誉)。编程

而我其实在这些方面都很弱。我在计算机编程方面并算不上聪明,我在北京师范大学读计算机专业,这是一个全国综合实力排在 100 名开外的院系,离清华北大差得不是一个级别。而个人语文高考成绩,刚刚及格。个人英语成绩也很通常。服务器

更不凑巧的是,我当年学 iOS 的时候,国内资料不多,并且公司里面没人有时间指导我,我只能自学。很难想像,我这么差的背景的人,可以成为 iOS 大 V,可以写文章,甚至还出书。微信

那么,我成为 iOS 大 V 的秘密是什么呢?请听我慢慢道来。网络

大 V = 大牛 ?

首先我想讨论一个问题:「大 V = 大牛」吗?其实不少时候,这二者并不能直接划等号。架构

我见过不少大牛,他们水平很高,可是他们或者不善于表达,或者不善于写做,或者表达和写做都没问题,可是他们并不喜欢在网上高谈阔论,更喜欢把时间花在研究技术问题上。这些大牛,就像《天龙八部》里面的扫地僧同样,未曾被外界知晓,可是技术实力一流。性能

我也见过一些大 V,技术实力通常,可是喜欢分享本身的心得,喜欢翻译国外的博文。他们有一些人甚至不善于写做,写文章喜欢大段大段地贴代码。可是,随着他在这方面不断地锻炼,他们慢慢地写做得愈来愈好,讲解技术愈来愈通俗易懂。由于频繁地交流,他们的技术实习也在不停地进步。虽然这些大 V 的真实水平可能比不过一些从不分享的大牛,可是他们的能力至少是达标的。学习

因此,我对这个问题的答案是:大 V 不等于 大牛。可是,要成为一个大 V,至少应该具有如下条件:测试

  • 能力是达标的,不该该有明显的能力问题。spa

  • 喜欢交流,认识不少业界同行。

  • 喜欢表达,经过写做和线下分享来传播知识。

因此,咱们不该该盲目崇拜大 V,他们只是喜欢分享而已。

那我算一个 iOS 的大牛吗?我不知道。有一些人承认我,也有一些人以为我很通常。可是个人原创文章、个人书、我开源的代码、我作的每次分享都公开在网上。我仅仅用三年时间在 iOS 领域作到这些也是不容易的,因此但愿你们继续看下去,看我是如何作到的。

奇材 + 秘笈?


在武侠小说里面,武林高手一般生来就有慧根,是个学武奇才,就像周星驰《功夫》里面的星仔。另外,他们还一般会获得世外高人的指点,要么像虚竹那样,得到别人毕生修炼的真气;要么像段誉那样,得到绝世武功的秘笈。

我是一个奇材吗?

我是一个奇材吗?显然不是。

我从小就喜欢计算机,从高中就开始接触计算机编程,我还记得那个时候学的是 PASCAL 语言,从那个时候起,我就展示出在计算机编程方面的愚钝。我还记得我和同班的小伙伴一块儿学习递归枚举,他大概只花了三天就看懂了相关的代码,而我花了整整一个月。

个人高考成绩其实也很通常,不过我运气比较好,当年全国试行自主招生,我靠着自主招生进入了北京师范大学,在北京师范大学读计算机专业。这是一个全国综合实力排在 100 名开外的院系,离清华北大差得不是一个级别。我靠着高中时积累的一点点编程知识混进了学校的 ACM 校队,以后一直比赛成绩通常,直到研一的时候才免强得到了亚洲区的区域赛金奖。

个人实习经历也很是不顺。我从大四就开始找实习,一直被拒,到研究生阶段仍是找不到实习。最终仍是靠刚刚说的区域赛金奖,得到了来自赞助商 IBM 的一次实习机会。

大 V 须要擅长写做,而个人高考语文成绩,92 分(满分 150),刚刚及格。个人英语成绩也很通常。

因此,我就是一个天资普通得不能再普通的一我的。

我有高人指点吗?

那我有高人指点吗?很惋惜,也没有。

我不但没有高人指点,并且我学习 iOS 开发的过程极其曲折。

没有资料

我是在 2011 年末开始学习 iOS 开发的。当时我厌倦了服务器端的开发,感受移动互联网很火,因而想作 iOS 开发。可是,当时移动开发刚刚兴起,国内外甚至都没有一本像样的 iOS 图书。当时除了一本入门的基础书,教你使用各类 UI 控件外,就只剩下一本尽是代码的书,教你各类小技巧(好比如何读文件,若是发个网络请求之类)。

没有人带

我当时在有道云笔记组,负责 iOS 开发的同窗并不太擅长带人,因此我很遗憾基本上只能本身学习和研究 iOS 开发知识。

学习时间短

我觉得公司会给我一些时间让我学习 iOS 开发,可是真实的状况是,我只有两周的时间学习!两周以后,我就须要帮忙修复线上的 iOS 代码,以及参与功能开发了。

我不知道你们是花多久学完 iOS 开发的。有一些同窗报 iOS 培训班,在有老师讲的状况下,一学就学三个月。而我,只有两周的时间。

背景知识为零

我在学习 iOS 开发前,对客户端开发一无所知,我当时没有用过 Mac 机,没有 iPhone。一切东西对我来讲都还很是神秘。

没有时间提升

我从 2011 年末开始学 iOS 开发,到 2012 年 5 月份就离职创业了。那个时候由于创业刚开始,咱们进入了长期的 6 天,天天 11 小时的高强度工做方式。我想提升本身的 iOS 水平,可是天天工做下来都很晚了,并且写了一成天代码精疲力尽,实在没有时间提升。

个人成就

可是,在自身条件通常,环境恶劣的状况下,我仍是作到了自个人快速成长,而且收获了不少成绩:

  • 我从开始学习 iOS 开发半年后,就开始独立负责 iOS 端的开发工做。

  • 我从 2013 年 1 月建立「iOS 开发」微信公众账号,而后每周坚持更新,如今有超过 3 万 5 千的订阅量。

  • 我从 2013 年末开始撰写《iOS 开发进阶》,2014 年末完成。另外我还写了一年多 「iOS 开发周报」。

  • 我将公司的网络库,Key-Value 存储库开源,GitHub 上 Star 数上千。

  • 我坚持写 iOS 技术博客,如今完成了超过 100 篇原创文章,不少发表在 InfoQ 和 《程序员》杂志上。

我是如何作到的

那我是如何作到的呢?

解决入门的问题

学习 iOS 开发,没有相关硬件是不行的。可是苹果的硬件都很贵,不少人舍不得买,装黑苹果来解决,这种行为我简单尝试了一下就放弃了,由于黑苹果有着太多的兼容和性能问题,在这上面浪费时间很是不值得。因而,我仍是本身掏钱买了 Mac 机和 iPad,为了省钱,我买的第一台 Macbook Pro 是从同窗手中买的二手货,我买 iPad 而不是 iPhone,其实也是为了省钱,由于 iPad 不但相对来讲更便宜,并且能够同时作 iPhone 和 iPad 的开发用。

国内没有学习资料怎么办呢?只有硬着头皮看国外的资料呗。其实当时国外的资料也很少。我是一个视觉型的学习者,因此我看的是斯坦福的iOS开发视频课程。前几节课看的是网易云课堂上的带中文字幕的版本,可是字幕只到第10课,后面的课程我就直接看的无字幕的原始视频。

两周的时间虽然比起外面的培训机构短不少。可是安排得好的话,天天仍是能够学习不少。我大概一周就看完了视频课程,而后就是不停地写程序练习。虽然没有人带我,可是当时有道公司内部的全部 iOS 工程代码我其实也是能够用来学习的。因此我仔细阅读了有道词典和有道云笔记的代码。

因而,两周以后,我就开始参与工程Bug的修复工做了。差很少一个月左右,我就开始负责一部分开发工做了。

解决交流讨论的问题

虽然我很快完成了iOS的入门学习,可是感受交流不多,不少问题没有人讨论,这对于本身提升开发能力是一个很大的障碍。因而,我开始组织各类分享交流会。

刚开始我尝试在公司内部作这种交流工做,发现推动得很是困难,主要是喜欢分享的人仍是比较少。有道的技术牛人实际上是很多的,可是就像我刚刚说的那样,大牛不等于大V,大牛也不表明着乐于而且擅长分享。因此,通过了快两个月的推动,技术交流会仍是很是少。你们都会说没有时间准备,而我又没有任何权力在强行要求同事作分享。

我苦恼了好久,最终到创业的时候,才发现我以前眼光太浅,世界那么大,我为何要把交流的圈子定在公司内部呢?在创业的时候,我开始从全国范围内主动寻找和结识乐于分享的 iOS 开发者。我会从微博,博客,技术分享会,前同事等各类渠道去寻找这样的朋友。其实,对于乐于分享的人来讲,你要作的事情就只是把他们聚到一块儿就好了,他们本身就会开始不停地交流、讨论、分享。

解决提升的问题

大部分 iOS 开发者在入门一段时间后,就会苦于不知道如何提升。其实,提升的方式有不少,只要舍得花时间。我在提高我的技能方面,主要作了这些事情:

  • 看 WWDC 的视频。由于由苹果官方提供,而且每一年更新,因此 WWDC 是学习 iOS 开发新知识最好的渠道。我利用我天天上下班坐地铁的时间来学习,遇到一些关键的知识在地铁上很差作笔记,我会直接用截屏的方式把这些知识截下来,而后晚上在家里再把内容整理下来。下图是我在 Evernote 中记录的 WWDC 笔记,你们能够看到,一共有 70 多篇。

  • 看 iOS 的博客。我用 RSS 聚合阅读器定阅了大量国外 iOS 的博客,而后利用碎片时间阅读。个人 Evernote 上收藏了上百篇的精选文章。个人碎片时间大可能是上厕所和睡觉前。那个时候智能手机刚刚兴起,尚未微信,我感受如今很难作到在手机上安静地作阅读了。

  • 写做。对于我我的来讲,我会坚持用写做的方式来学习。由于我以为写做是知识理解的最高层次。美国教育心理学家 Bloom 将知识认知历程维度分为 6 个层次,分别为:记忆、理解、应用、分析、评鉴、创造。以下图所示,层次越高,表示对知识的掌握程度越深。我每次以为我理解了一个知识后,就会用写做的方式把它写下来,一般状况下,在写做的过程当中我都会发现本身的一些认知不足,从而经过二次学习来完善。

个人心得

在这个过程当中,我也发现了一些之前认识上的误区。

时间是最大的借口

有一些朋友评价我:「迷之高产」,他们不理解我是如何有那么多时间搞定各类事情。

在我看来,当你作很差某一件事情时,时间一般是最大的借口。

时间是能够寻找的

我学习 iOS 开发半年后,我就从网易离职参与创业了。当时咱们须要工做 6 天,天天 11 个小时。可是,这仍然没有影响我学习、交流、甚至写做。其实你仔细记录本身的时间以后,就会发现有不少时间能够利用。

好比我在那段紧张的创业期间,就利用天天上下班的时间,在地铁上看 WWDC 视频。

我自认为最夸张的事情是利用陪老婆逛街的时候写博客文章。当时我老婆和岳母在商场里面逛,我就在手机上写文章。其实试过以后发现,在手机上写文章的速度也算不上慢。

如今,我有了小孩,周末经常要陪伴她。我就会特别珍惜晚上 8 点后她睡着后那段时间,我能够利用那段时间作一些学习和写做的事情。

时间是能够挤的

若是咱们提升工做的效率,那么作一样的事情,你就会比别人花费更少的时间。这样咱们就能够挤出时间作别的事情。

程序员这个工做特色是须要集中精力,因此应该尽可能避免被别人打断。推荐你们使用番茄工做法,让本身可以在短期内集中精力作一件事情。长此以往,你就能够快速进入编程状态。

另外,写代码以前,先在纸上把逻辑写清楚,这样会使得本身 Coding 的过程很是顺利。有一些人喜欢边写边想,这样若是赶上一些没想清楚的状况,就可能白写一部分代码。在纸上把逻辑先写清楚后,Coding 的节奏会很是轻松,由于你的脑海里已经有整个架构的蓝图了,即便中间暂停休息一下,也不会有很大的影响。

平衡好时间和代码质量

有一些人写代码,彻底是堆功能,不考虑可维护性,你若是批评他,他就会义正言辞地说:时间不够!

另外有一些人,追求代码质量,宁愿项目长时间延期,也不肯意写出看起来脏的代码。遇到需求变动,老是要进行大幅度的重构,以保证新的架构是最优雅的。

我有很长一段时间都是后者,可是我如今以为,咱们不该该走极端,咱们应该好时间花费和代码质量。

从商业上来讲,按时交付产品比什么都重要,一家创业公司,若是不能按时交付产品,可能它就会面临资金不够的问题而倒闭,也可能被竞争对手抢先推出相似产品,在竞争上失去时间上的优点。

因此一个好的程序员,更应该有「大局观」,在保证代码质量的同时,也能明白,良好的代码质量实际上是为了长期的可持续地按时响应需求变动、人员变动,以达到「按时交付产品」。

运用心智

什么是心智

关于什么是心智,我来说一个故事吧。

我老婆是学幼儿教育的,她给我讲过一个故事,幼儿教育学家为了研究小孩的自控能力,会作一个叫作 延迟知足 的实验。这个实验是这样的:

在一个屋子里面,让小孩坐在一个书桌前,而后给小孩一个糖果,告诉他:「我 15 分钟后回来,若是你在我回来以前都不吃这个糖果,等我回来后就再奖励你一个糖果」。

一般状况下,不少小孩都没法抵抗糖果的诱惑而很快将它吃掉。而研究发现,那些坚持到最后的小孩,自控能力更强,在随后的跟踪研究发现,这些小孩可以在学校取得更好的学习成绩。


对了,我把这个实验录像从 Youtube 上找到了(如上),传到腾讯视频上分享给你们。

研究人员对这些表现出优秀控制力的小孩很好奇,想进一步分析出他们有什么特色。研究人员甚至用功能磁共振成像仪为他们的脑部进行扫描,但愿经过对比扫描图,找出大脑对 “延迟知足” 能力起做用的特定区域。此外,研究人员还进行了不一样的基因测试,以研究是否存在控制 “延迟知足” 能力的遗传因素。

最后,研究人员发现,这些小孩都会很是简单的一招:转移注意力。具体来讲,他们会在特别想吃糖果的时候,选择作别的事情来让本身大脑暂时不那么关注糖果。好比他们可能会唱歌,在桌子上写字,将头转向窗外。

这个故事就是关于心智最好的解释,小朋友教会咱们不要抵抗人性,要利用人性。他们知道本身喜欢吃糖果,可是他并非强制让本身不喜欢吃糖果了,而是用别的办法来达到目的。

若是你合理利用人智,那么就会收获巨大的威力。

培养习惯

培养习惯应该是最简单的心智利用手段。人们对作一件事情会有惰性,可是一旦培养成习惯以后,不作这件事情反倒不习惯了。因此那些值得作的事情,你们都应该在开始的一段时间内,强行让本身在固定时间点作这些事情,长此以往,就会造成习惯,让它成为你受益终身的习惯。

不止是我的,组织的协做也应该培养习惯。咱们在用 Scrum 用项目推动时,会固定天天和每周的开会时间,以及产品的上线时间,这些都会让组织减少对于协做的管理成本。好比每周一夜须要完成 App 的测试,你们就会自发地紧张起来,将遗留的 Bug 一一修复。

设立目标

不少事情,当咱们没有目标的时候,执行的动力就会差不少。因此,我在学习 iOS 开发的时候,会不断地给本身设立一些目标,经过不断强化这个目标,这样使得我在学习的时候意愿变得更强了。当目标达成以后,成就感和自信心就由此产生,从而激励咱们更加努力,由此产生出良性的循环。

具体来讲,我在学习初期不断要求本身将学习内容整理成博客文章,我要求本身每月至少写一篇。个人第一篇 iOS 文章是从 2011 年 8 月开始写的,那个时候我才刚刚开始学习 iOS,当时看苹果的内存管理的官方文档,有一些心得,就写了下来。而后关于写博客这件事情我就一直没有间断,一直写到如今。

在文章积累到必定程度以后,我给本身设立的第二个目标是完成一本书。我但愿借此机会,将本身没有系统整理的知识再梳理一次。这个目标对我其实挑战很大,最终我从中学会了将图书的撰写拆分红不少小的目标,而后一步一步达成。

把大目标拆分红小的阶段性目标这一点很重要,它使得总体的时间安排是适当的,不会刚开始过紧或过松。另外一方面,很一次完成小任务的知足感,能够适当让咱们的大脑产生喜悦,最终使得任务更容易被搞定。

寻找成就感

人是须要激励的,《异类》一书中讲到,那些刚开始只有一点点天赋的人,由于不断被人夸奖,从而使得他们更增强化本身擅长的事情,从而得到成功。

因此,咱们应该学会给本身作的事情寻找成就感。除了经过完成目标来得到成就感之外,咱们还能够有更多的成就感来源。对于我来讲:

  • 我会从写文章分享知识这个过程当中寻找成就感,由于这帮助了其余人学习 iOS 知识。

  • 我会从给 InfoQ 和《程序员》杂志的投稿中寻找成就感,由于它让我感受到了知识被承认。

  • 我还会从粉丝的转发和评论中寻找成就感,它让我小小的心里充满了被承认的感受。

  • 我还会从文章的打赏中寻找成就感,毕竟金钱打赏是对文章质量最直接的确定。

这些成就感,驱使着我,让我更加努力学习,停不下来。

适度坚持

总会有一些事情,你不那么容易找到目标和成就感。

我在 2013 年开始作「iOS 开发」微信公众号的时候,就有这种感受。每周都要坚持推送消息很辛苦,并且刚开始的时候,粉丝不多,没有人看。我有无数个理由中止作这件事情。可是,我有一个习惯,就是决定作一件事情以后,先作一段时间再说。

当时我给本身设立的目标是,先作半年再说。因而,我就继续更新。机会老是给有准备的人,作着作着,我发现关注数慢慢上升了,我就给本身打气说,慢慢会好起来,因而又继续坚持。终于坚持到 2015 年,个人关注数超过 2 万,也开始有了广告收入。

仍是《异类》那本书里面提到了 10000 小时定理,这个观点其实给我很大的鼓舞,它让咱们全部人意识到,不论你是否聪明,你均可以用简单地坚持,来成为某个领域的专家。我以前作 iOS 开发时就想,我平时上班一天 8 小时,一年 260 天工做,这样一年是 2000 小时,我大概须要 5 年才能成为 iOS 专家。可是若是我天天工做 10 小时,每周末多拿一天学习 iOS 开发知识,那么我一年能够花在 iOS 上的时间是 10(小时) * 310(天)= 3100 小时,这样我只须要 3 年多一点,就能够成为 iOS 专家了。

我不可是这么 YY 的,我也是这么作的,是的,我就是但愿我用三年的时间,达到别人五年的工做经验。事实上,我确实作到了,我相信全部其余人也均可以作到。

营销

虽然和我的成长不要紧,可是成为大 V 确实须要一些我的的营销。我在这方面其实作得很少,细数下来,我作过下面这些营销的事情:

  • 「iOS 开发」公众号坚持三个月后,请冯大辉帮忙推荐过一次,请池建强推荐过一次。

  • 个人微博坚持只发 iOS 开发的消息,刚开始的时候没有粉丝,我请池建强帮我转过几回文章。

  • 图书出版后,和出版社合做搞过几回转发送书活动。

  • 和荔枝软件搞过几回 Mac 正版软件特惠活动。

我在营销上其实作得不算好,我在成为大 V 这条路上真正的成功秘诀,仍是不断坚持。

总结

总结一下本文的观点:

  • 大 V 不等于 大牛,不要盲目崇拜。

  • 时间是最大的借口。

  • 合理运用心智(培养习惯、设立目标、寻找成就感)。

  • 适度坚持。

     

祝愿你们都可以快速成长~

相关文章
相关标签/搜索