写在前面\
本文章刚在某乎发布24小时就获得1.6万阅读+1211收藏+213喜欢+187点赞,被某乎精选为全站热门内容。
全文共计2000+字,预计阅读5分钟。
昨天在某乎发布了一个回答:大一计算机专业学生如何在寒假充电?
没想到刚发出去24小时就突破了1万的阅读,并成为某乎的全站热门内容。
不得不说,现在的大学生对于时间的规划真的很有计划性,后浪们太可了,为你们点赞。
遥想我当年大一的寒假,一心只想着放假回家跟同学约哪里吃哪里玩,学习的事情根本没想过。
\
关于大一寒假的学习安排,说几点自己的建议:
如果大一上学期还没有学过C语言,当然是建议利用寒假的时间把C语言自学一下。
如果在学校已经开设了C语言学习的课程,那可以利用寒假的时间再把C语言夯实一下。
C语言学完之后需要把计算机基础补上,只有把基础打扎实,后面学任何一门语言都会更加的轻松。所以在大一的寒假建议可以提前学习下数据结构和算法,不着急上手C++/Java。
下面再来详细跟大家说一下C语言和数据结构应该怎么学?
Part 1:C语言应该如何学习?
其实关于C语言的学习,我在之前的文章里面也写得非常清楚,但是新来的小伙伴可能没看过,这里再跟大家讲一下(看过的就当复习了~)。
初学建议选C语言,为什么呢?
因为C语言是一门偏底层的语言,能够让你了解到程序的底层机制,而且很多高校的课程也是C语言,很多比赛如ACM也是推荐C/C++语言。C语言学好后再学其他语言则是比较容易的事情了。
学了C语言后一般还会学习一门其他语言,特别是面向对象语言,常见的有C++、Java。另外还有python,用来做数据处理非常方便。
初学C语言建议可从先从视频课程入手。
国内浙大翁凯老师的课,看过的都说好~:
浙大C语言-翁凯,分为两门:
C语言程序设计CAP(大学先修课):www.icourse163.org/course/ZJU-…
C语言程序设计进阶:www.icourse163.org/course/ZJU-…
第一门是面向高考结束想提前自学一点编程和大一新生的,叫大学先修课。虽然叫先修课,但是覆盖了C语言的主要知识点~
第二门是C语言程序设计进阶,会带你用C语言完成一些有趣的项目,比如一些图形界面小游戏。
先修课学习C语言语法基础,进阶课带你项目实操,搭配使用,你就是同学中的大神!
另外比较推荐的是国外杜克大学的C语言课程《Introductory C Programming》。
之前很多同学反馈这门课程资源找不到,这里给大家找好了cousera提供的课程,大家请自取:
C语言经典的书籍这里推荐3本:
第一本是 《C Primer Plus》 ,比较适合入门。内容循序渐进,书中的每一个知识点都有很多生动简单的示例,并给出了相应的运行结果。而且每章末设计了大量复习题和编程练习,帮助巩固所学知识和提高实际编程能力。
第二本是 《C程序设计语言》 ,豆瓣评分9.4分,适合有一点基础后再来看。
进阶推荐《C和指针》 。全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。书中给出了很多编程技巧和提示,每章后面有针对性很强的练习。
那么对C语言的学习要掌握到什么程度呢?
个人认为分为如下几方面:
考试:尽量得高分,一方面是促进对基础知识的理解,另一方面对奖学金或以后保研都有好处。
基础知识:重点知识点需要掌握扎实。
实践:计算机是一门实践性非常强的学科,必须加强实践,重点投入。学语言,一定要动手写代码,灵活运用,理论结合实践。
基础这块,核心的基础知识掌握并会初步运用,其实就可以开始做一些mini的项目了,在实践中学习更有体感,理解更深刻。
并不建议大家在理论基础上花太多时间,毕竟计算机是实践性强的学科,必须多动手,多实践。
那么,这里就给大家梳理总结了练手的一些小项目(很多帮大家把源码都找好了哈),难度从易到难都有,大家从中挑选几个就OK:
webbench:
一款linux下的网站性能压测工具,使用fork()模拟多个客户端同时访问我们设定的url,测试网站在压力下的性能:
C语言单元测试框架:
libev:开源事件驱动框架:
software.schmorp.de/pkg/libev.h…
CJson:json解码器,C文件只有500行。
EasyLogger-一款轻量级高性能的日志库:
小型Lisp解释器,不超过1000行代码:
PAT实验辅助平台:
cwebsocket:一款轻量级websocket库
在做项目的过程中,大家还要掌握良好的编码习惯,这里挑选了业内比较推崇的2个编码规范:
①华为C语言编码规范:
②Google C++ Stype:
Part 2:数据结构如何学习?
推荐这本书《 大话数据结构 》
这本书的优点在于语言比较接地气,不是那么枯燥无味,另外给出了大量图示,以及代码案例,方便理解。
如何加深理解???
建议把每种数据结构,通过可视化的方式展现,观察对其进行各种操作时发生的情况,加深理解。并动手进行实现。这里推荐几个非常棒的数据结构可视化网站:
(1)visualgo
涵盖了主流的数据结构,可视化展示,支持对其进行各种操作,以及提供了很多示例。
如二叉树,我们对其插入一个节点71,会自动进行匹配,将节点插入到正确的地方:
(2)Data Structure Visualizations
同样是涵盖了主流数据结构和算法,提供动态演示功能。
基本上搞定C语言和数据结构,寒假就差不多了。
感叹,后生可畏啊!
大家寒假在学习的同时,也别忘记多多陪陪父母和亲人,多去见见朋友,祝大家假期愉快~