1、计算机基础知识
1.计算机网络,操作系统,linux操作,c 语法,c语言基础(也要去学习,很多东西是连贯的)
2.推荐的书籍:图解http,tcp,图解c primer(要有一定的c语言基础)。
3.学习的时候,对每个知识点需要在理解的基础上进行记忆,保证每个知识点先从自己的脑子里过一遍。(具体的知识体系我下周回发)
2、数据结构和算法
数据结构的基础知识:
书本推荐:推荐去看清华大学出版的数据结构
大致的知识包括:栈,队列,树,二叉树,哈夫曼树,图。这些基础知识在以后的算法竞赛,互联网小中大厂的面试的时候都需要准备到的。
如何学习数据结构:先把理论知识记住之后,就去上机敲代码,对就是这么直接,尽量从零开始写,如果刚开始不能做到,那么也请不要直接把代码抄到编辑器里面去学习(ps:这种学习效果是最低效的,就类似于小学生在写语文作业,写完之后,写道后面的题目就忘了前面的题目了)。
算法:如果你是刚刚入门的:推荐去洛谷网站刷题,并且洛谷出版的书籍还是很适合我们这种初学者的。如果你有了一定的基础:那么推荐去看一本大头书 ,会进一步讲述一些有点而深奥的算法,很多都是和高中数学的组合论,大学数学的积分变化有联系,当然如果你要是一个ACM铜牌选手,大厂预备选手,可以随意。
3、ACM程序设计大赛:
codeforce,leetcode,牛客网,洛谷网
前面可以选择一个你觉得合适的,然后到了一定的境界,当然可以选择到其他的进阶的网站去刷对应的算法题。
至于学习的时间和规律性对于算法来说还是很重要的,所以请确保自己每天都能够抽出一时间来刷题,对就是刷题。
写题的过程:尽量要去独立思考,多多用自己的想法去实践,因为想法都是能够想出来的,那么如果你想出来,最终还能够得到实现,那么对你的从0到1的编程还是很有帮助的,虽然刚开始你可能觉得自己写不出来,即使写出来了之后,还会遇到超时的问题,我觉得你大可不必为此感到悲伤,因为这个过程中,你不是只解决了一个问题,而是解决了一类的问题。所以学习的旅途中我们切记一个急于求成的心态。
如果你是一个准大一的学生,想参加ACM算法设计大赛,斩获acm算法竞赛的金牌,银牌,那么我建议你需要做一个长久的规划因为这个比赛要想拿到大奖确实还是不是很容易的,这个需要准备大量的时间,我一个双非的学长参加这个比赛,真的是干头发,除了每日的训练3个小时之外,还需要再来年的比赛之间的一个暑假进行准备,暑假就得留在学校里面跟指导老师一起上课咯。
4、求职网:牛客网
有一说一,要不是没有牛客网,如果你是一个想着一毕业就去工作的话,那么在牛客上玩个1-2年就可以去工作了,哈哈哈。这里有各种学校的技术大牛,还包括一些在职场上的老司机,多看看他们的文章,有问题也可以来牛客网来提问,牛友们都会很积极热心的去回答。