2 ms·
I've been in the process of teaching/pointing in a general direction a couple of friends on how to program. "Learn Python the Hard Way" was far too boring, and
by bfung 15y ago
I've been in the process of teaching/pointing in a general direction a couple of friends on how to program. "Learn Python the Hard Way" was far too boring, and wasn't practical enough for my friends.
If you're used to and good at learning in a school format, MIT OpenCourseWare is excellent. My friends also liked the videos better than learning by book.
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/ http://ocw.mit.edu/courses/electrical-engineering-and-comput...
I would go in this general order for beginners. Do all the assignments, and don't cheat. Ask for help on explaining the solution. These courses help in building good fundamentals, then apply what you learn to a personal project.
1. 6.00 - Introduction to CS and Programming (Python)
2. One of: 6.087, 6.092, or 6.096&6.088, (C, Java, C++) respectively.
For scientific computing, pick C and/or C++.
3. 6.046J - Introduction to Algorithms
From there, 6.001, and perhaps the database course (I think experiencing databases is much easier that a taught course)
Doing #1 already goes a long way to your proposed project.