A list of interesting resources for 1418 programmers.
These tools must be learned by all programmers on the team.
- Download and use Atom or another capable code editor.
- Learn Command Line on Codecademy
- git gud
- Learn the GitHub web interface
- Learn Git
- Use these two commands to tell git your GitHub username and associated email. This way your commits will be recognized by GitHub.
- Pass the team GitTest under the supervision of a programming team leader to gain admission to the team GitHub organization.
- Read and follow our team style guide. Everyone needs to follow these guidelines so that our code is clean and universally understandable.
- Learn Markdown to be able to write good READMEs.
- Understand open source licensing. We generally use the MIT license on our code.
This section encompasses material that is mandatory for all robot coders to know.
- Python
- Powerful general-purpose language, useful for everyone even those not on Robot Code team
- Python on Codecademy
- pyrobottraining - learn how to use Python for robot code
- Examine last year's robot code
- Go through the uncommented version of 2016's code and write code comments explaining each part. This helps most people figure out how robot code works.
This section encompasses material that is mandatory for all UI coders to know.
- Web languages - used on robot dashboard and elsewhere
- HTML/CSS on Codecademy
- JavaScript on Codecademy. Some optional frameworks to learn about:
- Learn to use the FRC Dashboard dashboard development framework.
- Complete the FRC Dashboard Training Module
- Take a look at our dashboard code
None of the following information is mandatory or directly related to our team's operations, but for those interested in furthering their programming knowledge are encouraged to make full use of these resources.
- Sign up for the GitHub Student Developer Pack. This will allow you to have unlimited free repositories and a bunch of other nice benefits, all for free.
- If you haven't learned it in Computer Science class (which you should make an effort to take as soon as possible), learn basic Java on Codecademy.
- Check out zsh with oh my zsh
- Learn basic image editing with GIMP.
- Don't Use Microsoft Word
- Learn to build websites and work on the team website (GitHub).
- Learn the web languages mentioned in the UI requirements section above.
- Make your own website to familiarize yourself with how websites work.
- Learn to Deploy a Website on Codecademy
- This course also teaches the basics of Jekyll, a static site generator used on our website
- SASS on Codecademy - a CSS preprocessor we use for our website
- Learn to draw the photos on the Team page
- Ruby - a really fun and powerful language to learn
- Ruby on Codecademy
- Rails on Codecademy - a framework for using Ruby for back-end web development
- Familiarize yourself with cryptography and security.
- Learn to use Regular Expressions - they're cool
- Qt (with C++) - a very nice way to make GUI apps
- Haskell - a great intro to the functional paradigm
- Learn You A Haskell For Great Good! - simplistic, eli5 book to learn the basics of the language.
- Real World Haskell - a slightly more in-depth book which does a good job of showing how to actually use the language in day-to-day programming.
- UVA CS 1501 Haskell Intro Lectures - a set of lecture slides by a GMHS alumnus
- TeX - similar to Markdown, but much more advanced with support for mathematical equations and other advanced styling.
- Machine Learning - super useful, interesting, and impressive skill to be familiar with
- Stanford Machine Learning on Coursera - incredible, free (sans certificate) 11-week course. Can be done faster if you like, but teaches enough information to fill that time with ease. Note-taking highly recommended.
- Learn some other skills from the Google Student Technical Development Prereq List
- Summer Programs
- If you can possibly fit it in, take Personal Finance and Economics over the summer as early as you can. You do not want to leave this for later. Talk to your counselor for more information.
- VASTS
- MIT Marine Autonomy Bay
- Virginia Governor's School for Math, Science, and Technology
- Books - many of these are available at Mary Riley Styles Public Library, at which Falls Church residents and GM students can get free cards.
- Steve Jobs by Walter Isaacson
- The C Programming Language by Dennis Ritchie and Brian Kernighan
- The Cathedral and the Bazaar by Eric S. Raymond
- UNIX: The Complete Reference, Second Edition by various authors
- Movies/TV
- Spare Parts - About a robotics team composed of undocumented high schoolers who beat MIT in the UCSD Underwater Robotics Competition
- Mr. Robot - Realistic (!) hacking drama show
- Podcasts
- The Changelog (including subpodcasts)
- Software Engineering Radio
- CodePen Radio
- Apps
- Enki - Daily programming tips and "workouts." Great for learning new tricks in Git, Python, Java, CS Theory, Web, JavaScript, and more.
- Look through the original awesome list. There's lots of great resources listed there on every programming topic that exists.