我的编程之路 -3(熟练)
上篇我的编程之路-2(首秀)说到,这个项目改变了我剩下的大学生活,因为有这次经历,我们班导师有个项目需要找个人编码,而我是唯一有实际编码经验的,所以很顺利就选上我了。
这个项目还是用VC++ 6.0,这几乎是那时Windows上项目的标配,也需要做个界面,当然就是MFC了。
这些对我已经是轻车熟路了,唯一不熟悉的是串口编程,不过这也不难,去源码共享网站上找,能找到不少。集成到项目中,很快就看到效果了。
简单介绍下项目背景:这是导师的研究课题,六自由度机器人控制,也是我们院的重点课题之一。项目由他带的一个研究生来负责,但这位师兄是从非计算机专业考到计算机研究生的,所以编程上自己搞不定。
控制算法导师已经封装成`.so`库文件了,我只需调用获取到下一条指令;然后将指令转换为步进电机控制协议,通过串口发送过去。看点是在操作界面上,展示一张位图,然后机械臂可以把这张图雕刻出来,界面能够同步仿真雕刻的进度。最后的效果演示是这一块肥皂上雕刻了一个汉字。
这次项目总算成功了,导师和研究生师兄都很满意。我呢,增加了熟练程度,尤其是单步调试,对内存布局有了直观的认识。
但这手动把代码调通,还是给自己留下了不好的印象,尤其是简单的控制协议转换,没有一次是一遍过的,总有哪没有考虑到,靠Debug来找出问题。总之,这不是我喜欢的编程,或者,可能我就不喜欢编程?碍于当时的水平,也不可能知道问题在哪,但由这个疑问引发的好奇心一直驱动我探索到现在。
60分万岁。
前面说,这些项目改变了我的大学生活;的确,因为我每天关注的都是项目,以及引发的一些思考。几乎没有把时间投入到学习的课程中,以至于感觉到学校和我是在平行的两个世界。
这也直接导致我的毕业成绩单上有几乎一半的科目都是60分,我们班没有人比我的60分更多。当然,我也很感激学校老师手下留情,实际分数肯定是不够60分的。
那时,学习资料的来源少,网上就是逛论坛,但论坛里大多是初级问题,已经不能引起我的兴趣了;剩下的就是图书馆了,所以也养成了定期去图书馆的习惯,希望能找到一本给我解惑的书。
VC++例子讲解的书可以直接Pass了,一股新气息吸引了我--《Effective C++》《Accelerated C++》《C++ Templates: The Complete Guide》《C++ Primer》《Programming Pearls (编程珠玑)》等等。
我折服于 C++ 的博大精深,和这些作者的出众才华,开启了我的从入门到放弃之路。
照旧给这个阶段的同学一些建议:
渡过新手期的新鲜和压力后,会进入快速的熟练期。熟练可以随着继续做类似的项目而自然增长,也可以通过一些方法稍加练习,或刻意练习来快速达到熟练的目的。
如果提高效率感兴趣,或者对现状有压力的同学可以试试下面的几个方法:
尽可能记录自己完成工作的步骤
可以从简单的 HowTo 文档开始,这样一来可以给自己做备忘,下次遇到同样的问题可以照着文档做,效率提高了一大截;再者,也可以把文档分享给团队,提高团队的效率;
在 HowTo 的基础上,如果能自动化的步骤,可以封装脚本来自动化执行;
如果存在大量模版代码,可以考虑做个CLI来自动生成代码,或者做成 Snippet;
进一步可以自己提炼最佳实践,或者网上搜索最佳实践来引入项目中。
版权声明: 本文为 InfoQ 作者【顿晓】的原创文章。
原文链接:【http://xie.infoq.cn/article/be70a918b28c732902a26daa9】。文章转载请联系作者。
评论 (1 条评论)