HDU 计算机科学讲义
序言
相信看到这个 wiki 的同学都对计算机专业有着或多或少的期待,或许有人因小时候某次电视上的黑客操作所振奋,或许有人是被全民编程的时代浪潮席卷而来,渴望着高薪的工作,或者又有人因为渴望着用编程改变世界。
然而理想很丰满,现实很骨感!
我们会面临着各种各样的问题:编程从哪里学起?如何高效利用大学时间?如何平衡绩点与项目经验?如何正确安排学习配比?有没有人带带弟弟?如何问大佬问题得到回复的概率更高?
我们会被信息洪流所淹没:C 语言、Go、Java、Python;人工智能、机器学习、Pytorch、tensorflow;数据库、操作系统、计算机网络;Linux、Git。哪个应该马上学,哪个应该多学,哪个只要会用就行?
我们面临各种各样的抉择:搞开发还是搞科研,毕业直接工作还是考研?搞开发的话去做前端还是后端,哪里去找项目?搞研究的话怎么去联系实验室,又如何入门人工智能?要不要去参加竞赛,有哪些竞赛,如何挑选队友?
学长学姐们深知其中痛楚,在我们踩了一个个坑后,我们决定:
出一份计算机科学领域的讲义,一起做大家的领路人。
救赎之路?
大家学的第一门编程语言将是 C 语言,发明于 1969 年至 1973 年间;互联网目前最流行的后端语言是 Java,发明于 1995 年;甚至互联网,也始于 1969 年;著名的 TCP/IP 协议,诞生于 1983 年,这些都会是我们计算机教授的重点内容。我们在《计算机组成原理》中学的是比自己爷爷奶奶年龄还大的冯・诺伊曼体系结构,我们课本中的知识乍一看都是硬核的、甚至有些过时的内容。
而近些年的发展,大家有目共睹。2008 年,申奥成功,我清晰地记得,大家都还在用诺基亚和 2G 网络。短短 15 年,智能机、5G 甚至 5.5G 的出现都彰显互联网的发展超出了大家的想象。
前面说到互联网使用最广泛的语言之一是 Java,这也是学校会教的。但,基于这些之上建立起的一个个框架,迭代了一层又一层。常常会闹出这样的笑话,有的学生为了就业,在网上看几年前的编程视频,然后被身边的同学发现,这已经是两个时代前互联网所流行的技术了。
2023 年是计算机的新纪元。人工智能已经发展到了大家或多或少都有耳闻的 GPT。现在的 AI 远远超过了大伙现在的想象。
学校能教给大家经典,夯实计算机内功。而面临计算机日新月异的变化,我们又该何去何从?Linux、Git、机器学习、前后端、计算机组成原理、计算机网络,我们该如何学起?如何快速建立系统而正确的编程思维?
想必在这里,你或多或少都能得到自己的答案!
欢迎加群与学长交流!我们也可以针对你的喜好为你定制一个方案!
🤔
为什么我要花大量的时间与折磨受这样的训练?
因为你来大学的主要目的,就是进行学习,而学校的传授的内容往往是不能满足成为一个合格的 CSer 的全部需求的。
再在这里贴上我的偶像蒋老师和 etone 的一段话!
我们都是活生生的人, 从小就被不由自主地教导用最小的付出获得最大的得到, 经常会忘记我们究竟要的是什么。 我承认我完美主义, 但我想每个人心中都有那一份求知的渴望和对真理的向往, "大学" 的灵魂也就在于超越世俗, 超越时代的纯真和理想 —— 我们不是要讨好企业的毕业生, 而是要寻找改变世界的力量。 —— jyy
教育除了知识的记忆之外, 更本质的是能力的训练, 即所谓的 training。 而但凡 training 就必须克服一定的难度, 否则你就是在做重复劳动, 能力也不会有改变。 如果遇到难度就选择退缩, 或者让别人来替你克服本该由你自己克服的难度, 等于是自动放弃了获得 training 的机会, 而这其实是大学专业教育最宝贵的部分。 —— etone
学习原则
建议保持至少一半时间在实操,一半时间在学理论知识,比例未必正确的,但是强调实操和反馈的重要性,如果你上来就拿一本经典的花书看,只看理论或者上来就整一段开源代码,势必会陷入不同程度的盲目和困苦当中。
切记勿要过度深度遍历知识,知识无尽的,如果深度钻研下去,可能没有尽头,最重要的是框架,以及高频次用的知识。更为准确地说,是你要建立一个自己的知识体系,尝试抓住时代发展的脉络或者某一个知识点的延伸。如果你一个知识点无限迭代下去,可能长时间没有正反馈,一瞬间就放弃了。
对于学到的知识 一定要注重实践 不能只学习理论知识。
例如学习 Pytorch,应该尽快理解 Pytorch 编程的框架,dataloder,model,train,test 文件。
例如看书过程中学习到 Linux 命令,不需要把整本 Liunx 书籍全部看完后才可使用。(边学边试,边用边学)
敢于否定,如果对于给出的学习资料看不懂,要尝试自己寻找学习资料,找到适合自己的那份学习资料。并且中文的社区包括我们,都可能会犯各种各样的错误。就连论文也不一定是对的。有些论文就是专门驳斥前人哪怕是巨佬的观点。我非常欢迎你提出异议。
如何获得帮助
在学习和实验的过程中, 你会遇到大量的问题。除了参考我们提供的教程外,你还需要大量自行搜索资料,但是我们参考的教程又多半是英文的或者说中文社区提供的帮助比较少,因此你需要学会对英文资料的查询并尝试适应他!
如果你心态炸了,欢迎联系学长学姐来给你做心理疏导~
如果你感觉实在不会,也欢迎加入我们的群里进行讨论交流。
如何适应查阅英文资料? 方法是尝试并坚持查阅英文资料。
许可协议
本作品采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆
许可协议进行许可。 要查看该许可协议, 可访问这里, 或者写信到 Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
© 2022. 此文章采用 CC BY-NC-SA 3.0 CN 许可授权。