Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm a 15 year old kid who seems to excel in all of his classes, likes talking in 3rd person, and wants to learn more about programming and a little about html/php stuff. I already know a little python and I'm hoping to eventually learn Java/Javascript and C. I've been looking around and I've found some online lectures like this and some other tutorials that are so mind numbingly boring and difficult to understand.

I was wondering if any of you knew of any good books or other resources that would actually teach me everything I'd need to know incrementally?

share|improve this question

closed as not a real question by Mark Trapp Jan 27 '12 at 0:29

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

12  
My advice: grow a pair of hard buttocks. It is boring and difficult the first 9 times that you look at it. –  Job Feb 12 '11 at 3:56
7  
but this question is written in 1st person! –  pkaeding Feb 12 '11 at 4:43
1  
Hear this, when I was 15 I spent most of my time programming. The buttons you should be pushing are on people, teenage years go fast. Not saying don't program, just I think the resources you should be after come in packs of 3. –  Orbling Feb 12 '11 at 19:06
1  
Head First Series would be easy going –  Nips Mar 17 '11 at 7:16

10 Answers 10

up vote 3 down vote accepted

I've read Head First Java and I think its pretty good. You get the opportunity to learn the Java language, but it also tells a comical story. Also, Murach books (http://www.murach.com/) are also wonderful. In my opinion, they are some of the best programming books I've read.

share|improve this answer
  1. Google Code University has some good materials on programming, including a course on Python.
  2. If you can afford it, consider buying a premium subscription to TutsPlus. If not, at least check out some of their free tutorials on various programming languages and platforms.
  3. iTunes U has a TON of stuff for free.

  4. PROGRAM. Write stuff. Even to throw away. There is no substitute for actual experience. You can read a whole book on PHP and then sit down to write something and still end up staring at a blank screen. Get past that hurdle.

  5. Sites like Stack Exchange and Stack Overflow are excellent for learning. Not only should you read, though, but answer questions. Find unanswered questions, research the answer, and post. You'll gain rep AND learn in the process.

Happy coding!

share|improve this answer

When I was 15, I had a tough time just getting stuff to compile.

You've got a lot of advantages I didn't in the 12 years since I was your age.

  1. Linux is much easier to install
  2. Everything compiles a lot faster. (except Delphi, that always compiled fast)
  3. StackOverflow people joyfully answer questions where your CS teacher may have given you a blank stare.

You've also got a lot more distractions like Facebook and Cellphones.

So the advice I'd have is, take advantage of your advantages and don't let your distractions distract you.

If you can make something non-trivial (a project taking 2-3 weeks) you'll feel a lot more confident.

Any experienced programmer will tell you that the language doesn't really matter. But we all know how much awesomer it is to have something tangible (i.e. something your mom will be able to appreciate) - I'd learn C# for windows or Object Pascal for linux. If you're in for the long haul, you'll get your fill of Java in college and want to program something else in the meantime.

share|improve this answer
1  
This list of 3 advantages is golden! –  Jonathan Khoo Feb 12 '11 at 4:40

To learn web programming without having an actual server, I recommend installing XAMPP, an easy tool which installs Apache, PHP, MySQL, and Perl (and possibly Python too; if not you can add it) onto your computer so you can work with that stuff locally. I taught myself PHP and MySQL around that age just by creating simple web forms and later message boards and blogging engines.

The good part about web programming is it's not too hard to create something useful. The downside to web programming is that you don't learn the really low machine-level stuff that you would in C/C++, so I'd recommend learning that at some point too because it's important to understand things like memory management at the lower levels if you want to write efficient programs in high-level languages. Of course, if you create anything you'd like to show, personal web hosting and domains are really cheap nowadays.

share|improve this answer

If you already know some bits of Python, I'd suggest you continue with it. It is very good and a fairly easy to learn language, which will help you understand how programming works in general. When you feel comfortable with it, try learning C/C++. You'll discover a new world of unmanaged resources, that you have to deal with yourself. I'm talking about pointers, references, memory allocation, and clean-up.

Books: Python Wiki page has a list of introductory books. If you are into comics, then you'll like Head First Python. I simply cannot read their format. Makes me tired. But all other people say this book series is good.
One more thing. Don't lose your interest! If you feel you're stuck, that's perfectly fine. In fact it's good. The more problems you will have the more you will learn. Good Luck!

share|improve this answer

You could try to learn desktop based .NET programming via C# first. That's what I did when I your age(about two years ago). The application writing is easier so a lot less boring than say C or C++. Later you could learn ASP.NET and JavaScript if you want to learn web based programming.

For C# I used a book by Wrox - Beginning MS Visual C# 2008. It's pretty extensive and interesting enough.

share|improve this answer

There are free lectures available from UNSW http://www.youtube.com/unswelearning#p/c/6B940F08B9773B9F

It was a great resource for starting to learn C -- I only wish the examples were posted for the general public. You can still learn quite a bit, but the course was really structured around lab activities that are simply unavailable to the general public, so far as I know.

MIT also offers free lectures on YouTube. The original SICP lectures are on there, as well as some more modern lectures around Python.

You might want to stay away from the original SICP lectures, they're done in LISP. Some would argue that's the best way to start... and LISP has the potential to blow your mind... but the mind of a 15 year old is fragile, too fragile for LISP I'd say.

If you liked Python, by the way, you might consider Ruby. You could read Why's Poignant Guide to get yourself started. Personally, I think the language is a blast. It can do some pretty intriuging stuff, too.

Good luck in your endeavors!

share|improve this answer

Your local library is a good place to start. Take out a few books on the language of your choice and read them. There's lots of resources online too. Start by googling for: "{preferred language} {thing you want to learn to do} tutorial" (or example or sample)

Start simple. Don't try to write the next Facebook as your first app. Try a guess a number game and once it works do it over again from scratch. You'll learn a lot just thinking about the problem a second time.

Don't try using an IDE until you understand how to compile and run a simple application that you write with just a text editor. This is important. You would not believe how many folks never "get it" because they simply didn't learn the basics first.

Try setting up a virtual environment like virtualbox and configuring a server environment in there. Take a "snapshot" of the environment before and after you install/configure something. This makes it easy to recover from the mistakes you will make as you try new things. Also, never edit a config file without making a copy. I do "cp file.conf file.conf.ORIG" whenever I start messing with a file. This enables me to compare file.conf.ORIG to file.conf and see exactly what I changed once something works/breaks.

Learn to use a DIFF tool. WinMerge is great for comparing mostly alike files/folders.

share|improve this answer

There are some amazing resources out there now that are freely available but if you want a great place to start I'd recommend:

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/

share|improve this answer

Try Khan Academy, Software Carpentry.

Learn some C#. A lot of Windows programming is headed that way.

Learn some Ruby. A lot of "web stuff" is moving that way. On a related note, if you like python, checkout Django.

The Linux shell is an amazing tool - learn some BASH scripting.

Try some programming challenges (Python Challenge, Code Golf,Project Eurler).

Try some independent projects (lookup the internet wish list).

Hope this helps

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.