编程学习之道

1.   勤于实践

学习别人的代码,在理解代码思路的前提下自己敲出代码。

2.  要事为先

任何事情都追求完美才继续向后进行,是一种性能缺陷。如果钻研的东西和近期产能目标无关的话,要舍得放手。当把我了技术的脉络之后再去进行细节的研究,是正途。

3. 项目驱动

学习编程最有效率的方式,就是把自己投入到一个项目组中,连滚带爬地做下一两个项目来。一个项目就是一根绳子,把大片分散的知识点串联到一起,形成一个整体。

4. 问题解决之道

(1) 仔细观察错误现象,并在其中得到某种启示

曾经在一个多串口数据通信软件中遇到一个问题:软件经常会在某一不确定时刻崩溃,观察发现软件崩溃时某一变量的值变为一个随机数。明明没有代码修改该变量的值,为什么它的值还是变化了呢?通过内存监视,发现某段保存串口实时通讯数据的代码中数据越界了,也就是拷贝的数据超过了给定变量的容量,这样就发生了未知内存的覆盖,最终导致了未知的行为。实际上观察到某一变量的值变为一个随机数,就应该意识到该变量所在内存被覆盖了,再结合调用堆栈和内存监视等手段就很容易定位错误。

上述项目中还发现了一个GDI泄露的问题:随着软件运行,任务管理器中监视的GDI数目不断增加,最终软件崩溃。通过观察发现,软件总是在运行90分钟左右崩溃,进而发现GDI数目两个两个地呈规律性递增。遍历整个软件的显示页面,恰巧有一个模块中有两个指示灯资源,对该资源相关代码进行检查发现果然存在GDI资源释放问题。90分钟、两个两个地,这些规律性的现象最终成了解决问题的重要线索。

(2)仔细思考问题会出现在哪些环节,将问题定位在某个具体环节

将与问题相关的整个执行流程按顺序分为几个阶段,分析每个流程引发该问题的可能性,然后依次对每个阶段的运行结果进行评估,最终定位到出错的节点。关于阶段的划分,系统比较复杂时可以借助“折半查找”的思想,快速定位问题。

在无人机数据链路系统中,地面飞控主机与机载飞控主机要进行数据交换,需要经过很多环节,一种简单的结构是:地面飞控软件---地面测控终端---地面天线---机载天线---机载测控终端---机载飞控软件。如果发现机载飞行控制软件不能接收数据或接收到异常数据,可以针对性检测机载飞控主机输入、机载测控终端输出、机载测控终端输入、机载天线输出、机载天线输入、地面天线输出、地面天线输入、地面测控终端输出、地面测控终端输入和地面飞控主机输出,直到定位到出产生问题的数据传输环节。

(3) 善用搜索和BBS求助

要相信,自己所遇到的问题大部分是别人碰到过的问题,有的作者解决问题后在博客等平台公布了自己的解决方案,有的作者自己没解决而在BBS中进行提问最终得到了网友的热情帮助,利用搜索引擎很容易找到该问题的解决方案或相关经验。如果实在搜不到解决方法,也可以自己在BBS发帖求助,等待高人来解答。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值