I'm 16. I started programming about a year ago when I was about to start high-school. I'm going for a career in programming, and I'm doing my best to learn as much as I can. When I first started, I learned the basics of C++ from a book and I started to learn things by myself from there on. Nowadays I'm much more experienced than I was a year ago. I knew I had to study by myself because high-school won't (likely) teach me anything valuable about programming, and I want to be prepared.The question here is: how important is it to study programming by oneself?
How important is self-teaching in the programming field?
learning;self improvement
It's critical.  I don't think I've ever known a good programmer who wasn't self-taught at some level.  As a hiring manager at a large company, I can say that a candidate who describes personal projects and a desire to learn will trump one with an impressive degree every time.  (Though it's best to have both.)Here's the thing about college:  Computer Science courses teach theory, not technology.  They will teach you the difference between a hash table and a B-tree, and the basics of how an operating system works.  They will generally not teach you computer languages, operating systems or other technologies beyond a shallow level.  I remember back in the mists of time when I took my first data structures class and we got a thin manual for this new language called C++ that they'd decided to start learning.  We had two weeks to pick it up enough to write code.  That was a good lesson in and of itself.  That's the way your career will go.Your school will likely not teach you what you need to get a good job.  Schools often trail what's hot in the industry by many years.  Then you'll get a job.  Whatever company you go to will almost certainly not spend any particular effort to train you.  The bad companies are too cheap, and frankly the good companies will only hire people smart enough to pick it up as they go.I graduated college in 1987.  I went to work as a C programmer with expertise in DOS, NetBIOS and Terminate-and-Stay-Resident programs.  In the years since, I have had little if any actual training.  Look at the job ads... not much call for those skills!  The only reason I can be employed today is because I've spent the intervening years constantly learning.  To succeed as an engineer, you have to have the habit of learning.  Hell, I'd go beyond that: you have to have the love of learning.  You need to be the sort of person who messes around with WebGL or Android or iOS because it looks fun.  If you are that sort of person, and maintain the habit of learning, you'll go far in the industry.