I am a High School student and a beginner coming to Robotics and I have no idea where to start. I have spent days searching tutorials and books I could read to start building and programming my first robot but most of them just makes me much more confuse, most of them requires me to buy pre-assembled components and just assemble the components I ordered as a puzzle, but I want to learn to build a robot from scratch.

My questions are: 1. What should I read / learn first? 2. What programming language should I use? (I know a variety of programming languages. C++ being the one I know the best ) 3. What should I learn from physics? ( Circuits, Electricity, etc ) 4. How do you think I should start from this point where I know absolutely nothing but to program?


3 Answers 3


I am a graduate student whose research is applied to robotics. I recommend:

  1. Linear algebra and Calculus
  2. Basic programming skills, learn arduino and another language
  3. Electronics courses - basic electric circuits
  4. Mechanics courses - statics and dynamics
  5. Control theory - as much as you can

I would recommend pursuing a degree in either electrical engineering, computer science, or mechanical engineering. Also, I cannot over emphasize how important learning control theory is. It is the basis for getting your robot to perform in an optimal manner. However, you really should learn the above first before moving on to control theory.


I agree with what @PrestonRoy regarding the academic aspects.

But, there is a big learning by doing component too. The earlier you start the better. Don't wait until you "know everything you need to".


In the process of doing, you will learn a lot about what robotics is what your need to learn.


Last year my Freshman son told me he was joining our Robotics Team. When I asked him what her wa going to do, he said "they need a CAD guy". My response: "Jeremy, you don't know anything about CAD." His response: "Dad, have you ever heard of YouTube?" LOL. Last year our team won our first award for Robotics Design, thanks A LOT to his CAD work.

There are LOTS of opportunities at the High School Level

Here are the programs our High School participates in:


  • If your High School has a team, join it.
  • If not, find another one locally.
  • If not, start a team.

If you need help, I can help - I would just need a bit more regarding where you are located.


Answering for others with the same question... I understand the OP has long since moved on

I don't disagree with the others here, but have a different take. Direct answers to your questions (with an FTC Robotics perspective in mind):

  1. Just as you need at least a minimal computer to learn programming, you will need a at least a minimal robot to learn Robotics... You are going to have to acquire something. 2 motors bolted to a hunk of metal with a Rev Expansion Hub, 2 (FTC compatible) android phones, and a Logitech controller are about the minimum you can get away with. Unfortunately it's about a $400 minimum investment. Hopefully your school or club will supply these things. Start with learning to build (by doing it) a minimal or better physical robot.

  2. For FTC, you have only two choices of programming language... Block programming as available in the FTC controller apps, or Java. Even though you know C++, review and play with the blocks for at least a few minutes before diving into Java. This will give you a sense of what others find important, etc. As blocks are just a visual representation of what someone else wrote in Java.

  3. You will need to know some very basic electronics... The idea of positive and negative voltage, etc. But really nothing else comes up in FTC until the highest level of competition. I'm not saying you shouldn't strive for that. But it would likely be an inefficient use of time to start studying any particular subject based on a recommendation here, when you will soon see exactly what is important to you by getting to the point where you need skills beyond what you already have.

  4. I recommend building a robot. Then deploy one of the built-in sample programs (op modes) and get it to work. Then get into that program and change it in some way and get that to work. By the time you have done that, all of this advice will be obsolete and you will be well on your way.

Good luck!


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.