A few weeks ago a student came into my office with zero previous programming experience, or exposure to programming, but wanted to take on a project that would involve a significant amount of code development. The scripting language being used was simple enough, and he seemed quite eager, though I still thought it a very tall order given his complete lack of knowledge in the area (and told him this). I still wrote the code for him, and gave him some pointers, amoung which was the requirement to read some introductory material on the language he was learning, and not to give up if something didn’t work correctly – tinkering and curiosity is a very large part of successfully learning development (and programming) skills.
Today, despite giving him instructions (that he largely ignored) and not reading any reference materials on coding in this language, he again came to my office quite unhappy that he didn’t understand anything, and that his code wasn’t working. I went through the instructions with him and told him to read reference material to at least gain a basic understanding, and he left happy now that things were starting to work.
I’m not saying that this is a completely analogous situation to the one you’re in. But I think that one of the messages in the story is the same, for many situations, and is one that I’ve heard so many times. Ask yourself if you feel that it would be possible for you to, easily, without any major issues, develop a complete working program for a processor you’ve never used before in a high-level language not designed for beginners (C) that you’re not familiar with. Regardless of your answer, the likely outcome is ‘probably not’, but there’s a lot more to the answer than that.
Sometimes a situation that we encounter isn’t that we don’t know how to do something (as in the above case), but it’s that we /don’t know/ what we don’t know, and so we can think something is easy when really we’re even unsure of the process we’d use to go about finding an answer. Thankfully this isn’t a bad thing at all, it’s a wonderful thing, and it’s how we acquire much of our knowledge – especially when we set ourselves to develop a project that interests us, but we have no idea how to accomplish it. We progressively learn the skills, one at a time, that take us ever closer to completing that project, and starting an ever more interesting and complex one.
Please don’t be discouraged that you may have set yourself up for a project that will take more learning that you originally thought, or that your current sources for learning these skills hasn’t provided you all that you’d hoped so far – remember, finding /excellent/ sources of information for learning at your personal skill level, level of knowledge, and learning style is not at all something you can assume will be easy to find.
Is it the responsibility of a company to tell you what you require to use a certain product? Well, probably so, but at the appropriate /level of knowledge/. It would be appropriate to say that you require 3 volts to power the device, but not to detail how one would build a power supply, what each of the parts in the supply does, why they’re important, how they work, and so on. In every field (and subfield), a certain basic level of knowledge and familiarity is assumed – otherwise people likely wouldn’t tend to communicate very effectively, or at least not very efficiently. I sympathize and encourage you to further develop your knowledge, and am happy to hear that you’re interested in embedded electronics, but it’s certainly not the responsibility of a company to teach you all of the skills and knowledge you’ll need to be able to use it in your project.
I hope that helps