百科问答小站 logo
百科问答小站 font logo



计算机专业的学生怎样练习编程才能把编程学精通啊? 第1页

  

user avatar   qiongmanong 网友的相关建议: 
      

咦,竟然还有这么一个问题呀,我喜欢。

TLDR:编程就是靠练,无他。

如果用一个10的尺度来衡量的话,编程最难的在于0-1的突破,入门之后,从1-5就会比较顺畅,然后需要花一些功夫才能从5-8。从8-10的话,估计少说需要三五年,还是得很nb的人。

既然是计算机专业的学生,那接触编程就比自学容易太多了。学校肯定都有培养大纲,让咱们按部就班的学习计算机基础知识。肯定也会有编程实验课,这些编程实验课就能教一些基本的编程基础和技巧。

编程方面,最重要的就是六门课:

  1. 数据结构,
  2. 算法,
  3. 计算机操作系统,
  4. 计算机网络,
  5. 数据库系统。
  6. 外加计算机组成原理

上面这些课,一定要学好。

但学校教的东西一般都是general的知识,会让大家知道怎么去写if,else,各种循环,肯定也会有各种编程作业和小的项目,让大家继续提高。可惜真正想提高编程能力的人,光上面这些过程是远远不够的。

那需要怎么办呢?

无非其实就两点,看书,练习,最好是看书的同时把书上的内容转换成一行一行的代码。

比如说,咱们就拿算法红包书来说吧。

书在这里:

该书有配套的课程网站:

该网站就把书里面的知识点提炼出来,然后很多题目都有配套的Java代码,而且书里面前面的第一章还有Java基础。认真跟着这本书和这个网站把算法和数据结构的内容过一遍,那么你的编程基础至少是及格了。

如果想上算法课程的配套网课的,可以去YouTube:youtube.com/watch?

估计B站也有搬运,但我不怎么上B站,大家感兴趣的总结去找一找。

这个过程哪怕你只是跟着网站一点点去敲代码,也会有很大的提高的,这个过程千万别操之过急,正所谓基础不牢,地动山摇。一定要把基础打扎实。

我自己是获益匪浅。

下面这些课程都是美国大学的网课。现在网络资源特别多,大家一定要学好英语,多去跟着好的网课学,假以时日,肯定会提高的!不学好英语错过的好资源太多了,后期查阅资料也会不容易。

如果你还想学习其他的网络课程的话,我反正十二分强推UCB的CS61B。他们家的计算机系的CS61A,B,C课,简直制霸各种课程推荐列表。

  1. CS61B的官网在这里:inst.eecs.berkeley.edu/ 这门课以Java为主。

2. MIT的算法课,教程用的算法导论,也是强推的网课:youtube.com/watch? 这门算法则基本不涉及到语言层面,主要是算法层面,讲得很好。

3. 斯坦福2018 Winter CS106B: Programming Abstractions,虽然从名字不太能看出来,但其实是用C++讲数据结构,想用C++的小伙伴不容错过,我看了一半了,特别有帮助,尤其是对递归和回溯的讲解,简直醍醐灌顶。

现在因为不可知的原因,Youtube上面已经下架这门课程,但更方便的是,咱们可以在B站直接看:

bilibili.com/video/av21


接下来就可以去找项目来做,把学到的基础知识活用起来,上哪里去找项目呢?

其实YouTube,或是udemy上面的课程非常多,但可能国内的小伙伴还是更倾向于用中文的教程,那么大家可以去B站找相关的项目课程,上淘宝估计也能买到。

关键是要找一个风评还不错的课程,就从头到尾学一遍,千万别东学一点,西来一些的。这样的效果肯定不会太好。

我自己是跟着这个网站一步步提高Java编程能力的。下面这个网站是Java全栈,从Java的基础,前端三件套,以及Java的框架,应有尽有。最好的地方在于,用不同的技术栈实现天猫全栈。这样跟着一套学下来,技术方面就不会太差了。

如果你想专门学前端,可以去Udemy找几个网课跟着寻练。

咱们学习计算机知识,做项目,哪怕是学精通,最终也是为了找一份好的工作。

现如今,找个实习也不容易呀,全职就更难了。


我作为转码选手,对我帮助比较大的网站有这些:

  1. LeetCode。

这是现在刷题找工作最热门的网站了。

但LeetCode现在题目也太多了,一共1500+了,而且一直在增加!!!

全刷完没必要,也不高效。

关于怎么刷题,请看我的这个回答:


2. Educative


(如果你需要上面这些算法课程,那么你可以使用 awesome-developer 的折扣码获得网站所有课程的额外15%off!上面的折扣码针对单独购买所有课程有效。

如果想买订阅Subscriptions)的小伙伴,则可以用 ZHIHUEDU-10 (必须一模一样输入)的coupon code来获取额外九的优惠 按年和按月均适用

他家最最出名的还是这门Grokking the System Design Interview, 但凡提到准备系统设计,这门课都上入门必推的:

以及OOD: Grokking the Object Oriented Design Interview

这门机器学习面试指南是这个系列最新的课程:

目前市面上机器学习面试相关的课程比较少,这门课程应该非常值得!

还有这门算法课:

这门课程是一个算法总结提高的课程,它把算法面试中可能遇到的题分成了各种模式,每类题各个击破。


对算法最有帮助的课程对应下面这篇回答:


专门针对数据结构的课程则有:

C++:

JavaScript:

Java:

Python:

我上过其中的Java版本,课程是把数据结构里面的基础数据结构都用java实现了一遍,对于用java的同学特别有帮助,java的基础在刷题的过程中,还是要必须掌握的。

课程从复杂度开始讲起,Arrays,LinkedLists, Stacks/Queues, Graphs, Trees, Trie, Heaps, Hash Tables等数据结构,全都实现了一遍。而且还有配套的基础LeetCode题。是一个入门的很棒的教程。选择其他语言的话,内容应该也是差不多的。


搞完上面这些课程,就多去招聘网站看看企业的招聘要求是什么,并挑选好的公司投递简历,然后好好面试,准备收大offer,实习去大厂的梦想!




  

相关话题

  你们都是怎么学 Python 的? 
  求一个整数的所有素数因子的思路是什么? 
  生育多少个子女才能保证自己的所有染色体“几乎”都传递给下一代? 
  为什么国内创造不出很棒的编程语言? 
  为什么编程语言语法的设计不往缩小与自然语言的差别的方向发展,或者说在这个方向发展得这么慢呢? 
  这样一个数据库分析软件需难度高吗? 
  大学毕业后想进入腾讯公司工作,计算机专业目前应学什么高级语言? 
  显示器+网线能取代电脑吗? 
  路由跟踪为什么会有两个局域网? 
  面向对象编程的下一阶段是什么? 

前一个讨论
湖人2比1热火,是不是放水了?
下一个讨论
市盈率PE (TTM、LYR),市净率PB (LF) 分别是什么意思?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利