学计算机语言，是先一门语言学精通，还是学各种语言?
阿里老学长的血泪经验贴，看完你肯定会有所收获。 本人华科硕士毕业，在阿里巴巴工作多年后，依旧非常后悔自己没有利用好大学四年，如果时间能重来，下面这几点能力我肯定会重点培养。 为什么我一定要强调自学，核心在于2点： 不管是科班还是非科班，如果你认为学完学校的课程就能找到一份好工作，那你想的真的太简单了，等待你的可能是“毕业就失业”，不是我吓唬你，目前国内高校计算机教育普遍存在以下问题： ①教材质量差：基本都是学校自己编的，质量不敢恭维，这里强烈推荐一定要读经典书籍，不要在这些渣渣教材上浪费时间。 ②课程质量差，照本宣科：大量使用PPT而极少数会有粉笔板书，而且课程知识停留在十年前，和业界前沿技术脱轨严重。 ③实践太少或者深度不够：国内课程首先是对实践不够重视，实践在最终课程考核分数中的占比非常低；其次就是核方式存在很大的问题，很多居然以word文档的方式来提交C语言实验报告。 研究生复试会考查编程能力，也就是上机题。这就要求比较强的编程能力，而且不是靠突击就可以提升的。需要提前准备，积累。 ④思维陈旧，工具链落后：现在课堂上IDE还大量使用VC6.0，而在实际生产环境中要用到的一些工具，学校根本就不教。 再说一个真实案例，我本人在大学期间就没有这个觉悟，基本按部就班跟着学校课程上，最后发现自己啥也不会，无奈只能去考研。 好在现在的孩子都有些觉悟，会主动提出下面的问题，我也认真的解答了一下，感兴趣的可以围观： 另外也有很多小伙伴问我：到底需不需要报培训班？毕竟培训班的学费都是好几万，值不值？ 我个人的建议是：其实现在网上的学习资料非常多，你要想学的话，根本不缺课程，花几万块钱报个培训班其实也就是买个视频课。如果个人学习能力还不错，完全可以自学，即便是报培训班，也是你自己看视频自学。 学习资料是肯定不缺的，缺的是什么呢？？？ 体系化的学习路线和跟踪答疑，网上课程多的是，但是哪个课程比较好？应该先学什么？再学什么？哪些是重点？遇到问题没人解答才是痛点。这也是为什么越来越多的粉丝让我带着他学习，学长学姐的经验真的可以帮助少走弯路。 如果有需要详细的学习计划和1V1辅导的小伙伴也可以联系我，业余时间带带大家，精力有限，每月只收1个徒弟。 关于大学四年的自学规划，我之前写过一个2万+字的回答，可以直接戳下面的回答看，这里不再赘述： 这个行业发展太快，技术淘汰的速度也很快，3 年不学新东西就可能落伍了，工作之后发现自学能力更加重要了。 但是这里你一定要警惕自学陷进，而要掌握学习新知识的方法论，个人总结主要为以下几点： ①知道自己在学什么，明确自己的学习目标； ②建立自己的知识网络，比较简单的方法就是善用思维导图，把知识网络串起来； ③从大量信息中筛选有价值信息的能力，人的精力是有限的，我们不可能面面俱到，学习一定要学经典资料； ④实践推动学习。 打牢基础！打牢基础！重要的事情说三遍！ 基础非常重要，不管你以后从事什么方向，应用开发也好，大数据开发也要，客户端工程师也好，要想吃得开必须依赖这些基础课程：操作系统、组成原理、计算机网络、数据结构、算法、数据库。 几乎各个大厂面试前2轮面试都会重点关注基础，如果基础不扎实，那么就很难进入后面的面试，把大学一半的精力花在打基础上都是值得的。 计算机基础重点是6门课程： ①操作系统 进程、死锁、内存管理等等基础知识。 ②计算机组成原理 ③数据结构 典型的数据结构：数组、队列、栈、堆、树、哈希表、并查集、字典树，原理要知晓，并且要对于队列、堆、栈这种能手写代码自己实现。 ④算法 这几个典型的算法一定要能熟练掌握原理并能运用，举一反三。 ⑤计算机网络 书籍推荐《TCP/IP卷一》。 ⑥数据库 除了掌握基础的数据库知识，还需要对常见的SQL编写、索引优化熟悉。 这里推荐一本薄的书籍：《mysql必知必会》。这本书不厚，但是实操性强，非常推荐。 Talk is cheap, show me the code； 对于计算机专业来讲，实践是非常非常重要的。 那么有哪些实战的方式呢？ 1、参加比赛有含金量的比赛大概有如下几个： 2、实习实习是非常好的实践方式，一方面可以提前了解和感受互联网公司的环境、氛围，另一方面向各路大牛学习，获取一手的经验，还可以参与实际的项目。3、github开源项目如果没有实习，也可以通过参与实验室项目或者github上的开源项目。github上开源社区有完善的文档、协作机制，可以和很多人一起交流，开阔视野。 作为新手，下面这个回答你可能会需要： 4、刷题主要是锻炼数据结构和算法能力、提高思维能力。推荐用LeetCode或牛客。 5、顶尖公开课的project通常都非常有深度，有一步一步实现一个麻雀虽小五脏俱全能run起来的系统，如数据库或操作系统，或者一个tcp协议栈。 少看博客，多读书。 博客只能帮你找到学习思路，真正的知识储备建立在你阅读了多少经典书籍的基础之上。 相比于电子书，我本人更喜欢纸质的，一是尊重作者劳动成果，拒绝白嫖；二是阅读体验我自己觉得更好。 网上也有很多电子书，但是希望的大家不要放在网盘里落灰。有条件可以买书回来自己看，动力更足。 研究生读的一些书，老照片了，像素太低多包涵： 工作之后看的一些书，只是其中一部分： 再来唠叨2句，有些书籍最好不要买，比如21天精通XXX，完全就是割韭菜的。 学习计算机一定不要想着速成，没有什么捷径和超能力。要下苦功夫去啃那些经典书和源码，然后自己动手写，所有技术大佬都是一行行代码敲，一本本书啃出来的。 我在大学期间，为了把专业学好，看了大量经典的专业书籍，整理了这份计算机必读的高分经典书籍： 这份书单对于CS学习的同学帮助非常大且十分系统，这些书籍的电子版已经整理好了。 需要的直接戳这里领：计算机必看经典书籍（附pdf下载），请注意查收~ 因为我本人是Java工程师，关于Java从入门到进阶的经典书籍之前写过一个回答，已经获得2400+赞和收藏，想学Java的同学可以看看： 都醒醒，看完我的回答就去乖乖看书好嘛~ 经常逛一些比较不错的工具网站，比如google、Stack Overflow、coursera、github、知乎等。 多关注一些你的领域的一些大牛在干嘛，多关注一些优质原创博主的博客，比如说你如果觉得我的回答写得还不错，可以关注一下我 @夏天 。 多关注业界前沿技术和动向趋势，了解最新技术解决了什么新问题，是否能够给自己的工作带来帮助。这里推荐几个优秀的前沿信息来源： 使用 Google 搜索而不是百度。 写博客对我们好处很多： 我在校招的时候就因为博客加分不少。我的技术博客原创博文已经很多了，虽然没有太多高深的东西，都是一些基础知识，但是大多是自己加以总结了的。大多数面试官都打开我的博客看了，评价还不错。 上学的时候主要在CSDN分享，那时候我就已经算是个大V啦，多年没维护，粉丝掉到了4000个。 还有粉丝催更的，现在主要在知乎做些分享。 以上就是我个人的一些经验分享，希望对你有帮助。 再补充一个大家最近问的很多的，关于计算机专业电脑选购的问题。 按照不同的预算给大家推荐了几款电脑，闭着眼睛买就行：