# 实践-竞赛-科研建议

> 这里是关于代码实践、参与竞赛、科研调研中给出的建议。有修改，有问题随时联系 gaofeng@ouc.edu.cn

<br>

## 1、找到兴趣所在

- 找到感兴趣的方向，热爱是最好的前进动力；早点确立自己的目标，找到自己感兴趣的方向。多多尝试是非常重要的，利用好大学时光多多探索自己的可能性，了解自己的天赋，争取获得全方位的成长；多了解新技术，探索自己的兴趣所在。
- 搞清楚自己想学什么；如果不保研，建议按照自己的兴趣来学；积极寻找自己感兴趣的专业方面；多关注上课之外的事情；多在课下学东西；有时间可以了解其他学科的内容；多接触新兴事物；多尝试不同领域，找到兴趣所在；平时对自己感兴趣的内容多多探索
- 可以花一小阶段时间扩大各个方向的接触面，再聚焦一个方向深耕；尽早找到自己感兴趣的方向，没有也没关系，起码要慢慢知道以后大概怎么走
- 多去尝试，你永远不知道什么时候听过的一个讲座、看过的一篇论文会对你产生什么样的影响，尽量在分数之外寻找一点找到自己兴趣所在。找一个有兴趣的点深入研究，try every error and gain ( 勇于试错，方能成长 ) ，对于不感兴趣的方面，可以仅做满足考核要求内最低限度的学习。
- 不要光想着进大厂，大厂也是屎山，也不要光想着保研，没太大意义，可以做点自己喜欢的东西

## 2、注重实践与应用

- 最重要的，注重实践与应用。不仅要学知识，还要能够解决实际问题；建议在课程实验方面多下功夫；一定要学会自学，光做课程实验是不够的；多写代码，多学习，多实践；尝试自己写一些小项目，边写边自学
- 深浅有度；注意课外延伸，B 站大学，学自己感兴趣的，比如游戏开发、前后端等
- 建立个人博客，保持学习的热情；要有自己的博客，有些经验性的东西可以发在博客里面，比如 conda 的一些操作、某些软件的安装技巧等等
- 注意项目的积累；多动手实践，多主动学习，很多必备的工学能力是课堂上讲不到的
- 单说学习的话，计算机专业算是一门实验性质的学科，很多内容操作过上手一回，第二次做就会比较熟悉
- 不要只满足于课程内的学习，目前很多课程的教授内容只是基础，要积极去应用，不能得过且过，要对自己负责
- 融入 GitHub 开源生态，给中小项目的未解决 issue ( 问题 ) ，写几个 PR ( Pull Request，拉取请求 ) ，体会一下真正的代码要怎么写，每个项目的代码规范要怎么遵守
- 掌握一定的魔法技巧，包括不限于：外网访问、chatgpt 访问、外币支付、内网穿透、反向代理；
- 至少要有自己的 personal page ( 个人主页，建议使用 github 维护，可以参考我的 [个人主页](https://jhyin12.github.io/) )

## 3、编程能力

- 没有算法基础的一定要早点开始重视算法，多刷洛谷 ( Luogu ) 和乐扣 ( LeetCode ) ，c++课一定要认真听，不然后面很多跟不上再补就很吃力了
- 大一的编程课程体系是对零基础同学快速跟上的重要过程
- 多编程，少用百度，多用 Google
- 日常的大作业、小作业是快速学习某些算法和锻炼工程能力的难得机会，自此之后，能磨砺码力的只有编译器了 ( 摘自网络 )
- 多写多练，肌肉记忆也是记忆
- 动手能力很重要，多试着学习编程、参加比赛锻炼自己。至少学会一门语言，大部分编程语言是互通的，学会一门方便触类旁通
- 多上手写，代码量很重要，算法能力和英语口语，在很多场合 ( 保研，考研复试，实习，就业 ) 都很重要，但是没法一蹴而就，平时就需要多练习，不要等到急用了才开始学

## 4、参与竞赛

- 多和同学交流；多交流，多理解，多参与；找个勤快的搭档一起学
- 多和同学交流，积极组队参加各种活动比赛等；
- 积极参加 ( 至少了解 ) 一些比赛和竞赛项目；趁大一大二多打比赛；可以大一参加 acm，后面算法学的轻松一点
- 抱紧大腿可以极大降低学习新内容的难度，认识认识就认识了，熟悉熟悉就熟悉了了竞赛方面选择性参与，学业为主要任务；尝试打一些比赛，可以增长见识、锻炼能力 ( 顺便旅游 )
- 非 ACM 类竞赛用处不大，科研经历很重要；尽可能多参加一些比赛，跟大家一起做项目，提高自身能力。
- 不要畏惧参加竞赛，其实收获最多的时候就是在准备比赛期间；不要担心，万一参加了拿不了奖，被人笑话或者白干一场，有经历就有收获，三年说长不长，说短不短，一定要勇敢。
- 多参加算法竞赛，对提升思维有帮助，而且找工作的时候，笔试也会有优势
- 大一最好学一些技术，比如小程序 ( web ) 开发，这会让你之后有更多机会，收到各种各样的比赛的参赛队伍的邀请，真的！
- 多参加算法竞赛，培养思维，而且对以后就业笔试有帮助
- 不喜欢卷绩点可以多打比赛 ( 但是有风险，最后啥都没有 ) ，可能会对找工作有用

## 5、参与科研

- 好好学习，接触科研；多参加科研课题，争取早出成果；
- 要权衡好分配给科研和上课的时间
- 早进组；趁早加实验室做项目；保证绩点的前提下，积极进实验室，帮做实验接触科研
- 如果有读研打算建议提前进实验室；想走科研的话，要早点联系课题组；了解学院的实验室项目，尝试和感受一下科研氛围
- 尽早联系老师进组做科研，争取夏令营之前可以有几段扎实的科研经历，最好能有论文产出
- 学院有很多实验室，可以早接触早学习；不要只关注卷绩点，可以提前进实验室，进行科研实践
- 可以早早去实验室做科研助手，来判断自己究竟适不适合科研，适合什么节奏的科研
- 如果想搞科研，可以提前进组体验自己喜欢的方向，但是一边打比赛一边搞科研一般来说不行，最顺利的建议是先打比赛保研，然后进不同的组确定喜欢的方向
- 如果你想在国内读研，那建议你卷绩点，找老师做科研，一定在大二及之前找，但是做好准备，科研投入大可能没回报，卷绩点失败，想清楚准备考研也行；如果你想出国留学，雅思请早准备，实习要是有用的话，早日投实习；不要担心你什么都不会，明天的你大概还是什么都不会，反正我是这样。

## 6、科研经验

- 好好选研究方向；早点找个方向，基础打牢
- 树立良好科研习惯；有科研思路就先行动起来，开始阶段不要苛求完美，先搭起框架再逐步完善
- 最好的了解一个新领域方法，是看综述和去 B 站找该领域的讲座
- 每天阅读新文献 ( 借助引用发现新文献 ) ，自己的研究一定要在充分调研的前提下开展，思而不学则殆
- 多读论文，先积累广度，然后拓展深度；多读论文，培养批判性思维；读论文少用翻译软件
- 多读近几年的文章，找有 github 源代码的文章
- 多实操，可以自己找项目，也可以通过加入实验室，帮助研究生做项目，来增加自己的实操经验
- 找不到 idea 的时候，可以试着了解一下其他领域的 ( 也可以是社会科学之类的 ) 知识，可能会有不小的启发
- 尽早发论文，其他都是浮云；尽快发文章，先写出来
- 努力多发论文，毕业后出路比较好，本科期间培养出来良好的科研正向循环很重要

## 7、多沟通

- 认真学习，积极向学长请教；多和学长学姐交流，没必要走的弯路不要走
- 多多认识优秀的学长学姐，看看他们在干什么；读研、留学、就业，无论什么方面，要多去获取、收集信息，辅导员、非专业老师未必会提供适合自己发展的信息，大多数情况下只能靠自己收集信息，确认好自己道路的重要时间节点，与学长沟通
- 拓宽自己的信息渠道，多和老师同学沟通；大学是可塑性非常强的一个阶段，有什么想做的就试一试，不怕碰钉子；不要焦虑，不用想着什么都做到最好，重要的是完成和收获
- 老师对学生态度大多都挺不错，有什么事情及时沟通交流；和老师打好关系，可以方便找老师要推荐信
- 多交流，有问题找导师；建议多与导师交流，尽早确定研究方向；多问老师问题，比自己一个人苦想更好
- 多跟导师沟通，哪怕去闲聊天扯淡也要去沟通；绝大多数导师都不排斥学生的交流，不能怕，越怕遇到事越容易和导师沟通失效然后造成更大的损失
- 给老师、同学发邮件或私信问问题的时候，一定要礼貌用语，多说您好和谢谢
- 如果可以的话，希望学弟学妹可以在大学里，勇敢地与老师们进行沟通，如果有继续深造的想法，建议和学术老师深入交流一下；我是这样做的，我认为这对我大有裨益，虽然我不是计算机学院的学生，但是现在我有了一位长期合作的老师亦师亦友，在学术、生活、社交方面收获很多，所以我认为我有资格可以提这个建议；其实，我们都有迷茫和不知所措的时候，有想做些研究的想法但一时间无从下手的时候，这时候如果有一位志趣相投的老师作为引路人，真的会减轻你在这条道路上的很大程度的焦虑与不安，收获美好的大学生活
