人的一生都在不断地学习,而作为程序员的更是从未停下对过新技术、新风口的探索,但在技术不断提高的过程中,我们总会发现技术储备的能力始终与技术大牛差之千里,几年前有一张华为总部大楼夜晚灯火通明的图,放在如今却成了不正确的代名词,可还是会有人讲:“那些奋斗的人,终会得到他们辛劳的硕果。”

技术不会在时间的沉淀中成长

就好比是一位赛车手,他不是顶级的F1赛车手,但与大部分出租车司机相比,无论是公路还是山地,驾驶能力都远超后者。其实他拿到驾照才不过7年。

而一位四十多岁的职业司机,生涯里的车程不会低于30000个小时。

他们之间的区别并不是由于训练方式和上手的车型不一样,也不是因为赛道是崎岖的山路,并非是拥堵的市区。

而是车手的目标是要一次比一次快,司机只需要安稳的到达目的地。

我们可以把出租车司机视作一位在行业内有很长时间沉淀的普通iOS开发者,赛车手可以视作一位中高级iOS开发者,他们在工作的同时间维度上并无太大分别,但学习的方式存在巨大的差异,在19世纪末期,这种学习方式就已经得到了系统化的分类。

同等的时间下学习方式可以分为三种:

玩耍:这个方式的最大特点,在于没有明确目标的开展行动,获得感在于内心的愉悦。例如和朋友一起打游戏,取得的胜利当然会令人愉悦,但哪怕是玩够10000小时,我们依然是路人水平。

工作:每个人最初进入行业都在这个阶段,除去某些特别的行业,工作中存在大量的重复性劳动,往往还存在工作内容之外的竞争使人分心。工作最大的特点在于有利益的驱动,每个人都在为了薪水而努力,当对于目前的薪水满意时,人们往往就会轻易的陷入舒适区从而进入重复劳动的阶段。

刻意练习:刻意练习,也叫做刻意训练,此类活动的目标只有一个,就是为了成为非同凡人的大师而存在,如果仅仅因为喜欢,反复训练后爱好会被消磨殆尽。刻意练习的过程往往极其枯燥,在过程中可能很难短期拥有获得感和存在感,很多人难以坚持下去。

我们都没有听说过五十岁还顶在一线的996程序员,也没有听说过五十多岁还在比赛的职业赛车手,普通司机和赛车手的区别到底在哪?小白和大牛的差距到底在哪?普通iOS开发者和中高级iOS开发者的学习方式在哪里有所不同?

就像是围棋的学习方法,在不同领域是适用性最强的,因为这项运动不分老幼,但顶级的棋手如柯洁,他的年龄并不大,但已经数次站在世界之巅,因为,职业棋手从不长时间下舒适区内的棋,提高技术只打谱,在刻意练习中,这种方法叫做学习定式。

学习定式

围棋19条交叉线路的361个网格里,每一个不同线路上出现的棋子,都是一个全新的问题,而破解问题最快的手段不是研究和推导,而是直接从最优解中选取合适当下落子情况的解题方法,称之为“定式”。

优秀的棋手从未在熟练运用一套定式后开始随心所欲地玩棋,而是在不断全新的落子复盘中,从最优解的定式中选取方案与之应对,这样永不停滞的学习方法造就了当下顶尖棋手,称之“学习定式”。

如果棋手数万小时不断打磨技巧的方法论一般,停滞在舒适区内的时间不属于通往大师的路,普通iOS开发者向中高级进阶的路从不是未知等待探索的局,是早有定式可言却又被无数人忽略掉最优的提高方法。

进阶自己,找到属于自己的定式

定式一:发散思维

我们要有善于学习不同语言和不抵触新技术的视野,保持对每个主流技术的关注与探索,以便更好地知道自己的学习方向。

定式二:修炼基本功

oj.leetcode.com现在也支持Swift了。总体难度适中,不像ACM那么刁钻。非常适合当做了解语言特性以及锻炼自己基本编码能力的地方。 虽然算法没有用但能写出算法的能力,很有用。这个训练能够潜移默化的提高你在平时写代码的速度。

了解FRP(Functional Reactive Programming),对应框架就是ReativeCocoaRxSwift,没错,这并不是必须的。但我还是忍不住要安利一下。这是能够最直接,最显而易见的提供你工作效率的框架。

定式三:坚持学习与分享自己

学习别人造的轮子 github上有很多优秀的开发者的源码,其中很大一部分都有极高的学习价值。 这里是一个集合的,你可以根据自己感兴趣的库进行学习。(记住是学习研究怎么实现是思考换你来做的话,你会如何做不是pod install然后跟着readme使用一下就完了),国内也有很多大神的框架值得学习,比如ibireme的YYKit。

造轮子 学得差不多了,就该自己造了。当你第一次以框架/Api设计者而不是使用者的角度来思考问题,也能够获得很多的收获。这一步能带给你能力的提升是最明显的,如果说定式二都是在韬光养晦的积累阶段。那造轮子,就是你在成为高阶工程师之路的收获阶段。贡献你的知识,把你的心得,领悟的东西写成博客。或者把你看过优秀的英文文章翻译成中文,方便后来的国内开发者们快速掌握。这并不是单纯的做好事,分享的过程,你能让你有新的感悟,学到新的知识,利人利己。

很多人在学习技术的时候担心自己起步晚,也有很多人在技术稳定时失去对未来的眼光,默然冷视因为年龄大被更新换代掉的人。

其实不妨想想,需要面对危机的是每个人,能够直视危机并找对自己进阶方向的人不但能够成为翘楚黑马,更能在竞争愈加激烈的行业内成为不可或缺的人。

到最后小编推荐一个群 691040931 里面有许多的iOS开发者在交流技术分享自己的心得,更有一些资料不定期的分享更新。

为什么敲了许多年的代码,却仍然在原地踏步?| 程序员有话说相关推荐

  1. 骚操作!代码写情诗 | 程序员有话说

    作者 | 素年清时 责编 | 伍杏玲 2019年人工智能系统学: https://edu.csdn.net/topic/ai30?utm_source=cxrs_bw 随着<中国诗词大会> ...

  2. 如何编写好的代码/成为一个更好的程序员

    如何编写好的代码/成为一个更好的程序员 几个月前,有一位演讲者来到公司谈论优美的代码,他的论点是优美的代码以许多不同的形式出现.简单中有优美,折衷中有优美,稳定性上有优美,功能上有优美,坚固性上有优美 ...

  3. ChatGPT+低代码,将干掉40%的程序员

    作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 关于程序员失业有个段子:拖拽建站出来的时候,他们人说程序员会失业:低代码出来了,他们说程序员会失业:C ...

  4. 程序员在火车站候车室写代码画面曝光,网友:程序员的悲哀

    大过节的,许多在外打拼的人们纷纷奔向回家的路程,本该是欢声笑语的一路,可是却因为工作缠身而显得有些不美好.比如下面这位,一名程序员网友正在火车站候车室候车,无意中看到一名同行在电脑上"奋笔疾 ...

  5. 代码传奇 | 身价10亿的程序员 雷军当年也为他打工——WPS之父 求伯君

    他的前半生,值得我们每一个人深思. 在普通人眼里,他寂寂无名,只有年岁稍长的文化人,才听说过他传奇般的存在. 在IT人眼里,他是块活化石,中国第一的大旗除了他,没人敢抗! 他是求伯君,从一个浙江穷山村 ...

  6. 不停机还能替换代码?6年的 Java程序员表示不可思议

    ❝ 相信很多人都有这样一种感受,自己写的代码在开发.测试环境跑的稳得一笔,可一到线上就抽风,不是缺这个就是少那个反正就是一顿报错,而线上调试代码又很麻烦,让人头疼得很.不过, 阿里巴巴出了一款名叫Ar ...

  7. 数学公式太晦涩,不如用代码写出来:这是程序员学数学的独特方式

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来源:机器之心 简洁的代码不仅能运行程序,还能用来学数学. ∑.∏.∈--如果你学习过 ...

  8. java 获取当前ip_不停机还能替换代码?6年的 Java程序员表示不可思议

    ❝ 相信很多人都有这样一种感受,自己写的代码在开发.测试环境跑的稳得一笔,可一到线上就抽风,不是缺这个就是少那个反正就是一顿报错,而线上调试代码又很麻烦,让人头疼得很.不过, 阿里巴巴出了一款名叫Ar ...

  9. 单片机代码怎么读懂_单片机程序员的面试经验

    需要掌握哪些技能 ● 需要了解并使用过几款常见的单片机. ●  需要熟悉常见的硬件接口譬如 UART .SPI .I2C ●  需要了解一些传感器相关的知识,譬如声.光.磁.温.惯性器件 ●  需要能 ...

最新文章

  1. 朗讯项目的一个概括总结.
  2. 虚拟局域网vlan实验报告_自动化已非原来的自动化:看虚拟局域网技术应用到罗克韦尔的DCS...
  3. Node.js 初识 fs 模块
  4. 交叉编译及linux简单程序设计,嵌入式实验6交叉编译及Linux简单程序设计实验
  5. SpringBoot整合阿里Druid数据源及Spring-Data-Jpa
  6. neo4j 学习-2
  7. Oracle 10g 报ORA-12514错误
  8. 打造机器人:为遥控小车加一个树莓派
  9. 直观讲解Matlab的im2col函数
  10. 华南理工大学基地二轮作品制作——蓝牙电子时钟
  11. 不同内核浏览器的差异以及浏览器渲染简介(转)
  12. 《关键信息基础设施安全保护条例》正式发布
  13. 大数据学习之路-Hive
  14. 计算器表格边框java_表格边框探秘
  15. 收集的一些计算机硬件知识
  16. win10录屏功能怎么打开,详细图文教学,轻松学会
  17. 宝利通group终端升级指导书
  18. CeresDAO:Ventures DAO的“新代言”
  19. matlab有多么强大,MATLAB 到底有多厉害
  20. [无线路由] “免费”斐讯K2路由器刷OpenWRT(实战MWAN多宽带网速叠加)

热门文章

  1. Graz技术大学计算机图形与视觉小组PEGASUS项目介绍
  2. STK中设置卫星的多波束模型
  3. vue +springboot项目部署(nginx)
  4. JAVA计算机毕业设计房屋中介网络平台Mybatis+系统+数据库+调试部署
  5. thinkphp6项目的支付宝手机网页支付接入
  6. vue简易微前端项目搭建(一):项目背景及简介
  7. 中望3D 2022 基准平面
  8. 川土微电子8通道隔离式数字输入接收器
  9. PHP isset()与empty()的区别
  10. Quartus编译错误:which fans out to accumulate:inst4|acc[12] cannot be assigned more than one value