放肆的学编程语言吧,让10匹马都拉不动你,一篇我的学习方法论

I think everybody in this country should learn how to program a computer, should learn a computer language, because it teaches you how to think
——Steven Jobs

这篇文章写给每一个希望去学习编程的人,无论你的目的是为了当一个程序员改变世界,还是仅仅是一个工作之余陶冶情操的爱好。

不要怕

我的很多朋友都认为会编程的人很厉害,编程很难学,光是听这个名词就望而却步,其实不然,学编程的第一步是学编程语言,既然是语言,那么就和英语、法语、德语、俄语这些自然语言一样,但是难度绝对小于那些自然语言,如果你不相信,看完本文你就该相信了。

学前准备

学习一门编程语言之前需要有什么样的准备呢?数学!哈哈~ 不要怕,这里的数学指的不是线性代数、离散数学、微积分,当然你要是会这些东西那就太好了,不会这些没关系,你只需要会加、减、乘、除、取模运算,OK,你完全可以学编程了,而且绝对能学会,当然这个绝对是建立在你的恒心和毅力上的,最好有兴趣驱动,否者学什么都难。

如何学—宏观

首先你先必须知道什么是计算机,至少听说过CPU、内存、外存等,大概知道它们是什么东西,还要会打字。

如果你是新手,那么我推荐的第一门上手的编程语言它应该长这样:

1.有严格的数据类型判断

为什么要这样呢?因为有很多编程语言是弱类型的,意味着你声明变量时不需要告诉编译器它到底是什么类型,编译器自动来推导,这样一来对于新手来说就很难搞懂数据类型的概念,就容易出错和疑惑。

2.语法结构大众化

不要有太多花哨的语法,不然乱七八糟难以理解

3.抽象程度尽可能高

不要一上来就要求你懂硬件、操作系统等层面的知识,尽可能让你感觉到写程序就像写文章一样舒服

对于这样的编程语言我还是推荐 Java 和 C#,他们满足上面三个条件,Java的好处在于你可以写个程序在任意操作系统上运行,因为这个语言是跨平台的,C# 的好处是对于图形用户界面(GUI)的支持程度高于 Java,你可以写任意的窗口程序,一定比写命令行程序来的爽。总之无论你选择哪一个,都是不错的选择。

很多大学一开始都是学C语言,这导致很多人都被误导了,认为学计算机就得学C语言,当然C语言得会,但C语言和底层打交道很多,光是一个指针就足以让刚开始学习的朋友看的两眼一抹黑了,久而久之就坚持不下去了,不容易学好。我一开始学习编程就是从 Java 开始的,虽然我学完了 Java 甚至可以用 Java 写一些不大不小的东西了,我还是不太懂底层的东西,但当我意识到这一点时,我开始搜索一些偏向于底层的东西时,我不用花太多时间就能多少了解一些,比如 Java 的引用类型,原来就是类似于指针这样的概念,然后逐渐了解了内存的分配,什么是堆什么是栈,以及内存究竟是个什么玩意。这对我后来学 C 有很大的帮助,看到指针那一块的时候,基本没什么难理解的地方,只是遇到一些内存管理方面的东西时,稍微花点时间,因为在 Java 中你是不需要去关心内存上的事情的,有 GC 帮你,别疑惑GC是什么了,以后你就知道了。

综上,所以我觉得起步时学 Java 或者 C# 是不错的选择,当然还有其他类似的语言,因为我不太熟悉其他的,所以就不乱推荐了,我推荐的都是我学习过的语言,保证靠谱。

那么怎么来学习呢?很多人说看视频很LOW,对于新手来说,看书很难理解,看视频才是最好的方式,当然如果你是大学生,有这个课,千万别翘课,没这个课就去旁听,这样下课不懂还能问老师,虽然老师可能行色匆匆,不要怕,拦住他~~

看视频或者听课的好处在于,你是以听的方式来学习,而且还能看到老师现场敲代码,能最大可能保证你不会略过代码的任何一个细节,这个对于你的理解是有绝对性的帮助的,反之看书就不是那么回事了,首先你得要阅读,可能还有读不通读不懂的地方,实例代码也是直接就打印出来的,会导致很多细节你会不小心忽略掉,最重要的,就是当你遇到看不懂的地方时,你会发生两种情况,死命的要看懂或者是略过,无论你采用哪一种方式,你最终都会昏昏欲睡,然后合上书本出去嗨了,至于在哪里看视频,现在那么多慕课网站还怕找不到?

但是还是得买上一本书,当做上完课以后的参考,或者你整个课程结束以后再速看一边,这个时候大多数概念都差不多了解了,读不通读不懂的问题就少了,这个时候就是查漏补缺的时候了。

最后,不要去刷书本后面的题了,去做项目,随便找东西做,不用太大的项目,就想想自己有没有需要的软件,市场上没有或者收费价格太高的,自己写一个,相信你写完一个项目之后,你对整个编程语言的了解会大大提高,水平能上升一个层次。

微观

讲完了宏观的学习方法,再来讲讲微观的。

无论你选了上述的哪一个语言,你都应该重点了解以下几个内容:

1.基本数据类型

这是一个很基础的概念,不懂这些没法玩。

2.基本语法

基本的语法,包括怎么定义变量,循环语句,条件分支,方法/函数定义等,不懂这些也没法玩

3.面向对象

这是一种思想,你会花很长时间去理解它,适应它,在这之前你会认为传统的面向过程的编程方式是最好的方式,直到一个月后你会发现,卧槽,上个月我是SB吗??

4.该语言自带的数据结构

数组怎么用?集合怎么用?怎么遍历它们,了解这些很重要,它们的使用率几乎在120%以上。

暂时就想到这么多了,了解以上四个东西,之后你就平步青云了。

然后你可以在未来半年或者一年的时间里都用这个语言来做东西,学基于这个语言的技术,比如 Java 你可以开始去学 Java EE 、Struts2
Spring、Hibernate,学完这些,了解一些 HTML CSS 的知识,你就可以做动态网站了,然后看看 Android ,你就可以做移动开发了。一定要记住,多用这个编程语言写项目,越多越好。到了一定程度就可以深入这门语言,比如 Java 买本 《Java编程思想》来看看,了解一下 JVM ,等等。

之后,你可以考虑学其他语言了,C啊 Python啊 Swift啊,有了前面的基础,就学的很快了,这时候就不用看视频了,因为你会发现,看视频太慢了,根本不能自己把握时间,这时候买书或者直接看文档会来的更有效率。

最后

学习是没有止境的,希望从本文开始,能够帮助作为新手的你顺利入坑,我可能写的还没有很全面,尽管我尽可能的总结我几年学习下来的经验了,但总会有漏掉的地方,我想到新的东西我会第一时间更新文字,也欢迎各位大牛的补充和指点。

最后的最后,我最想说的是,学好一门语言,最重要的就是:做项目做项目 做项目 (国际惯例说三遍)

你可能感兴趣的:(放肆的学编程语言吧,让10匹马都拉不动你,一篇我的学习方法论)