大学的时候就学的计算机,以下来自个人经验和实践,希望对题主有所帮助。
首先题主要想明白学计算机的目的:
- 掌握上层应用的开发,为了能够在IT公司找一份工作。是以就业为目的的自学。
- 以考试为目的的自学
- 为了解决工作中遇到的特定问题,提升专业技能,升职加薪。以个人的职业发展为目的。当然,题主可能还没到这些需求,不过不影响后面的讲述的哈。对于小白而言,首先要对计算机科学和计算机产业形成整体的认识。这方面可以读导论或者科普读物。建议先读吴军博士的《浪潮之巅》,这本书讲IT产业非常精彩。
紧接着,要做两件事:(1)掌握一门编程语言;(2)学好数学。
这两者是并行的。(1)掌握一门编程语言:
- 第一种:C是一种结构化的编程语言。如果不会C,后面的课程根本学不下去。
- 第二种:Java是一种典型的面向对象的语言。Java有活跃的社区和数之不尽的开源项目。
- 第三种:JavaScript 或者Python。这两个语言都是属于动态编程语言的范畴,应用极为广泛。JavaScript是全世界使用人数最多的一种语言,并且JS的各种框架层出不穷,进步飞快,业界的工作机会众多,对找工作是非常有帮助的。但实话实说,JS在计算机专业课程中用的并不多。Python却不同,它被国内外的很多大学选为新生的第一门语言。尤其是在这个大数据时代,Python真是火爆。
上面这四种语言,是学软件开发必须要掌握的,从任何一个语言开始学起都可以,建议题主从c开始学起。
(2)对于数学,我们必须掌握四门课程:
- 高等数学
- 离散数学
- 线性代数
- 概率论与数理统计
在掌握了编程语言,用编程语言写了一些应用程序之后,又学习了一些数学之后,你就可以进入计算机专业基础课程的学习。这些课程构成了计算机的核心课程群,我们通常把它称为「专业基础课」。专业基础课有十多门,其中最重要的是四门如下(这四个课程也是考研科目):
- 数据结构与算法
- 计算机组成原理
- 操作系统
- 计算机网络
除此之外,计算机基础课还包括:
*编译原理
- 面向对象的方法
- 关系数据库的理论
- 软件工程等等
这里我要强调的是:计算机专业基础课程的学习,和我们在工作中实用技术的学习,这两者不是相互矛盾的,而是相互促进的。比如计算机网络课程,对web开发框架有帮助;反过来,如果写了web框架,就能更深刻的理解计算机网络这门课程。
在完成专业基础课和实用技术的学习之后,就进入了一个新的自学阶段。这个阶段可以针对你感兴趣的特定领域深入钻研了。比如你对人工智能感兴趣,那可以学一下机器学习、spark等等。这个时候的学习目的非常明确,即:培养特定领域的专业技能,让你成为特定领域的专家。
我觉得零基础如果一本书都不看,那真是没法入门,因为连最基本的变量、语句、条件判断甚至指针都不知道怎么回事。
所以还是要看书的。
但是!当某人告诉你,某书是某领域最好的书籍,不要盲目相信,要经过自己亲自试验再下结论。通常情况下,一本别人眼中的好书,可能的确质量很高,但如果阅读它超过了你的能力,那对于你而言,它就不是一本好书,因为你不具备所需要的背景知识,和相关的技术经验。
第二个原则是,选择那些你已经具备读懂前提的书。阅读科普书籍的最主要目的是:了解特定领域的背景知识、明了这个领域的基本数据和概念,建立全局观。
上图是计算机网络的经典教材,我们拿这两本书来举例。
比如《计算机网络:系统方法》这本书,作者在前言中就很明确地说明,它是针对网络设计者写的。注意是网络设计者,不是网络应用开发者。这本书讲的是计算机网络的基本原理。介绍的是最初的设计者遇到了什么问题。
读第一遍时,第一章一定要认真阅读,包含了很多的术语。
读第二遍时,每章的开头很重要。
比如《计算机网络:系统方法》这本书,里面讲到的网络安全这一章,如果你当前还没有涉及到这一块儿,这一遍就可以跳过。但是有关PCP协议的内容,在实际开发中用的很多,就很重要,这些内容分布于书中的各个章节,这就需要你把它们抽取出来。
最后三点!!!
1、简单入门之后,还要学会利用互联网解决问题:
你在学习编程过程中必定遇到很多问题,甚至有时出现的bug让自己感到崩溃、无助,这时不要慌,这是很多初学者都是必定经历的过程,只要一个一个问题的解决了,积累经验,以后你才能解决实际开发中遇到的问题。在你遇到错误时,把你出现的错误百度一下,必定别人也遇到过,并有一堆的解决办法。你还可以到各大论坛寻求帮助,如国内的CSDN论坛,如果你英语阅读能力比较好,还可以到http://stackoverflow.com网站上寻求全球开发者的帮助。
2、多读别人的代码,借鉴别人的长处:
阅读别人的代码是自己提高编码能力的一个方法,你可以看到自己与大神的距离,然后努力朝着目标努力,一个合格的开发者,不仅能自己写代码,还要有阅读别人代码的能力。
3、多练习,孰能生巧:
学习中编程的过程中,看懂和会做完全是两回事,不要觉得自己看视频看懂了,或者看书看懂了就从来不去编码练习了。往往很多人看懂了,但是自己却敲出一堆的错误,这阶段你需要不断地练习。网上说的“7天掌握PHP”、“5节课掌握java”,等等这些,以一个普通初学者的角度来说绝对是不可能的,作为初学者,应该脚踏实地,每天坚持,积累上几万行代码,甚至几十万行代码,也许那样才是真正的入门。这世上没有不劳而获的,所有的收获,必定经历付出,知识也一样,加油!