• Post Reply Bookmark Topic Watch Topic
  • New Topic

How long did it take you to get "good" at Java?  RSS feed

 
mark rees
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi, I'm just getting started with java. It's been fun so far, I really enjoy it, but I wonder how long it will take me
to develop the proficiency needed in the workplace. I know there's no set answer for this
but would appreciate any advice.
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I think I "turned a corner" about 5-7 years after starting Java programming, but compared to some of the folks here on JavaRanch, I'm a beginner.
 
Shanky Sohar
Ranch Hand
Posts: 1051
Eclipse IDE Firefox Browser
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It totallty depend upon your dedication.how much you are dedicated towards the technology.
 
mike ryan
Ranch Hand
Posts: 210
Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

David Newton wrote..
I think I "turned a corner" about 5-7 years after starting Java programming, but compared to some of the folks here on JavaRanch, I'm a beginner.


OMG 5 to 7 years!?!?! I just started learning Java as well , I think i will quit ROFL.Although it seems it may take me that long just to get "Arrays" figured out
 
Campbell Ritchie
Marshal
Posts: 56522
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
And welcome to JavaRanch, Mark Rees
 
mark rees
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It's good to hear that dedication matters, I'm trying hard to learn what I can. Though 5-7 years is a bit discouraging.
I had previously been studying networking and java is much more interesting/fun.
 
Vinoth Kumar Kannan
Ranch Hand
Posts: 276
Chrome Java Netbeans IDE
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
For me, its almost an year, since I made friends with Java. Before that he was a complete stranger - never heard of him! lol
I'm still a novice & Working on knowing him more.. You know what, everyone finds this guy interesting!
and I make no exception!
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

mark rees wrote:Though 5-7 years is a bit discouraging.

Why? Your question was vague, so my answer was too. It takes time and practice to become good--such is the way of things.

How "good" do you want to get?

I answered assuming you want to be Good, not just good. What's the difference?

Difficult to quantify: if you're Good, things come intuitively. You come up with answers in seconds or minutes that it might take someone else a day or a week to figure out. Problems of various kinds are solved and people shake their heads wondering how you knew to think about that and how you came to your conclusion without even knowing specifics. Or when it *doesn't* come quickly, you have the ability to drill deeply and become a subject matter expert.

What level of knowledge do you actually want?

There are many ways of being good; there are many facets to Java knowledge. Do you want to be able to write your own classloader that does runtime bytecode manipulation? Do you want to be able to answer all the Java Puzzlers? Do you want to ace the SCJP/D? Do you want to have a handle on n% of the default packages? Do you want to be able to write elegant, concise, expressive Java code? Do you want to be able to digest the code of others? Do you just want to get a job?

What's your focus?

How much time, and what kind of time, are you willing to put in to it?

Do you just want to be able to sit at a desk and code to someone else's spec, struggling for the basics? Or do you want to spend quality, high-focus time digesting the JLS and understanding how to use language features to your best advantage? Will you refactor your own projects mercilessly, until you realize that (a) it can't be refactored any more, and (b) sometimes you can refactor too much?

Are you talking about Java-the-language, or Java-the-ecosystem? Or Java-the-thing-I'm-using-to-build-my-app?

Java-the-language is small and relatively easy. Java-the-ecosystem is vast. Java-the-thing-I'm-using depends on both, plus intangibles like application architecture, API design, performance, etc.

Someone could get very good at Java-the-language in a matter of months with consistent, quality effort. For the sake of easy math, let's say a year. Java-the-ecosystem depends on the application space (desktop/Swing? Eclipse/SWT? Web? Enterprise?) and how quickly you can reason about large APIs. An enterprise developer might need to have, at the *very* least, reasonable working knowledge of anywhere from a few to dozens of frameworks/specifications.

And even then, Java-the-thing-I'm-using depends on being able to use the technical knowledge in a way that makes good design sense. Someone could learn the absolute basics of Spring in a matter of weeks. Understanding the problems it's trying to solve, and be able to use it effectively, takes time.

What's your goal?

Taking on an entry-level position and eventually be productive with someone mentoring you? Or being able to walk in to essentially any Java environment and be productive and genuinely useful on a deep level within days?

A general rule of thumb is that it takes ten years to master something. Development is no different.
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The bottom line is this: don't be discouraged. Or when you are, recognize that this too shall pass.
 
mark rees
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I want to be Good. But I first have to be good

But seriously, thanks for all the detail. My initial question is really how long it takes to become good enough
to work as an entry level programmer/developer. I'm really willing to put in whatever I need to but
have no gauge at this point as to how long it will be before I can begin earning money doing it.
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Totally depends--there's no good way to answer that question.

If you can already code, they might not care you're not great with Java yet. If you're actively involved in, say, Java-based open-source projects, or have solid code you can show a potential employer, it'll take less time. If you have a CS-related degree not knowing Java might not matter--if you *don't* have one, you'll almost certainly have to prove yourself somehow. Some people use a certification as "proof" (I don't), but something like that might help.

So anywhere from several months to a year or more, depending on many factors.
 
mike ryan
Ranch Hand
Posts: 210
Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Good answers Dave

Yes i can Understand that it takes time to be "GOOD" at Java and of course it takes years to become a "Master of Java".But it is good to know in maybe a year or so i will be able to write some meaningfull
Programs(Hopefully!),I am taking a 15 Month correspondense course "Programming Java with Eclipse", and also reading the book "Java is also an Island"<--- at least that is what i translate it to from German.
It is Written by "Christian Ullenboom" if that tells anyone here anything? It weighs about 5 pounds i would say lol,but so far really interesting.I am learning Java just because i always wanted to learn a Programming language and just doing tutorials here and there wasn't getting me anywhere, so i decided to learn Java at age 44 and i am learning every free moment i have because it is addictive!!

ok Sorry for the rambling ......don't wanna steal MArk Rees's thread

I love this Forum and i think it will help me to learn quicker as i am sure it has many others!!!

Cheers
Mike
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You'll be able to write meaningful programs before that--"meaningful" doesn't necessarily mean "complex" or "big". Some of the most useful programs are the ones you write to solve a specific need, and they count as practice :)

Trying to answer the questions of others is a great way to learn as well (although I tend towards caution if I'm not certain of my own answers), so forums like these are an incredible resource.
 
Anand Hariharan
Rancher
Posts: 272
C++ Debian VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
mark rees wrote:Though 5-7 years is a bit discouraging.

Addresses a slightly different question, but relevant nevertheless:
http://norvig.com/21-days.html
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yeah, that's a good read. "10,000 times, each kata." Same difference.
 
mark rees
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks everyone, I'm feeling better about things now. Java is fun so far and can't wait to learn more.
 
Rob Spoor
Sheriff
Posts: 21131
87
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It took me at least 5 years to become "good" as well. Sure, programs written before that time worked. But they didn't use all the patterns and techniques I've learned since. I still get scared by code I've written as late as my final project.
 
James Elsey
Ranch Hand
Posts: 228
Android IntelliJ IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I guess it depends on how much time/effort you put in. Like my karate sensei says : "you only get out, what you put in"

Start coding a side-project at home. I started one about a year or so ago when I first started, and now looking back at the initial revisions of my source code, its clear I've come quite far in a short space of time

Immerse yourself, trawl forums (like this one) read news, study books, read up on new frameworks/technologies etc.

Don't think you can really say you'll be good in X number of years, its really dependant on the person etc, we are all learning, even the pros ;)

Have fun!
 
Rob Spoor
Sheriff
Posts: 21131
87
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Experience and reading articles can definitely help improve your coding. I have often come here to find someone post a piece of code that made me think "that's a much better way than my current one!".
 
Martin Vanyavchich
Ranch Hand
Posts: 241
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Rob Prime wrote:I still get scared by code I've written as late as my final project.
Phew! I thought I was the only one having those feelings about past code. Once I went on a half voiced rant "Who the **** wrote this piece of .... .... oh, it was me " You live, you learn, you improve.
 
Vinoth Kumar Kannan
Ranch Hand
Posts: 276
Chrome Java Netbeans IDE
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Martin Vanyavchich wrote:
Rob Prime wrote:I still get scared by code I've written as late as my final project.
Phew! I thought I was the only one having those feelings about past code. Once I went on a half voiced rant "Who the **** wrote this piece of .... .... oh, it was me " You live, you learn, you improve.

+1! lol
 
Bear Bibeault
Author and ninkuma
Marshal
Posts: 66304
152
IntelliJ IDE Java jQuery Mac Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I've often stated, only half-jokingly, that if you are not disgusted by the code you wrote a year ago, that you aren't learning anything.
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Rob Prime wrote:I still get scared by code I've written as late as my final project.

I still get scared by code I wrote yesterday.
 
mike ryan
Ranch Hand
Posts: 210
Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm still in the stage of being scared of the code i will write in ten minutes
 
Janeice DelVecchio
Bartender
Posts: 1812
12
Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Mark,
I purchased Head First Java about a year ago... then joined Java Ranch about a month later. I asked a lot of questions and read a lot. I tried to figure things out on my own and asked even more questions when I couldn't figure it out. I had a couple classes in heavy Java coding, and two more coming up. I also signed up for the Cattle Drive, which has given me a whole new understanding of stinky code.

Right now, I feel like I have a good understanding of core concepts. I can navigate the APIs pretty well and find what I need. I also know some things about patterns, refactoring, and the development life cycle. I read. A lot. I also know some of what I don't know and what I'd like to learn next.

Right now, I am learning the art of reading other people's code.... there's a strange sensation to this because it's not like reading my own crummy code (that no matter how bad it is I know what it does and what my intentions were). This is a bizarre territory and I find it takes almost as long to read and really understand someone else's stuff as it would for me to code it myself (well, if I knew what it did ). Which is probably true because I'm not "good" at it yet.

I can see that it would take me another couple years before I could start saying I'm "Intermediate." I could see it taking another nine for me to be "Awesome." But, I have some experience in IT, and some volunteer experience that I can pop on my resume.... oh and I'll be getting my BS around December. So, I'm looking for a job now. The reality is, all I need is for one hiring manager to take a shot on me... and if you don't apply, you'll never get a job!
 
mark rees
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Janeice, very helpful.
 
arulk pillai
Author
Ranch Hand
Posts: 3417
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you are pro-active enough, you can master it a lot quicker. If you just rely on your experience alone, it can take a bit longer to understand all the nuances, pitfalls, etc. You can really fas track it with good books, helping others' in the forums, asking "why" very often and dedicating yourself to continuous learning.
 
mark rees
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That's encouraging.

I have a dilemma because I really want to go all out on Java right now- but I am far into studying for CCENT/CCNA and wonder if I should take that first.
Java is definitely what I want to do but it sounds like it might take me a year to get the skills I need for an entry level job.
 
Tobi Witte
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello Mark,

about one year ago I asked myself the same question when I started my career as Java EE developer:
How to become a "Master of Java".

I had almost no practical Java knowledge, but within one year I learned quite a lot about Java and about myself. So I think "hands-on" is the best way to learn it and do some extra reading.

The most difficult thing for me was and still is not being discouraged. It took me pretty long to get this. And I am sure that it will take me some years to become "good" in Java. You can keep yourself motivated by arranging some "small victories" for yourself. Write down what you have learned (e.g. now I know Inheritance, some design patterns etc.) and you will be surprised how much you learned within one year. These small victories helped me a lot. Another thing I do to keep me motivated: Taking some "non-coding" certifications like Software Tester. Just to get the feeling: You completed something. Done! Next!

So I think it is not so bad to take the CCENT/CCNA exam. And by the way: 10'000 hrs -> aprox. 4 years full time coding.

I hope this helped you a little bit.

Tobi
 
Campbell Ritchie
Marshal
Posts: 56522
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Had you previous programming experience, Tobi Witte?

And welcome to JavaRanch
 
mark rees
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tobi, thanks for the advice. Java is what I want to do, but also need to get a new job asap so thought I should finish the CCENT/CCNA stuff.

I am a little discouraged about Java because I feel like it will take a year of study before I can get started working with it on the job.
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Depends on your job. But that's the nature of complexity: it takes time to comprehend and adapt.
 
mike ryan
Ranch Hand
Posts: 210
Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I would think just a year learning Java probably wouldn't be long enough to get a job as a programmer,but i may be wrong.
But i would suggest finishing the CCENT/CCNA and then learn Java until you feel you are truly good enough to get a job doing it.

just my 2 cents
Mike
 
Anderson Galeote
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello All,

I'm new in this forum. I'm studying Java for SCJP and in a short future maybe get the Web Developer certification.

Well, I'm not a beginner in programming, but it is very encouraging to read all these advices from you guys...
I' think I will use it a lot in this learning process.

And I wanted to give complements for all, you seem to be very supportive all the time. I'm entering in Java World, and I
already can say, that has been very friendly and nice.

Thanks and regards for All.
Andy

 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Welcome to JavaRanch! Good luck with your SCJP efforts and the future.
 
Anderson Galeote
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for support.

I wish Mark as well, and other fellows good luck and good studying time.

Regards
Andy
 
Hebert Coelho
Ranch Hand
Posts: 754
Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It's relative about the time. You could be working 7 years with Java and still not being good at it (I know a guy like that).

I've been working for 20 months and I have 2 certifications and getting more. I know for sure that I'm not good at it. But this study for Java certifications give me ideas and the knowledge to work with Java. Keep studying.

BUT, work with Java every day makes the difference, it will teach you lessons that you will never forget.

It's up to you to define how long will take to you get good at Java.
 
Tobi Witte
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell Ritchie wrote:Had you previous programming experience, Tobi Witte?

And welcome to JavaRanch


Hello Campbell,

I had some really basic Java knowledge in Java from university. Maybe one year java coding all together.


Hebert Coelho wrote: BUT, work with Java every day makes the difference, it will teach you lessons that you will never forget.

This is so true.

Janeice DelVecchio wrote: I also know some things about patterns, refactoring, and the development life cycle. I read. A lot. I also know some of what I don't know and what I'd like to learn next.

That is what I noticed, too. Some knowlegde about design patterns and refactoring helps a lot. You don't have to know them in details at the beginning. It's more like "Ohh, this could be the observer pattern". Try to identify them and look it up in a book, web and read, read, read ...


Greets
Tobi



 
Ninad Kuchekar
Ranch Hand
Posts: 64
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I know a fun game which me and my friends used to play in college...

  • Write a simple Java program, say a "HelloWorld" program to start(you can increase the difficulty level gradually, printing the Fibonacci or finding first 100 prime numbers, for instance).


  • Choose an editor to which you are used to(It can also be a simple text editor, again for further difficulty levels you can use an editor which is alien to you).


  • N.B.
  • The program should have no compile-time errors. It should be well modularized.


  • Write the logic and flow on a rough sheet first and then type the program without looking at the sheet.


  • P.S.: Before you begin programming on the computer, switch off your monitor.

    It's a fun game to play with your "Java-minded" friends. It might sound kiddish, but its fun..


    -Ninad
     
    Campbell Ritchie
    Marshal
    Posts: 56522
    172
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Ninad Kuchekar wrote: . . . switch off your monitor . . .
    Careful: you'll get this thread moved to "Programming Diversions". And beware of the moderator on that forum
     
    It is sorta covered in the JavaRanch Style Guide.
    • Post Reply Bookmark Topic Watch Topic
    • New Topic
    Boost this thread!