编程学习小组

时间:2022-12-02 19:20:39

本人北航数学系研一,想研二(10月份之前)去MSRA等平台比较大的公司实习,学习计算机视觉。为此,这段时间想提高编程尤其是C++能力,故而组建了编程学习小组。

小组目前有我和北航计算机系另一名同学,学习小组主要作用是互相交流、互相督促,并保证能每周交流一次(可以线上),共同提高编程能力。

1、本人编程背景交代

编程经历:修过C、C++、数据结构、算法分析等编程课程,不过就是水过去的;实习时将用C++和MFC写的提取交通流视频的软件拆开研究过,当然只是自己瞎琢磨;前段时间参加机器人比赛,负责摄像头的模式识别,在已有的程序包的基础上,第一次完整的做出以实际应用为导向的程序;其余零零散散修过一些以编程为主的课程,完成过相应的作业,做过一点小项目。

编程能力:C++接触最多,将基础知识回顾一下,给段程序能看懂、给个需求能边查书边捉急的写出、bug基本可以通过断点等调试出来;接触过Python、Matlab、R等;整体编程设计能力处于Matlab水平。

2、编程认识

编程是解决问题的工具,编程能力体现在:给定问题,分析设计解决问题的合适算法;利用合理的数据结构,将算法又快又好的实现;程序出bug能调试解决。

关键是数据结构和算法。

3、编程规划

编程能力的提高是一个日积月累的过程,扎实的基本功是必要的。从基本的C++开始,在基础打牢之后可以尝试其他语言如Python。

具体规划想法如下:

1)首先需要进行针对性的训练,按tag分类,比如排序、分治、动态规划和图论等。对于某类型算法,至少花两周时间,先梳理这类型关键算法,然后在LeetCode上由易到难找若干题目去刷;

2)其次在梳理和刷题的基础上做扩展,将该类型关键算法做比较,然后看网上大牛分享的代码,和自己做比较,看在时间复杂度、空间复杂度、性能优化等方面有什么可以优化的地方;

3)从裸题到综合题逐步前进,逐步提高,在刷题的过程中强化算法和数据结构能力。具体做法是遇到相应的数据结构自己去查,然后一起交流。

4)后期找相关项目检测提高。

    以上是本人与小组成员侯鑫同学共同总结整理,欢迎有兴趣且已学过C++的同学加入编程学习小组,共同进步!有意愿同学请于5月1号之前加我的QQ1315323944,添加时请注明“对编程学习小组感兴趣”+“本人身份”!