经常有人问我类似这样的问题:
张哥,我想学习编程,但是基础较差,不知道能不能学成?
张哥,我目前做开发有一段时间了,但是总感觉自己进步较慢,不知道如何提升?
张哥,我工作有5、6年了,现在有点迷茫,不知道自己的职业规划该怎么选择。
我相信以上绝不是个例,有时候,并不是你不努力,很可能是你努力的方向不对。
我自己把职业生涯划分为四个比较重要的阶段。
第一阶段,也就是刚入门的阶段,一般在一年以下。对于编程来说,入门阶段其实很难的,门槛相对其他行业较高,但是想跨过这个阶段其实又是最简单的,你只需要傻傻的坚持就行了,就是这么简单,你能坚持下去,你就能打败很多人,无论你有没有基础,或者是不是专业相关,都不重要,你唯一要做的就是坚持学习下去就行了。所以,不要再问我想自学编程能不能学成的问题了,在我看来,这世上的大多数事情,只要你想,就能做成。我自己从来不相信所谓的命运以及天赋,我只相信自己对这件事有多大的渴望,如果你学不成,只能说你没有花足够的精力在这上面。
第二阶段,从入门到成长为中高级的阶段,一般在1-3年左右。我相信很多人都处于这个阶段,其实我认为这个阶段想成长也比较简单,就闭着眼努力就行了。不管你是加班多做项目,还是比别人更努力的学习,你只要比别人努力,你就能比别人进步快。很多人可能觉得在公司经常加班,做着一些重复的工作,其实我要告诉你的是,不要觉得那些界面布局、功能、业务逻辑很简单,你只要做,并且多做,就比别人进步要快,这个阶段就看谁努力。
第三阶段,步入高级的阶段,一般在3-5年左右。这个阶段就没那么容易了,不再是你傻傻的坚持,闭着眼努力就能有提高的了。这个阶段就需要方法了,你会发现,这个阶段你再怎么努力,很可能对自己的提升都不是那么大了,这时候,你得清醒的认识到自己的短板,有针对性的去学习。你是对计算机基础知识缺乏,还是对算法、数据结构不足,还是对设计、网络、架构等方面的缺乏等,你需要针对自己的短板,去专门做系统的学习补充,如果你不能够有效的认清自己的话,那么你的努力,只能是一种无用功。
第四阶段,你职业规划的选择阶段,一般在5年之后。如果你工作5年左右了,你还只闷头做自己的工作,写自己的代码,从来不去思考未来的路你到底该怎么走,那么之后你一定会感觉到力不从心,而且很有危机感。工作之余,你该深入思考下,你到底要往哪个方向去发展,是在技术方向深入研究,往架构师、技术专家方向走,还是你自己对产品、对管理更有潜力。这个阶段,最好你能知道自己的兴趣所在,因为我一直认为,做的事情,同时又是自己感兴趣的,那么你会比别人进步更快,更投入,即使你不确定哪个方向更适合你,你都该抓住一切机会多去尝试下,很多时候你不清楚自己的定位,很大原因是因为你没有多尝试,兴趣与潜力很可能是在你不经意的一次尝试之后产生的。
不止编程,我认为每个职业都差不多会经历以上四个阶段,当然顺利渡过这四个阶段之后,并不代表之后你的职业就顺风顺水,这后面还有机遇、市场等决定,但是不再是你能主观决定的了。有些人之所以优秀,总比别人进步的更快,是因为这些人在自己所处的每个阶段都更快人一步,比如有的人刚入行的时候,不仅更能坚持,还比别人更努力,那比别人就很快进入第二个阶段。比如有的人工作2年左右,除了努力之外,还能深入思考,知道自己的短板在哪里,工作之余还会充分利用业余时间补充自己的短板。有的人工作3年之后很可能就找到自己的定位,考虑自己之后的职业规划,然后针对性的去学习发展。每个人,都应该追求在每个阶段比别人更快,但是前提是你得先意识到自己目前正处于哪个阶段,是闷头努力就能提高的阶段,还是需要有针对性的去学习补充的阶段。
职场也好,人生也罢,每个阶段都有一定的阻碍与瓶颈,如果你能够认清自己以及自己所处的阶段,有针对性的去思考、充电,只有在对的方向上比别人更努力,你才会比别人更优秀,也拥有比别人更多的机会,结果往往也是马太效应,越努力,越幸运。