You decided to be a coder, despite all our warnings. A few notes to start you off:
- ALWAYS ALWAYS ALWAYS update Android Studio before writing code and doing changes.
- Whenever something doesn't make sense, you can always select it and hit 'Ctrl-B' or right click and select 'view declaration' or 'view implementation'
- As Noah would say, "Never optimize anything unless you absolutely have to. Your code can allocate 16GB of RAM and break several international treaties but as long as it executes in time there's no point in improving it."
- Control Award does not reward good or effecient code, it rewards the use of complicated sensors and cool looking graphs to do basic stuff in autonomous.
- Despite this, write a Control Award every time, expect to get awarded nothing.
- You have limited time, if you waste time writing comments, then that's time that can be used to write code. Don't spend too much time outside of practice to write code. Instead, be more effecient with your time in practice.
- AutoLib is your best friend, treat it as your bible or quran or torah. It will most likely do everything you need to do.
- Why use many word when few word do trick. Don't try to do some fancy algorithm only for optimized smooth turning. The less you understand the code that you wrote, the more likely it is to break.
- The more code you write that the bot uses, the more things there are to break.
- If you want to get points in auto, consistency wins the game, it is better to do less stuff more often than more stuff than less often.
- If you know 2+2=4 then you do not need to mathematically prove and write a research paper on why 2+2=4.
- The bot does not move if there is not code for it. Do whatever you need to in order to get a mental and/or physical space to focus on code.
- Knowing your audience is important in any presentation, your audience is engineers and scientists. Talk about stuff that would impress them.
- For the love of all that is holy, organize your code.
- Documenting code is 100x harder than writing code. Coding is a third marketing, a third testing, and a third writing code. Don't expect to spend all your time in front of a computer.
- Most of your time will be wasted testing something -> running back to your computer -> writing the code -> and plugging the bot back into your computer. Anything you can do to speed up that cycle, the more time you have to write code.
- Research, will always always always be a better use of your time than brainstorming. Only brainstorm if you can't find anything online.
- If you want a control award use super complex sensors, if you want points, do what everyone else is doing.
- Have a backup plan for everything, things will break and you will be stuck unless you have a plan B.
- It's better to make something that's bad than criticize it until it's good. Don't try to start by making a script that does everything. The cost of perfection is infinite.
If not for flailing around in the dark, you wouldn't learn code. The best way to learn is to leave you everything and let you learn on your own. There is 6 years of code in this repo and the archived 7776 repo. Use it to it's maximum potential.
Good luck, let us know how you do in competition!
/- Scott