views:

298

answers:

14

I do not know how to program but would like to learn

+1  A: 

So go to chapters and buy a book. For beginners I'd recommend java but will get flamed for saying this. The other option for first year at my university is Perl.

C++ is what engineers start with here too, so you have many choices as introductory languages.

But as for what I'd recommend, it would be picking up a java for dummies book or something like that.

Jean-Bernard Pellerin
A: 

if you are interested in web development you can start here

Issa Qandil
A: 

Welcome to our community. What interests you?

Might I recommend a ruby book? The one I am thinking about has lots of cool pictures.

GregC
I assume you're referring to http://poignantguide.net, right? Linking to it would have been helpful…
htw
We operate on the same wavelength. Sorry, I was in a hurry.
GregC
+1  A: 

Well your half way there you want to actually learn :). Google will be your best friend, also don't be afraid to just jump in and use public examples and try customizing them.

Chad Scira
A: 

You've come to the right place. Lots of very smart people here can guide you through your learning process. This is a site dedicated to answering programming questions. So, if encounter something during your learning process that you have a question about, this is the perfect place to post it.

JP Alioto
+3  A: 

You should start picking a programming language first... There are quite a lot of them and nearly all have advantages and disadvantages... I would recommend you learning Java first as it is on the one hand object-orientated and portable and on the other not that difficult for a beginner as C might be.

The best way to getting into a programming language is, to my mind, reading a book on it. There are really many books on programming and among them you will find many about Java. You could also try to learn it by reading online-tutorials and stuff but a book is normally better structured and easier to understand.

But the most important thing is to really program stuff! Do the exercises in the book you read (if there are...) or make up little projects on your own. By getting into new problems you will always (with the help of literature and the internet of course) find new aspects to discover and every project will make you a little better.

Hope you'll have great fun programming ;)

Kevin D.
+1  A: 

If you are interested in application development you can start here.

This link points to a book i wrote that caters to people who would like to learn programming from scratch. This book is now completely free to download, along with all the source code examples.

Gary Willoughby
A: 

As someone who is very new to programming themselves first sit down and ask what you want to do with it. The program I am in is very visual basic centric so I started off with vbscript and VB.net. I can see why they did that because the syntax is not to crazy but knowing what i know now i would have like to have started with java. If you are looking to do alot of things with the web go java(and html). If you just want to program I have seen some good begining books on python. Its very structured and will force you into some good habits.

Finally don't give up. I have a ton of fun writing code. However my vbscript course was taught by a prof who does not know the meaning of the term "plain english" so I really had to push myself to learn it. Computer code will push your brain. However once you get some of the concepts down you can do some pretty cool stuff with it. But like every thing worth doing its not easy.

Anthony
+1  A: 

Lots of good comments already posted.

Perhaps if you could tell us what area of programming your attracted to we could give you better advice.

Are you looking to program for web applications or desktop applications?

Richard West
+3  A: 

I would start by learning JavaScript. Get a book, or find a tutorial online like the one at wc3schools.

Here is why I think it is the best starting language:

  1. Its easy to learn
  2. Comes with every major browser.
  3. You can see the results with a nice GUI

Then when you get the hang of it, you can move on to other languages.

Unknown
It also has closures, but it's pretty wonky.
Chad Okere
JavaScript is a nice intro language, since it's uber-flexible. The only concern I would have is that it might allow beginners to develop bad or sloppy habits that won't translate well when moving onto stricter languages…
htw
Plus if you’ve got Firefox with the Firebug extension, you’ve got a console for JavaScript right there too.
Paul D. Waite
+1  A: 

Start with Structure and Interpretation of Computer Programs. This is a tried and true textbook on programming, available for free online. The lectures accompanying the book are available for free on Google Video. In this course, programming is taught using a general-purpose programming language called Scheme. This is a good first language because it is simple and easy to understand. In fact, you will know essentially ALL of it by the first lecture. You can get Scheme here.

Have fun learning to program.

Apocalisp
SICP is pretty hardcore for a complete novice, you have to admit. I mean, it (was) MIT's intro textbook after all.
htw
Not at all. The book doesn't even assume you know what a program is.
Apocalisp
A: 

This may seem odd, but I would start with test driven development. Well, write a "Hello World" program first. Search for xUnit, nunit, junit, pyunit. Whenever I learn a new technology or language (every year or two), I start with unit tests. Here's how unit testing works.

You say, "I want to right a function that returns 'Hello World'". So, you right a test like this. (The following is total psuedocode)

[Test] 
void FunctionReturnsHelloWorld(){
  result=MyClass.HelloWorld()
  Assert.AreEqual("Hello World", result);
}

You work on the test until it compiles - the syntax is correct. Then you implement your function. Why is this a great way to learn? You set a goal (the test) that you can accomplish in 15 minutes. You then implement it. It keeps you focussed. Test frameworks are also easy and light weight. You don't have to worry about complex graphic interfaces, data access, and other things (unless that is what you want to test). Because you wrote the test first, you know you wrote the code correctly. It's like having an instructor grade your paper immediately.

In an entirely different direction ... a couple programming languages you probably already have access to.

If you have MS Office, you have a programming environment. Open excel, hit Alt-F11 to open the Visual Basic Editor. Ctrl G get's you the "immediate" window. In the immediate window, write your first "program"

Print "Hello World"

That's VBA. I abandoned it a long time ago because it's hard to test. Batch files are also easy. If on windows, open a command prompt.

echo Hello World

I haven't abandoned batch files and the command prompt yet, cause they are so darned useful.

Precipitous
Seriously? You’d start with Test-Driven Development? I reckon to be able to write a test, you need to be able to imagine (or design) your code, i.e. what classes, methods, functions, whatever, you’re going to have.I think it’s difficult to do that until you’ve written a fair bit of code, and got an idea for what sort of designs work.
Paul D. Waite
A: 

I will be teaching a beginning programming class at the high school level next fall, and I'm going to use Processing, along with the book, Learning Processing, A Beginners Guide to Programming Images, Animation, and Interaction. Here is why I made these choices.

The Processing environment is free, runs on Windows, Mac OS, and Linux, and is easy to install and run. It has a simple user interface where you just type in some code, and click a button, and it runs. Processing was originally designed for artists to be able to learn to program and build their own tools for creating digital art, but the rich graphic capability it has makes it easy for anyone to quickly learn to build some interesting programs.

The book I chose is one of the best computer books for non-technical people I've seen. It slowly builds concepts, has lots of examples, and helpful exercises.

I've enjoyed playing with Processing. It reminds me of the days I learned to program in BASIC on an Apple II. However, Processing is a modern programming language based on Java. Indeed, if you follow the Learning Processing book to the end, you will be using full Java in the last chapter.

Greg Graham
A: 

The best way to start is to find a problem you want to solve. It helps if it's not too hard the first time around;

I have an app I use that opens or creates a text file named with today's date, in an editor (I use gvim). I use it for logging time, but it's a good example of a simple problem that you can solve in MANY languages. Powershell, C, C++, C#, VB, etc. etc.

Really, programming is all about solving problems, so if you figure this simple one out, you'll be ready to find the next utility/tool you want to write.

Good Luck!

John Weldon