Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I know there are those out there who have read a slurry of books on a specific technology and only code in that one particular language, but this question is aimed at those who need bounce around between using multiple technologies and yet still manage to be productive.

What is the most efficient way to study multiple languages, frameworks, and APIs as a developer without becoming a cheap swiss army knife? And how much time should one dedicate to a particular subject before moving to another?

share|improve this question

closed as not a real question by GrandmasterB, Walter, gnat, ChrisF Oct 10 '12 at 22:13

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

add comment

3 Answers 3

up vote 3 down vote accepted

What is the most efficient way to study multiple languages, frameworks, and APIs as a developer without becoming a cheap swiss army knife?

Any object-oriented programming language like (Java, C#, Python, etc.) in the market is efficient and in demand language, however you may probably select your primary development target first, before deciding on language. However, you skip this selection if you are planning to do web-development. Because web-development is mostly web-platform independent.

You would better pick one language that is most familiar to you and learn it in-depth; by hands-on lab implementation and creation of a real-world useful application at the end. After first language you pretty much will become familiar with OOP programming concepts and you may easily concur the others.

And how much time should one dedicate to a particular subject before moving to another?

You needs practice, practice and practice to master your skills. Basically, you can get a better ideas from Teach Yourself Programming in Ten Years article - on what it takes to become a solid programmer.

share|improve this answer
1  
+1 for picking target platform first. This is the key. –  DarenW Oct 6 '12 at 0:37
add comment

I am doing exactly this at the moment, i.e. trying to get some working knowledge of different languages and environments at the same time.

The method. Think about an example application that is not too complex (e.g. not a complete GUI application) but also not trivial (more complex than "Hello world"), something that requires around 5000-1000 lines of code (but you should choose what is the appropriate size for you), and using different techniques (abstract data types, packages, inheritance, memory management, generic programming, whatever) that you want to explore.

When you have defined your example application, write down an approximate design / sketch of how you want to implement it.

Then, just implement it, in all the chosen languages, following the same overall design.

The process of getting the example application to compile and run without bugs will guide you to acquire knowledge about each language or framework (books, API documentation, compiler switches, etc) in a very practical, efficient, and focused way.

I am doing this experiment with C, C++, Ada, Lisp, and a few other languages and I am really learning a lot.

Just my 2 cents.

share|improve this answer
add comment

What is the most efficient way to study multiple languages, frameworks, and APIs as a developer

For me, the best way to get this practical knowlede is to start a small project. For example, I am developing my first android application which uses sound processing. In this project I already picked up knowledge about:

  • Java
  • Software Design
  • Android
  • Dealing with raw audio data (Sampling Rates, Encodings etc)
  • Audio Processing (Fourier transormations, Spectograms, etc)

I already had courses about good software design, but until I tried to use those techniques in a project they were more like abstract knowlede.

Before that I developed a more mathematical project in python with machine learning which exposed me to new Frameworks, Algorithms and lots of stuff I´ve never seen before.

So I think the best way to get a wide range of practical skills like Frameworks is to do projects where you actually need the stuff. In this way you also have to deal with a lot of details which will improve the understanding I guess.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.