I have a friend who has asked me to teach him how to program.
I was thinking that using a language that I do not know could be beneficial because:
- I will learn something new too.
- That will make me slow down, as I've been told that I usually explain things too fast.
So now I need to find some balance between what is didactic for a newbie and is useful to me.
My draft of requirements:
- Not C, Java or Python (because I already know).
- My personal interests now are on Erlang, Scala and C++ (but they might be too hardcore)... I could refresh Scheme or Prolog too.
- Need a good IDE or REPL to play with.
- Clean and simple language.
- Good (and free!) documentation.
- Some practical for the real world (i.e. making a web application, image processing, statistical analysis...)
About the methodology, I was thinking about this sequence:
- Introduction to logic.
- Basic maths and algorithms.
- Software design principles.
- Some foundations on computer technology.
- Make some large project.
So, any suggestions about the language or methodology?
My "student" is a 28 years old MD, his goal is to make a web site for medicine students. As he is also into research, so I think he could find immediate use to his new programming skills for data analysis and plotting.
Ultimately I might help him directly with the project.