报告从结论开始:26岁开始学编程(Java)晚了吗?
从「早入行者早沉淀」的角度来讲:yes,晚了!(对95%的人来说)
应该说,26岁已经过了学习技术编程的最佳窗口期,毕竟编程是练习思维、验证逻辑、强化习惯、长期操练的过程,这个过程开始得越早越好(一般大学本科或者更早的时期开始正式编程训练比较好)。26岁的时候,其实很多编程高手都已经诞生。这个时候才开始学习编程,在同一个赛道与早入行早沉淀的同行相比,不能不说是一个非常大、特别大、相当大的劣势(心理上、体力上、思维上、前途上)。就像万米赛跑,别人已经跑到一半,自己才刚刚出发,故而言晚。
从「此生不博此生憾」的角度来讲:No,不晚!(对5%的人来说)
如果说,有相当好的编程素质(比如数学基础、逻辑思维),有学习编程的强烈愿望(甚至以此为生计的动力),还有一个很好的练习编程的机会,那么26岁这个年龄虽然起步很晚,但还是值得尝试。需要注意的是,这里需要有强大的心理承受力,以及合理的预期。
如果是一个文科生,那么上面的5%这个比例偶觉得可以减少到1%。
偶自己属于上面1%这个人群。本科学习外语,研究生学习管理学,怀着对高新技术企业的景仰,26岁硕士毕业进入了软件公司,当然是非技术岗位。
看着攻城狮们面对着屏幕上一行行跳动的字节,时而键盘翻飞,时而自言自语,时而冥思苦想,时而拍案而起……作为非技术人员,脸上是惊诧的,眼神是崇拜的,内心是羡慕的。
作为一个文科生,以前做梦也没有想到自己居然会萌生学习编程的想法。当时的原因有几:
1,自认为自己的数学底子还不错,虽然本科硕士阶段没有怎么学习数学,还算有些自信心。
2,看着攻城狮电脑上跳动的字节,居然还有试图去读懂的冲动,以及一种相见恨晚的感觉。
3,和攻城狮们沟通有天然障碍,要想在软件公司立足,必须了解攻城狮,必须有共同语言。
4,平时工作不是特别忙,看着攻城狮们晚上很晚下班,自己比较闲,心理上有一种危机感。
5,如果文科生也会编程,也会技术,将文理好好结合起来,那么自己的将来会更有含金量。
6,当然,还有很重要的一点,那就是攻城狮们的薪水(似乎不断上涨的薪水)最有吸引力。
于是,得出结论:马上开始学习编程。
很幸运赶上了Java时代,代码不用从底层开始,卓越的开发环境。
很幸运开发项目比较多,可以从简单项目开始,慢慢去提高难度。
很幸运遇到了很多高手,可以天真无邪地发问,得到耐心的指导。
……
自己也算是一个可以静下心来理解设计式样、探索代码机制、不断试错练习的人,每天和攻城狮一起下班。下班之后,背着沉甸甸的笔记本回到宿舍,只要有时间就用来理解式样、死磕代码……数组、对象、类、接口、封装、继承、多态……啃大部头书,查英文资料,模仿示范代码,每天很充实。
在简单的项目中学习编程应该说是一个绝佳的捷径。当通过debug工具清晰地看到参数在传递数值的时候,当通过自己的调查可以帮助同事修改代码的时候,当看到需求文件知道应该转换为怎样的代码的时候……兴奋不言而喻。同时,和攻城狮的共同话题也越来越多,一个纯文科生似乎正在向理工男蜕变。当然,也曾眼睛疲劳,身体倦乏,极度紧张;也曾感到枯燥乏味,感到没有尽头,苦不堪言;也曾怀疑自己的决定,怀疑自己的未来,怀疑自己的恒心……还好,纠结中没有放弃。
慢慢地,终于知道了面向对象编程,终于理解了Oracle数据库,终于看懂了MVC,终于明白了J2EE架构……其中经历了测试,经历了编程,经历了设计……后来慢慢发现,也是令人振奋地发现,和有的攻城狮相比,自己有一些特别的优势:擅长理解式样,用心去把握式样的内容;比较擅长代码注释,有比较好的代码注释习惯;擅长文档,有比较好的文档写作能力;擅长俯瞰思维,喜欢从整体上理解技术架构;擅长总结,品质管理、软件工程、项目管理、团队沟通……偶似乎有更多的兴趣关注这些内容。
正是基于这个发现,偶尝试着做一些能发挥自己优势的事情。由于日语基础比较好,平时和日本公司打交道也比较多(当时对日软件开发项目比较多),偶试着以日本软件企业的优势这一切入点,从品质管理、软件工程、项目管理等角度来对软件开发进行整理和总结,没有周末没有假期没有浪漫花了2年多时间写作了《深度精耕:日本软件企业精义解读》这本书(美一下,虽然早已绝版)。
现在看来,当时决定学习编程是一个不错的决定(感谢当初拼命的自己)。至少,编程给偶带来了几方面的价值:
1,能与攻城狮们共进退,从此有了真正的共同语言。与攻城狮们沟通的时候,知道他们的关注重点和思维逻辑,知道他们的忧虑和担心,知道他们真正的苦与乐。这给此后的工作奠定了很好的基础,毕竟自己也曾经是一名攻城狮。
2,强化了快速学习能力,以及解决实际问题的能力。编程就是解决技术问题的过程。需要知道怎样在短期内快速吸收知识,并解决实际出现的问题。这种快速学习能力给自己后来的职业变迁(技术→管理→IT咨询→销售)带来了可持续的动力。
3,增进了「跨界」自信,以及向复合型能力的转变。当一个文科生从26岁开始学习编程,可以通过自己的手搞定代码的时候,内心对「跨界」已经没有畏惧。甚至可以说,这种经历加快了「跨界」的步伐。因为,「跨界」能力是别人难以复制的一种核心竞争力。甚至后来做IT咨询,做销售,然后做机器人(包括运营微信公众号:机器人大王)以及人工智能,都得益于这种「跨界」能力。
从自己的经历来说,26岁开始学编程,并不晚。
但是,一般情况下,偶并不建议到26岁这样的「高龄」才去尝试一个从时间上大大落后于专业队的、颇为冒险的、并不一定能给自己带来灿烂未来的攻城狮「苦旅」。
如果真想尝试,试着问问自己:26岁的偶,现在学编程到底是为了什么?要达到这样的目的,真的没有其他更好的办法了吗?