Take the 2-minute tour ×

What is the easiest way to learn computer programming?

Can anyone suggest some books that would help?

share|improve this question

closed as not a real question by st0le, Conrad Frix, Guru, Shree, Perception Mar 18 '13 at 6:16


I've made the title more clear and cleaned up the question to make it more readable. –  Simucal Oct 5 '08 at 16:34
There is a related question, with many useful material here –  Decio Lira Oct 5 '08 at 17:27
This question needs to be closed! –  shnisaka Mar 18 '13 at 1:42

13 Answers 13

I'm not sure what your situation is but I can give you an idea of my background and how I got into it (A history of the past like 15 or 16 years).

When I was in Jr. High I got a Mac Plus for Christmas one year. It came from some engineer and he had some cool programs on it: HyperCard and Basic were my favorites. You can kind of imagine HyperCard as being a kind of pre-web web-like programming environment. You could draw lil power point like slides with graphics and then script them. So I made a point and click adventure and got some cheesy animation working. I then coded a text based Jurassic Park game in basic. None of this was terribly complex but it got me dabbling in programming and helped me learn about basic if-then structure.

In high school I made programs for the TI-82 graphing calculators. Nothing fancy, I wasn't one of those doing tetris clones or anything, but I made some programs to help me in my math classes.

One of my first jobs out of high school was in customer service at AT&T Wireless. While I was there I was always trying to make something cool in Excel to show off to people so I could get some attention and get off those damn phones. The first thing I made in Excel that garnered attention was a supply ordering system that used an Excel spreadsheet located on a network share as a database (haha I hate when people do that now). I wrote the whole thing in VBA and created win forms inside of the Excel program to make the program look more like a real program. It even had some cheesy encryption to prevent anyone from circumventing my forms and just fiddling with the Excel data itself.

That led to one of the supervisors securing me access to one of the local Cold Fusion web servers and DB's so that I could port my Excel app to the web. I hated HTML. Absolutely hated it. I forced myself to play with it and got the project done. Won a trip to Hawaii for it.

Finally I left AT&T because I wasn't going anywhere (I had been promoted to internal tech support but after four years of being there that wasn't quite enough). I found a web developer job at a super small company getting paid a pittance (like 28k or something). While there I had began to learn C# (I bought the Deitel & Deitel C# book in a moment of ambition). I chose C# because I naively thought it was just the next version of C++ and because I saw a lot of jobs for it. SO after a few months of working at this small company, I found a C# gig at a company with like a thousand employees and the rest as they say is history.

(Oh yeah, somewhere in there I also took a C++ class at a local community college)

I've continued that pattern of self-driven learning throughout my career and it's made me very successful at what I do. I'm now moving into more computer science oriented learning and my career is changing to reflect that. Just dig your heels in and learn by doing projects you enjoy all the while and your career will always be on the rise.

share|improve this answer

Learn to program

I have been programming for more than 20 years and found this book really interesting.

share|improve this answer

This was the first thing I could think of: Link

share|improve this answer

The way I began to learn programming was to find a simple program and change it to do something slightly different. Just experiment a bit... If you break it, undo your changes and figure out why they broke it.

share|improve this answer

I have written a book that is targetted directly at new programmers. I have written it to help with everything when starting. There has not been one bad review of it yet after a great many copies sold.


PureBasic - A Beginner's Guide to Computer Programming.

  • 300+ pages
  • Easy to read and follow layout
  • Many diagrams included to explain topics in more detail
  • A complete reference for all core language features
  • Help on how to use the native Helpfile, IDE and Visual Designer
  • Guidelines on writing good code
  • Tutorials on creating graphical user interfaces
  • Examples and explanations of 2D & 3D graphics and animation
  • A whole section devoted to simplifying advanced topics
  • Large Appendices containing Internet Links and helpful charts
  • A full computer science glossary to educate new programmers
  • All programming code examples can be downloaded

You can find a downloadable copy here:


EDIT: This book has now been released under a creative commons license and is now free to download.

share|improve this answer

In my view you should not really learn computer programming for the sake of learning computer programming. Try to find a small project that you want done and then just learn about the things you need for completing that project (language, technology, etc.).

If you already know the area (for example "I want to learn C programming") this is even better, pick a project in that area and try to learn everything you need to complete the project.

This is because the computer programming domain is very very large (you can do a lot of stuff from web applications to mouse drivers) and you probably don't want to waste your time on learning something that you won't use.

share|improve this answer

I recommend Chris Pine's "Learn to Program" as a good book to start with. The book uses Ruby and expands on a free online tutorial also by Chris Pine. You can find the tutorial and more info on the book at http://pine.fm/LearnToProgram/.

After you worked(*) through "Learn to Program" solving small puzzles will probably help you more than reading other books. Most books on programming languages follow the same structure (i.e. start with a "Hello World!"-program, then cover conditionals and loops and then introduce object-oriented programming and error-handling). It will soon be boring to work on the contrived example programs of those books.

Instead, pick a language you want to learn (or stick to Ruby), find a good reference online and figure out how to make some of the examples from "Learn to Program" work in that language. After that try solving some small puzzles like Sudoku or the n-Queens problem in that language or implement some famous algorithms (e.g. Quicksort and Dijkstra's Algorithm). You can find many more puzzles e.g. at RubyQuiz. After you feel comfortable solving puzzles in one language try to solve them again in another language or learn to program graphical user-interfaces in your favorite language.

(*) Don't just read the example programs. Make sure you type them into your own computer and try to make small changes to the examples. That way it's much easier to understand how a programming language works.

share|improve this answer
+1 for the tip on example programs... the whole point is to type them in change them, break them, fix them again... that way you actually understand what's the code is doing –  Hamish Smith Oct 5 '08 at 19:49

Try Python. Download ActivePython and use "How to Think Like a Computer Scientist", a free e-book that explains things well for a beginner. Python is known for having an easy to read syntax.

Also, go to Try Ruby, which will give you a walkthrough on how to use some basic features in Ruby without requiring any knowledge coming in.

share|improve this answer

Read "C Programming: A Modern Approach", by K. N. King (or a comparable book) and follow along in a programming environment.

I don't even program in C anymore, but all the fundamental concepts of programming that I still use to this day I know thanks to that book.

share|improve this answer

Several different ways come to mind. One is to an application that you really like and see if you can create a subset of the features. It may seem like a lot, but it will focus you toward finding resources and maybe even a few simple references as to how something was done. From this exercise you'll pick up vocabulary and concepts that you'll have to further understand and develop as you progress.

Another way to create batch command / utilities/ macros that will automate functions on your system. This will introduce you to the concept of variables, commands, logic, etc. There are plenty of examples that you can draw from. This approach may have a more immediate gratification for you as the scope or level of difficulty will be more finite and you'll produce results more quickly.

Finally, you can start with some books that discuss networks, computers, scripting and programming that are for a general audience. The Cookoo's Egg by Clifford Stole is a really engaging book that can lead to more in depth interests. It's a good starter that can introduce to many different concepts that are still important to understanding systems even today.

share|improve this answer

First off, pick a project where you have expectations set by another person. Find a co-worker, family member, or friend that needs an program to do some simple task. This way you can't easily get the good old "side project slump" and never go through the critical last 10% off the development cycle.

Its really important to reach a place where users are finding bugs and experiencing usability issues. Everything before that could be considered fluff because your only goals are to satisfy yourself and not the main consumers of your programming work. Once you have to start dealing with usability issues and maintainability its when you really start learning things.

Second, read the Pragmatic Programmer and the Mythical Man Month. Both of these books can be grokked by non-programmers and help teach you how to learn rather than what to learn. Focus on good practices all the time rather than a specific language syntax or framework. One language's "if" conditional works just like another's but learning how to develop programs responsibly and effectively is what makes you a good programmer.

share|improve this answer

The Pragmatic Programmers series has, in my opinion, very good introductory books for beginners on various topics. You might want to have a look at Learn to Program Using Ruby.

share|improve this answer