views:

284

answers:

9

Hi,

As many new and new technologies, tools, books, patterns emerging in the today's software world, How to decide on the which one to move on? Setting the priority today is becoming the largest challenge. Today's situation demands to know a lot of things but in which one to build expertise is the main thing. Please suggest how to be focused in the present day situation?

+1  A: 

I've tried do dedicate an hour per day to familiarize myself with something new. In the long run it builds up quite nicely. Moreover, learning something "off-topic" can give fresh points of view to your current main thing; for instance, I've gotten some nice ideas to desktop app development by learning how web apps are being created nowadays.

Joonas Pulakka
+5  A: 

My only advice is to find a subject area you enjoy the most and choose a technology that is widely used in that area. A lot of the time you can start learning something for the sake of learning it and you can lose interest very quickly.

For instance... if you're interested in the internet try learning some technology that can move you forward in that field. Windows programming, games, etc etc etc. If you have an interest in the subject matter then you're more likely to keep pluging away at it and eventually being able to make some money from it.

James Hay
Agreed - choose technologies that do things that you find exciting and go from there. If you end up getting really into it, you will naturally move towards finding the best practices for it.
Richard Szalay
A: 

My main priority at any one time is to know enough to be able to do my present tasks well. Then, in my free time (if I get any free time), I tend to (at least try to) look at something completely different to what I already know.

jpoh
A: 

I think it's not about priority but about your interest. If you are genuinely interested in a particular technology and are willing to put in unrelenting research, you will find yourself able to keep up with the current trends in that domain.

If you have sufficient interest in a particular technology you may be able to discover new ways of doing something that no one has thought of before. Expertise only comes with sustained interest.

Cerebrus
+3  A: 

You can't know everything. Hell, you could pick one language like Java and you couldn't know everything about that between all the libraries, APIs, technologies and platforms that come under the Java umbrella.

You can however be aware of (almost) everything. By "aware of" I mean you can desribe in 25 words of so what it is and what it relates to (eg "Swing is a library for writing GUI applications in Java").

How do you get to that point? Aggregation sites are you friends. I'll look at a few sites (almost daily) and scan the summaries. I might only read 1 article in 20 (or even 50). My usual list includes:

Occasionally some others including The Server Side (moreso in years past), JavaWorld, even StackOverflow (the questions that get asked give you a good idea of what's occupying developer mindshare at the moment).

I don't tend to listen to podcasts or read blogs religiously. I'll read them when they come up in searches or when they're reference on DZone, etc. I know others do (sometimes a lot).

Anyway, through skimming all this information (because reading it all would be 1 or even 2 full-time jobs) you should be aware of most technologies and, by the number of times they're mentioned, you get an idea of how they're trending and how large a mindshare they have. That's how I got into jQuery (it became very big last year).

It's also how you know ColdFusion is legacy: I don't think I saw a single article on it last year. Sure people use it and sure releases are still coming out but it is relegated to legacy now.

I used to read a lot of books. Not so much anymore. There's too much good information on the internet already. Some books warrant the purchase (eg Java Concurrency in Practice by Brian Goetz et al).

Forget magazines. They're an anachronism.

So there are some things I can do. A few of them I can (hopefully) do very well. But there's an awful lot of other things I can't do but know about, know some pros and cons and can have a meaningful (high-level) conversation about. And I think that's where you want to be as a developer.

cletus
Two more to the list of sites by Jeff :Hacker News,programming reddit .
AvidProgrammer
A: 

I really see it as a balance between what interests you ,what your job requires of you and where you want your career to progress.

It will always be tricky to get motivated and really 'grok' something that you don't find that interesting. Also, if you can incorporate it into your day job, you will more likely be able to build on your understanding.

Andy Rose
+1  A: 

Learn what you need to for work, but I don't think you can really set priorities on what to learn outside of work until you find your niche. Once you do find your niche, then your priority will naturally be to specialize in it.

David Anderson
A: 

Try anything that catches your interest; even if it is completely unrelated to anything you've ever done before, you will learn something. Some of the best solutions come from outside of your area of specialization.

Aaron Digulla
A: 

Try to search small and hard tasks.
The tasks that in your job you don't really need them, and the tasks where you need to learn new things.

Avram