tags:

views:

385

answers:

14

I'm not really asking about how programmers learn how to program. More about specific technologies. If I wanted to learn Hibernate, how do I know what I should know prior to Hibernate? Should I learn JPA before, during or after Hibernate? Is there a better solution to Hibernate? (And I'm not really looking for information on Hibernate specifically)

Maybe stackoverflow is the place to find these answers, but it seems like with the shear vastness of frameworks, apis, libraries, programming languages, platforms, and whatever other techie word you want to use, it takes an extremely long time to come up to speed on what technology to use, when and what you need to know prior to using it.

+2  A: 

Stackoverflow

Mostlyharmless
+4  A: 

I use Wikipedia to compare various technologies to copmlete a task, although it can be incomplete with regards to commercial closed-source frameworks (probably because fewer people have access to them).

Branan
+1  A: 

go to sites like Coding Horror, Slashdot, Techcrunch etc and find out what people are talking about. Usually if something is popular it's probably something you might want to talk a look at.

EvilEddie
+4  A: 

Sometimes the best way to learn is to just dig in to a framework. Sure, you could use someones wrapper API around something, but if there is something wrong w/ hibernate, then you wouldn't know what's happening.

And to answer "how do i know what i should know prior to hibernate", you don't, that's why you are learning. When learning about c++, started out with simple data types, but i didn't know about pointers yet, didn't need to, but i learned about them when i got there. Just gotta jump in and start playing around.

Darren Kopp
A: 

A lot of the time the documentation and/or tutorial for any technology or project will mention what prior knowledge is assumed or useful.

So for example hibernate: http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#tutorial-intro

"This tutorial is intended for new users of Hibernate but requires Java and SQL knowledge"

Matt
A: 

For me, the things that have helped my career and taught me what questions to ask are:

  1. Podcasts -- .NET Rocks, etc., which introduce and discuss new technologies and put them in context
  2. Join your local users group, and stick around after the presentation to talk shop with the folks there; you can learn a lot just by hearing what other people are doing and what they are working on learning next
Guy Starbuck
+2  A: 

Find a book on the subject and read it. Then email the author with additional questions. Most of these authors are more than happy to help especially if you've bought and read the materials they worked so hard to produce.

If that's still not enough for you, go to a conference covering the subject, if you can make it. Again you can meet many of the people responsible for maintaining and/or creating these technologies and I've found they are always willing to answer questions.

Right on. We're so used to finding everything online, but quite often while the information is available online, the more palatable introductions are only available in books.
slim
A: 

Just look around online and start trying to use whatever tool/technology your trying to learn. As you try to learn one thing, you'll realize your lacking knowledge in other needed areas. at which point you can repeat the process of looking around for this new item you need to learn.

for example, maybe you want to learn Rails, so you start following rails tutorials, but you realize you suck at Ruby. so then you start to focus a bit more on the details of Ruby, then come back to Rails with a little more knowledge and continue on till the next roadblock. this isn't really totally correct, but you get the idea.

you won't always find a full guide of how to use everything. just give it a shot and work it out on your own if you have the time

A: 

There is an infinite number of things one could learn. Maybe a better approach would be to think of a project that interests you, or join an open source one, and then learn what you need to know to accomplish what is needed in that project. When you're done, pick a new project that might include new things not learned in the last project.

Ryan Farley
A: 

As far as free sources are concerned, as a .NET programmer I like www.asp.net, and there are many others, such as the ASP.NET quickstart tutorials at http://quickstarts.asp.net/QuickStartv20/default.aspx, C-SharpCorner is good, too, if you don't mind C#.

If you don't object to paying a little money, Lynda.com is a decent place. They have OK tutorials on all kinds of things, not just programming, and I got a decent grounding in Javascript using one of their tutorials. They are adding new things all the time, so if they don't have something on Hibernate now, they may later on. I think their basic rate is $25 per month, but you can just pay for one month and then soak up as many courses as you can find time for.

Cyberherbalist
A: 

Asking a more specific question will get your a more specific answer here. When I want to read up on something I usually head to Wikipedia and then Google.

A: 

The truth is none of us have the time to read everything we'd like to. So I let someone else do it for me!

The way I solve this is by speed-reading the web - aka. subscribing and reading to other peoples blogs.

Everytime I come across something I'm not familiar with I google it.

Macka
+3  A: 

For specific technologies such as Hibernate, Java, JPA, LDAP (OpenLDAP in particular), Log4J, anything Apache: they all have wikis and/or forums associated with the product that are usually more helpful than a Google search for learning. Many even come with tutorials and you should try them.

Munger
+1  A: 

There are these things called "books" that are filled with all kinds of knowledge.

Ken Liu
It's true. But it was also already answered at http://stackoverflow.com/questions/95862/is-there-any-place-a-developer-can-go-besides-google-to-learn-what-it-is-they-nee/95911#95911
John Saunders