写给一心刷ACM题目的学生

简介: 【来信】  老师你好,我大2013级大二的学生。大一时自学了数据结构,大二的时候参加了ACM。 现在寒假在家里刷题。可是我还想学习些东西,比如深入C 的学习,或者java。但是感觉除了刷题之外,就很迷茫,不知道以后出去工作是C 好还是java好。其实我更喜欢C ,但是如何去深入学习C 呢,我对C 的深入学习也是很迷茫的,因为对于C/C 除了用来刷题,我都不知道他们能够干什么?  【回复】

【来信】

  老师你好,我大2013级大二的学生。大一时自学了数据结构,大二的时候参加了ACM。 现在寒假在家里刷题。可是我还想学习些东西,比如深入C 的学习,或者java。但是感觉除了刷题之外,就很迷茫,不知道以后出去工作是C 好还是java好。其实我更喜欢C ,但是如何去深入学习C 呢,我对C 的深入学习也是很迷茫的,因为对于C/C 除了用来刷题,我都不知道他们能够干什么?

  

【回复】

  你没有说你的专业,我猜想应该是计算机类的专业。下面就基于这个前提,谈谈我的想法。
  很高兴你能找到一个提高编程能力、打扎实专业基础的方式。参加ACM竞赛对于专业学习的好处,我不说了,这个事情可以继续深入。
  你找我,我该说你的问题所在。
  我先提几个问题,你想一想?
  1. 为什么在学习过程中我们要做题目?做题目的目的是什么?题目是怎么来的?
  2. 我们学习的最终目标是什么?
  关于这个问题,正确回答绝对不是做题目。简单讲,我们是要去解决问题,更直观地,是要去做项目。
  于是,我们要面临的第3个问题有了:
  3.如何在学习中,由做题目过渡到做项目?
  这几个问题解决了,你应该就明白了。我下面将会谈我的看法,不过,也还需要你自己再我的回答上补充,结合上你自己的学习体验。
  关于题目。题目是针对某些知识点,编制出来的供初学者实践,以达到掌握知识的目的。由于学习者所处的阶段性,题目不宜“大”,且一般针对性强。题目再大,就隐约会有点“项目的影子了,尤其对于综合性的题目。但再综合的题目,也可能会将项目中需要考虑的一些效率、成本、组织等问题忽视掉,以便于起步阶段的人能顺利学习下去。所以,做题目是为了掌握知识点(包括具体知识、运用知识的方法学层面的知识,以及一些必要的技能)。题目是人为编出来的,但仔细品味,题目中含着的,就是项目中用着的知识。你现在参加的ACM,所刷的题目实际已经突破了课程框架的约束,正在练就解决核心问题的能力。但我发现,你没有去发现这些。例如,你掌握了动态规划的方法,应该要看到其普适的价值:生产管理、资源分配……,多少问题都在用它去建模、求解。
  而到做项目,需要考虑的因素将会很多。例如做一个Web项目(设规模比较大、目标是要让很多很多人用的那种),需要有项目经理、架构师、程序员、美工等一套的人马。对于一名IT学生而言,至少在目前,我们的目标就是要通过做技术岗位的工作进入行业(无论大学毕业就进入还是上研生之后),所以要学习做项目的技术。这些东西在你高年级的时候,会学习相关的课程,但也应该做课外自己有所体验。一个人不可能精通做项目中的所有环节,在实际工作中也还会进步的空间,你目前主要精力投入学习利用算法和程序设计解决问题,是一个着眼长远的选择。
  如何学做项目,以及由做题目到做项目的过渡,请参考我在《逆袭大学》中的“ 9.1 一切让代码行数说话”。这是一个留待日后解决的问题,也可以现在就自主地做些体验。
  从你信中,我稍有不安的是,你应该进入“算法”的阶段了,但似乎还是将语言看得太重。无论C还是Java,都不足以支持你度过整个职业生涯。在现阶段,C就用来刷题好了。可以用C做点通信录、学生成绩管理之类的纯在DOS窗口中运行的应用做些体验。而如果想深研C的指针之类的硬骨头,你实际上是在计算机组成、操作系统的层面上开展学习,只是用的是C这样的一个载体。从计算机系统的角度,看你正在学习的内容,你会发现自己一路玩着C,学的就是计算机。这样学下去,你将不会迷茫。
  给你的建议:刷题之余,看一些IT人文类的书籍。我一时想不到更多的,但首先想到最适合你的是,由吴军博士写的《数学之美》和《浪潮之巅》。其他可以参考 当当的榜单,也可以开学后到图书馆借。书很多,哪本顺眼看哪本,你会由阅读而不惑。

  就说这些,希望你能充实地走出你的每一步。




目录
相关文章
|
7月前
|
机器学习/深度学习 运维 监控
万亿参数模型训练神器:Kubeflow 2025量子加速版下载与TPU集群配置详解
Kubeflow 2025 是一个云原生机器学习操作系统,实现了四大突破性创新:量子混合训练(支持经典-量子混合神经网络协同计算)、神经符号系统集成(融合深度学习与逻辑推理引擎)、边缘智能联邦(5G MEC节点自动弹性扩缩容)和因果可解释性框架(集成Pearl、DoWhy等工具链)。该平台通过混合计算架构、先进的硬件配置矩阵和量子增强型安装流程,提供了从基础设施预配置到核心组件安装和安全加固的完整部署方案。此外,Kubeflow 2025 还涵盖全生命周期开发实战案例、智能运维监控体系、安全与合规框架以及高阶调试技巧,帮助用户高效构建和管理复杂的机器学习项目。
|
7月前
|
人工智能 Java API
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
285 4
|
7月前
|
消息中间件 人工智能 安全
秒级灾备恢复:Kafka 2025 AI自愈集群下载及跨云Topic迁移终极教程
Apache Kafka 2025作为企业级实时数据中枢,实现五大革新:量子安全传输(CRYSTALS-Kyber抗量子加密算法)、联邦学习总线(支持TensorFlow Federated/Horizontal FL框架)、AI自愈集群(MTTR缩短至30秒内)、多模态数据处理(原生支持视频流、3D点云等)和跨云弹性扩展(AWS/GCP/Azure间自动迁移)。平台采用混合云基础设施矩阵与软件依赖拓扑设计,提供智能部署架构。安装流程涵盖抗量子安装包获取、量子密钥配置及联邦学习总线设置。
|
9月前
|
运维 关系型数据库 MySQL
体验领礼啦!体验自建数据库迁移到阿里云数据库RDS,领取桌面置物架!
「技术解决方案【Cloud Up 挑战赛】」上线!本方案介绍如何将自建数据库平滑迁移至云数据库RDS,解决业务增长带来的运维难题。通过使用RDS MySQL,您可获得稳定、可靠和安全的企业级数据库服务,专注于核心业务发展。完成任务即可领取桌面置物架,每个工作日限量50个,先到先得。
|
11月前
|
网络协议 数据库 网络架构
OSPF的邻居状态机详解
OSPF的邻居状态机详解
543 6
|
自然语言处理 数据挖掘
【自然语言处理NLP】Bert中的特殊词元表示
【自然语言处理NLP】Bert中的特殊词元表示
366 3
|
监控 容灾 关系型数据库
rds容灾与高可用
rds容灾与高可用
450 6
|
传感器 边缘计算 物联网
Docker在物联网和边缘计算中的应用
物联网(IoT)和边缘计算(Edge Computing)是当今科技领域中备受关注的两个领域。它们的兴起为连接设备、传感器和数据提供了新的机会,而Docker容器技术则在这一领域中发挥着重要作用。本文将探讨Docker在物联网和边缘计算中的应用,提供丰富的示例代码和综合的内容,以帮助大家更好地理解这两个领域的交汇点。
实现横版游戏中角色的跳跃控制是如何实现的?
实现横版游戏中角色的跳跃控制是如何实现的?
209 0
|
监控 Linux 定位技术
suse 12 部署chrony时间同步服务器
suse 12 部署chrony时间同步服务器
390 0