计算机网络技术实用教程-计算机入门与提高实用教程系列
法则五:少看书,多动手
网上一个计算机大学生的博客文章这样写道:
我只是一个普通本科高校的计算机大学生,我不知道名校是怎么样的,所以我说的不一定是对的,但一定是我深刻体会到的。我知道如果我像身边很多同学、学长他们那样混迟早会完蛋。我开始想去拿奖,拿奖学金,希望以后能在简历上添上精彩的一笔。但我看到考试这么水,这奖学金有多少含金量?外面的大企业承认吗?
后来我在某乎上看到很多大佬的交流。我明白了,越好的企业,他们招聘人员的素质越好,他们不会随便歧视一个学历低的人,他们是要招到真正能做事的人,而不是简简单单学历高、分数高的人。招聘人员问的最多的问题是:你曾经做过什么项目?
是的,对于他们来说,他们要的是动手能力强的人。有的人即便每门课程的分数得了90+,但到了写代码、写文档就是一团糟,甚至毕业论文写得也是惨不忍睹,自己都不忍直视!
动手能力强和考试能力强是完全不一样的!我认为计算机专业大学生最重要的是动手能力,多敲代码、多做项目,这些项目远比奖学金重要。
上面的博客文章尽管是一个大学生的一家之言,但也揭示了计算机行业的一个普遍共识——“少看书,多动手”。
这里的“动手”指的是计算机学科中各种需要动手实践的技能要求,不仅仅包括编程语言学习和软件开发,也包括需求文档编写、测试用例编写、测试执行等动手操作和实践行为。计算机是一门应用实践的学科,提高技术水平也应该选择最贴近实践的方法——自己多多动手实践,或者多看多研究别人动手实践的东西。
市面上计算机类图书汗牛充栋,这个是经典、那个是指南、另一个又是必读,很容易误导初学者,真正值得细读的技术书非常少。事实上,对国内大量在一线的IT人员(比如软件开发人员、产品经理、需求分析师、测试工程师等等)来说,更多的时间都应该用在写代码、读代码、写文档、执行测试等动手操作上面。
一旦动手实践就会涉及到很多细节上的东西,比如变量和方法的命名、方法的功能设计、注释的写法、文档的格式、文档的内容逻辑、测试用例写法、测试执行过程、测试结果验证,等等,而这些具体内容在书里是很少会有的,就算是有相关的描述也比较笼统抽象,不会具体。所以,靠看书是学不好计算机技能的。
计算机大学生,如果有一天(特别是大三大四高年级阶段),你发现自己读书的时间多于动手解决技术问题的时间,你就要小心了,在成为优秀IT人员这条道路上,你已经走岔了。
很多计算机大学生觉得学习计算机技术可以多看点书,多学习一点基础理论知识,于是买书看书,或者到处搜集视频,这里看看,那里看看,学的一点都不系统,而且学了之后还是动不了手。现在很多计算机大学生还停留在“看书学技术”的层面,不愿意动手或者害怕动手,特别是一些计算机专业的女生,“不动手”现象更是严重。
实践证明,学习IT技术不是学习数理化,题看多了就会了,IT是一项动手能力很强的学科,我们学习的最终目的是可以解决实际中的问题。所以,对于初学者来说,以往埋头看书的方式在IT技术学习中可能并不适用,想要学好IT技术最主要的还是少看书,多动手,多练习。学习完一个新知识后,一定要知道如何在实际中去应用,不然这个知识点对于我们来说就是白学了,而且没有付诸实践的知识对初学者来说是很容易忘记的。另外,多动手还可以将理论转化成实践,更好地理解理论。
计算机技术(尤其是编程语言)是一门实践科学,学习过程需要更多地动手实践,没有捷径,只有不断地练习、做项目才能够有所收获。最好的方法就是不断地写代码、读代码、开发实践,大致可分成四个步骤:掌握理论基础、代码阅读、动手实践、参与或创建开源项目。
掌握理论基础:系统阅读学习一些书籍或网络教程中的技术理论基础。对于编程语言需要学习一些语法及关键字的用法,对于系统管理类知识则需要学习软件的部署及配置,命令的使用等。这些知识不需要死记硬背,只需要有所了解,在后续的实践过程中经常用到这些知识,印象自然会深刻很多。
代码阅读:可以在 GitHub 上寻找一些开源的小项目,阅读和分析这些小项目的代码。分析代码的时候再回头看看先前学过的理论,比如,哪些语法和关键字被应用,以及为什么这么用。对照阅读和分析代码的过程,也是深化理解和牢记理论知识的过程。
动手实践:阅读了一定的项目代码后,就可以开始动手写一些小程序。这些程序可以是基于现成的开源代码进行修改,也可以把几个现成的代码进行组合。目的不是求新,而是增强计算机语言(技术)的熟练程度。当自己真正动手完成一个可以运行的程序(或系统)时,你的成就感就会大增,也会更有学习兴趣和动手实践解决问题的信心。
参与或创建开源项目:练习了几个项目后,你可以参与或者自己创建一些开源项目。这个阶段是一个很大的挑战,会有点痛苦,因为你要利用所学的技术和语言创新地解决真实的问题,需要思考消化先前的理论基础及项目经验,逐步学会灵活运用编程语言和技术实现自己的思维逻辑和创新目标。当然,就算不能自己创建开源项目,能够为开源项目贡献代码也是很不错的事情,既是个人技术水平的体现,也是一份公益事业。
如果学完了计算机本科,大学生还不会安装部署软硬件、不会编程设计、不会编写技术文档……尽管你拿到了毕业证和学位证,那也基本意味着“不合格”,并没有学好计算机专业知识。
对于计算机大学生来说, Hello World,仅仅是个开始——少看书,多动手,绝对是学习计算机技术的不二法则!
法则六:在问题中成长
社会上和大学校园内很多人认为,现在的年轻大学生没有什么能力。因为在这些人看来,现在的大学生没有好好学知识,也没有什么专业实践经验,还不能吃苦。那么,对于年轻的大学生来说计算机网络技术实用教程,如果想要快速的成长,需要经历怎么样的过程呢?
解决问题就是年轻人的一个最快的成长方式。可能有很多人觉得遇到的这个问题,是自己完全没有能力解决的。因为自己的经验有限,也没有什么特长,所以遇到事情之后,大家都会躲避。
事实上,想要让自己快速成长的话,就一定要尝试着解决这些问题。因为在解决问题的过程中,我们可能会感到痛苦;但是问题解决后,我们会觉得非常的有成就感,而且也会让自己的自信心增加。解决的问题越多,以后再遇到问题的时候,大家就不会再退缩了。
笔者在和很多计算机大学生交流的时候发现,他们动手实战能力不行的原因是由于不愿意动手,宁愿看书;而不愿意动手的原因又是由于害怕动手过程中会遇到各种问题。殊不知,遇到问题、解决问题才是计算机大学生锻炼和提升“实战能力”的最快方式。
所以,想“锻炼实战”的计算机大学生一定要及早开始动手实战,多多动手实战,在不断地解决问题中快速成长。这里谈到的“在问题中成长”特指的是计算机大学生在动手实践过程中碰到和解决专业技术问题。当然,推而广之计算机网络技术实用教程,生活或人生中的问题同样也能让一个人成长!
问题的实质并非在于艰难的处境本身,而是你看待问题的方式。很多计算机大学生在动手实践中遇到问题,容易被问题困住,从而丧失了行动能力,就不敢再继续动手了,更怕遇到更复杂更麻烦的问题。然而,如果能够在很短的时间里摆脱遇到困难的失落,他们便能将失落转化成为兴致。他们会立即情绪高涨,积极寻找解决问题的方法。一旦解决问题后,他们也能发现问题中实际上蕴含着新的可能性和机遇,每一个困难都能让你的能力增强,让你成长。
每一个问题或困难之后都隐藏着一个“金矿”,但是许多人眼睛只盯着问题或困难,尽量想避开这些问题或困难,所以永远发现不了“金矿”。
所以,对于想锻炼和提升“实战能力”的计算机大学生来说,多动手实践,碰到更多问题,解决更多问题,你的实战能力一定会提升得更快,变得更厉害的。