问题：﻿大学计算机系最努力的同学都是如何学习的？ 看看大神们是如何努力的
话题：﻿学习、编程、大学、编程学习、计算机专业
回答：﻿谢邀。接触电脑时间早，感兴趣，小时候跟着各种黑客杂志学了很多杂七杂八的东西，对计算机的感觉比较好。大学就没怎么努力过，只是跟着课堂走。工作之后，就是看视频、看书，然后练习。总体的学习思路就是先看视频学习基本的东西，掌握基础之后看书，然后做大量的练习。我习惯把读书的方式分为两种:精读和略读。精读就是根据书中的章节划分，先看一个章节，然后做练习，完全掌握一个章节后再开始下一个章节，全书读完后再整体读一遍，然后用最精炼的语言提炼出书中的核心要点，做成笔记。略读就是先大致看一遍，有个整体的印象，同时记下书中的要点和不懂的地方，然后逐一解决不懂的问题，精简提炼成笔记后开始根据全书做练习。精读适合理论性知识强、知识点集中的书。略读适合注重实用性、知识点分散的书。但是无论如何，学计算机，最需要的就是做练习。要在大量的练习和项目中，体会、领略原理性的知识。——————————————20190310分割线———————————————最近在转型我的技术栈，梳理和调整自己的知识结构，譬如剔除一些已经淘汰的东西如VB、Delphi……所以特别忙，忙到都没什么时间写chui知niu乎bi了，所以当我偶然间看到有人给我的这个回答评论时，我特别的诧异，我非常想对那些给我这个回答点过赞的人说一声——你可千万别信这个！因为当年我写这篇回答，纯粹就是闲着没事干，吹牛逼来着！故此次更新，为表歉意。特意奉上正儿八经的干货，以表真诚。0x00：大学计算机系的同学应该如何学习？类似的问题，在知乎上有很多，大多数人都会告诉你，大学期间一定要打好基础。但是怎样打好基础？相信有些同学就会惆怅，课堂上的知识繁荣难懂，考试全靠记忆，尤其是计组和编译原理，简直看一眼就要犯困！这里暂且先不讨论那些有的没的，我想让存在这些问题的同学，自问一下，当我们遇到了一个困难的问题时，应该如何解决？请回忆一下我们高中学到的数学知识，当我们遇到一个看似困难的问题时，应该采用怎样的思路来解决问题，譬如我问你：假如今天是星期天，那么10^100天后是星期几？相信这个问题对你来说会是小菜一碟，当然如果得不到答案，那么请按照以下思路来解题：1、首先从较小数依次开始试算。2、观察结果，找到规律。3、对余数进行分组，得到答案。好了，如果你具备了以上思路，那么你就具备了解决计算机问题的基本能力！这就是我要说的第一个重点：数学思维。相信无论你是专业做开发的程序员，还是偷鸡摸狗的脚本小子，当遇到问题时，第一反应都是：1、从引起问题的最小化条件开始，依次尝试解决问题。2、观察结果，找到规律。3、总结规律，解决问题。当然数学思维可不仅仅上述这一简单的例子，我只是想要告诉你，如果你对数学的认识还停留在“得到答案”上，那么最好从现在开始改变你的思维，把中心放在“如何寻找解决问题的思路”上。如果你自觉没有“灵光一闪”的花火，那么推荐给你第一本书，它有趣，简单，是帮助你梳理基础数学知识、构建基础数学思维的佳作：《程序员的数学1》好了，现在已经具备了解决问题的基本思路——把问题分解为一个个小问题，逐个解决小问题，最终解决问题——那么你现在的问题是“如何学习计算机课程？”我们利用同样的方法，把这个问题分解为一个个小问题，应该如何进行？首先“如何学习计算机课程？”这一说法过于笼统，因为我们还不知道“要学习什么”，又怎么能知道应该如何学习呢？这里请你查看一下你的课程表，画出大学期间你都要学习哪些课程，譬如：大一：C程序设计、Java程序设计、计算机组成原理、高等数学、数据结构、算法导论大二：离散数学、计算机网络、操作系统、数据库原理大三：计算机操作系统、编译原理、软件工程、线性代数大四：概率与数理统计、自算计系统结构、软件安全此时你会发现，学校给出的课程安排还不够清晰明了，这样就不利于我们继续分析问题，所以你还应该对这些课程安排进行进一步的详细划分（再划分课程的时候请同时思考以下，这种方法是不是和某些我们学过的数学知识比较相似？），譬如：数学：高等数学、离散数学、线性代数、概率与数理统计算法与数据结构：数据结构、算法导论编程语言：C程序设计、Java程序设计计算机科学基础：计算机组成原理、计算机网络、操作系统、数据库原理、计算机系统结构软件工程：软件工程、软件安全好了，这样梳理一遍，问题就会清楚很多了，此时我们就把问题“如何学好计算机课程”划分成了若干个小问题：如何学好数学？如何学好算法与数据结构？……但是这样看来，似乎还是太笼统，没关系，我们继续把这些问题依次划分为更小的问题，这里以数学来举例，我们把问题描述为如下形式：如何学好数学？={如何学好高等数学？如何学好离散数学？……}这样看来，问题就清晰了许多，但是还是过于笼统，没关系，我们继续依次划分问题，先从如何学好高等数学开始，请打开你的《高等数学》教材，观察目录，就可以把问题描述为如下形式：如何学好高等数学？={一、函数与极限1.1……1.2.......二、导数与分数2.1......……}看到这里，我就不再赘述了，我们可以按照以上思路，不断的对这些问题划分，知道我们可以解决问题为止，在这一不断的划分与解决问题的过程中，看似无法解决的“如何学好计算机课程”这一问题，就被我们“解决”掉了。0xFFFFFFFF：“小火慢炖法”——我的终极学习方法：根据前面的步骤，我们可以总结出一套高质量的学习方法：1、观察某一学科的知识结构划分，必要时进行再次的总结与划分。画出结构目录图。2、了解该组成高学科的所有知识结构，掌握该学科的核心知识点。记录笔记，只记忆我们已经理解的知识点。3、详细学习该学科的所有知识结构，掌握该学科的所有知识点。记录、整理笔记，只记忆我们已经理解的知识点。4、进一步学习该学科的知识点，掌握该学科的所有细节。记录、整理笔记。5、在前四步骤的每一步中，每当完成了一个最小知识点的学习，就及时的问自己：“我现在可以做什么？”以这样的方式进行总结与复习。还是按照惯例，下面以如何学习《计算机网络》为例来详细的说明学习的方法：1、我们先查看《计算机网络》这本教材，根据目录画出树形图，然后试读这本书，假如你发现读起来一头雾水，且老师讲的东西也难以理解的话，就打开百度，搜索关键字“什么是计算机网络视频教程”这样的关键字，找一部最简单、最基础的——重点是能让你看一眼就明白的——来学习，根据视频教程的内容，大略的记笔记，你要了解计算机网络是干吗用的，网络由哪些设备组成即可。这一步的要点是要你对《计算机网络》有一个大致的认识，将前面我们梳理出的树形图形成一种感性的认识。2、有了前面的知识，我们再次根据《计算机网络》这本教材学习，如果你还是一头雾水，就会想一下你小学时，是不是看过一些简单易懂的科普书？这些书总是图文并茂，用十分口语化的方法，通过讲故事的方式使你了解到了一些“高深”的科学尝试呢？那么我们就可以以此为突破点，寻找这类书籍进行学习，这里推荐你看《网络是怎样链接的》，我们根据这本书的内容记录笔记，注意，这里我们只记录我们可以理解的知识点。3、我们再次根据《计算机网络》这本书学习，此时就会发现一些之前无法理解的内容，变得简单起来了，可是如果此时还有较多的知识点无法掌握，我们就在退一步，寻找一本和《计算机网络》这本书类似的，但是没有那么晦涩拗口的书籍来学习，譬如《计算机网络自顶向下方法》就是不错的选择，我们学习这本书的内容，记录知识点的同时，对之前的笔记内容进行梳理。4、再次学习《计算机网络》这本书，此时就会发现，有了前面两本书的铺垫，《计算机网络》的内容我们就完全看懂啦，这时我们根据《计算机网络》这本书再次记录笔记，同时合并、梳理之前的笔记，至此你会惊奇的发现，你对计算机网络这门课的掌握和理解，已经超过了许多同学。5、只有学习还是不够的，我们还要及时的复习，但是如何高效的复习呢？这里我推荐你，每当你掌握了一个新知识点，就问自己“我现在可以通过已经学习到的知识做什么？”譬如你学习了TCP的三次握手，那么你是否会想到，如果一个程序，只是不断的向某台服务器发送SYN，而不继续进行后续的握手过程会怎样？那么你是否可以尝试编写这样功能的小程序呢？不要踌躇，马上去做！无论最后你的程序是否可以正常运行；又譬如，你学习了C语言的open函数，那么你是否会想到，可以利用这个open函数那些事情呢？——没关系，只要你想到了，就马上去做，不管结果如何。这就是以提出问题的主动方式，来替代等待问题的被动方式，用这样的方式进行复习，不仅可以更加高效、生动的复习你学过的知识点，还能让你有更加深入的理解。在不断的提问、尝试、解决问题中，你将会掌握学习的奥秘。