作者 | 村村

责编 | 伍杏玲

出品 | 程序人生(ID:coder_life)

【编者按】作为程序员,纵然加班繁多,写的代码也不少,做出的努力也不少。可大多数程序员仅停留在“工程师”的职位上,很少人能走到“架构师”,这是为什么呢?本文作者一同和大家探讨下。

我们程序员一生都在不断地学习,我们从未停下对新技术、新风口的探索,但在技术不断提高的过程中,我们总会发现技术储备始终与技术大牛相差甚远,几年前有一张华为总部大楼夜晚灯火通明的图,放在今天成了不正确的代名词,可还是会有人讲:“那些勤奋的人,终究得到应有的殊荣。”

技术,不在于时间的沉淀

我有个朋友,是个不太出名的赛车手,他的技术虽然和顶级的F1赛车手相差甚远,但与大部分出租车司机相比,无论是公路还是山地,驾驶能力都远超后者。其实他拿到驾照才不过7年。

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

我曾经问他是不是由于你们的训练方式和上手的车型不一样?而赛道是崎岖的山路,并非拥堵的市区?

他告诉我:“只是要一次比一次快。”

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

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

玩耍:这个方式的最大特点,在于没有明确目标的开展行动,获得感在于内心的愉悦。例如和朋友一起打篮球,进球取得的胜利当然会令人愉悦,但仅仅是玩10000小时,我们依然很达到顶级水平。

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

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

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

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

学习定式

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

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

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

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

定式一:发散思维

我们经常看到争论语言高低的言论,其实语言之间并无高低,如果自己带队操作项目,团队里任何语言的人才和工作定位都要优秀的架构师要考虑的。

我们要有善于学习不同语言和不抵触新技术的视野,保持对每个主流技术环节瓶颈的关注,以便更好的设计架构和技术选型。

定式二:洞察业务

没有不懂业务的架构师,所有的架构都要依赖业务而存在,刻意练习业务代码的输出也是不可以或缺的基本功。

对于每个公司而言,架构师能够准确看到公司业务核心需要解决的问题,“最高层次的规划,难以改变的决定”这句话本身用来形容架构再恰当不过,但进阶架构师需要对企业核心业务从多性维度产生的思考和分析,需要长期不断的洞察和揣测。

定式三:练习沟通

沟通的重要性不亚于技术能力,“知识的诅咒”里讲到越是在独立领域钻研度深的专家,对话时容易产生的误区越多且越复杂,甚至会演化成两个专业术语交互活动。

优秀的架构师需要协调每个环节不同技术领域的大牛,甚至跨部门和产品、运营、项目等达成有效沟通,从练习理解每个人的意图,和明确向团队表述自己的意图至关重要。

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

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

作者:村村,中国技术创业协会认证企业孵化导师,地产经济业态管理,大数据算法模型分析师,斜杠青年,技术干货公众号:编程新鲜事。

作为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)

戳他了解更多↓↓↓

 热 文 推 荐 

☞ 华为至暗一周,任正非回应一切;开源代码不受美国出口管制约束;GitHub 开启赞助功能:用金钱贡献开源项目 | 开发者周刊

☞ 面试阿里,我还是挂在了第四轮……

☞ 与吴恩达并肩战斗,她是颜值爆表的 AI 科学家!

别怀疑,孩子在家里也能学编程!

为什么你写了一万小时的代码,却没能成为架构师?| 程序员有话说

ARM到底是一家什么样的公司?

百花村区块链山的选民们, 超有趣!

危机加剧:ARM釜底抽“芯”,华为腹背受敌

☞ 大神!这段代码让程序员躺赚200W,源码简单,你怎么看?

你点的每个“在看”,我都认真当成了喜欢

为什么我写了一万小时的代码,却仍然成不了架构师?相关推荐

  1. 为什么你写了一万小时的代码,却没能成为架构师?

    转自: https://blog.csdn.net/Java_No01/article/details/90674490 点关注,不迷路:持续更新Java架构相关技术及资讯热文!!! 眼尖的朋友可能还 ...

  2. 敲一万小时的代码可以成为大牛吗?

    看到标题,你们可能想不起我要讲的书名,但是你们很可能听过一万小时定律,但我今天不仅要讲<异类>这本书的观点,还要讲另外一本书<刻意练习>. 一万小时定律是作家格拉德威尔在< ...

  3. CTO不写代码就算了,架构师也不写?

    从什么时候起,技术角色的提升就意味着脱离技术与交付?CTO 不写代码已经引起诸多争议了,架构师也不写代码,能行吗? 当我面试架构师职位的候选人时,我通常会问一个这样的问题:"你认为架构师是否 ...

  4. 阿里CTO程立:好的架构师,都是写代码写出来的!

    阿里CTO程立在访谈中提到,好架构师都是写代码写出来的,PPT是架构师必备的一个技能. 关于这段访谈的文字版如下: "反正我认为架构师是要写代码的.首先的话,好的架构师都是写代码写出来的.本 ...

  5. 十年架构师:我是这样手写Spring的,用300行代码体现优雅之道

    起源 Spring作为一个开源框架,于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作<Expert One-On-One J2EE Development ...

  6. 编程一万小时是种什么样的体验?

    文 | 局长 来源 | OSC开源社区(ID:oschina2013) Matt Rickard 是在谷歌从事 Kubernetes 开源工作的开发者,主要负责构建和维护 Kubernetes 开发者 ...

  7. 《1万小时成功定律——解构成功》

    ---伟大之思者,必行伟大之迷途,背起行囊,独自旅行,做一个孤独的散步者.-- 黑格尔 ---[巴菲特的1万小时定律]"我是7岁开始的,之前的时间都浪费掉了."巴菲特说.他7岁对股 ...

  8. 怎样练习一万小时(转)

    作者:同人于野 随着畅销书<异类>的流行,"练习一万小时成天才"这个口号现在是尽人皆知.也许仍然有不少人相信那些不世出的天才必有天生的神秘能力,但科学家通 过大量的调查 ...

  9. 方法论:怎样练习一万小时

    方法论:怎样练习一万小时来源:经济学人 编辑:学妹 随着畅销书<异类>的流行,"练习一万小时成天才"这个口号现在是尽人皆知.也许仍然有不少人相信那些不世出的天才必有天生 ...

最新文章

  1. Flink从入门到精通100篇(一)-如何在Mac 上搭建 Flink环境并做简单测试
  2. c++ primer 5th,习题13.3 答案是不是错了?(未解决)
  3. POJ 1091(数论)
  4. ZOJ 2165 Red and Black
  5. python控制语句第一章_python基础第一章
  6. Django-分页、中间件和请求的声明周期
  7. 文章下载:关于窗宽窗位调节非常有用的论文《DICOM 医学图像窗口变换的加速算法》...
  8. 计算机录制视频的方法,怎么录制电脑屏幕视频步骤(电脑录屏的方法有4种)...
  9. 多语言国际版在线聊天室/匿名在线聊天室/语音聊天室/网页APP聊天室
  10. 2019,华为一号文
  11. CAD图纸的转换和批量打印
  12. 青海电大随学随考计算机,[青海电大]17秋随学随考心理学作业4题目
  13. STM32-IIC模拟从模式
  14. 【物联网中间件平台-05】YFIOs策略开发指南
  15. 文件名变乱码. 不知道怎么找回呢
  16. 登录的双因素认证-Golang实现
  17. android火焰图分析,android实现简单的火焰效果
  18. 亚马逊 ec2 连接不上_在Amazon EC2上设置WordPress
  19. CentOS-7.4(1708)release notes发行注记
  20. Coursera课程答案分享

热门文章

  1. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·007【简单查询】
  2. RuntimeError: expected backend CUDA and dtype Float but got backend CUDA and dtype Long
  3. python中的isinstance()使用方法[探索2]
  4. 链表的中间节点--快慢指针
  5. redis笔记2 限流、GeoHash和Scan
  6. lua的元表、模块和面向对象
  7. Linux的高效传输函数sendfile
  8. Flutter代码锦囊---集中管理路由与导航
  9. C语言的argv小案例
  10. 从入门到入土:[SEED-Lab]MD5碰撞试验|MD5collgen实验|linux|Ubuntu|MD5 Collision Attack Lab|详细讲解