计算机学院的学生该怎样提高自己的编程能力？
阿里的库森学长给你15点建议，能做到这些编程能力绝对提升，绝对是计算机专业的优秀学子： 0、学会使用Google搜索，放弃百度，你会发现Google会搜出更多有用的答案，而百度只能搜出csdn！可以使用Chrome浏览器的谷歌上网助手插件实现Google搜索。 1、学好计算机基础课，而且是去b站、中国大学Mooc、国外的coursera上学习。上课比较水的那些课，就不听了，想学好还是自学。 操作系统、计算机网络、数据结构与算法、计算机组成原理、数据库、编译原理这些课要学好，推荐看一些硬核课程 比如数据结构和算法看伯克利cs61b，计算机网络看斯坦福 CS144，操作系统看MIT 6.S081 2、参加计算机类竞赛！！！参加ACM、蓝桥杯、Kaggle、华为杯、机器人大赛等，竞赛太重要了，竞赛不仅能得到荣誉，带来奖金，还能为保研、考研加分。 3、看国外教材，如《C语言程序设计：现代方法》、《算法4》，抛去谭浩强、严蔚敏这些书籍，你会发现国外教材几页就能讲清楚的知识点，国内的教材绕来绕去的，净是文字概念游戏。 分享给大家一个计算机经典电子书仓库，以上主流书籍都在里面： 4、多刷leetcode，多刷leetcode，多刷leetcode，重要的事情说三遍，将来不管是去外企还是国内大厂，算法必考，尤其想去外企的，基本每场笔试都要来2、3道算法题。 5、尽可能保持高GPA，能保研一定保研，不想读研的就趁早做好实习、找工作准备 6、编程语言不要纠结，python、c、c++、java、go不要纠结先学哪个，优秀的程序员是都会的，有时间可以都了解。建议python、c必须会，c++、java、go找一门作为主要语言去深入学习，去做项目、实战。 这里推荐给大家一个学习python编程的好软件，夜曲编程。很多小伙伴在想要学习Python时，会上b站,mooc等平台搜索python教学课程，b站的很多课程虽然很细致，但视频课程太冗⻓，400多集看到地⽼天荒，啥时候才能⼊⻔？ 夜曲编程就很友好了，从纯⼩⽩的⻆度出发，课程内容设计由浅⼊深，每天15-20分钟，利⽤碎⽚化时间即可完成学习。并且图文并茂没有视频课的枯燥乏味感，把Python最基本概念⽤⽣动的形容进⾏描述， 帮助0基础同学理解 。 此外，课程⼤纲安排的学习进度很科学，每天⼀课，⽤户跟着学即可，不⽤⾃⼰计划。还有每⽇学习提醒+学习奖励制度，防⽌半途⽽废。  感兴趣的同学点击下方卡片可以看看体验课，敲点简单的代码练练手，避免三分钟热度的情况。 7、一定要实习，一定要实习，一定要实习，重要的事情说三遍，尤其是本科要去工作的，不管是日常实习还是暑期实习，最好要参加，秋招时，有实习经历的简直加分太多了！！！。暑期实习是大三上就要准备了，可不是暑期才开始准备，暑期是去实习的！ 8、做计算机类的项目，创业项目也好，实验室项目也罢，Github项目也可以，尽可能折腾，积累经验，为将来找工作打好项目基础，还能锻炼实践能力。 9、强烈建议学习Linux、vim、git、ssh、shell等高效编程工具，这些学校里老师是不会讲的，但是恰恰在是程序员工作时的必备。 10、养成自学习惯，提高自学能力。强烈推荐学会markdown语法，markdown一种轻量级标记语言，是程序员写文档经常使用的，Github中代码介绍README的时候用的就是markdown，使用markdown写博客记录学习笔记也很方便。 11、学会逛Github，程序员最大的同性交友论坛！Github一个基于Git的源代码托管服务，上面有很多资源，想要什么轮子、工具Github都能找到。比如awesome系列是Github上一个超有名的Topic，本名：Awesome Lists，GitHub - sindresorhus/awesome: Awesome lists about all kinds of interesting topics 12、用Stack Overflow，搜索如何解决bug，用Medium看国外优质文章网站。优秀程序员的世界里，不仅有csdn、博客园、掘金等国内技术论坛，还应该会用英文搜索更多优秀资源。 13、学好英语，过掉四六级。英语真的很重要，学计算机要接触很多英文文档。 建议同学们大一就过四六级，刚高考完英语底子还在，大一是过四六级最容易的时候，越到后面忘的越多越难过。 14、能保研一定保研，现在考研太卷了。不想读研的就趁早做好实习、找工作的准备。 接下来库森学长分享给同学们一些优质的学习资源和公开课，助力同学们高效学习 1、计算机导论 youtube的这门计算机科学速成课，讲了计算机的方方面面，里里外外，涵盖的知识点非常的广，然而讲述的时间却不是很长，精简干练深入浅出。 C语言是一门面向过程的编译型语言。C语言是计算机产业的核心语言，操作系统、硬件驱动、关键组件、数据库等都离不开C语言；不学习C语言，就不能了解计算机底层。 推荐浙江大学翁凯老师的C语言程序设计 c语言的书籍和项目可以看这篇文章，很详细 视频方面推荐 浙江大学陈越老师的数据结构 老师讲得蛮接地气的，学完足以对付蓝桥杯。 数据结构，重在实践，多写代码，就懂了。 学习计算机组成原理，就会知道计算机是如何工作、如何协调运行的，计算机就不在是黑匣子。 计算机组成原理是计算机专业的核心主干课之一，也是学习计算机的其它后续课（如计算机系统结构、操作系统等）的重要的专业基础课。 视频推荐哈工大的：  国外视频推荐课程选择cs61c，课程总时长约25h 书籍就看唐朔飞老师就好了，这门课学起来还是比较难的。 国外书籍推荐：深入理解计算机系统 这门课重点讲授计算机系统的硬件组成，及其主要功能子系统的基本原理和逻辑设计，考研的必须要学好了。 学习操作系统目的并不是让你去编写自己的操作系统，而是更好地理解程序运行的平台，从而更好地编写程序。 视频推荐哈工大的： 每节课都带着回顾一下上一节内容；遇到问题先提出一个浅显直接的初级解法，然后在此基础逐渐优化。 国外视频推荐cmu 15-213 深入浅出理解计算机系统，课程总时长约32h，共计26个课时。  书籍推荐： 操作系统实战：阅读小型系统内核的代码是一个很不错的方法，可以巩固对操作系统的理解。 强烈推荐，xv6，这是由 MIT 的一门课程所维护的从 Unix V6 到 ANSI C 和 x86 的移植。 《操作系统导论》有一个附录，记载了一些 xv6 实验项目，有很多很棒的想法。 中科大郑老师的计算机网络公开课讲得很棒，最近在b站很热门： mooc是2020年秋科大自动化系本科课程录制版，可与中科大学生一起完成专业知识的学习。 在介绍计算机网络体系架构的基础上，自上而下、以互联网为例系统地阐述了网络体系结构各层次的主要服务、工作原理、常用技术和协议，包括应用层、传输层、网络层、数据链路层和物理层，最后是网络安全原理和协议。 国外视频，推荐计算机网络cs 144，课程总时长约25h，共计9个课时。 链接：Introduction to Computer Networking链接：  书籍：计算机网络 自顶向下 国外standford CS145/CS245/CS346逐步递进的学习 CS145：Introduction to Databases Course Information CS245：Principles of Data-Intensive Systems CS346：Database System Implementation 推荐苏黎世联邦理工2020年秋季计算机体系结构课程：  Onur Mutlu教授讲课，他是ACM和IEEE院士，获得了2019年的莫里斯·威尔克斯奖。 大致上相当于苏黎世联邦理工2020年春季课程或者是他之前在卡内基梅隆大学上过的18-447课程的进阶版。 不要白嫖哦，动动你的小手指，给库森学长点一个赞啦 送一句我喜欢的话，万丈高楼平地起，勿在浮沙筑高台，打好编程基础，加油共勉 我是@程序员库森 ，希望帮到你，欢迎关注。