作者: 阿正-web**: 博客园发布时间: 2013-01-14 11:39阅读: 4721 次推荐: 35 原文链接 [收藏]
前两天一兄弟给我打**,他的问题是自己想好好学习计算机编程技术,但是自己想学的东西太多,不知道从何学起,而且学到的东西也在工作中无法用到。这也是我曾经遇到过的问题,因为我也不是计算机专业出身,所以今天我就说一些我对这个问题的看法。
我认为认识一个事物,首先要去了解这个事物的整体,然后再去研究它的内理。就像我们认识一座大楼,我们第一步要先从大楼的四周去看这个大楼的结构,第二步去看这个大楼内部的整体的支撑骨架,第三步才是去研究每一层的结构和房间部署。假如我们首先就从其内部细节开始研究,由于我们对这个事物的整个结构没有了解,就很有可能在一个地方徘徊,可能就在大楼的一层中徘徊,根本就不知道楼上还有几层,也不知道这个大楼的整体骨架,犹如盲人摸象,只能知道其中一部分。
纵然最后认识清楚了,也需要耗费很多的时间,走很多弯路。
计算机专业的人从大学开始学习计算机相关知识,他们从《计算机原理》等这方面的书籍了解到最基础的计算机硬件知识,然后再从《计算机操作系统》 等书籍了解到整个操作系统的实现和编程环境,再进而通过《编译原理》《计算机网络》等书籍了解到计算机编程语言的原理和网络原理,再进而学习各种我们平时用到的c, c++,j**a等编程语言进行应用开发。他们将计算机基础、网络原理到计算机编程应用之间的整个知识体系都学习了一遍,所以他们在工作中遇到一些问题,就很容易解决,从而进步很快。还是拿大楼举例子吧,他们是从大楼开始建的时候,打地基开始学起一直到大楼完工,所以他们会对这整个大楼的结构都很了解,纵然有些细节方面不是很清楚,在需要的时候花一点时间去看一下就好了。
综上所述的结论是,计算机专业的人是将整个计算机相关专业的知识体系建立起来了,在这个基础上再去发展学习,无往而不利。就像金庸**中的张无忌练过九阳神功后再学其它武功后就能够迅速的学会。
非计算机专业的人通过自学或者社会上的一些培训机构学习到计算机编程这门技术,他们能通过编程语言开发出一些东西,能完成工作中的任务,当然一般都是工作在应用层。但是他们没有对计算机专业知识进行过系统性的学习,对基础知识缺乏了解,故在遇到一些非业务逻辑、牵扯到底层的一些东西的时候,他们就会茫然了。网络通信的过程,编译器的优化,数据结构的优化,多进程多线程编程等等,这些是他们所欠缺的。
就像是盖楼房,地基没有打好就在上面开始加砖盖墙,倒是必然的。这也是为什么有些非计算机专业的人很努力的去学习,学mysql,学php,但是进步依然缓慢的原因。因为对计算机专业知识这所大楼的整体结构、整体骨架没有了解,所以就找不到最合适的学习方法和学习路线,纵然付出很多时间,进步依然缓慢。
综上所述的结论是,非计算机专业的人对这个计算机专业的知识体系没有进行过系统的学习,对这个知识体系没有了解,所以不知道该从何学起,学习进步很慢。就像一个建一个楼房,地基没有打好,是没有办法垒高的,必然会倒。
下面说一下我的学习历程吧,刚开始工作一年的时候,总想着完成工作才是目标,所以在遇到问题的时候就不断的去问google去问再不行就得问别人,反正一切以解决问题完成工作为目的,在这个不断搜索不断询问的过程中,慢慢发现“地基”的概念,知道自己没有基础知识这块,对知识缺乏系统性的学习。在第二年的时候,开始买书去学习mysql数据库原理,去学linux操作系统,去学编译原理。这个学习过程很是坎坷和经常间断,这个过程就是我那个兄弟现在处于的一种情况,想学的东西很多,却不知从何学起,而且花了很长时间去学习编译原理,在工作中也不能用到,而且在学习过程中还有很多不知所云的东西,心情很是浮躁,一会学习j**ascript一会学习编译原理,一会学习linux操作系统。
这个过程持续了大概半年多,学习成果真的没有多少,但是最大的收获是我在这个工程中慢慢的对这个知识体系的认识慢慢清晰起来,慢慢的知道自己该学什么了,而且心情不是那么浮躁了,而且还明白了这个学习阶段并不是一个短期工程,需要一个长时间的积累。这样工作第二年的多半年就过去了。
然后,我开始计划用两年的时间将大学里计算机专业的学习书籍都看一遍,完成非专业向专业方向的转变,之所以用两年,是我在很好的完成我的工作之余才去干这件事,因为我觉得生存下去是最重要的,我不能不顾工作,而将大部分时间和经历都放在学习上,工作不好,就会被淘汰,生存就是问题。所以我会在我很好的完成工作之余才去做这件增强自己能力的事情。我从《计算机组成原理》开始了解计算机相关的硬件和最基础的知识,比如主板、cpu、cpu时间片、中断等知识;而后从《计算机网络》学习网络通信过程,比如tcp、upd、路由规则等网络知识;而后从《计算机操作系统》学习进程调度,文件系统等系统环境知识;而后从《linux操作系统》中学习linux操作与系统知识;而后从《编译原理》中学习编译器的相关知识,学习到编程语言的运行原理;而后从《c 程序设计》学习c语言知识,从《c++程序设计》中学习c++,学习c/c++语言是为了去学习一些用c/c++开发出的一些底层的软件,比如分析 nginx源码、php源码等;而后从《数据结构》学习数据结构,如链表、堆栈、hashtable等;而后从《设计模式》中学习到那些以前不知所云的工厂模式、装饰器模式等。
这些知识虽然不多,但是这些方面的知识是整个计算机专业知识体系里面的最重要的几部分。当学过这些知识后,我发现我对整个计算机专业相关的知识都清晰了很多,工作中对一些底层的东西也越来越清楚了。能够跟运维一起商量操作服务器的一些设置,因为我学过操作系统,能够跟php大牛去谈 php源码的一些东西,因为我学过c/c++,看过源码。
计划用两年,但其实一年都没用了,就完成了我的两年计划。其实有些事情你去做的时候比你去想的时候要简单,要快速。接下来,我会研究更多的开源东西,比如hadoop大数据处理,sphinx搜索引擎的内部实现,还有linux的源**去更深的了解系统知识。
回头想想, 其实学过的东西还是那么一点点,要学的东西还是那么多,不过,我现在是对计算机越来越感兴趣了,由之前的谋生手段到现在的爱好,我知道我要去学什么,我知道我要去干什么了。
所以我要对跟我一样不是专业出身的兄弟们说,每一份付出都是有收获的,收获迟早会来到你的面前。
书是人类进步的阶梯,扎扎实实的去学吧,一步一个脚印的去学,不要浮躁,不要急功近利,慢慢的你就会发现自己在不断的蜕变,可能用不了多长时间,你就是一个专业的人了。
其他书籍:《把时间当做朋友》《暗时间》《人性的弱点》《四书道贯》
专业书籍:《计算机组成原理》《数据结构-使用c语言》《现代操作系统》《深入理解计算机系统》《计算机网络》《编译原理》 《c程序设计》《c++程序设计》《设计模式》《程序员修炼之道》《鸟哥的linux私房菜》《设计模式》《精通linux c编程》《c primer plus》
非计算机专业计算机应用基础试题
非计算机专业计算机应用基础期末考试试题。2015年上学期。班级姓名学号。一 选择题 48 24 2 1 在某工作表中对a1单元格中的数据进行四舍五入保留一位小数,并将结果填入d2单元格中,应在d2单元格中输入下述哪个计算机公式 a round a1,1 b round a1,3 c int a1d ...
2019级计算机基础试题 非计算机专业 后
2011级 计算机应用基础 期末考试题。非计算机专业 2012年春期。满分 100分考试时间 90分钟 班级考号姓名成绩。一 填空题 2 10分 1 excel工作簿默认的扩展名是 xls 系统默认一个工作簿包含 3 张工作表,一个工作簿内最多可以有 255 个工作表。2 选定整行,可将光标移动到 ...
德鲁克 如何管理专业人员
文摘。提供新的 疯狂的想法。在鼓励殊需求 和宽容的激励下,有能力的员工。事方法。绝非做更多的事情。价值意识。他必须是专业人员,但也。自然会寻找更好和更有创意的做必须对企业有所贡献,而且知道。任何管理者的行为,可以概。括为两种,一是维持,二是增值。自己有何贡献 他必须享有专业人员和个维持只是按部就班的...