Quote Originally Posted by samuraicow',index.php?page=Thread&postID=190065#po st190065]Morning all :)

Good news! My best friend wants to learn programing with me :D.

Only issue is that he never programed a day in his life, well not beyond HTML (and even that for only short term) so I think learning Common Lisp while not following any book is a bit to much for him, and well lets go with the questions:
Is [url='http://www.amazon.com/Programming-Language-Prentice-Hall-Software/dp/0131103628/ref=sr_1_1?ie=UTF8&s=books&qid=1237485323&sr=8-1

Uhm....

I find it very difficult to learn a programming language out of a book.

My suggestion:
- Decide on a project or a few projects that you would like to develop.
- Design some forms/windows/web pages in the visual designer to get a feel for how things should look.
- Think about the kind of data/objects you will need.

At this point you start coding for the first time. So lets say one of your projects is to have a little "My Dear Diary" application. You can click it, it pops up an editor, you type some text and hit save. It also needs a way to browse/view/edit old entries. So first of you will need a Diary Entry object that contains the text you entered. You also need a container for all your Diary Entry objects.

Now you go to the books and read up on how to create a class/object for your Diary Entry and how to add a text property. Next is how do we edit the text? When you get a basic Diary Entry class written then you need to do the container and your books should have chapters on containers and how they work. Once this is done you start to hook this up to a GUI.

Personally I wouldn't bother with C or LISP. If your end goal is C++ then start with classes/objects. A lot of the terms thrown around won't mean much to you but as you start coding it will make more sense over time. Any code monkey can go into a visual editor and throw together a crappy application. If you are seriously considering software development as a career then you need to learn how to take a bunch of requirements and transform it into a functional design. This is a crucial skill, some of it is raw talent, some of it can be learned and some of it just comes with experience. Once you learn how to create good functional designs the language you choose to implement it in just becomes semantics. Basing your design and thinking about things in terms of objects, classes and interfaces is something I would suggest you focus on.