你问我答(32)——自学是艰苦的

今天打算写的内容算是老生常谈的话题,但是这个问题被问到的次数实在太多了,因此还是多说几句吧。这个问题非常简单:

“你们的《精通Javascript+jQuery》这本书和教程,针对一点程序基础都没有的人,适合吗?”

简短的回答:

对于Web开发而言,在这本书中,我们尽可能把核心的道理通过简单的、易于理解的小例子和说明,进行讲解;然后再反复使用一些重要的特性,并组成综合性的案例。这样,对于没有编写过程序的读者,也能够尽可能的理解。因此,即使您没有相关基础,只要能够塌下心来,按部就班地学习、实践,一定会有非常大的进步

1:如果您对自己的定位是“设计师”,那么把这本书的内容掌握好,道理基本理解,足可以帮您做出很多非常好的效果了,重点掌握jQeury的应用即可;

2:如果您对自己的定位是“开发人员”,那么一定要把核心的原理掌握透彻,要把综合的比较复杂的案例也吃透才可以,不但如此,希望真正掌握编程的奥妙,还有更多必须掌握的基础,一本书中的案例是无法让您真正理解软件开发的全貌的。当您写过5000行代码的时候,就会有一点心得了,写过50000行代码的时候,就会是一位比较成熟的软件开发人员了。

扩展的回答:

实际上任何工作都是很综合的,编程也是一样,不是单打一的技术就够了。这也就是为什么自学比较艰难,因为如果上大学的时候,有老师安排进度,同学讨论,很多问题自然而然就都过来了,一个学习计算机相关专业的大学本科毕业生,如果是认真一点的,大学期间两三万行代码的经验应该是有的,那么他再继续学习其他的东西就很容易了。

而如果要靠自学,就没有了这样一个按部就班的机会,所以会更困难一些。但是完全可以把自己学习其他专业的经验移植过来。根据我的经验,在判断一个东西你是否能学会的时候,应该考虑三点:

1:相关的基础知识如何? ——–>你的起点

2:自己的接受能力如何? ———>你进步的速度

3:对自己的毅力和坚持力有信心吗? ———->你的加速度,态度决定一切

“基础”和“接受能力”,二者是不同的,就好像通常成年人具备的知识肯定比小孩多,但是面对新的技术、比如摆弄电脑之类的,则往往好比不上小孩,这就是因为小孩的接受能力要更强。古话说“人过三十不学艺”,也是因为接受能力下降了。当然除了年龄之外,还有很多因素会影响一个人的接受力。

相关的基础,是大家通常意识得到的问题,比如你是上过什么学,学的什么专业等等;而接受能力则是大家可能未必注意到的问题。其实也很简单,你如果在学习其他东西的时候,如果都比周围的人都要快,那就说明你的学习能力、接受能力强一些。对于毅力、坚持力,则更是绝大多数人都不具备,而只有牛人(或者说是成功人士)才具备的素质。

如果你是一个绝对有毅力的人,无论什么基础,什么能力,学什么都难不倒你。但是遗憾的是,大多数普通人的毅力都不会太好,所以我们重点讨论前两点。可以大致分为4类:

1:有基础知识,又有强的接受能力的人;

2:没有基础知识,但是接受能力强的人;

3:有基础知识,但是接受能力不强的人;

4:没有基础知识,又没有接受能力的人。

这样区分的目的,主要是为了帮助自己找到定位,寻找适合自己的学习方法。如果我是老师,希望我的学生都是第一类,其次是第二类,希望不是第四类。

最后具体说说学习编程的问题。世界上的工作有很多种,每一类工作都以自己的一套基础知识和思想方法,你要想做这个工作,就必须把相关的基础和思想方法理解并掌握扎实。这个并没有捷径可走。

实际上计算机发明60多年来,它的原理和基本思想方法,并没有变化,即所谓“冯.诺依曼(学计算机不可不知的神)”体系结构。无论你要用什么语言编程,都是在“冯.诺依曼”这个地盘里打转而已。而现在大学计算机系和课程也都是围绕这个体系讲解。看起来是很抽象、枯燥,甚至和实际很遥远的东西,但是这些东西都是很非常非常有用的,因此,最重要的一点就是,重视基础。没有基础虽然可以做出一些花拳绣腿的东西,但是要想真正做好,那么该读的书就一定要读懂,该理解的道理就一定要理解透彻,该做的苦力就一定要做到

7,615


欢迎您发表留言

(须填写)
(须填写,不公开)
请注意:这里输入的HTML代码会被屏蔽,如果需要讨论复杂的具体代码问题,请到我们的论坛发贴,谢谢!

35条留言