views:

112

answers:

6

A young relative of mine has decided that she will study for software developers. But she has absolutely no programming experience. I would like to help her with the basics before she starts with the school so that she gets a head start.

  1. I need tips on Internet sites where she can learn the basics.
  2. What language do you think that she should start with?

Edit: She is 20 years old

A: 

The very basic topics you can teach her are, Pseudocodes and Flowcharts. After that, I suggest she start with C/C++.

Ruel
+2  A: 

I'd personally suggest starting with a statically typed language, the easiest being Java. While dynamic languages are great for many things, I think you really lose something by not having a firm grasp of typing. In other words, going from a dynamically typed language like Python to a statically typed language will be more difficult than doing the reverse.

So, I'll say Java, then learn C to get a better understanding of what is really happening under the hood.

As far as sites, I'd try this to start with: http://www.javabeginner.com/

ETA: You didn't say how old she is and I think that is an important factor in where the starting point should be set.

tau-neutrino
I would prefer going from C to Java in this case
ralu
@ralu - While from a strict point of view I agree with you, I think Java lets you learn most of what you need to without getting too bogged down in the memory aspects of programming that are unavoidable with C. My perspective is that for a beginner C can be a bit overwhelming. Of course, it really depends on the person!
tau-neutrino
+2  A: 
  1. http://wiki.python.org/moin/BeginnersGuide/NonProgrammers

  2. Python

ralu
haven't had a look at that book. +1 for Python.
mike
A: 

Great question, but be prepared for a different answer for each responder :)

I am in agreement that basic logic flow and learning how to communicate with other programmers tops the charts -- Math and Patterns -- caps for a reason :)

Pseudo-code is what you develop when you learn a language or two... don't start with it... There are enough languages to learn these days, dive into C and Java (don't go near C++ until you get C and Java, trust me) and pseudocode will come lol

Web sites? Google. A lot. Then some more... Just stay current, so check when your sources were "written"...

Peace, Dan

Dan
A: 

I also am a beginner programmer and I don't think that java is good language for beginner programmer. OOP without knowing procedural or anything about programming might be a little bit difficult to grasp. Sometimes too difficult...I think you should ask she/he what kind of programing he/she is interested in. For beginners I think PHP is good choice. If you don't familiar with programing you can teach all fundamentals for eg. variables,functions operators, controlling work flow. Than go through OOP PHP. The main concepts are I think more less the same for all programing languages and will help learn any other language.I have done like so and now I don't regret it. But C and C++ is classic is and must be learned at some point at the future. There is no escape from it And for sites i can recommend net.tutsplus.com it is very good site with a lot of free tutorials not only for php. And if U have problem just type problem value php in google and for 99,9% solution will be there or clues for solving the problem.

Artur
I would agree that Java isn't a good choice as a first language, although I disagree that PHP is. PHP is easy to setup and very forgiving, but isn't the ideal language to have some solid foundations on general programming. I would pick python because it abstracts the low level stuff and lets the programmer concentrate on algorithms. Also, the plethora of libraries allows to do all sort of things: networking, games, web, shell scripting. I would pick C or assembly for the opposite reasons, they're the best to better understand what goes on at the very low level.
mike
I agree with You that python is better choose than python because it might also be used as a general programming language. That is why i switch to it and stay for quiet long but time for learning briefly PHP wasn't wasted and make me quicker dive into python. In PHP you also concentrate on algorithm not the code. With C,C++ you have to focus on code and algorithm(data types etc). Ok C,C++ gain you access very low level but it is definitely not simple. I think none of language is ideal it all depends on our taste i/or need. But as always they are good and better thinks...
Artur
A: 

Zed Shaw has a very nice and pretty simple tutorial/book aimed at exactly that crowd. The title is somewhat counter intuitive, but if I was a complete noob, that's the way I would like to be introduced to programming. I double my recommendation for the fact that the book uses python.

An Attempt At A Book Teaching Beginner Python

Another link that I've stumbled upon in these last couple of months was a user called CarlH on Reddit doing these very nice tutorials in C and answering newbies questions. I think his classroom is still going. I remember how lots of people where in awe at how well explained the tuts were. He goes from the very very basics and builds up. I think many programmers even experienced one could benefit from that tutorial. I know I did.

Link to the Lessons on reddit

Link to the compiled lessons in a website

mike