非科班的同学们想要学习编程都给大家一些建议。首先就是选择一个方向,比如软件开发,那么你是更喜欢前端还是后端呢?如果是数据方向,你想做的是算法呢还是数据分析?又或者我想做测试等等。只有定准了方向,才能知道当下我应该学习什么。
编程的学习并不是单一的从语言开始的,语言和技术都是工具,如果不能让他有商业化价值就没有人去追捧和维护。
一、前置学习
有一些人会直接告诉你,编程你就从Python开始学习吧,这个简单。这是非常不负责任的话,我建议每一个不是科班的同学都从计算机基础知识开始学起。
不管你用什么编程语言入门,计算机基础都是前置内容。当有了一些基础之后,建议大家按照上述说的方向,选择所要学习的内容。
如果你选后端开发,建议以Java入门。
如果选择前端开发,建议以HTML入门。
如果选择软件测试,建议学习测试理论。
如果选择数据方向,建议学习Python。
非常自律可以合理安排自己时间的同学,找一些资料就可以开始自学了。当基础内容都掌握了之后,可以做项目,项目也掌握之后就学一下Github的教程,如何在GitHub自学好的开源内容也非常重要。
二、聊下培训的同学
很多人不解,说明明网上有大把的资料,为什么还有人花两万多去学习呢。
那为什么明明几百万的学区房还有家长非要挤破脑袋买呢?每个人都有自己的自主选择权,而且去培训真的是很大的勇气。需要脱产,需要花一大笔学费,还要有一段时间没有工资。所以都是要学编程的人,完全不要戾气那么重。
三、非科班的程序员缺乏什么技能?
在就业之前可能想着快速就业,所以学习的内容肯定是不够体系的。
数学、线性代数、算法、计算机体系结构(主要是底层以及基础系统、中间件开发方面重要),这一类内容都非常的枯燥无聊,但这也是非常重要的内容。
算法对于想要在计算机行业发展的同学,十分重要。另外就是不要被框架束缚了,很多人都以为一门编程语言熟练掌握外加几个热门框架就可以就业了,框架只是开发当中的工具,精髓在于代码思维。
如果可以建议大家去看框架的源码,理解底层原理。
至于计算机体系基础知识,这条路是没有捷径的,很多一工作了更觉得基础知识没有用也用不到了。但是如果你能意识到差距,看一看书,两年左右的时间完全可以追上科班学生。
在有了基础开始练习项目的时候,需要刻意的学习画出代码时序图和类结构图,设计好每一个接口。另外就是在项目进阶的时候注意你是否可以写出高内聚低的耦合代码?这甚至比代码量本身更重要。
最后就是计算机经典书籍,也就是那些被称为计算机界的圣经书籍非常的重要。不给大家举例具体是什么书了,书单非常多!如果可以没事看一看,不是那种略略刷过。对我们工作本身有非常大的帮助,算法导论这本书就曾经让我感叹代码可以这么美!