有小伙伴跟我说,他想自学编程,从他的话里行间,我了解到他是零基础,想学Java,但是又不知道怎么学,打算自学又不知道从何学起,字里行间显露出无比的迷茫。
根据他自己介绍,他才21岁,我也没有问,他也没有透露他目前的职业状态,所以不知道他是否还是个学生。但是,他比较关心的还是入门时间的问题。
开始问我三个月能不能入门,我只是跟他说:“三个月想要快速入门有点难,如果没有任何基础的话,三个月时间可能去培训机构比较合适!”。
估计是比较失望,于是他又问:“不说快速入门吧,只想在一年之内能知晓一个大概!”。
紧接着,他让我给他推荐了几本Java的入门书籍,我也没有嫌麻烦,就给他找了两本,想让他以最小的成本去了解编程的难度他是否可以接受!
其实,很多想要学习编程的人都不知道学什么,从何学起,以及自学编程到底有没有公司要。
自学编程有没有公司愿意要?自学编程只要学得不错,是会有公司愿意要的。但是,这种公司一般都是体量比较小一些的公司,大公司更愿意去招一些计算机专业科班出身的编程底子比较好一些的程序员!
如果您是自学的,去小公司虽然可能会要您,但是依然会存在一些问题,如果您接受了没什么问题!
首先,很多小公司程序员的工作内容都比较简单,因此,他们会出比较低的薪资去招一些有编程基础的计算机专业毕业的应届生或者培训机构出来的学员。这样的公司一般出得薪水都不会太高,基本上最开始的薪资也就仅仅超过当地最低工资水平而已。
另外,往往这样对的公司在研发体系上多多少少都会存在一些问题,为了最大利用每一位员工,但您又暂时无法独当一面,可能会要求您去做一些跟编程无关的事情。比如去做测试、做运维甚至是做实施相关的工作。
这样的状态可能会在您接下来的两三年内一直持续下去,直到您的编程水平达到了公司的要求,这时候再跳槽就行了!
如果您接受在工作以后的两三年内,您得工作是这种状况,那么也是可以的!
但我见到过很多人会在工作中迷失自己,慢慢地也不坚持一定要做一个程序员了!比如一些人可能就慢慢地往运维、实施方向发展。
自学编程学什么好?上面说的小伙伴,他想自学Java,我虽然没有劝他学别的,但是我认为自学编程如果学Java的话,可能会比较难!
编程语言分“大语种”和“小语种”,像Java这种编程语言就归类于“大语种”行列。而“小语种”则是在特定场景下使用的编程语言,核心还是由“大语种”驱动的。因为我这里是写给一些不懂编程的人看的,所以我不会用一些比较专业的词汇来描述我的看法,还请见谅!
所谓“大语种”和“小语种”的区别就在复杂度和使用场景。顾名思义,两种类型的语言的区别就在于使用场景的大小。目前主流“大语种”包括Java、C#、C/C++,“小语种”我只推荐JavaScript!
像Java这种编程语言基本上能做得事情非常多,所以如果想要自学的话,我们自己就要先从很多种使用场景中将我们想要学习的基础内容单独摘出来,否则的话,就容易出现混乱,影响我们学习的方向。
Java能做的事情包括安卓前端、网站前后端、硬件服务等等,其实如果专门从一个方向去学还是挺容易的。可是,很多人自学不出来,原因就是他们在看书或者看教程资料的时候看得比较乱,可能上述三种都看了,因此无形之中给自己的学习增加了难度。
但是,从自学角度上来说,一个没有任何编程经验的人,是无法辨别哪些知识是应该自己吸收的,哪些是不应该自己吸收的!
所以,我不建议一些自学者去学“大语种”。
而“小语种”的应用场景则比较纯粹,比如网页前端相关的编程语言,如HTML、CSS和JavaScript,俗称“网页三剑客”。这三种编程语言分别叫作“标记性编程语言”和“解释性编程语言”。
“标记型编程语言”的表现就是一些我们日常浏览网页时看到的控件,比如说按钮。而Css则是控制这些控件的表现方式,如按钮的颜色、大小等等。而JavaScript则是一种“解释型编程语言”,它是用来控制一些控件或者整个网页的一些逻辑的。比如说按钮点击以后是什么效果、网页如何跳转等等。
“小语种”的好处就是它的基础内容基本上在短时间内就能学完,而常用的HTML标签(比如按钮)也就十几个而已,虽然不至于短时间内学精,可是入门足够了!
而且,一般来说,“小语种”的知识一般都是碎片化的,您今天如果想去学A内容,大多数情况下只需要去关心A内容就可以了!不会因为需要一些前置知识而扰乱我们的学习视线!
而像JavaScript,其实常用的编程语法也不会太多,只要熟悉了一些常用语法,基本上也能自己结合HTML、Css来写出自已的第一个程序。
所以,如果真的想自学编程,我建议从“小语种”开始学。利用“小语种”先快速入门,找到工作以后利用工作机会慢慢根据“小语种”来巩固编程知识,最后如果再来学习“大语种”会容易很多!
哪些人不适合学编程?与这个小伙伴差不多的是,在此之前,我的一位认识了很多年的女性朋友突然问我,她想学习编程,但是自学又觉得没有悟性,问我怎么看。
她和开始那位小伙伴不一样,她是家门口有个培训机构,她找我时,给我截了几张培训机构的培训内容,我一看内容立马就劝住她了!
一来,我这个朋友已经二十八岁了,以目前的年纪即使学出来了,找不找得到工作另说,她还能在这行干多久还是个问题!另外,那个培训机构培训的东西虽然和编程相关,但是基本上没什么用!
估计是我这位朋友觉得便宜,看我这么多年薪水一直不错,所以就想转行。自学了一段时间后,觉得还是报培训班比较好,但是我还是给她劝下来了。她也挺知劝,所以就放弃了这个念头!
我劝她放弃的原因很简单,就像上面说的,以她现在的年纪,不管是自学还是报培训机构,即使学出来了,出路都很小。
自学成材的概率有多大?虽然我前面说了,自学可以先从“小语种”开始学比较容易一些,但是我身边各种事实告诉我,自学成材的概率还是比较小的。
对于一般人而言,自学不成的原因并不是编程语言有多难学,而是因为很多人刚开始对于学习编程的热情很高,对于自学编程的难度比较模糊,所以抱着一腔热情去学。
但是学习过程中会遇到种种困难和打击,没有一颗恒心根本坚持不下来,于是有超过半数的人都在中途放弃了。剩下的那帮人有可能学得不错,但是学习方向偏了,也许学的东西压根就不是现在公司里面所需要的,因此而找不到工作。
所以,自学编程的话,成材率相对来说就比较低了!
总结我的建议是如果您想学习编程,自学虽然是一种途径,但是难度会比较大。我们可以在学习编程之前先从网上找一些免费的编程基础视频看一看,如果您能看懂再进行下一步。
我知道很多人想学习编程技术我是怎么说也拦不住的,但是,自学并不是唯一途径。条件允许的话,可以报一些编程相关的培训班试一试。但是,编程培训班往往费用比较高,一定要量力而行。
另外,选择语种的时候,如果本身没有太好的悟性,还是先从“小语种”开始学起,工作以后再慢慢学“大语种”。
如果您的年纪比较大,年龄越大学习的难度和成本越高,越难找工作,这里不建议您去学了!