I want to learn multiple technologies. Currently I have knowledge of core Java, C, and PHP. I want to know the approach which should be followed to learn multiple things. I know if you know the core concepts of the behavior of programming language, any programming language can be learned. I want to make command on such language in a way that I can talk with them. I am doing lots of coding and surfing but I think there is an approach by which we can communicate or talk with programming language.
What are approaches to learning multiple technologies at the same time?
programming languages
I would suggest that you:Immerse yourself totally in one new language at a time.For me, fluttering between new languages means that I don't learn any one well.Plan out what you want to learn and how long you want to spend learning it.Long enough to get a good feel for the language, but not so long that you're itching to get onto the next.Choose languages from a number of different paradigms. Imperative, declarative, procedural, object-oriented, functional and even logic all have their place depending on what you want to do.Choose languages with different features. Static/dynamic, weak/strong type system, high/low level, modern/traditional.Only with exposure to a good range will you learn the benefits and challenges of each.Try to learn not only the language, but also the idioms and conventions of that language.This takes time, but if you only have a hammer, you're more likely to treat everything as a nail, and it is well worth having a full toolbox.Try to have in mind a project that you want to try and implement in that language.Play to the languages strengths. Don't try to write a text processing utility in assembler, unless you're feeling masochistic.Make the project tough but not overly ambitious. You want a challenge that you can learn from, but you don't want something so difficult that you get put off.Last year, one blogger decided to Learn 12 New Programming Languages in 12 Months. His language choices included:Clojure (a Lisp dialect for the JVM), Factor (a stack based language), Go (described as a cross between C++ and Python), Haskell (a purely functional strongly typed language), Erlang (a fault tolerant, real-time concurrent language), Scheme (another Lisp dialect), Fantom (which claims to be portable across the JVM, .NET CLR, and JavaScript in the browser), Scala (a JVM based language which combines OO and functional paradigms), OCaml (another statically typed, OO/functional language), Ruby (popular with Rails), Lua (a small, portable scripting language) and Prolog (a declarative logic language).It was a tall order, and he only got around to learning four languages in that year (Clojure, Objective-C, Fantom and Lua) but the planning probably gave him a good overview of what was out there and I'll be interested to see if he has managed to find the time to learn the 8 more langauges he set as his goal this year.The easiest option for structuring your learning mulotiple languages might be a book like Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages. This covers an interesting selection of languages (Ruby, Io, Prolog, Scala, Erlang, Clojure & Haskell) which have a range of language features, and should help many programmers who have only been exposed to the usual mono-cultures of curly brackets languages.