There is a good article in this months Maker Magazine where someone made the comment that Robotics fascinates them because of all of the various disciplines that one has to have to build robots. This got me thinking about everything that you would need to understand in order to be proficient at building a robot. It also got me thinking about all of the different people who ask me questions both on this forum and off this forum.
To build a custom robot you require some knowledge in the following areas (list isn't comprehensive)
Various programming skills at different levels of the robot
Graphics and design
3D printing possibly (which brings with it similar skill requirements) or some other manufacturing technique
Brain storming and problem solving
Decent communication skills.
Ability to work with others.
No fear of learning new things
Ability to keep up with and adapt to ever changing technology improvements in any of these areas.
Not all of these are essential and it is possible to learn enough to get by in some of these. There are options to get around most short comings in most of these areas, but the more of these shortcomings that people have, the more frustrating it will be for them. There are ready built robots like the EZ-Robot robots that take a lot of the need to understand these areas out of the way but depending on how far you want to take one of these, there will always be a need to understand some basic programming principles. ARC removes a lot of this need, but to really use ARC in the way it was designed to be used, the person has to have some basic understanding of logic and programming. This will get you by and many will be happy stopping at this level of knowledge.
To take your robot hobby to the level that most really desire to take it to, I think that all of these are required but most importantly a strong desire to learn new things daily. I can tell you that I have many many many more failures than successes. For example, when writing code for something, it may fail 20 times before I get it right and working and each time that this happens I learn something new. I am sure that this is the experience for most programmers and especially for people in this hobby. Having a strong understanding of all of these different disciplines is not an easy thing. Giving up isn't an option for me. It's not in my nature so I brute force through an issue that I don't always understand completely.
There are also many who help me because of relationships that I have built. These relationships are probably the most important thing to being successful aside from a burning desire to learn new things. These relationships are very valuable to me as they also help to learn new things. Google is also a key contributor to my successes (spoiler alert) along with every other person I have ever worked with that is successful at what they do. Burning bridges is not something that I take lightly at all, but I have had to burn a few in my day.
I can think of no other hobby that requires the massive volume of understanding that is required by this hobby. Again, new products come out all of the time that make each of these less critical than they were 5 years ago, but still, an understanding is essential for these also. I say this just to paint a realistic picture. This hobby isn't for everyone. Many will like robotics but few will truly grasp what is going on. Many will want to use robots but few will be able to build them. In my experience teaching this subject to some very young students, 1/2 of the students didn't care about robotics. Of my student population, about 1/2 of the ones that cared about robotics could grasp simple concepts and use what others had developed to do things with robots. Of these about 2/5 I could see doing something with robotics because they really grasp what was happening. So, from my experience, about 1 in 10 people could have a potential to be successful at understanding robotics. There is a pretty high likelihood that this person doesn't have the drive to learn new things. In my work history with people who are in technical professional careers, I have seen a shift from people having general knowledge about a lot of topics to very specific knowledge. People are not willing to take it upon themselves to dig into things that are outside of their comfort zone as a rule. Family and other things get in the way along with other responsibilities. I would say that in my 20+ years as an IT professional, working with thousands of different people in the same field, there are only about 100 that I would say had a desire to step outside of this comfort zone and learn new things. If we take this and the number of people who would have the potential of handling this wide range of disciplines we are to 1. About 1% of the population in an advanced culture with more technology available to them than anywhere else in the world would have the desire and capability to build robots. I would say that I have never met anyone who didn't have some shortcoming in one or more of the areas mentioned above though...
With that said, it really comes down to how much time and energy someone is willing to put into learning everyday. This is not a hobby that will simply give its answers to you. There is a lot of scratching and clawing for answers. If you are not willing to fail repeatedly while scratching and clawing, this isn't for you. Buy something that someone else has built and live with its shortcomings. Be content with not having a robot and spend your time and money in different areas.
I once worked with someone who was the best teacher I had ever known. People would bring him issues and he would simply send them a google link or send them a simple example of exactly what they were asking for. He was a 21 years old programmer and very smart. He would hardly ever ask questions to people because when he needed an answer he would dig and learn until he found it. If he did ask, it was more of a "give me a general idea of how this works" type of question. It takes this kind of determination to self educate to be successful in robotics.
Don't get me wrong, ask questions and do everything possible to understand the answer given, then take this and dig deeper into the answer to learn more.
Just my 2 cents. Feel free to add. I just had to get it out of my mind...