感谢来自字节跳动的读者 Raven 的原创投稿,希望也能对大一大二的读者们或者自学的读者们有所启发。
一、为什么要提前学习?
强烈建议提前学习了解计算机学科知识!
计算机不同于传统学科(如理化生政史地等),这些学科大家都有一定的基础,先发优势不明显;
也不同于高精尖学科(如医学冶金材料环境等),这些学科大家基本都没有基础,完全同一起跑线。
随着我国经济社会的不断发展,越来越多的计算机专业大学生在步入大学校园前就接触到了计算机,答主在步入大学后也发现身边很多在大学前有一定基础甚至有一定开发经验的同学都学习的很顺利,积极参与各类工程项目,科研项目。有很多大一的学弟都比我这样即将步入大四的学长动手能力强。(自闭、爆哭)
甚至「少儿编程」都成为了最近的一个风口。三十年前小平爷爷一句「计算机普及要从娃娃抓起」在现如今的浮躁社会变成了现实。
https://baijiahao.baidu.com/s?id=1631551960752430210&wfr=spider&for=pc
现在距离开学还有两个月,虽然时间不多但还是建议充分利用,不寻求学到太多知识只是力求对计算机学科的轮廓有一个大概的掌握,面对入学后接踵而来的各种概念能有自己的思考。
另外如果你是大一入学了或者大一都快结束了才看到本文也不用太担心,因为目前大学本科第一年基本都是基础学科的学习,大二后才深入学习专业知识,所以建议大家在大一期间一定保持自己对计算机学科的热爱,充分利用课余时间。
你会发现一旦你比别人走得快,那么将走得越来越快。
即便你是大二才看到本文也不要担心,我差不多也算是大二下学期才慢慢学会自己去摸索~虽然很晚了但是只要能尽早找到感兴趣的方向做一些感兴趣的项目就会很棒
二、学什么?怎么学?从哪学?
关于这个假期学什么,我的建议是:
编程语言(中级语言C、高级语言 Python 或 Java)
计算机基础知识(计算机专业导论)
web 技术栈
常用开发工具
关注计算机行业
先学习编程语言并熟悉对应的开发工具,同时观看计算机专业导论 MOOC 视频
学习 web 技术栈,边学边进行实践项目
关注计算机行业则是作为一项长期的爱好来培养
(1)编程语言
国内计算机本科第一门专业课一定是一门编程语言,目前来看大部分学校还是先学 C 语言,少部分学校会先学习Python,我建议先学习 C 语言的基础知识,而后再学习 Python。
这样安排的想法是:各种编程语言都有通用的一部分知识,如:
数据类型
变量
常量
运算符
判断
循环
字符串
数组
函数
而 C 语言的这部分通用知识上手快易学习,也能为你入学后的学习打好基础。
学完了基础知识不建议继续学习C语言高级知识,因为如果缺少计算机基础知识的学习对那些高级的编程语言知识掌握也不到位(不能理解为什么编程语言是这样设计的);另外一个问题是学习了编程语言迟迟没有产出,不知道除了输出命令行还能干什么。你需要一些可视化的开发让你真真切切地感受到了自己开发的产物。
这个时候建议学习 Python,各大 Python 教程都有很大实际应用的例子,你能很快做出一些小应用,这对激发学习兴趣,保持学习动力是有极大帮助的。
C 语言教程 | 菜鸟教程 www.runoob.com
Python教程 www.liaoxuefeng.com
第二门语言如果不喜欢Python的话,Java也是一个非常棒的选择!这个也可以提前看一下你们学校的培养计划,如果是有Java必修课的话也可以学习Java。
(2)计算机基础知识
计算机基础知识的学习建议学习《计算机专业导论》
http://link.zhihu.com/?target=https%3A//www.icourse163.org/course/HIT-437006
https://mp.weixin.qq.com/s/1D0FemHYocKCDcMm3X2WGg
计算机专业导论可以帮助你对即将学习的学科有一个大致的了解,知识注重广度而非深度。
软件工程专业的同学也可以去看《软件工程导论》
https://www.icourse163.org/course/HIT-298007www.icourse163.org
(3)web技术栈
web技术栈是最容易上手的计算机工程技术,如果能在开学前完成一个简单web应用的开发,相信这将予以你足够的学习信心。记住,这部分一定要多动手实践,学习以开发一个小网站结束(数据库的使用为可选项)
另外,然后你不想做PC端的网页而想做手机移动端的应用的话,微信小程序是一个很好的选择!
你需要学习
基于python的web后端框架flask
https://www.w3cschool.cn/flask/
前端基础技术(HTML/CSS/JavaScript)
https://www.w3school.com.cn/
另外推荐一些你会遇到的知识学习教程
Linux基础知识(用于做web服务器)
http://linux.vbird.org/
云服务器入门
https://ravenxu.top/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%85%A5%E9%97%A8/
Git版本控制工具
https://www.liaoxuefeng.com/wiki/896043488029600
Vue.js(最容易上手的前端框架)
https://cn.vuejs.org/v2/guide/
RESTful API
https://crifan.github.io/http_restful_api/website/restful_rule/rule.html
(4)常用开发工具
C:CLion (学习C语言时用到)
Python: PyCharm、Anaconda (学习Python语言时用到)
Java:Intellij IDEA、Maven (学习Java语言时用到)
web: VSCode、Git、Postman、Chrome webtool (开发web项目时用到)
上面提到的CLion、PyCharm、Intellij IDEA都是JetBrains公司的IDE产品,该公司的产品是收费的,不过面向学生群体是免费的
https://sales.jetbrains.com/hc/zh-cn/articles/207154369-%E5%AD%A6%E7%94%9F%E6%8E%88%E6%9D%83%E7%94%B3%E8%AF%B7%E6%96%B9%E5%BC%8F
此文教大家如何申请学生授权
(5)关注计算机行业
计算机本科生应该对本行业动态有足够的了解,建议阅读以下内容
虎嗅网/虎嗅APP(侧重互联网等科技行业动态)
36氪网/36氪APP(与虎嗅同类型的产品(两个平台上的文章绝非今日头条上的那种营销号爽文,是有很高阅读价值的))
v2ex(一个有趣的程序猿论坛)
掘金(看看大神们在做什么)
知乎(对于我这种五线城市男青年,不失为一个开阔眼界的好选择)
阮一峰的网络日志(中文技术入门知识博客写的最好的人,对所有领域未知事物充满好奇心的终身学习者,阮一峰老师的博文可以把复杂难懂的知识点讲得很易懂,之后再深入学习就更容易上手;另外阮老师的《科技爱好者周刊》也是很值得一看)
关于怎么学?
学习过程要多思考,多总结,建议多写博客,博客内容可以是『学习记录+知识点总结+进一步思考』
另外要有探索精神,无论是学习还是开发,总会有很多IDEA突然闪现在脑海,不要犹豫,可以去尽情搜索
时间线
上面有提到大一很少涉及专业课知识,更多地在学高数、线性代数、大学英语等公共课知识,所以我们姑且把从高考志愿出炉的七月末到大一下学期开学前都认为是在预习计算机专业。
以上推荐的学习内容,学得越快越好,因为在学习过程中你能不断地发现新问题,知道自己应该去学什么新知识。
在开学前完成 编程语言入门 + 计算机基础知识
大一上学期完成 web技术栈 + 认真读一本某编程语言的书籍(外国译作最好)
大一下开学前的寒假完成 独立开发的一个项目 + 自己主动想学的知识
大一下学期开学后可以试着联系学校实验室老师。实验室项目有偏科研和偏工程两种,早些加入可以两种项目都有尝试也有利于尽早确定自己未来的目标(读研or工作)
另外如果想先人一步在大二开始上专业课前对计算机四大基础学科有所基础,也可以暂缓加入实验室的计划(大二上再申请),而是在大一下学期去深入学习计算机底层知识(四大学科)
计算机组成原理(比较抽象的一门课,相关的动手项目也比较少且抽象,建议多参考学习优秀的MOOC资源)
计算机网络(动手实现一个爬虫,可以做本校教务系统的爬虫,配合你的web知识做第三方教务查询系统)
操作系统(深入学习Linux相关知识,参照各种优秀的博客资源动手实现简单的Linux内核)
数据结构与算法(可以买一本考研王道数据结构书,通读一遍后到一些算法题网站去做做题(下面给出了链接))
另外记住这一阶段不要再满足于百度搜到的各种教程,教程只能解一时之渴,要有计划地阅读计算机专业书籍,系统地深入地学习知识!
为什么选择web作为入门领域?
长远来看,大家总会在某一个领域深入学习,这个领域可能是web开发,可能是后端架构,可能是算法工程师;当然也可能是计算机视觉,可能是NLP,可能是网络空间安全,可能是数据挖掘。只有在某一个领域学精才有可能有好的工作,有持续的科研产出。
各行各业都是高端人才供不应求,中端人才供需平衡,初级人才供大于求的
我们的职业发展目标就是成为领域专家,领域专家是创造者而非搬砖的码农,要不然你和培训班的同学又有什么区别呢?
web算是门槛很低很容易上手的一个领域,选择该领域作为对计算机软件行业的探索可以短时间内看到效果,且该过程涉及的计算机知识较广,有助于提高未来学习的信心。而后我们再去挑战难度更大更适合自己的领域!
三、题外话
1. 英语及数学
怎么学都不过分,对于目标比较远大的同学来说(我就不是这种),虽然我不是大佬,但是还是可以根据自己的一些经验提些建议
大一通过四六级是基本要求(不过有些学校可能不允许大一参加,没关系,尽快通过就行)
建议每天背单词(墨墨背单词 + 对应的单词书(根据自己的未来规划选择对应的单词书,托福/雅思,四六级,考研等等))
数学科目一定要拿高分(下面也有提到,数学科目学分高比重大,对四年总成绩影响极大(我就是因为考了好多门70多分的数学课导致目前处于保研边缘)。不过我觉得我认为我没考好其实不是没努力而是没找到正确的学习方法,或者说没能跟上老师的讲课思路(所以后面有建议去看考研数学视频,课程有趣不枯燥,老师总结的知识点比较凝练))
千万要重视 数学 和 英语 在计算机专业的重要性!即便你曾经数学或英语不好,但现在一切都来得及,找到正确的学习方法,遇到问题及时向老师同学或网络求助。
2. 计算机软件专业推荐参加的竞赛
专业类
ICPC国际大学生程序设计竞赛(ACM)
“挑战杯”全国大学生课外学术科技作品竞赛/“创青春”全国大学生创业计划大赛
“互联网+”中国大学生创新创业大赛
中国大学生计算机设计大赛
“英特尔杯”全国大学生软件创新大赛
RoboMaster机器人大赛
全国大学生智能汽车竞赛
全国大学生信息安全竞赛
“蓝桥杯”全国软件和信息技术专业人才大赛
高校微信小程序开发大赛
数学类
全国大学生数学建模竞赛
国际大学生数学建模竞赛(美赛)
全国大学生数学竞赛
英语类
“外研社杯”全国大学生英语辩论赛/全国大学生英语演讲比赛
全国大学生英语竞赛
3. 信息检索能力的重要性
大学很多事情都是靠自己来争取来得到的,信息检索能力尤为关键,分享几个我探索出来的比较好用的方法:
(1)QQ寻人:有时候我们经常想联系一下某位学长学姐咨询一些事情,这个时候如果你平常加了很多QQ群就很有帮助,你可以直接在QQ搜索栏搜索学长学姐的名字,相信你和TA一定会至少有一个共用的群。这个方法我几乎百试百灵,每次都能加到很nice的学长学姐。
(2)百度高级搜索
我们经常想搜索一下学校历年发布的某项通知,这个时候可以利用百度的站内搜索来完成
如下图所示,在搜索内容后加上 site:网站地址 就可以实现站内搜索,当然你也可以点击百度搜索那里的搜索工具来完成此操作。
迅速搜索到大量有价值的信息。
![img](https://i-blog.csdnimg.cn/blog_migrate/787214a4c922e0bd5e49482c711ea7f9.png)
![img](https://i-blog.csdnimg.cn/blog_migrate/b3b7cc10e5f30dec92c2f562ca8ed114.png)
(3)整理好你的收藏夹
下面提到过我的Chrome收藏夹(这里建议大家平常就用Chrome浏览器吧,甚至选课还有速度加成)存了五百多个网站链接,我自觉还是挺有用的,我分别按照以下几类进行了存储:
编程相关
- 论坛
博客
技术
工具
教程
其他
学习相关
- 竞赛
课程
美赛
论文
英语
学校相关
- 常用校内网站
信息量巨大的通知
生活
- 娱乐
办公
我私以为收藏夹还是很有帮助的。
(4)学会科学上网
此处省略500字...
4. 转专业
我认为对于想转入计算机专业的同学,大一一定要努力学习拿到转专业资格,另外也不用太担心关于大一学年少学了计算机知识课程的问题,很多学校大一学年基本上都在学公共课程,专业课涉及的很少。
另外我还想放出一张比较有代表性的表格,我统计了我们学校今年刚刚完成的2018级的转专业结果,大家可以一窥整个转专业的趋势,热门专业都是用脚投票投出来的。
![img](https://i-blog.csdnimg.cn/blog_migrate/fac06fd6770d9adc2f0af9777cd6695e.png)
![img](https://i-blog.csdnimg.cn/blog_migrate/978859035d87ec13b0d1e2b027830016.png)
大部分转专业的学霸选择了我校最强的自动化以及计算机、软件、机器人这样的热门专业,这些信息学科的热门程度在我校已经超过了另一热门领域(经济工商管理等)。
而像冶金、资土、机械、材料这些我校实力也很强的学院在转专业季节或许有些尴尬。
清华2019年转专业报名人数大于计划接收人数的专业有:
计算机科学与技术、计算机科学与技术(姚班)、信息管理与信息系统、软件工程、车辆工程(机械航空动力方向)、工业工程、建筑学
经济学、经济与金融、会计学、政治学经济学与哲学(新雅书院)、法学、心理学、汉语言文学、社会学
看专业名盲猜我们也知道当今的热门就是「信息技术 + 经济管理」
5. 人工智能
人工智能绝对是目前计算机行业最最热门的方向,不过我了解甚少,可以移步至下面问题的回答:
https://www.zhihu.com/question/21277368
6. Macbook Pro 值得入手吗?
对于计算机相关专业的你,绝对值得。
我是大三转投 MacOS 阵营的,真的是用上后就再也回不去了。
7. ACM
有做过一些入门题后来就放弃了,我对ACM的看法是有些人比如我应该就是智商不适合吧,如果觉得自己能力不够的话就不要浪费时间了,下面这个博文是当初一位学长分享给我们的,我认为还OK
https://blog.csdn.net/code4101/article/details/40748663blog.csdn.net
8. 实习
答主在大四十月份申请到了某大厂的实习,还顺道在此完成了毕业设计,对于读研的同学来说,因为研究生实验室很有可能不让实习,所以利用大四去实习是很好的选择。
实习信息可以直接关注各大厂招聘官网以及牛客网、BOSS直聘等渠道,在内推泛滥的年代,在牛客网上随便找找都能找到各家的内推码。
如果想直接就业的话当然是越早出来实习越好,最早的话可以在大三上学期结束的寒假就开始了,如果这个时候就能找到一份很不错的实习,证明你的实力和潜力是绝对很不错的!
9. 高质量代码
提前设计,精简为上,积累经验,学习他人
包含三个基础方面
利用版本控制工具,自动化部署与监控等工具管理项目
注重代码风格,遵守一定的规范
配置风格检查,单元测试,测试覆盖率等工具对项目质量做出硬性管理
四、网站推荐
我的 Chrome 收藏夹大概收藏了 500 多个网站链接,我选出我认为比较好的且比较通用的网站如下
(1)程序员必备
Github https://github.com/
hexo博客(为自己搭建一个博客) https://hexo.io/zh-cn/
stackoverflow(在线技术问答) http://stackoverflow.com/
segmentfault (同上,国内的) https://segmentfault.com/
Google https://www.google.com.hk
曾经一度以为别人鼓吹 Google 和 Stack Overflow 是在装B,不过在两者帮助我解决了一个又一个bug后才发现是自己太年轻。
(2)MOOC
网易云课堂(这个链接打开后是一个顶尖中文大学计算机专业课程体系) https://study.163.com/curricula/cs.htm
中国大学MOOC https://www.icourse163.org/
学堂在线(清华出品的MOOC) http://www.xuetangx.com/
Coursera(英文MOOC学习资源) https://www.coursera.org/
传智播客黑马程序员免费视频库(培训班风格的技术视频) http://yun.itheima.com/course
B站(收录了很多优秀资源,当遇到问题且看不太懂文字教程而是希望有视频的讲解形式时到B站搜搜总有意想不到的惊喜) https://www.bilibili.com/
YouTube(与B站类似,很多中英文免费教程,配合着Google实时翻译字幕还是可以食用的) https://www.youtube.com/?gl=HK
爱启航(考研视频) http://www.iqihang.com
对爱启航等考研视频做一个补充。大学期间数学科目的成绩对你的总体成绩影响很大,可以说高数线代概率论离散数学等数学科目的学习决定了你大学的成败(成绩排名、能否进入实验室,能否保研)。所以一定要万分重视数学科目的学习!而恰巧我发现考研数学的这些视频讲解得极其精炼,例如张宇的视频,完全可以同步利用这些视频来学习!!!
(3)在线编程练习(主要是算法题)
牛客网 https://www.nowcoder.com
leetcode https://leetcode-cn.com/
POJ http://poj.org/problemlist
实验楼 https://www.shiyanlou.com/
(4)小工具(总有一天这些工具会有用武之地)
代码分享(避免在QQ中直接发给别人代码可读性太差) http://paste.ubuntu.com/
在线工具 http://tool.oschina.net/
免费电子书 https://www.foxebook.net/
ProcessOn(在线作图) https://processon.com/
word代码高亮(用于使word报告更好看) http://pygments.org/
PDF工具 https://www.ilovepdf.com/
微软官方office模板 http://www.officeplus.cn/Template/Home.shtml
腾讯文档(越来越好用的协作软件) https://docs.qq.com
在线Linux虚拟机 https://www.tutorialspoint.com/unix_terminal_online.php
iconfont(免费图标站,用在自己的前端项目或者PPT等doc里)https://www.iconfont.cn/
Vue-element-admin(非常好用的后台前端解决方案,实验课再也不愁了)https://panjiachen.github.io/vue-element-admin-site/zh/guide/
(5)学术论文
知网 http://www.cnki.net/
Springer https://link.springer.com/
百度学术 http://xueshu.baidu.com/
Google学术 https://scholar.google.com.hk
中国计算机学会 https://www.ccf.org.cn/
Overleaf(在线LaTeX)https://cn.overleaf.com/
小木虫 http://muchong.com/bbs/
(6)大学生活
赛氪(竞赛活动信息大全) https://www.saikr.com/
支付宝大学生优惠(完成学生认证后享受海底捞6.9折,必胜客8折)学生会员卡
也可以打开手机支付宝,搜索「青春U卡」,进入后点击左上方「领优惠」,然后在下方「全部权益」的「吃货族」里找到好吃的~
(7)影音文学
毕竟是假期,还是高考结束后的悠长暑假,休息好才能更好地迎接开学~
影视
《硅谷》(爱到不行的美剧,HBO出品) http://v.qq.com/detail/i/ijilh0frmu96sbf.html?ptag=baidu.aladdin.tv
《社交网络》(非官方的Facebook诞生历史) https://v.youku.com/v_show/id_XMzA3OTYzMzc2.html?refer=seo_operation.liuxiao.liux_00003303_3000_Qzu6ve_19042900
《我是谁 没有绝对安全的系统》 http://v.qq.com/detail/m/mtkp03xoh95iijk.html?ptag=10520
《代码的奔腾》http://compaign.tudou.com/v/XMjEzODYwNjk1Ng==
图书
《乔布斯传》 https://book.douban.com/subject/6798611/
《浪潮之巅》 https://book.douban.com/subject/6709783/
《人月神话》(合作完成一次项目再读即可)https://book.douban.com/subject/2230248/
总而言之,我选择计算机专业是因为我认为她是最有可能实现我「改变世界」梦想的专业,虽然时至今日与梦想渐行渐远(自己太菜了hh),但还是很喜欢这个专业,至少未来能有不错的薪资~
祝愿各位能在这个暑假,乃至整个大一期间培养起自己对计算机的兴趣,利用课余时间自己做一些很酷的项目,尽快为自己的未来发展做以规划。
相信我,未来的四年一定会很美好!有缘再见~
- 完 -
推荐阅读
1
2
3
4
Java编程思想(最新版)随着 Java 8 的出现,这门语言在许多地方发生了翻天覆地的变化。最新版已经出来了,在新的版本中,代码的运用和实现上与以往不尽相同。本书可作为编程入门书籍,同时也适用于想要扩展知识的在职程序员。下载方式1.扫码下方二维码2.后台回复关键词:思想▲长按关注,回复:思想其他最后推荐一下我的视频号,我从18年开始做公众号和知乎,两年时间涨了10多万粉丝,累积变现超50万,社交电商兴起的时候有用了一个多月时间升级成为芬香电商导师。所以如果你有折腾副业的想法可以来视频号上找我,我把我的一点微不足道的经验分享给你,一起加油!