3 ms·
Any thoughts on learning to code in an 'interleaved' manner? I.e. studying more than one language or concept at once?
by _xander 12y ago
Any thoughts on learning to code in an 'interleaved' manner? I.e. studying more than one language or concept at once?
- jmartinpetersen 12y agoMy current quest is to take something from the business domain I work in and implement the bizarre math stuff (which I don't get all of) in a backend in F# with a frontend in Javascript (I'm fluent in neither). I've tried it before (with different technologies), and although it didn't make me an expert in either field, I've found it neatly ties most things together. Oh, and it's usually fun, especially if you put somewhat bizarre obstacles in your way (remember, it's a learning experience, not production code). It could be something elaborate like http://www.xpteam.com/jeff/writings/objectcalisthenics.rtf http://www.xpteam.com/jeff/writings/objectcalisthenics.rtf or just a concious decision to implement a part of the design in a part of the system where it isn't most obviously at home.
- jfarmer 12y agoIf your goal is to learn those two languages, I'd instead pick a problem/domain you understand very well and then express the various aspects of that problem in both F# and JavaScript rather than implementing some aspects in F# and some aspects in JavaScript. This will help you develop a better sense of how F# and JavaScript differ as languages, what ideas are natural in one but unnatural in another, the conventions and idioms around tackling certain problems, and so on.
- dblarons 12y agoI once worked with an engineer who implemented the card game hearts in every language he learned. After the first implementation, you don't have to spend so much time thinking about the problem domain and can focus on finding the most idiomatic solution in the new language. The other benefit is that the project always has a clear endpoint.
- jfarmer 12y agoI think it's wrong to think of "learning how to program" as "learning a specific programming language." This is difficult to see as a beginner, if not impossible. IMO it's better to think of each particular programming language as a stage and your goal is to practice acting. Learning multiple programming languages at once is more like trying to learn Spanish and Portuguese simultaneously. It's not impossible, but you'll find yourself doing "double duty" because your brain has yet to develop clear lines between the two languages. I've directly taught hundreds of people how to code and have seen this first hand. Take a beginning programmer who knows a little Python (or Java or C or anything), teach them some basic Ruby syntax, and ask them to write a Ruby program, they'll write in a creole of Ruby/Python, Ruby/Java, Ruby/C, etc. (cf. http://en.wikipedia.org/wiki/Creole_language http://en.wikipedia.org/wiki/Creole_language) I'm not kidding. You'll see things like this from C or Java programmers def Fixnum add(Fixnum x, Fixnum y) return x + y end It's remarkably consistent and they never once saw an example of code that looked like that. They mashed together ideas from Ruby and C and honest-to-goodness expected it to work. Untangling those false connections just adds overhead to the learning process and (IMO) are best avoided until you have a clearer mental distinction between programming _per se_ and programming in a specific language.