tags:

views:

134

answers:

7

Hi

I would like to become really good at programming and in particular java and OO

The catch is, that while I like programming and I work as a programmer, I'm not really passionate about being a programmer or programming in general.

This leads to not feeling like doing any dev outside of work, which means that I rarely learn anything new and I don't really become better.

What are the best ways to motivate oneself to learn and to learn, obviously the more programming you do the more you learn, but what do you program?

I want to be good at what I do and for at least the next couple of years it will be programming.

A: 

One of my favorite things to do is take on little challenges that help increase my programming skills, but don't take up too much of my time.

Java Puzzlers are a pretty great way to spend just a little bit of time increasing your skill. It goes fast enough to be really rewarding when you complete a puzzler. The ACM also has an online judge and bank of puzzlers that can be fun to try to get high performance results on.

Alex Sexton
A: 

I find that it's much easier to learn new things when it happens as a side-effect of something else you're trying to accomplish. So, my advice is to find an open-source project which does something you find interesting, and volunteer to help with it. This way, the point of the work you do will be to improve the project, add functionality, etc., rather than just coding for the purpose of learning something. You'll end up with a finished product you can take pride in---but you'll also learn some things and become a better coder in the process.

uckelman
+1  A: 

If you looking for passion in programming in Java try JavaPassion.com :)

In my case I didn't want to be programmer but when I get job I started to programming, so second clue is to find a appropriate job :)

cetnar
Yep, this is a good link. It helped me pick up Java pretty well.
Nick Haslam
+3  A: 

The catch is, that while I like programming and I work as a programmer, I'm not really passionate about being a programmer or programming in general.

I'm not sure exactly what passion looks like. You don't have to give your life over to it. It's not religion. You do have to enjoy it as some level, but it need not consume you.

I'd forget about the hyperbole and concentrate on what you have to do: code kata - practice. Do an hour a day, like piano scales.

It could be that over time you'll get better and find that your enjoyment increases. All of us tend to enjoy doing things that we're good at.

This leads to not feeling like doing any dev outside of work, which means that I rarely learn anything new and I don't really become better.

If you can't muster the energy to practice a bit, then perhaps it's not worth it.

duffymo
+3  A: 

You'd like to be good at something but have no interest / passion for it? In my mind, you are better off finding something you are interested in doing and aim for that instead. I started off as a research scientist and it took a while to realize that the reason I wasn't too happy was that I had little passion or interest in it. Leaving science was the best thing I could have done.

In a few year's time you may be saying "I'm really glad I left programming to do X", for some value of X.

oxbow_lakes
I am looking to doing that, but the problem is that until I can afford to do something else, I have to do programming.
kilhra
+1  A: 

If you can't motivate yourself to do some programming on your own time, at least read about it. Read up on things like design patterns. Hunt for interesting Java open source projects on the web, read through their documentation and browse their source code. Evaluate their codebase.

In fact, people don't learn programming by doing it, but by thinking about it. If you can't spend as many hours programming (which of course, requires lots of thinking), then focus on the reading and research. In fact, there is a good introductory book called Thinking in Java by Bruce Eckels which I would recommend that you read. If you like it, followup by reading his books about Patterns and Enterprise Java

Today, programming is about more than churning out code. It's also about the design of the system and the design of the application. It is about the support libraries that you use. So investigate some of these things such as Spring and Hibernate.

And don't forget to keep your mind open to the possibility that there is a Java project that you would feel passionate about.

Michael Dillon
A: 

You don't have to save all the learning for your own time. There are likely opportunities to learn and improve while coding at work. Try to find ways to make your work coding more interesting and efficient.

Not all programmers go home from work and keep programming. Even those of us that would like to, aren't able. Outside of work, I don't have more than a couple minutes at a time to call my own and that's not enough to do any coding.

Brian Knoblauch