当前位置: 首页 > news >正文

我带过的一名C++实习生——Z同学

   

    刚开始带Z同学,吃饭聊天时,我顺便了解了下他的擅长:linux平台下C、C++网络编程。

    接下来的实习,主要分为两个阶段:小组公共培训和项目实训。

    小组公共培训为期2周,主要学习和了解公司文化制度,讲师和导师相结合的方式,对学生的基础知识进行培训和引导。

    公共培训期间,Z同学主要学习和巩固面向对象、数据结构与算法、进程线程与内存、计算机网络、数据库设计等基础知识。独立完成了日志库、桌面计算器,超市管理系统等作业;并与其他学生合作,完成了聊天和文件传输程序的设计、编码和测试。

    我的职责是负责Z同学作业完成情况的跟进与疑难解决。比如日志库作业,先让他按照自己的思路去实现日志库初版,之后我来review,接着面对面提出一些建议和优化措施:编码规范和风格;结合设计模式(单例,工厂方法),对代码结构进行优化;日志库支持多线程等。第二天,他给出了改进后的版本,并在代码中以注释的方式,提出了一些自己的思考:“这里后台线程用死循环,会导致该线程抢占CPU 执行无用的操作( 如果缓冲区为空的话,仅仅执行开关锁操作,浪费CPU), 能改进吧?”看到问题后,我给他讲解了解决思路,他查找资料后,自己解决了这个问题。

    公共培训结束后,开始项目实训。Z同学要做毕业设计,经公司同意之后,他的实训题目是《简单多媒体播放软件》。

    实训项目伊始,软件小组组织了实训计划动员会,各位导师和所带学生,探讨了各自的培训计划。我和Z同学探讨后的计划是:按照软件开发的基本流程:需求分析-->技术调研,选型-->设计-->搭建框架-->编码-->测试,来完成播放软件的开发。与公共培训期间的职责一样:我负责跟进与疑难解答。需求分析时,把大任务分解成一个个子任务,迭代开发:分三个阶段,初版基本功能,比如界面,播放、停止、加速、缓速等基本播放需求;二版高级功能,比如一些特效的实现和处理;三版支持播放方案管理。有了大目标和小目标后,会帮他厘清工作头绪,并逐步建立信心。

    接下来就是按照计划,一步一个脚印来执行了。但是这个过程中,对时间节点的把控,是个难点。设计编码过程中,不可避免的会出现一些未知因素,而导致计划延时。比如在使用OpenCV来实现特效——腐蚀时,水平方向的腐蚀正常,而垂直方向的腐蚀却出现了重影问题。Z同学在网上查找资料,没有合理的解释;咨询周边的人,几乎没人接触过。问题卡主了。。。我想起了之前杭州的一位同事,专门做播放器视频编解码的,向那位同事请教之后,同事说调用OpenCV接口代码的参数,可能出错了。顺着这个思路,Z同学通过自己不断摸索和尝试,终于找到了问题根源:1,调用接口函数时,将宽高参数传反了;2,视频帧是YUV格式的,需要转换成RGB格式的。

    经过自己的努力,Z同学基本完成了播放器软件的功能开发,及文档编写(毕业设计文档)。因时间有限,5月18日,他要返校进行答辩,播放器软件只支持Windows平台,暂时不支持Linux平台。不过这对他来说,已经很出色了,毕竟在有限的一个半月时间里,已经完成了基本功能开发及自测。

    通过2个月的接触,我对Z同学的评价:软件基础知识扎实,学习和动手能力强,善于思考和提问,具有很好的可塑性。

后记:以上文字写于2018年5月,前几天无意中翻了出来。

http://www.lryc.cn/news/24317.html

相关文章:

  • 面试题13. 机器人的运动范围
  • LeetCode189_189. 轮转数组
  • java Files和Paths的使用详解 附有使用demo
  • 如何使用ApacheTomcatScanner扫描Apache Tomcat服务器漏洞
  • js中的定时器 setTimeout()和setInterval()
  • 【吃透Js】深入学习浅拷贝和深拷贝
  • AUTOSAR为啥要开发新的社区商业模式?
  • 数据结构和算法面试常见题必考以及前端面试题
  • 一文解决Python所有报错
  • LeetCode 1237. Find Positive Integer Solution for a Given Equation【双指针,二分,交互】
  • 【C语言】结构体进阶
  • 全志T3+FPGA国产核心板——Pango Design Suite的FPGA程序加载固化
  • 深度学习之 imgaug (图像增强)学习笔记
  • mysql字符串等值查询中条件字段值末尾有空格也能查到数据问题
  • 一个关于事件溯源Event Sourcing的小荔枝,Golang实现
  • Vue3 组合式函数,实现minxins
  • 什么是钉钉消息推送?
  • 利用 NVIDIATAO 和 WeightBias 加速AI开发
  • token - 令牌
  • 应用模型开发指南上新介绍
  • Dbeaver连接Hive数据库操作指导
  • 【RabbitMQ笔记09】消息队列RabbitMQ之常见方法的使用
  • Linux字符设备驱动模型之设备号
  • C++多态原理
  • PMP认证与NPDP认证哪个含金量高?
  • 改进YOLOv7-Tiny系列:首发改进结合BiFPN结构的特征融合网络,网络融合更多有效特征,高效涨点
  • PPC Insights系列:洞见安全多方图联邦
  • SQLite注入记录(目前最全、核心函数用法、布尔盲注、时间盲注、webshell、动态库,绕过方式)
  • Java简单的生成/解析二维码(zxing qrcode)
  • 若依项目导出后端响应的Excel文件流处理