• Post Reply Bookmark Topic Watch Topic
  • New Topic

When do you truly "know" Java?  RSS feed

 
Tyler Benzing
Greenhorn
Posts: 3
Eclipse IDE Firefox Browser Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I've been thinking. I know quite a bit of core java and important libraries but I don't feel prepared enough to take on a project. Should I work up to large projects or keep studying different libs and technical things before I work on a product? I don't know if I am able to say yet that I "know" Java.
 
harshvardhan ojha
Ranch Hand
Posts: 157
1
Android Java MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
knowing a language means, knowing syntax and what it has to offer.

For saying you know a language you should have knowledge of its implementation, limitations, pros and cons while using it.

To use a language in a large project, you should have command over
1. algorithms
2. design patterns
3. frameworks
4. knowledge about overall architecture

and domain knowledge is something which will help you to decide better.
 
Jesper de Jong
Java Cowboy
Sheriff
Posts: 16060
88
Android IntelliJ IDE Java Scala Spring
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That's a philosophical question that has no clear answer.

What does "to really know something" mean to you? Do you ever really know everything about a subject?

I've been a professional Java programmer since 1998 and I'm sure there are still things that I don't know.
 
Campbell Ritchie
Marshal
Posts: 56587
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Welcome to the Ranch

I would suggest you can do it the other way. Those of us who do logic might think of the contrapositive rule. If you haven't got ten years' experience in it, you don't know any language
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tyler Benzing wrote:I don't know if I am able to say yet that I "know" Java.

As others have said, that's a philosophical question; and strangely enough, it's 'experts' that tend to be circumspect about how "much" they know.

I've been using Java since 2001, and I'd say I'm a competent technical programmer and tool builder; but I'm completely useless when it comes to GUI stuff. However, if I needed to, I know I could do it, because I know where to look - and that's part of the business of being "experienced".

About the only thing I reckon I'm an "expert" on is bash/Korn shell; and that's because I was a Sysadmin for 10 years and have actually written scripting frameworks based on it. Now Java is a lot more complex than bash, so I reckon it's highly likely that I will never be an expert in it.

For a really good article on this subject, read this.

Winston
 
rohit chavan
Ranch Hand
Posts: 133
Hibernate Java Oracle
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Winston ,

The article is a real eye-opener to everyone who is in a hurry to know, everything about something, in a certain amount of time .

 
Jeff Verdegan
Bartender
Posts: 6109
6
Android IntelliJ IDE Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Winston Gutkowski wrote:As others have said, that's a philosophical question; and strangely enough, it's 'experts' that tend to be circumspect about how "much" they know.


Yup. For example, according to the Dunning Kruger Effect page on Wikipedia:

Dunning and Kruger proposed that, for a given skill, incompetent people will:
tend to overestimate their own level of skill;
fail to recognize genuine skill in others;
fail to recognize the extremity of their inadequacy;
recognize and acknowledge their own previous lack of skill, if they are exposed to training for that skill.

...

Meanwhile, people with true ability tended to underestimate their relative competence. Roughly, participants who found tasks to be relatively easy erroneously assumed, to some extent, that the tasks must also be easy for others.


Or to put it another way: The more I learn, the more I realize I don't know.

As to the original question:
Should I work up to large projects or keep studying different libs and technical things before I work on a product? I don't know if I am able to say yet that I "know" Java.


Rather than trying to define a binary "know/don't know" state for yourself, accept that skill in any endeavor is a continuum. You need to ask yourself, "Do I know enough to take on this particular task?" That's not easy to answer either, but if you're trying to make a decision, it's a more concrete question to ask.

About the best you can do find a project that you think is commensurate with your current skill level, and then attempt that project. When it gets a little bit difficult and you feel a little bit out of your depth, study the troublesome areas until you're able to make a least a reasonable first pass at them. When you feel completely overwhelmed and have no idea how to proceed, scale back that scope of your project to something more attainable, and go after the really hard stuff next time around. In this way, you approach the goal of producing something from both ends--pushing yourself and increasing your skills from one direction, and keeping the scope within reason from the other direction. And of course, if you find it way too easy all aroudn, that gives you a benchmark for judging how to set your next project.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!