views:

197

answers:

9

I've seen like dozen or so questions on how to start programming etc etc. but I believe my question is slightly different and I'll make it a CW so its not a reputation catcher or anything I'm just trying to help a guy.

I have a cousin who got laid off from his job like most people as redundant. He was an IT guy, dude who fixes computer, sets up the networks etc etc. He knows quite much about "computers". Having not found another job for some time now, yesterday I spoke to him over the phone told him he might want to start programming since he is smart and hard-working(and there is job out there). I tried to help him but I forgot how I got started, actually I learned it in school basics of programming like if for while loops and so on .. is there a series of tutorials or a well-written books or any resource for people who are quite comfortable with computers but have no experience what so ever in programming.

Tried to show him, use google look for hello world program in c++, his response was ok after I find it how do I start the program I then told him you need to compile it first, he replied naturally what is compiling ... and so on .. I'm pretty far away from him, can't really sit down and show him, can I suggest him something useful to read since he got plenty of time on his hands?

+3  A: 

Head First Programming

Have not read it myself since I am (cough) a seasoned programmer, but some friends of mine have spoken well about this book. See if it will appeal to your friend.

dpb
A: 

I remember that I started my programming experiences with good old QBasic. After that I got into Visual Basic and eventually C++, Java, etc.

The best bet for your friend would be to start off with the Visual C# Express Edition and do some basic tutorials, so he gets into it.

MSDN Tutorial

C# Station

Aurril
A: 

First-of, for an IT type, starting with C++ might be a long reach. Interpreted "script-like" languages might be either to grasp and offer more immediate feedback. Besides this would probably complement his existing skill-set nicely.

I'd start with python myself, but really any other language should do. For python, the official wiki contains many ressources : http://wiki.python.org/moin/BeginnersGuide/NonProgrammers

He might also want to have a look into the Learning to program website, which is quite nice ( http://www.alan-g.me.uk/ )

I think Head First PRogramming, mentionned by another poster, also uses Python

Axelle Ziegler
+1  A: 

The best way to learn programming, is of course to program. There are a number of books out there which is geared for first time programmers. However, I will suggest something off-beat= You Should Learn How to Program, by Chris Crawford

Warning - it's for BASIC, and an old dialect of BASIC. However, the author managed to paint analogies to programming with real life examples, making it easy to understand and to follow. There are still a number of BASIC interpreters out there, and the book is web-based.

Of course, this is not enough for him to get started in the industry. Once he understands program flow and logic, he would need to move on before he get stuck in the mindset of linear programming. JavaScript using Firebug's interpreter, or ActionScript 3, are good next choices. Or even C#/Java, or C++, if he is inspired by the free e-book to learn more about memory.

Extrakun
+2  A: 

Computer Programming for Kids and Other Beginners was recently featured in a podcast on hanselminutes and it sounded like a great book to help people get started in programming.

I had a look into it at the time and it seems to get really good reviews. It uses python but is aimed at teaching the general concepts.

carok
A: 

I think providing an idea would be enough. Just select a good idea (Example) and just provide a very abstract idea on technology (May be Class libraries) he want to use. As far as I feel the resources available on Internet is sufficient to learn the things you need to complete a given task.

Without such objective it is really difficult (More precisely boring ;)) to learn something. Giving a wisely selected goal is the best way.

Chathuranga Chandrasekara
+3  A: 

Eagerness to learn is the first thing to put in mind. You should tell him to read books about basic programming. He can also look up tutorial videos in the internet. Study sample codes and work on case studies.

RJ1516
+1  A: 

There are two ways to do this. Either begin with a low level or a high level language. Both has its merits and drawbacks. Starting with a high level language (Ruby for instance) is probably easier and more natural, and you will progress forward pretty quick. But starting with a high level language results in your brain having to make up for the "missing bits" between the low level stuff and your script. A bit like not learning to walk before learning to run.

Without that you will lack a more "fundamental" insight into how stuff actually works. Memory, pointers, processes, registers, heap, stack? The real stuff inside the computer is simply missing from your mental image. That is, until you learn programming in a lower level language (C or even assembly).

Anyway, I really think this is needed if you want everything to to fall into place so you can understand how and why your high level programs works. I also think that will make you a better and more flexible programmer in the end.

Martin Wickman
A: 

From the sounds of it he is a systems guy so you might want to stear him to some languages that fit with in his area. A language like vbscript,powershell,Perl,python might work well with what he already knows for good system manipulation (ie this is how you do a networkshare in vbscript etc). Aside from that the video lessons in msdn are a great place to start for C# or vb.net

Anthony