Wait, what? Age 13 = 13 years old?!
And you're owning your own domain and site? I really need to know what's going on here ...
Printable View
I started coding when I was 8 years old. I created my own website using a free web host (which no longer exists) that helped me set up my own site with pre-defined templates and what-not.
I still remember the first piece of code that I learned and why I learned it. I had just installed a guest book on to my website, and I was - for whatever reason - trying to figure out how to change the link that it went to.
I got looking at the code and noticed that it was something along the lines of:I figured out how to change it pretty quickly, and from there I just kept learning - usually learning when I needed to, using nothing more than Google and well thought out search terms.Code:<a href="http://example.com">View My Guestbook</a>
I moved from language to language, figuring out which ones I liked better than others, which did the job the best, etc. Getting in to the private server 'biz' helped me a lot. The first language I learned that was capable of making a binary application was VB.Net. I wanted to make a patcher for a private server I was the 'developer' of. I was either 12, 13, or 14 - can't remember exactly.
I taught myself through tutorials, documentation, and help forums - all which I got to thanks to Google. I eventually learned how to make simple applications, like an alert box popping up when you click a button, or a simple calculator. I moved on to slightly more complex things, like launchers, and eventually patchers.
After a couple years of working with VB.Net, I wasn't too happy with the overall syntax that VB.Net used. It was over-simplified in some manners, and just slightly odd in other manners. I decided to learn C#, which I learned the jist of in one or two days. The main difference was the syntax, so once I could wrap my mind around that, it wasn't too difficult to migrate my applications from VB.Net to C#.
I don't quite know what brought me to learn PHP, but I am quite certain that I started learning it a bit before I started learning VB.Net.
Recently, I have started learning ruby and ruby on rails for my job. I have also learned how to use CSS and Javascript effectively in complex scenarios.
Mid-2011, I decided it was time that I drop the .NET framework overall, which I was growing to hate, and move to C++. I knew a small amount of C and C++, but not much. I wanted to move a browser that I was building in C# over to C++. One thing I wanted was cross-platform support, as well as a Gecko or WebKit wrapper.
After looking, researching, and testing different possibilities, I decided to stick with a C++ framework called Qt. Qt was mildly similar to C# in some aspects, including the fact that it had a visual UI designer. Qt was also somewhat easy to pick up, even without much C++ experience. I started rebuilding my browser using Qt and Webkit. 4-6 weeks in, a couple of complete reworks, and constant reoptimization of the source, I had an alpha product ready. Because of how busy I am, I had to temporarily stop working on it in mid July, 2011. Symphony is still available for download, and has been successfully compiled on Windows, Linux, and Mac OS X. I even have a Ragezone thread for it.
Even more recently than that, I have learned how to professionally design a flexible, optimized database structure thanks to a guy who has a PHD in computer science and has been programming for over 55 years. The guy who I currently work under/with at a startup software company.
Over time, I have always been open-minded, not afraid to ask questions, and continuously improving my coding structure, skillset, and overall knowledge. Keeping code flexible, stable, optimized, and documented are skills that I do well, as I believe they are needed to be a good, successful, long-term coder, in terms of both yourself and your applications.
I have coded website designs based on just an image, I have created a fancy MP3 player, I have created a featureful browser, I have created a social media website(still working on that, it's nearing alpha, it's mildly similar to twitter or fmylife), I have created numerous patchers, I have created games(none with a graphic engine yet, started working on one recently but didn't have the time), and so many other applications that I can't even begin to remember.
While there are some languages I know much better than others, I know C, C++, Javascript, HTML, CSS, MySQL, MSSQL, PHP, VB.Net, C#, Ruby, and probably a few others that I can't remember right now.
Not to mention I have several years of IT experience.
That's my programming history.
I would say that my programming path started out like yours with me jumping from language to language after I felt I knew it best. I do aspire by the time I finish college to know roughly most of the popular languages enough where I can eve teach someone how to understand that language. You certainly have some history there, by the way.
I use books for almost anything I'm trying to learn.
Just like Ron said, on-line tutorials are often very lacking and fail to explain important aspects of a language, sometimes even misleading(especially to newbies).
For those learning C++, heres a good selection of books all of which are easy to read and manage to explain stuff in a very good manner.
Book Reviews - C and C++ Books and References - Cprogramming.com
It takes a while to go through all of them but it is worth it... and surprisingly I actually enjoyed reading them (except for 'The C++ Programming Language' by Bjarne Stroustrup - You learn A LOT but he is a pain to understand(I had to re-read stuff few times to make sense out of it))
Googling why ASP.NET sucks doesn't prove anything. All those links prior to your search are subjective assumptions, not objective. Just like what you did, it was a subjective assumption. It doesn't mean the language sucks, it is merely an opinion. After all, programming languages are preferences.
I learned programming similar to what s-p-n said.
Research/Reading
Trial & error
School (high school, and now college).
I don't want to go on and post every language I've learnt in the past, but I can simply say that my knowledge in programming is 'generic' or 'abstract'. Meaning I can quickly pick up a language, or understand code without fully knowing the language, because of my experience in multiple programming languages.