编程新手入门:学习编程,我需要学习哪些课程?

作为一个编程新人,我要学哪些课程?我为什么要学习如高数、离散数学、线性代数、概率论等课程?

在我看来,本科课程更倾向于“面”教学,也就是教你一些课程,但不是很深入。而工作或研究生院,更倾向于“点”学习,运用知识更专业。本科毕业后,我不知道你是要找算法,或者是一个结构,或者是服务器的开发,甚至是硬件,所以学校需要你学习很多课程,至少有一个了解。对学生来说,一方面,他们可以选择他们感兴趣的点;一方面,它也可以启发未来的就业方向。所以即使你不需要去做,你也要学习它,而且要花很多时间。虽然您可能不会使用硬件,但是这些类也会使您更容易理解知识,比如CPU中的逻辑设备。

如果你在大一的时候有一个明确的方向,那就知道你将来想做什么,并且你可以优先考虑课程。实际上,大学教育普遍存在的问题,我认为我们学习一项技能,学习应该是一个项目驱动式学习,我们需要当事情没有去学习,而不是填鸭式所有都填进脑子,并在学习的过程中我们也不知道那是什么,然后使用,甚至不记得学过,查资料才会想起:原来这个东西我学过啊,但我没学好。大多数时候,学生的时间浪费可能归咎于老师和学校。他们一开始并没有给我们一个好的介绍。因此,经过大量的编程和项目实践,我认为更好的学习方法是改进项目驱动学习方法。那就是:

学习一段时间,做个小项目,将做项目遇到的问题记下来,针对性地学习相关知识,然后再实践,再学一段时间理论,让知识成网状发射状地变大。当然,项目驱动式学习有一个弊端,就是每次学习的知识都是项目所需要的,很零碎、不成体系,所以需要改良,即在采取项目驱动学习法的时候每天抽一段时间去完整地读一本书,或者一个相关问题的完整介绍,这样就很容易把一些知识成体系地串起来。这样一段时间下来,慢慢的,你就知道我们为什么要学那么多科目,学这些科目能干什么。

编程新手入门:学习编程,我需要学习哪些课程?

为了表达地更加形象,我就举一个小例子,是我最近遇到的。就从数据获取开始,我讲讲我这两个月做了什么东西。

当涉及到数据采集时,可能最容易想到的是爬虫,很多时候人们觉得爬虫很简单,为什么,因为有现成的框架,所以更容易获得少量的数据。但是,当需要爬行的数据很大时,使用现成的爬虫框架并不总是那么容易。此外,我需要获取大量的数据来源,而不是一次性的交易。所以我选择开发一个系统,即在现有框架下进行第二次开发,构建自己的爬虫系统,并植入一些算法。我在系统中添加了大量的中间件,到目前为止,它能够在10分钟内部署大量的数据。当然,这个过程也遇到了很多麻烦,我将简单的告诉你如何解决一个个问题。

我们的目的是为了获取数据,所以选择了爬虫:

1.爬虫可以理解为一个简单的过程:发送request,获取response,然后提取数据。这个过程会涉及到网络,是发送http还是https请求;目标网站是否需要登录,是post请求还是get请求,从这条线,衍生出了一条对网络进行学习的路径。

2.获取到网页之后,如果不是结构化的数据,可能返回的是一个html源代码,那么可能就需要了解dom,或者html页面解析的知识,甚至需要了解一下前端开发。

3.在抓取过程中,经常会遇到数据不能在过程中间进行抓取的情况。一般来说,IP被禁了,所以可以再次使用代理。代理是什么?HTTP: HTTPS代理可以混合吗?如何构建代理池?这里有很多东西需要学习。还可能对捕获的数据进行加密,需要由js解密,因此我们需要了解js以及如何使用爬虫来模拟浏览器。另外,如果抓取的频率是错误的,很多数据源会给你错误的数据,这是一些经验。

4.当解决上面的问题,我们能得到一些数据,但当数据很大,又是一个复杂的问题了,您可能需要使用一个分布式抓取,这时候你可能需要知道一下redis,当request产生的速度大于其消费的速度之后,你的任务队列可能会爆炸,这涉及到算法和数据结构的应用。

5.在数据量增加后,在文件中写入数据是不靠谱的,并且此时涉及到存储,到底是使用关系型数据库还是非关系型数据库呢,有什么区别?存储数据的重量如何?为什么插入操作变得越来越卡?电脑如何变得越来越热?什么是索引,什么时候该索引?还有一个数据库原理的知识。

6.当你遇到更难处理的网站时怎么办,比如验证码?事实上,对于许多纯数字和字母的验证码很容易解决,自己使用深度学习训练即可。在TensorFlow的演示中,您将为验证代码本身生成一个教程,然后在爬虫系统中建立一个中间件,这将解决这个问题。但是什么是深度学习呢?这里有一个学习深度学习的例子,我自己以前在学校自学了半年的机器学习,在一定的基础上,才能比较容易地上手TensorFlow框架。

以上6点简要说明了项目驱动学习的方式。事实上,你看到的每一个小圆圈都是一个大故事。现在我们所看到的只是冰山的一角,任何一个学习路径下都没完没了的,我们不能完全学习,但项目驱动学习的最大好处就是让你知道你应该去学习什么,而不是先学一大堆,再去做一个项目。

课工场成都基地是全国知名的IT专业学校,以就业为导向的一个经营模式。学员入学立即签订就业协议,确保学员毕业后有就业方向,同时很大程度解决了学员毕业后出去找工作碰壁的困扰。办学目标即是要培养高素质的IT人才。成立以来,一直踏实为学员服务,聚合教育资源,立志于做客户的终身教育规划顾问。


分享到:


相關文章: