真正“自学”入门编程/程序员是一种怎样的体验?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jnshu_it/article/details/83036744

当年没考上大学,读了自考。
从那以后就开始了自学生涯,第一年还乖乖的去听课,第二年就完全放弃课堂了。

后来考本,读研,中间穿插学点通信,画图什么的,全部自己来。

仔细想想,读研的时候第一年是老师讲课,只要老师讲课,我都听不进去。。。。

高中大概就有这种情况了,最喜欢的就是老师讲课45分钟,我拿出来10分钟左右看他讲的内容。其它时间就是思考人生。

然后果断落榜了哈哈。

但研二的时候,从写论文开始,对自学能力的培养已经初具雏形了。

那时候导师不会教你,第一,给了十几个方向,你自己去选一个。第二,没了。

扫描二维码关注公众号,回复: 3591061 查看本文章

师兄都没有。。。老师也不可能每一个方向都特别熟悉。

写论文的时候最大的感觉就是,nnd,给我留条路好不好,基本上全世界都在做科研,很多问题特别细致,根本找不到优化的空间,就算找到了,只要你认真找论文,总会发现,我靠,几年前他们就想过这种方案了,而且比你做的更好。

这种感觉真是生无可恋。

我选的是基于agent的软件工程,马丹到现在agent都没在工业领域做起来。

学校没项目,只能要求写论文,死要求是必须要核心期刊发表小论文。

我们是凑齐赶上一个国际会议,被SCI收录。

所以虽然读研,但基本都是自学。
而且,毕业之后我也是一行代码都不会写。

之后来北京找工作,就在自学这条路上一路狂奔了。

从JAVA语法开始,我用了一个月的时间学会了JAVA语法,spring,JSP,mysql,svn,tomcat,jdbc等等。

工作就是解决问题,百度,msn上请教别人,不敢问同事,周末看书,晚上会通宵赶进度。。。

然后换了个环境,学习memcache,maven,linux,webservice,设计模式等,也差不多花了四个月时间,现在想来,就是那个时候自己有了独立完成项目的能力。



 

跟着进了搜狐,整个人都飞速成长起来了,学习架构,缓存,高并发,分布式,消息队列,代码规范,开发流程,接口设计等等等等。

大概一年的时间,中间又申请做算法,自己花时间重新理解了一下分类聚类。

后来跑到了金融公司,学会了Erlang,comet,分词,词性标注,抓取,去重,索引,高亮,hadoop,Cassandra,es,drools,qpid等等,还会了点股票,期货,研报等等。嗯,还有angular,thrift,bootstrap,微信公众号开发等等。

大概5年的时间,好像学习进度放缓慢了。

跑出来之后似乎就没再学会多少技术上的事情了,只有支付,电子签章勉强算是新东西,说来惭愧,最近几年应该都没学过什么新技术了,主要精力转成了产品,运营和公司管理,以及各行各业的商业模式,说起来自从自己创办公司以来,我已经接触了100多家不同的创业团队了,也算是半个创业导师,我不能帮助别人怎么成功,但多数能帮助其它人不要死掉。

嗯,勉强懂点了Android和iOS。

所以,基本我全是自学,也习惯了这种学习方式。
仔细回顾一下,大概有以下几种学习途径。

第一,看书,博客,源码。
第二,身边大牛,群里大牛。
第三,项目

对的,完全不存在看视频这种东西,看过一点实在看不下去。

我身边的大神们也一样,他们的快速学习能力和阅读文档能力特别强。

在白社会的时候我们已经是微服务了,从框架选型到应用实践到改写源码定制组件,大神们只花了一个月时间。

在他们眼里一个新框架的学习靠看视频?不存在的。先弄明白应用场景,再去猜测实现方案,再看源码对比,更牛逼的事,几乎是看完源码就能动手去改他们觉得不爽,或者是要扩展的功能。

所谓厚积薄发,就是这样,你能感受到这就是在讨论解决问题的方案,不同人有不同理念,有不同的设计哲学,但编程这个世界对他们无秘密可言。

我只能做到可以快速理解思路,做不到看完源码立刻改进。曾经看过一个JAVA整站抓取的源码,名字都忘了,3天看下来看的要吐,随便改了点东西就交差了,完全受不了3级以上继承,根本没有接口这种设计理念。

大概是从那里有心理阴影了,对各种JAVA开源框架的精妙设计理念都一直不敢恭维。

干脆就不看了只懂懂设计思路是什么,可惜啊,自己当年还是没人指导,放到现在一定说,必须看,你觉得不爽你可以改啊。

但人年龄大了,主要精力真不在编程上了。


 

总结起来,写代码要培养好的主动学习能力,看视频的方式是我第一个强烈反对的。

我描述的几种方式都比视频高效。
很多人说我没基础 所有的人都是从零基础入门的啊。

所以差别不上有没有基础,而是有没有主动学习能力。

这种能力如果没有,你转到互联网第一很困难,第二成长不起来。

一个更新换代如此频繁的行业,怎么会容纳没有主动学习能力的人呢。


 

所以,尽快从要别人“教”,转换成自己去“学”。

专栏里整理了一部分,也简单说一下。

1.查找资料的能力,要不要培养?
2.阅读第三方文档的能力,要不要培养?
3.快速定位问题的能力,要不要培养?
4.解决问题的能力,要不要培养?
5.归纳总结的能力,要不要培养?
6.高效严谨的能力,要不要培养?


 

都知道编程要工作经验,某种程度上更看重这些能力。


 

最近一直在整理关于思维方式,学习方法的资料,试着去帮助学习慢的人改变学习方法和习惯,培养工程师思维。



嗯,还没太成体系,希望对大家有帮助,但是无论如何,请停下来,不要再看视频了~

猜你喜欢

转载自blog.csdn.net/jnshu_it/article/details/83036744