Originally Posted by ThaHero
Quick question, been searching around a bit on learning two programming languages at once.
I'm in CC right now, transferring this year. My school offers C++ and Java, but first I have to take an intro class that teaches BASIC/Python. I have the option to take them concurrently however.
It seems like Python is different enough/easy enough that I could take one of the other courses as well. I learned BASIC in elementary school, which was like 20 years ago but I actually remember some things.
If I decided to do this I'd probably start right now on Python since I have about a month before school starts. Just not sure Java vs. C++(leaning towards C++).
Learn Python. It's really easy to pick up, too. Didn't know Basic is even offered these days. Yikes.
The second language really doesn't matter because Python covers most things you'd want to do these days that aren't too specialized. Java is good for jobs and if you know Python it's not hard to pick up (but somewhat frustrating).
C++ meh the good news is you'll learn about memory management and some neat stuff but it's harder and also used in more specialized fields (f you want to get into serious game development go with C++)
Also I was thinking about creating some sort of programming course from scratch that teaches you valuable skills but is mostly practical, reusing as much material as possible. I think I'd want to cram a bunch of languages into it actually. Basically I kind of want to build some sort of layman to can develop software in BA time. Here's what my rough draft looks like:
0) I would use as much Open Source/Free stuff as possible and also stay away from stuff that is coupled to certain companies. I think it's pretty important that all the tools/skills etc you are exposed to are long time use etc.
A - Programing
A1) First language: Something functional Common Lisp,Scheme,Clojure,ML,Haskell etc. pp. Because it's the first language I'd prefer easy to learn/good learning materials. I think it comes down to Scheme and Clojure, I'm leaning Scheme
A2) Python/Ruby - A mainstreamy, easy to learn, high efficiency language. I think Ruby would be better because the OOP stuff is fairly well done and it could double as an intro to OOP language. Python's main advantage imo is that it's used quite a bit in sciencey fields. Anyways, either pick should be fine.
A3) "Web stuff". Just a mixture of JS,HTML,CSS and so forth. Use CoffeeScript, Sass and so forth can also add App stuff here, probably with some multi platform stuff like Ruby??? (forget the name). Dunno if this should use Rails/Django or maybe NodeJS so we can do the JS in more detail.
A4) Concurrency=Erlang. Going to become more and more important, hype language as well so it can't hurt to have it in your arsenal.
A-Extra) ASM,C or C++: Mostly for low level stuff. I think I like a combination of ASM/C here. Including experimentation of writing C code, compiling it and looking at the generated ASM and getting the link. Could very well be linked to embedded development and so forth, maybe using Arduino boards or something.
B1) Design patterns in all shapes and forms
B2) Light CS theory. Algorithms, search/sort and so forth
B3) Databases. Generaly theory RDBMS vs documents stores, No-SQL and so forth and in depth introduction to one RDBMS (Postgres)
C- Practical concerns
C1) Version control and why it matters (SVN and Git imo)
C2) TDD, Agile, development best practices and all that mumbo jumbo (basically Code Complete, Pragmatic Programmer and so on knowledge)
C3) Reading/writing documentation, Open Source how does it work
The key is having a bunch of good programming projects, basically people should be coding something fun at all times. Actually they shouldn't just be coding but go through the entire planning,design and so forth cycle of projects.