Just a word of caution to all who take their first steps in the world of programming languages - don’t concentrate all your efforts on learning only one specific programming language! A programming language is just a tool like a pencil, brush or a graphics pen in the hands of an aspiring master. It’s just a way to express yourself, not much different from verbal communication. Knowledge of programming may help to solve the task, but it definitely doesn’t change the way you think. I have chosen several important aspects of programming which we should not forget.
Don’t concentrate all your efforts on learning only one specific programming language!
If you code, you have to read an incredible amount of information. The significant part of your study should involve reading. Not less than 70% of working time is spent on studying code written by others, analyzing project documentation, specifications, standards, instructions, comments, etc. And I mean not just reading abilities. It is very important not just to read, but what is more important to understand, analyze and digest information which surrounds the code and code itself.
Actually, in fact, this is the most important aspect of any task. If you don’t know how to solve the problem without code, alas, you don’t have a chance to solve it even if you know all programming languages created in the whole history of mankind.
Most modern programming languages support object-oriented programming. To put it shortly, as soon as you understand how OOP works in any of those languages - you shall cover more than you know. Better learn this paradigm from the beginning, especially if you decide to work with a low-level programming.
Quite obviously you would not start your career as a chief architect of a large project, but you have to understand the basic knowledge of software architecture - Model-View-Controller pattern and the ability to read UML diagrams as a minimum. It will be useful especially when you start working as part of a team with well-established architecture and you will be the one responsible for translating beautiful diagrams into snippets of code.
Any developer should know how it all works under the hood. What is RAM and how it’s used, how to receive an input keyboard with further processing, and how does processor work? Maybe it's not directly useful to you, but even for the web developer, knowing what are the bits and bytes and how does it work is quite important.
Perhaps you might never come across databases in your engineering career, but it is extremely interesting area that can be of great use. So it's better to go through the basics of SQL even just to understand better how everything is arranged inside, and how it can be used in the future.
Many skills required from programmers may not be even related to programming languages. In fact, languages just provide an opportunity to implement solutions to problems. The task of developer is to come up with the solution and wrap up in a nice little package. Never underestimate the developer with insufficient knowledge of a specific programming language. He/she can surprise you with the knowledge and solutions you wouldn't expect to find! :)