跟着自己的感觉走

简介: 【来信】您好!贺老师!  很抱歉,打扰您宝贵的时间,我是一名大二计科专业学生,过去的半年里我看完了一本c++程序设计,现在我正在看《c++primer》,但是在编写程序的过程中总觉得缺少自己的界面,就感觉自己编写的程序像玩耍一样(因为我感觉基本上真正的程序都应该有自己的界面)。我在网上看了一下,做界面都要用到api函数,但是我感觉调用api函数就像码转一样,没有自己的思想在里面,很别扭!  

【来信】

您好!贺老师!
  很抱歉,打扰您宝贵的时间,我是一名大二计科专业学生,过去的半年里我看完了一本c++程序设计,现在我正在看《c++primer》,但是在编写程序的过程中总觉得缺少自己的界面,就感觉自己编写的程序像玩耍一样(因为我感觉基本上真正的程序都应该有自己的界面)。我在网上看了一下,做界面都要用到api函数,但是我感觉调用api函数就像码转一样,没有自己的思想在里面,很别扭!
  还有,由于我们学校计科的专业课基本上都在大二下学期及大三,c++是我自学的,所以·····
  1.....我不知道我现在是否有必要学习c++的api编程(好像还有MFC,不过不太了解)?
  2.....怎样看待api编程呢?
  3.....必要编写稍大一点的程序来锻炼自己吗?(我是指耗时一两周程序)  
  希望贺老师能在闲暇时间给我一点宝贵的建议,打扰之处还请见谅!谢谢!

【回复】
  其实从学习编程角度,程序的核心和专业的基本功并不在界面中。然而希望自己的应用有个窗口界面也不错,有一个很重要的学科方向是人机交互,目前很多产品的优势就在于用户使用的体验好,你既然关注到这儿,我赞成你顺着自己的兴趣将界面的问题深入体验一番,且不说以后你可能在这方面做工作,借此有任何收获都值得。抵触调用API,我觉得这个不需要。在开发工作中,总是要在一定的层次上做的。有的人做底层,有人做中间件,有人直接调用组件做应用,你现在正在学习初期,很多问题尚不明白,最佳的方法就是不管哪一层,只要关注到了,就去了解和实践,借此也就开启了贯通各层的征程。否则,你将总是在“总觉得”、“感觉到”之类的词汇中兜圈子。
  鉴于你对界面感兴趣,可以学习API,一边学,一边做些小应用。理解小应用后,构思组合做些大应用,根据自己学习的感受去安排。大程序会带来新的问题,有必要去体验。通过在API层面上工作,可以对底层更明白些。至于MFC,是在API基础上进一步的封装,如果更想体验面向对象的方法,学习MFC也不错。
  该学什么,从课外自学的角度看,没有绝对标准。感兴趣就探一探,尤其对于大一大二的学生,是最好的方法。这样到高年级时,知识面就宽了,因为在多个方向上有过尝试和体验,容易找出适合自己的方向,从而往纵深处深究下去。
  不要犹豫,有感觉,就照着感觉走下去。

【再来信】

  感谢贺老师能在百忙之中给予小子回信!
  我一定认真考虑贺老师的建议和意见——“可以学习API,一边学,一边做些小应用。理解小应用后,构思组合做些大应用,根据自己学习的感受去安排”,接下来可能会同时学习《c++primer》、《算法导论》、《windows api编程》。
  我现在学习算法会过早吗?因为我在学它的时候有很多地方都无法彻底理解,像前几天学到“决策树”,结果发现还要先学ID3算法构建才行(我们已经学了离散数学,但那上面都只是简单的介绍一些,不够全面),感觉有点力不从心。
  再次感谢!

【再回复】
  只要愿意,何时都可以去学。并且学习一定是多次反复的,不要指望一次就“学完”,前面的看不懂,可以往后面看,随着了解的加深,再看一遍时,原有的疑惑将会解开。正如你体会到的,学离散时,有些没有深入,那时深入也没有动力,现在看算法发现要用着了,不要追求将算法导论快快看完,而是可以再补补课。这种“非线性”的学法很有效,需要注意的是要有节奏,不要一非线性就让自己跑得不知所踪了。
  祝安排出有效的学习。


  

目录
相关文章
|
3天前
|
弹性计算 安全 API
访问控制(RAM)|云上安全使用AccessKey的最佳实践
集中管控AK/SK的生命周期,可以极大降低AK/SK管理和使用成本,同时通过加密和轮转的方式,保证AK/SK的安全使用,本次分享为您介绍产品原理,以及具体的使用步骤。
101780 0
|
4天前
|
SQL 关系型数据库 分布式数据库
Doodle Jump — 使用Flutter&Flame开发游戏真不错!
用Flutter&Flame开发游戏是一种什么体验?最近网上冲浪的时候,我偶然发现了一个国外的游戏网站,类似于国内的4399。在浏览时,我遇到了一款经典的小游戏:Doodle Jump...
|
11天前
|
弹性计算 运维 安全
访问控制(RAM)|云上程序使用临时凭证的最佳实践
STS临时访问凭证是阿里云提供的一种临时访问权限管理服务,通过STS获取可以自定义时效和访问权限的临时身份凭证,减少长期访问密钥(AccessKey)泄露的风险。本文将为您介绍产品原理,以及具体的使用步骤。
151032 4
|
10天前
|
数据采集 存储 运维
提升团队工程交付能力,从“看见”工程活动和研发模式开始
本文从统一工程交付的概念模型开始,介绍了如何将应用交付的模式显式地定义出来,并通过工具平台落地。
119989 57
|
10天前
|
监控 负载均衡 Java
深入探究Java微服务架构:Spring Cloud概论
**摘要:** 本文深入探讨了Java微服务架构中的Spring Cloud,解释了微服务架构如何解决传统单体架构的局限性,如松耦合、独立部署、可伸缩性和容错性。Spring Cloud作为一个基于Spring Boot的开源框架,提供了服务注册与发现、负载均衡、断路器、配置中心、API网关等组件,简化了微服务的开发、部署和管理。文章详细介绍了Spring Cloud的核心模块,如Eureka、Ribbon、Hystrix、Config、Zuul和Sleuth,并通过一个电商微服务系统的实战案例展示了如何使用Spring Cloud构建微服务应用。
103498 8
|
11天前
|
人工智能 Serverless 对象存储
让你的文档从静态展示到一键部署可操作验证
通过函数计算的能力让阿里云的文档从静态展示升级为动态可操作验证,用户在文档中单击一键部署可快速完成代码的部署及测试。这一改变已在函数计算的活动沙龙中得到用户的认可。
120800 214
|
11天前
|
SQL 存储 数据可视化
Ganos H3地理网格能力解析与最佳实践
本文介绍了Ganos H3的相关功能,帮助读者快速了解Ganos地理网格的重要特性与应用实践。H3是Uber研发的一种覆盖全球表面的二维地理网格,采用了一种全球统一的、多层次的六边形网格体系来表示地球表面,这种地理网格技术在诸多业务场景中得到广泛应用。Ganos不仅提供了H3网格的全套功能,还支持与其它Ganos时空数据类型进行跨模联合分析,极大程度提升了客户对于时空数据的挖掘分析能力。
|
11天前
|
存储 缓存 安全
深度解析JVM世界:JVM内存结构
深度解析JVM世界:JVM内存结构
|
18天前
|
人工智能 编解码 对象存储
一键生成视频!用 PAI-EAS 部署 AI 视频生成模型 SVD 工作流
本教程将带领大家免费领取阿里云PAI-EAS的免费试用资源,并且带领大家在 ComfyUI 环境下使用 SVD的模型,根据任何图片生成一个小短视频。