4

I'm sixteen, I'm overly interested in programming, and I'm currently taking IT classes during my mornings in high school. Last year, I tried teaching myself to code. It was quite exciting, but all I did was watch TheNewBoston's videos on YouTube for Python.

After his tutorials, I just did research, made some CMD programs, and that's it. After that, I got cocky and got my feet wet in many other languages. Java, C++, C#, Perl, Ruby... and it overwhelmed me. Which made it less fun to code. I want to go to college for a 2 year programming course. And I want to make writing code my profession.

But how do you recommend I attack re-learning it all again? Start with Python? Don't even try? Also, I'm not 100% in math, but I'm good friends with a lot of programmers, who say they suck at math, but manage to code just fine.

I'm not looking for negative feedback. I just want the proper head-start on things before college.

yannis
  • 39,547
  • 40
  • 183
  • 216

2 Answers2

12

I suck at math, but I manage to code just fine (I think?).

Now that that's out of the way, you've already identified the root cause of your problems, you got cocky. A better description might be over enthusiastic, and it's quite common mistake, we've all done it in the past. Coding is exciting, and programming in general is a unique blend of art, science, engineering and... magic ;) But you really need to slow your pace and come up with a solid learning path. Don't code just for the fun of it, the boring parts are important as well.

One tip would be to focus your learning in creating small (but non trivial) projects. If, for example, you're interested in web development, build yourself a simple blog engine. Yes, it's the most trite example there is, but do it anyway, the reason everybody does it it's because it combines all the basics you'll find in almost any web application (basic CRUD: users, posts, comments).

Python is good enough as a first language, as is Java, Ruby, C, C#, C++, Haskell, PHP, Visual Basic, etc1. Just pick one and stick with it, at least until you can honestly say that you are being productive with it. It really doesn't matter which language you'll pick, and beware than when asking chances are people will (perhaps unwittingly) direct you to their favourite language instead of a language that's suitable for beginners. I'd also advice against trying to learn two languages at the same time, you need to get a solid foundation first, and learning two languages in parallel might do more to confuse you than teach you.

There are several Coursera courses you could follow, and learn in a more structured way. There's also a ton of free resources for every popular language, if you go with Python I'd recommend Learn Python The Hard Way. It might seem extremely boring (it's a very basic book), but you really should go through all it's exercises, I did, regardless of my 10+ years in the field (crap, I'm old). Same with any other resource you might choose to learn from, just don't be hasty, you're sixteen, you have time. Right now your "job" is to learn, and learn well.

Programmers is also a great resource, and so are the rest of the programming friendly sites of the network:

Familiarize yourself with the sites, and use them to your benefit. We are all here to help, all we ask is that you show us a little bit of effort (and reach each site's FAQ thoroughly before you ask your questions).

Further reading:

Related questions:

1 I'd avoid Perl right now, only because Perl 6 will bring some major changes to the language. Still one of my favourite languages, just not a good time to learn it if you are a complete beginner.

yannis
  • 39,547
  • 40
  • 183
  • 216
  • Perl 6 has been in development since 2000, and there is still no "complete" implementation. I wouldn't hold my breath... – JesperE Nov 19 '12 at 09:16
  • @JesperE I know, it's a very weird state of affairs. Pugs, then Parrot and NQP, then Rakudo, etc, and we still aren't close to a canonical Perl 6. I don't really keep up anymore, it's just too damn confusing. – yannis Nov 19 '12 at 09:20
  • @YannisRizos: +1, nice answer. And I agree with the Perl thing. I kinda default to using Perl 5 and ignore Perl 6 for now, but that may indeed not be the best idea for beginners (and I wouldn't really recommend Perl too much for beginners anyways, at leat not as the first language to use decently). – haylem Nov 19 '12 at 09:39
  • @YannisRizos Apparently there will never be a "canonical Perl 6", instead there will be a specification and an "official" test suite. Which is good, I guess. – JesperE Nov 19 '12 at 15:57
-2

What would you like to code or what would you like to develop using your compiled code.

You can develop Softwares or Chips or Web.

When I first started learning programming, I took the fun road. Developing Static HTML Pages. It will introduce you to basic syntax.

Then make your way using C++. By producing: Hello World!, Input number: Output Word of that number, Fibonacci.

Then I am guessing after that you will be more interested in your school projects that is: Developing Systems or games.

My suggestion is to start off using C++ then move to Visual Basic.

Sid
  • 127
  • 5
  • thats my suggestion, suggest your evolution. not all coders would like to stay in C/Java platform. some wants the UI programming. – Sid Nov 20 '12 at 01:25
  • My comment has disappeared. I stand by what I said though; I dont understand why anyone would regress from C++ to VB. If you want to do UI programming then C++ has the Windows API or third party frameworks like Qt. Ditto for Java; except it has a thorough UI toolkit contained in the language itself. – Fergus In London Nov 20 '12 at 22:57