信息与计算科学大三学生,加强算法还是做点项目?

简介: 【来信】  贺老师你好,我是一个大学生。我也看过你的专栏,觉得很有帮助。  我现在学习C和数据结构有一些时间了,也基本上掌握了里面主要内容。然后我现在不知道该做一些什么比较好,我想过去做一些小游戏,但是C又做不了界面。然后对于一些让我学习比如组成原理等相当基础的书籍的建议,我有这个打算,但是又有一点有心无力,总觉得现在再学习理论知识对我的帮助不明显。  我现在非常的郁闷,我希望老师能给我一个建
【来信】
  贺老师你好,我是一个大学生。我也看过你的专栏,觉得很有帮助。
  我现在学习C和数据结构有一些时间了,也基本上掌握了里面主要内容。然后我现在不知道该做一些什么比较好,我想过去做一些小游戏,但是C又做不了界面。然后对于一些让我学习比如组成原理等相当基础的书籍的建议,我有这个打算,但是又有一点有心无力,总觉得现在再学习理论知识对我的帮助不明显。
  我现在非常的郁闷,我希望老师能给我一个建议,到底是要去做些什么?学些什么?
  谢谢回复。

【我的回复】
  有些情况你没有讲清楚,如你是几年级的,什么专业,对什么有兴趣,将来如何打算,这些都和学什么、做什么有关。这类的问题因人而异,没有一个标准的、笼统的答案。是否可以补充一下你的情况,或者仔细考虑下你的兴趣和将来的打算,自己就可以给出答案。

【来信的补充】
  我现在是大三,学的是信息与计算科学,不算严格的计算机系,我打算先学VC,再做其他的发展,我本人其实还蛮喜欢计算机。
  贺老师,我是这么打算的,我想要学习软件编程,但是我又不想只是做一个程序员,到一定年纪后就被迫转行。我希望自己有着相当扎实的基础,多干几年,因为这个还是挺有意思的。
  我现在遇到的麻烦是:我离毕业时间不多了,之前我学习计算机也就是学校的水平,想要努力不能没有基础。因此我在暑假,把数据结构和C语言重新看了一遍,觉得效果很好,当年上课时好多没听懂的东西,现在看着看着就懂了,而且主要算法题目都做了一遍,并调试成功。
  我原本打算将windows程序设计语言学一学,可以编一些图形界面,连数据库等。这样子,将一个大致的框架流程学明白。但是这么做,有一些人就反对,认为我这样子会走弯路,应该先打好基础,专攻算法,这样子再学一些东西会轻松很多。
  所以我想问,老师你怎么看呢?你是认为我应该先做哪一方面,是先专攻算法还是先学习编一些大的程序,像是游戏和一些项目?

【我的回复】

  信息与计算科学,很好的一个专业,与计算机、软件工程等工程性专业比,科学的成份多一些,更易于进入到计算学科的深层去。实际上,这个专业的学生的算法素养应该要高于计算机专业的。但从你的表述看,并未进入到这个专业的核心去,现在想在工程上多做一些,也未尝不可。
  而计算机学科(非计算学科)也包含了科学与工程的两个方面。算法是科学部分的核心,而工程方面的学习,需要通过实践去提高。鉴于你已经是大三,从信中看出你也是准备去从事开发工作的,建议你这段时间的学习,从工程入手,至少在找工作时,能拿出一个像样的原创作品给人看。算法素养的提高是需要的,但已经不是纯为学而学的阶段了,以你已经有的经历,再深入也还是纸上谈兵。说“专攻算法”后,“学一些东西会轻松”,我总觉得不是很靠谱,不是算法不重要,而是工程能力的提高,并不是算法就可以顶起来的。再者,二者的关系不必完全分开,如在做工程时,遇到需要讲究数据结构和算法的时候,不要迁就,随便拿一个方案去应付,而是通过精心的设计和论证,在用中提高算法的能力。所谓的项目,不必一下就来很大的,注意循序渐进。
  最后纠正你的一个看法,关于“被迫转行”。如果大学上了四年,现在要万般辛苦地具有“相当扎实的基础”,要学算法,做工程,只落得如此个“被迫”,何苦呢?为谋口饭吃,有的是办法。做足了准备让行业淘汰,真不至于吧。IT行业中的从业人员,有一个发展的台阶,当你到了一个层次,不需要你做某项工作了,只要你把握得好,结果中的换岗位,往往有升迁、高就的味道。

  从这封信中看出,你需要提高的还有表达。我无法回复的第一封信,源于你表达时并未抓住问题的要点。多写一些文字,凡事注重理出头绪,是可以提高的。


【回信】

  我先感谢老师在百忙之中给我回信,解答了我的疑惑。

  老师在回信中说到信息与计算科学比其他的计算机专业有更多的科学成分,并指出我并没有深入这个专业的核心。我惭愧又不解,信息与计算科学在我看来,它好像基本是在学数学,虽然我数学学得还可以,但是我不是非常清楚它有哪一些部分是那些和计算机相关较密切的课程,哪一些课程是较多的涉及算法的学习。希望老师指点一二,要不我就身在宝山却空手而回了。

  还有,老师建议我从工程入手,相对于计算机、软件工程等工程性专业,我有着较大的劣势,那对于那些工程专业,他们的强项课程又是什么呢?我需要补充一些什么样课程知识,有那些课程是工程比较重要的又不可或缺的呢?从工程入手,我的打算是学习相对较接近的windows编程开始,不知道老师有什么建议。

最后,我回头看了一遍第一封信,我的表述能力确实有所欠缺,我会尽量提高。


【我的回答】

  有种说法你应该听过,计算机要求的数学基础很高。在计算机科学方面有成就的,学数学的占绝对优势。抛开你所在学校执行培养方案的因素,培养方案中所涉及的数学课,应该都是与计算机有关的。只不过,有些直接用,如数值分析、概率统计、线性代数(高等代数中的部分)等,有些,是建一般模型的基础,如离散、代数、逻辑、图论等,还有些作为基础,如数学分析。理解了数学中的抽象之美,懂得欣赏这些从具体而来的一般,在这个领域中前行,或者致力于让一般再回到具体,都是可走的路子。所有这些,可能都可以归结到算法上去,只不过,你需要自己去打通。计算机界的重大进展,大公司的核心技术,大多表现在抽象层面,反映在具体的编程技术上的少。对此,我也说不了太深了,建议你可以看《数学之美》和《研究之美》这两本书。

  之前的来信,我以为你是那种数学不好的信科学生,数学还可以,但是有误解,我改变主意,建议你重新审视自己以后,再决定继续努力的方向,也请找些你自己专业的老师请教,可以选择在强化算法方面多下功夫,成为强项,这种人才难得。至少近两年,感觉类似做数据分析等工作的人很抢手,以后大数据的发展,也提出了更多的需求,而这些工作并不是一般计科的人能胜任的,你们专业的人至少在这些方面有优势。如果决定还是走工程、技术的路子,软件工程类的知识要补充,并且这些知识要靠实践获得。具体要学的技术,要看想做系统底层的工作,还是要在应用层面上发展,windows编程让你接触些底层的知识,而做应用,可能学些开发框架类的东西更适用。





  

  
目录
相关文章
|
5月前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
158 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
4月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
94 0
|
19天前
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
54 6
|
5月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
177 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
5月前
|
算法 JavaScript 前端开发
第一个算法项目 | JS实现并查集迷宫算法Demo学习
本文是关于使用JavaScript实现并查集迷宫算法的中国象棋demo的学习记录,包括项目运行方法、知识点梳理、代码赏析以及相关CSS样式表文件的介绍。
第一个算法项目 | JS实现并查集迷宫算法Demo学习
|
5月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
204 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
5月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
148 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
4月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
99 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
4月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
107 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
5月前
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
92 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台