以下资料仅供小范围学习交流使用,请勿广泛传播,请勿用作商业用途,以免涉及知识产权纠纷。

一、自己整理的资料:

http://pan.baidu.com/share/link?shareid=124211&uk=1426109645

这里面主要是计算机专业相关的书籍的电子档(pdf+djvu),以及少量他人整理的资料,点开链接可以看到目录结构(很多资料比如人工智能的相关资料基本上是英文版,一般文件名里面英文比较多的话可能会是英文版)。

无adobe、office等软件系列的使用教程,操作系统设置、清理、优化指南,电脑选购指南等非计算机专业的资料。

二、学校课程的课件:

(请私信)

---------------------------------

下面是我作为一个计算机专业的学生在专业课程学习上的一点感悟,纯属个人观点,请自行斟酌。

应该比较适合从未接触过信息竞赛,或者家里没有计算机背景的同学。

一般人对计算机专业的理解大致可以分为三个层次。

第一个层次,以为计算机专业就是配电脑、卖电脑、装系统、改注册表、会PS、会用Word等……

第二个层次,觉得计算机专业就是编程,写各种app……

第三个层次,对计算机专业(本科阶段)学习的内容有一定的了解,下面会详细介绍。

第三个层次是比较接近“计算机科学与技术”所研究的内容,但事实上本科阶段主要是专业基础的学习,很多更深层的东西还很少接触,所以说是“比较接近”。但是到了这一层,应该已经可以大致知道自己到底是学什么干什么的,不会对自己的未来太迷茫了……

整体认识

计算机科学与技术是一个涉及众多学科交叉的专业,随着学习和研究的深入你会接触到数学、高级程序设计语言、数据结构和算法设计、模拟电路、低级程序设计语言、数字逻辑、机器指令、微命令、自动控制原理、图形学、编译原理、操作系统原理、计算机体系结构、计算机网络等,可能会遇到物理学、生物学、心理学、伦理学等……

从上面的描述可以看出,

首先,我们需要一定的数理基础:在自动控制原理和图形学中,需要用到大量微积分、线性代数、复变函数的知识;在算法设计和编译原理中,需要用到很多离散数学的知识;如果你准备做计算机仿真,那么你就需要更全面的数学、物理知识(比如matlab、ansys)。

其次,我们需要少量的模拟电路的理论:但是这不是重点,我们不会经常以电阻和三极管为基本元件,大多数情况下,我们是在以数字逻辑为基础、基本逻辑门为最基础的设计单元进行电路设计的,但是了解逻辑门的电气特性和基本的实现原理还是有些必要,这时模电的知识会对我们有一定的帮助。

最后,我们有很广阔的发展空间,大家应该从新闻里面听说过“量子计算机”、“DNA计算”、“人工智能”等听起来很科幻的词,这些领域都已经超过了本科教学的范围(如果本科阶段有相关课程的话一般也只是科普程度),可能需要在更高层次的学习甚至研究中才能深入了解。

说到这里,大家应该可以看出我们和另外两个兄弟——“(光)电子科学与技术学院”和“软件工程学院”的区别了——

我们处在整个IT行业的中间层,下面由(光)电子学院为我们奠定最底层的基础,我们以逻辑门为基本单元设计组合逻辑、时序逻辑电路,设计指令系统、总线架构、处理机,设计低级语言(机器指令的助记符),设计操作系统,设计高级语言及其编译器,为应用程序开发人员提供系统接口和编译环境、为其他学科和其他非科研人员提供仿真系统、多媒体数据处理程序,而软件学院则利用我们提供的平台和接口进行更高层的开发,提升用户体验。

引用我们C语言老师的一个跟赛车有关的比喻,软件学院是开着车狂飙的赛车手,计算机学院是赛车整体造型、内部结构的设计者,而电子系就是各个细微零件设计者。

也就是说,作为一个“真正的计算机专业的学生”,我们应该设计CPU、设计主板、设计显卡,而不需要擅长帮别人挑选型号各式各样电脑配件;我们应该设计操作系统,而不仅仅是帮别人安装系统,解决系统设置的问题;我们应该设计dreamweaver、photoshop、word,而不仅仅是用dreamweaver做网页,用photoshop处理图片,用word打字排版;我们应该设计网络协议、设计同步、校验和加密机制,而不仅仅是上QQ、刷人人、逛论坛、看新闻、网购。

当然,并不是说你需要样样精通,在某一方面有所成就就已经很了不起了;也不是说计算机专业只有这些,毕竟,计算机并不等于我们平常口中的“电脑”,在后信息时代,计算机已经无处不在了。

课程学习

首先是数学,微积分之类的课程应该在大多数学校都是作为公共基础课一开始就上的。现在很多地方都在讲C语言无用、数学无用,如果你选择计算机专业只为开发app的话,这些观点可能还有点参考价值。但是你要知道,一个非计算机专业的人开发的app可能比你的开发成果要好上百倍,因为现在在遍地都是的资料和强大的IDE之下开发app真的很简单,可能你的和人家的功能基本一样,但是人家可能有更好点子,或者人家是搞艺术设计的,UI做得比你的好……所以,如果你不想加入那一抓一大把的开发应用程序开发者的行列的话,还是好好学一学学校安排给你的课程吧。你想一想,你平常玩的游戏,你不是一直在希望游戏能越做越真实吗?比如很多FPS和RTS以及一些赛车竞速类游戏,都需要一个更具真实感的物理特效引擎,这里面就会有大量的数理计算,而事实上,这些游戏画面的生成,更是需要大量的矩阵运算来进行仿射、投影变换。作为 计算 机专业的学生要是数学太差的话真心说不过去。

除了数学,在大学里接触的第一门专业课应该是C语言了。这是一门很重要的基础课,一定要学好(不要局限于课堂,而且时间精力足够的话可以和C++一起学)!对C语言有一定深度的思考与实践不仅会让你在学习其他语言时非常轻松(程序设计语言本质上都是相通的,哪怕是OO和PO之间),而且对后续的更加底层的课程有很大帮助。如果认真学了的话把学校的课程设计算进去大二结束之前至少应该写过15,000行代码(这是我当时的代码量,我们学院大一下学期才开C语言课程)。

你可以去参加一些能激发自己兴趣的比赛,比如现在经常有比赛以给游戏写AI为比赛内容,这或许会激起你对编程的兴趣。但是算法竞赛,除非是特别有天赋或者感兴趣,不太建议过早参加,这种情况下不如抓紧时间巩固其他专业课,毕竟使用算法和设计算法还是有区别,如果你没有经过相关的训练,你不一定比得赢高中生。

关于推荐的书籍,我表示我看得比较少(还好亲自动手写代码在一定程度上弥补了这方面的缺失)……就不在这里推荐了,大家可以自行谷歌百度,再去豆瓣上看看大家的评价。倒是学了C语言之后,你可以看看《深入理解计算机系统》,这是我们组成原理课程的老师推荐的书,从C语言讲起,对后续课程有一定帮助(中间可能会遇到一些看不懂的地方,不用着急,你会在之后的课程里面学到的)。

另外,如果觉得自己编程能力实在太渣,有兴趣的话可以在课外自己写一写下面三个简单的小程序:

1.超大数高精度运算;【实现超过long long类型、double类型不能表示数(比如10^10000级的数字)的基本运算,比如加减乘除、取模、GCD、LCM、阶乘,有能力还可以计算三角函数和对数(理解程序设计的基本概念:数据类型、条件分支、循环、函数调用、数组、指针、项目管理与多文件编译等)】

2.九宫格(数独)求解;【关于九宫格是什么请自行百度之,有能力还可以扩展成任意分组的N宫格,参考2012年蓝桥杯初赛第七题(进一步理解函数调用,理解递归和基本的算法)】

3.自然表达式求值。【考虑运算的优先级,对括号、逻辑表达式、算术表达式进行解析(理解基本的算法和数据结构,培养代码风格等编程素质)】

在编写这些程序的过程中你会遇到很多问题,虽然他们可能并不会影响到你对这三个小程序的编写,但是可以肯定的是,后续的专业课(比如汇编、数据结构、算法、编译原理等)会逐个解决你的问题的!这会使你学起来非常来劲,因为你会发现你知道你为什么要学习这些课程,知道学到的东西可以用来解决什么问题。

另外,这也会成为你编程能力成长的见证。多年之后重新打开这些工程,你会发现你已经有了如此巨大的进步,以至于你会在心里暗暗地“骂”到:“我当年真是太菜了,居然写出了这么烂的代码……”。顿时会很有成就感……

如前所述,熟练掌握了C语言之后,你应该会在数据结构、算法、汇编、面向对象程序设计等课程中感到比较轻松,而跟硬件相关的课程,需要比较坚实的数字逻辑基础,然后你会很惊奇地发现某些课程居然和文科课程有点像,比如组成原理和操作系统,感觉要记很多东西(但是你拿给文科生看他们不见得看的懂),不过你可以去详细了解一下计算机早期的发展历程和IT行业的最新动态,说不定会对这些课程产生比较强烈的兴趣。

好了,作为一个大三的学生,目前我也只上了这些课程,再往后讲就纯属忽悠了(虽然可能上面这些都是忽悠……),以后有时间在慢慢写吧……

最后,送大家一句话,对于别人的选择,如果他成功了不代表他的选择就是“最优解”,失败了也不能代表被他放弃了的选择不会导致更糟糕的结果,所以,分析别人的选择和成败在很大程度上是没有意义的。别人的经历仅供参考,关键还是要有主见,走自己的路。

计算机专业的学习资料与个人对本专业的理解相关推荐

  1. 【原】计算机Tools vs 学习资料

    今天,给大家推荐一些比较使用的软件,主要从免费和好用两个角度考虑. 首先推荐一个网址"http://tool.oschina.net/",上面有非常好用的小工具,可以极大的方便我们 ...

  2. 学计算机用什么教材,请问学习计算机软件都需要什么专业教材

    请问学习计算机软件都需要什么专业教材以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 请问学习计算机软件都需要什么专业教材 ...

  3. 凸显计算机学院特色的剧本,高职院校非计算机专业计算机课程的教学改进策略探析 - 计算机教育论文大全 - 小品台词 - 中国国际剧本网...

    论文摘要 简要阐述高职院校非计算机专业的计算机教学现状及存在的问题,在此基础上从"课程设置.教材编制和评价体系建构"等方面提出高职院校非计算机专业在计算机教学上的几点改进对策. 1 ...

  4. 计算机英语应用研究,计算机英语辅助学习系统的研究与应用-软件工程专业论文.docx...

    湖南大学 硕士学位论文 计算机英语辅助学习系统的研究与应用 姓名:许邓艳 申请学位级别:硕士 专业:软件工程 指导教师:范年柏:罗亚希计算机英语辅助学习系统的研究与应用摘 计算机英语辅助学习系统的研究 ...

  5. 计算机专业技能知识,2017年度计算机专业技能知识资料基础知识资料试题'及其答案...

    2017年度计算机专业技能知识资料基础知识资料试题'及其答案 (19页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 ''第一部分   一 ...

  6. (程序员/软件工程师/开发者)编程——计算机专业英语学习指引

    概要 这篇文章面向程序员,简要的介绍了一些学习计算机专业英语的步骤和经验. 关于 之前不少人曾站内我如何学习英语,我也曾试图写一篇如何学习英语的博文,但我现在的实力着实无法写出令人信服的文章: 尽管阅 ...

  7. 教育技术学是计算机相关资料,教育技术学专业

    高校教育学门类下各专业的相关资料 大学生电脑主页 - dxs diannao .com – 大学生喜欢的都在这里 大学生电脑主页 -- dxs diannao .com -- 大学生的百事通 1 教育 ...

  8. java计算机毕业设计学习资料校内共享平台MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计学习资料校内共享平台MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计学习资料校内共享平台MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目 ...

  9. 计算机专业与英语关系大不大,计算机专业英语学习的策略.doc

    计算机专业英语学习的策略 计算机专业英语学习的策略 摘 要 计算机专业英语水平是制约计算机专业技术人员发展的一个重要因素,学好计算机英语对于计算机专业学习不无裨益.只有了解计算机专业英语特点及学习策略 ...

最新文章

  1. C++报错解决:error: ‘int’ is not a class, struct, or union type typedef typename _Sequence::value_
  2. java socket相关的timeout
  3. Java网络编程笔记6
  4. 为什么Android变得对商业世界至关重要?
  5. jquery动画顺序执行_jquery怎样设置才能做完上一步动画再执行下一步
  6. MAC 中python画图中文乱码
  7. OpenCV扫描图像对象的实例(附完整代码)
  8. java创建具体时间点_java单例饿汉模式对象创建时间点疑问
  9. Redis源码剖析(二)io多路复用函数及事件驱动流程
  10. 仿制药名言_仿制药的美丽与陌生
  11. 孜然网址导航系统源码v1.0
  12. 执行计划级别mysql 2ef,Mysql 层级、执行顺序、执行计划分析
  13. 银杏谷资本合伙人郑雨林:我为什么围绕阿里云生态做投资?
  14. Linux系统搭建房卡游戏教程,2020年H5电玩房卡游戏源码合集运营级:超强后台控制+部署教程文档...
  15. Java操作Oracle数据库——ARRAY TABLE类型批量数据处理区别比较
  16. 调整肠道微生物的饮食结构有助于缓解儿童遗传和单纯性肥胖
  17. 计算机应用基础165791,[2018年最新整理]人大网大计算机应用基础试题答案.doc
  18. 洗礼灵魂,修炼python(56)--爬虫篇—知识补充—编码之url编码
  19. php如何运行vbs文件,HTML_用vbs实现在启动 Windows 资源管理器时打开特定文件夹,my-script.vbs c:\scripts 在文件夹 - phpStudy...
  20. mysql24小时数据没有补0

热门文章

  1. N沟通场效应管深度图解(1)工作原理及Multisim实例仿真
  2. cockroachdb_CockroachDB评论:分布式SQLSwift发展
  3. linux daemon命令用法,CentOS 6.8 使用start-stop-daemon命令
  4. 基于Springboot+mybatis+mysql+html图书管理系统
  5. 博途软件中多重背景块的建立_怎么理解多重背景数据块?
  6. HTML5 视频直播一站式扫盲书目录
  7. PowerDesigner安装教程(含下载+汉化+破解
  8. Unity中使用SimpleWaypointSystem控制物体移动
  9. 国产替代AD620, INA128, INA129,LT1167,LT6370
  10. 【语义分割数据集制作】使用labelme制作自己的U-net语义分割数据集