Thinking of how I might design a robust computer science learning thread using today's open source tools. See caveats at the bottom.
Python is oft circled as a great first language, but then what? From a practical standpoint, I'd say: leverage your Python to tackle a second OO language: Java (not JavaScript yet). Then leverage your Java, which need not be super polished, to tackle Clojure. That'll be a first LISP-family language and will start to formalize ground covered, making the concepts more clear. Pick up concurrency concepts here. Finally: back to Python i.e. take what you've learned on this circle tour to move into concurrency with Python if you wish, and with new fondness for a LISPish mindset. From here you're ready to branch to whatever your career calls for: more C family? More Apache stuff (Tomcat?). I'd say you've got even going on the language side with this point to start tackling DB world and its SQL/noSQL APIs. In sum: Python first Bridge to Java Tackle concurrency in Clojure (runs on JVM) back to Python, add more layers and polish === DB stuff: SQL + noSQL In between all this comes installation and simple sysadmin devops baby steps i.e. just learning the above interactively will bring an OS shell and perhaps an IDE into focus. Speaking of IDEs, that's a good place to introduce version control, where you can back end your code plane (screens) straight into some repository. Caveats: Note that I'm not talking about theory, not trying to outline general principles, hardware abstractions, parsing / compiling (back to theory of data structures, parse trees etc.). I'm imagining all that as content and/or background, while the above simply tracks an evolving skills set in terms of language and exposure to specific APIs. An alternative would be a more traditional LAMP stack approach, which still works as a thumbnail guide: L -- OS level on down to hardware A -- All lower level server processes e.g. httpd M -- Persistence Layer (keeping / updating state) P -- Application layer (hosted processes e.g. PHP's) i.e. it remains useful to break it down that way. Kirby
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig