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

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

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

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

【我的回复】

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

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


【回信】

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

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

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

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


【我的回答】

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

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





  

  
目录
相关文章
|
6月前
|
算法 机器人
基于SOA海鸥优化算法的PID控制器最优控制参数计算matlab仿真
本课题研究基于海鸥优化算法(SOA)优化PID控制器参数的方法,通过MATLAB仿真对比传统PID控制效果。利用SOA算法优化PID的kp、ki、kd参数,以积分绝对误差(IAE)为适应度函数,提升系统响应速度与稳定性。仿真结果表明,SOA优化的PID控制器在阶跃响应和误差控制方面均优于传统方法,具有更快的收敛速度和更强的全局寻优能力,适用于复杂系统的参数整定。
|
10月前
|
算法 JavaScript 数据安全/隐私保护
基于GA遗传优化的最优阈值计算认知异构网络(CHN)能量检测算法matlab仿真
本内容介绍了一种基于GA遗传优化的阈值计算方法在认知异构网络(CHN)中的应用。通过Matlab2022a实现算法,完整代码含中文注释与操作视频。能量检测算法用于感知主用户信号,其性能依赖检测阈值。传统固定阈值方法易受噪声影响,而GA算法通过模拟生物进化,在复杂环境中自动优化阈值,提高频谱感知准确性,增强CHN的通信效率与资源利用率。预览效果无水印,核心程序部分展示,适合研究频谱感知与优化算法的学者参考。
|
6月前
|
算法 安全 数据可视化
基于多目标鲸鱼优化算法(NSWOA)求解地铁隧道竖向位移和成本的双目标求解(以铁道科学报与工程文章为例)研究(Matlab代码实现)
基于多目标鲸鱼优化算法(NSWOA)求解地铁隧道竖向位移和成本的双目标求解(以铁道科学报与工程文章为例)研究(Matlab代码实现)
117 0
|
9月前
|
算法 数据安全/隐私保护
基于Logistic-Map混沌序列的数字信息加解密算法matlab仿真,支持对文字,灰度图,彩色图,语音进行加解密
本项目实现了一种基于Logistic Map混沌序列的数字信息加解密算法,使用MATLAB2022A开发并包含GUI操作界面。支持对文字、灰度图像、彩色图像和语音信号进行加密与解密处理。核心程序通过调整Logistic Map的参数生成伪随机密钥序列,确保加密的安全性。混沌系统的不可预测性和对初值的敏感依赖性是该算法的核心优势。示例展示了彩色图像、灰度图像、语音信号及文字信息的加解密效果,运行结果清晰准确,且完整程序输出无水印。
基于Logistic-Map混沌序列的数字信息加解密算法matlab仿真,支持对文字,灰度图,彩色图,语音进行加解密
|
9月前
|
机器学习/深度学习 算法 搜索推荐
决策树算法如何读懂你的购物心理?一文看懂背后的科学
"你为什么总能收到刚好符合需求的商品推荐?你有没有好奇过,为什么刚浏览过的商品就出现了折扣通知?
262 0
|
9月前
|
算法 5G 定位技术
高低频混合组网系统中基于地理位置信息的信道测量算法matlab仿真
本内容展示了一种基于地理位置信息的信道测量算法,适用于现代蜂窝系统,尤其在毫米波通信中,波束对准成为关键步骤。算法通过信号传播模型和地理信息实现信道状态测量,并优化误差提升准确性。完整程序基于Matlab2022a运行,无水印效果,核心代码配有中文注释及操作视频,适合深入学习与应用开发。
国家互联网信息办公室关于发布第十批深度合成服务算法备案信息的公告
2025年3月12日,国家网信办公布第十批深度合成算法备案信息,共395款算法通过公示。根据《互联网信息服务深度合成管理规定》,境内深度合成服务提供者和技术支持者需履行备案手续。具体信息可在中国互联网信息服务算法备案系统查询,疑议请发邮件至指定邮箱。附件含完整备案清单。
|
算法 数据安全/隐私保护
基于Big-Bang-Big-Crunch(BBBC)算法的目标函数最小值计算matlab仿真
该程序基于Big-Bang-Big-Crunch (BBBC)算法,在MATLAB2022A中实现目标函数最小值的计算与仿真。通过模拟宇宙大爆炸和大收缩过程,算法在解空间中搜索最优解。程序初始化随机解集,经过扩张和收缩阶段逐步逼近全局最优解,并记录每次迭代的最佳适应度。最终输出最佳解及其对应的目标函数最小值,并绘制收敛曲线展示优化过程。 核心代码实现了主循环、粒子位置更新、适应度评估及最优解更新等功能。程序运行后无水印,提供清晰的结果展示。
283 14
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
624 6

热门文章

最新文章