About 软件组⤴
2024 软件组概述⤴
软件组嘛……很明显就是写代码的咯,某种程度来说,软件是机器人的灵魂,软件组成员也是项目组的灵魂,软件组成员要负责联合起来电子组和机械组,共同完成机器人的设计制造、功能实现和调试维护。而且!看着机器人运动在 rviz 可视化中体现,看到 pub 了一个数据后机器人就真得动起来了,看到手上一个小小的雷达就把基地地图扫出来了,看到机器人按照代码逻辑执行,看到把篮球或者二维码正确标识出来,会非常的自豪!发现因为代码写错而让机器人磕碰到也会非常内疚的说(
一些小问题 FAQ⤴
Q1 我想加入软件组,那我要先学点什么呢?⤴
-
C++ programming with Visual Studio Code
目前来讲软件组大部分代码还是基于 C++。 (好了后面的你想看就看,不想看也没关系)在基地代码中,C++ 相比于 C 而言,运算符重载、 templates、boost 库、stl 库等都是经常用到的。 此外,面向对象编程技术也是必须要了解的,毕竟软 件的同学会接手前一届代码,也要自己写属于本届新功能的封装,把代码包裹得优美好看非常重要。我 们建议学 C 程序设计的同学,在写大作业 时使用 C++ 语言,尝试使用一下 vector 等 stl 库内的内容, 并努力以面向对象思想编码,这会让 你在考核时有更高的起点。 此外,我们建议在写 C++ 时使用宇宙 第一代码编辑器 Visual Studio Code。我们在基地写代码基 本都是采用 VSCode,现在在写 noj 时尝试 使用 VSCode 并配好编译、调试环境,多看看有啥插件 可以用,并尝试使用跳转等快捷键,让你之后阅读几千行代码时不会神经错乱。
-
Python
Python 作为解释型语言让代码具备高度的可阅读性,容易上手,适用于开发周期短 的项 目。与 C++ 类似开发生态成熟,有很多便捷的数学运算第三方库,也能更便捷地添加已安装的 内置和 第三方模块,便于开发,移植性强。 (好了后面的你想看就看,不想看也没关系) 虽然 Python 核心团队在 2020 年停止支持 Python 2,但是还是需要用到 Python2 的一些东西,所以学习可以学习 Python3,但是还是要知道一 些 Python2、3 之间代码上的异同以及基本迁移操作的。
-
Linux
软件组所有的开发任务都是在 Linux 操作系统下进行的,所以不能抗拒黑框框(或者紫 框 框)的命令行。有必要熟练掌握 Linux 系统的各种操作,以及一些 Shell 编程技巧,初学可能觉 得很反 人类,但只要能熟练掌握,那势必会成倍提升工作效率
。 (可以了解安装一下 zsh 配上 oh-my-zsh , 再装一下 autojump 、 zsh-autosuggestions 、 zsh-syntax-highlighting ,按 Tab 补全非常爽) -
Git & Markdown
Git 作为一个优秀的版本控制软件在开发时作用很大!代码效果崩了——回 滚,尝试新 Feature——开分支,代码云端保存——推送到云端私有库(VSCode 内集成有基本 Git 的 可视化,也推荐装一个 GitLens 插件
) 。Markdown 重要性不强调了,作为软件组的文档基本都 是 Markdown 格式。 -
Python GUI 或者 Qt 图形化编程(选修)
毕竟比赛的时候对着一个又一个命令行开命令会很紧张 的, 自己写一个小小的 GUI 程序来点点点还是很舒服的,做消息回传的显示也是很好的。
-
GitHub、Stack Overflow(选修)
面向 StackOverflow 编程(不是
) ,ROS 有一些奇怪的问题 中文 网确实查不到解决方式,但是英文搜一下就会发现有很详细的解决流程。 GitHub 上也要时不时看 一看 issues,说不定你遇到的问题别人也遇到了,开发者也提供了解决办法呢。最好掌握访问 Google 的技能,有科学上网的途径,也要稍微了解一下类似 proxychains4 的程序,要不然配环 境不得崩溃, 而且 ROS 的一些问题只有英文环境才能搜出来正确答案的说。
如果你真的真的真的真的真的真的真的真的真的真的……(此处省略 N 个“真的”)是零基础
没有关系,我们还有最基础的培训,同时也建议你先上网自学一下C/C++ 或者 python 语言的基础语法, 网上有很多教程,真的很多,要学会用你们手中的百度谷歌还有B 站,CSDN,知乎等等等等。
Q2 我代码写得很菜,是不是没戏了?⤴
理论上讲我们的确需要基础好的,但是这东西嘛,大家基本都才开始学,想补上去很快的。能力的 考察 是多方面的,不会仅仅因为代码写得不好而直接否定一个人,毕竟这是可以训练的。只要你肯学,代码提升会很快的。(。・ω・。)ノ ♡
Q3 我学习成绩不太好,会不会在评价中处于劣势?⤴
学习成绩和考核评价并无直接关联,只要你招新考核中表现出众,没人会看你的学习成绩,反过来,就 算你学分绩专业第一,如果招新考核一败涂地,你再说自己能力多强,学分绩多高,也没有任何用处。
Q4 软件组的招新考核是什么形式呢?大致流程是怎样的?⤴
软件组招新考核的形式分为面试、考核。
-
考核:
考核阶段分为两轮,一轮主要是做一些基础的环境配置,程序设计,二轮就接近实战了,考核阶段的核 心是考察一个人的学习能力和工作态度,每次任务提交后都会进行评分,考核结束时计算总分排名来确定最终人选。
-
面试:
面试大致会了解一些你的情况(学过哪些东西、有哪些长处、以及对基地的态度等
) ,同时也会问一些 小问题,同学们尽力而为,尽可能向学长学姐展示出自己的优势 (。・ω・。)ノ ♡。面试是对一个人各方面能力的直观而综合的评价,面试结束后我们会结合笔试和机试成绩决定最终进入考核的人选。
还有什么问题欢迎大群戳管理员
写在最后⤴
学长学姐们也不是天生就会这些,只不过比大家多花了点时间和热爱。我们相信能考进西工大的你只要坚持到最后就一定可以通过考核,成为舞基的一员。我们期待你的加入 ᵎ(•̀㉨•́)و ̑̑ !