File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Jobs Discussion and the fly likes How to become Best Java Programmer Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Careers » Jobs Discussion
Bookmark "How to become Best Java Programmer" Watch "How to become Best Java Programmer" New topic
Author

How to become Best Java Programmer

Rajeev Ja
Ranch Hand

Joined: May 06, 2007
Posts: 38
Hi I am finding it dificult while coding.
I am not able to write programs on fly.
can you give ideas how to improve my programming skills on Java and web techs
NDP Prasad
Ranch Hand

Joined: Apr 13, 2006
Posts: 177
Prepare for SCJP and try to score High, then go for SCWCD. It will improve the speed.


SCJP,SCWCD<br />
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41601
    
  55
SCJP and SCWCD focus largely on theoretical knowledge. To become a better developer, one needs to a) read a lot of code, b) write a lot of code, c) read up on software development best practices in general, including algorithms and data structures. Other factors may help, but without these steps it's hard to make progress.


Ping & DNS - my free Android networking tools app
Rajeev Ja
Ranch Hand

Joined: May 06, 2007
Posts: 38
thanks for replies
while reading code i read until i understand when i dont i give
up.i do not from where to start all have become half.
Java 1/2,jsp 1/2,servlets 1/2,struts 1/2 i have taken SCJP 1.5 till march
time is there
what to do!
[ May 29, 2007: Message edited by: Rajeev Ja ]
bis ani
Ranch Hand

Joined: Mar 09, 2005
Posts: 36
Even if the certifications are theory based, still it is a good idea to go for them , as slowly you will start applying what you have learned. And that will definitely improve your coding skills. so , go for higher certifications like scwcd, scbcd, uml certification etc. that will definitely help you to improve your bandwidth. Also I feel, that is the best way to start. Writing a lot of code helps a lot , but if done with out a proper goal, can result in losing the enthusiasm, after 2-3 days.
Roseanne Zhang
Ranch Hand

Joined: Nov 14, 2000
Posts: 1953
My way to learn a new language real fast, just for your reference:

1) Find/download a working program.
2) Make sure you know what it does! Pay less attention to how it does.
3) Think what you want to make it work differently, e.g. improvements, change of look and feel, do different things, etc.
4) Start with a very minor change first, to see the result!
5) Learn whatever needed! Change the code to make it happen.
6) If you break it, believe me, it is very possible, try very hard to fix it.
7) If you cannot fix it, start over from the original code.
8) Keep every step of success code, you can restart from last step too.

It works for me very nicely. I still can code in many different languages. I learned VB in 7 hours, and finished my boss' assignment during that time. The task was fixing and improving an existing VB application, which just fit into my learning picture very well. The existing VB application was my first VB teacher from scratch! I was a C++ programmer then.

My way is not necessary the best way for you. Be creative, make your learning process fun and interesting!!!
[ May 30, 2007: Message edited by: Roseanne Zhang ]
stephen gates
Ranch Hand

Joined: Apr 30, 2007
Posts: 69
The above poster is correct I think. Find smaller working programs, figure out how they work and why. Change them, fix them, debug them. And do it all over again.

Certifications are nice, but most of it is theory and "Hello World" type of applications. You might become very good at explaining things but I think in the long run if you want to become good, you need to learn how things work, why they work and then change the code to do something else.

I know I've learned a lot more by reading and playing around with code from applications that actually did something meaningful over a few "Hello World" examples you learn through many of the certification routes.

Don't get me wrong Certification is a good thing and if you want to do it, go for it, but I've met far too many "Certified Experts" who were very bright and could explain various theories but they also couldn't program an actual application that was needed. Most certifications, lime most theoretical business classes, are best case scenarios where everything is well defined and perfect. Yet most people realize in the real world, the IT staff might be overworked and under staffed and budgets say one thing while theory says something entirely different.

Learn how programs were coded. Learn why or try to figure out why they were programmed a certain way and learn from actual applications that do something important. You will learn a lot more from an application that has to grab data from an actual database with thousands of records more so than if you read some book where you grab data from a simple DB you created with columns and tables like "Employee, Name, Account_Number" and so on.
Raghavan Muthu
Ranch Hand

Joined: Apr 20, 2006
Posts: 3344

adding to what all others have said before, pay a bit more attention to "how the system/language work internally" - this is what gonna give you a clear picture.

Lets say, in case of "Strings in Java" - not just knowing Java Strings are immutable, rather a bit in depth knowledge on String Literal Pooland how JVM internally deals with String Literals Vs String Constants - would help you get a very clear picture and make use of them while coding!

I feel this way may not be applicable if you want to become a good programmer in a shortwhile, but for a long run, it will and it should definitely. It certainly depends on the environment and requirement as well.

Good luck.
[ May 31, 2007: Message edited by: Raghavan Muthu ]

Everything has got its own deadline including one's EGO!
[CodeBarn] [Java Concepts-easily] [Corey's articles] [SCJP-SUN] [Servlet Examples] [Java Beginners FAQ] [Sun-Java Tutorials] [Java Coding Guidelines]
Marc Peabody
pie sneak
Sheriff

Joined: Feb 05, 2003
Posts: 4727

Originally posted by Rajeev Ja:
I am not able to write programs on fly.

Buy a laptop. It is much easier that way! (fly is another term for the zipper on your pants)

My #1 recommendation is to do what you can to surround yourself with experts. Try to get on projects where you collaborate with experts. Participate in user groups. Spend a lot of time on the Ranch.

Another great trick is to find someone you respect and ask what books they would recommend. Read those books and when you see the person, ask them questions you have about the material. If the expert liked a book enough to recommend it, they will more than likely also enjoy discussing the books with you as well.


A good workman is known by his tools.
arulk pillai
Author
Ranch Hand

Joined: May 31, 2007
Posts: 3219
-- Take part in a small-to-medium size Java/J2EE project end to end.

-- Have good mentors.

-- Learn the Core Concepts & Key Areas relating to Java/J2EE.
-- Java language fundamentals
-- J2EE Specification Fundamentals
-- Issues relating to Transaction, Memory, Performance etc
-- Scalability, Exception handling, best practices etc

Free download


-- Read good books and articles.


Java Interview Questions and Answers Blog | Amazon.com profile | Java Interview Books
Rajeev Ja
Ranch Hand

Joined: May 06, 2007
Posts: 38
Thanks for Ranch members.
many people many ideas which one to choose!
arulk pillai
Author
Ranch Hand

Joined: May 31, 2007
Posts: 3219
Probably combination of all those ideas. You need to see what works best for you. For example, for me I need to know the high level concepts before digging into hands on details. Other like to get the hands dirty first by diving into coding and so on ...... No matter which approch you take be passionate about what you do and enjoy every bit of it to become a top notch Java/J2EE developer.
chat sunny
Greenhorn

Joined: Oct 14, 2007
Posts: 1
well.. I've reached this post thru google and immediately registered myself coz' I'm facing a similar problem as the owner of the post. I guess I'm good in understanding a prog. however big it is.. I mostly can say correctly as wht and how it works. But when it comes on to me to write a prog. on my own, i don't even know from where to start, how to get the ideas!
Most of the ppl here and few of whom I met personally told me to keep practicing. So, when I open a small program ( thru internet or books), I understand it and type the same seeing it. But how does that help me? Once I close the same, I almost forget what comes next( the line or code). Obviously I don't like byhearting it as-it-is to produce the same! Wht do i do? I'm feeling so bad in front of my friends and others when I can't give the ideas/get the ideas to code!
Seymour Cakes
Greenhorn

Joined: May 26, 2004
Posts: 9
1. Passion
2. Object-Oriented Programming
3. Passion
Jaideep Kshirsagar
Greenhorn

Joined: Aug 29, 2007
Posts: 27
Valueing all the mentioned opinions I just want to add that there is analytical side to the programming as well. The above poster expressed his inability to come up with ideas while programming, its very common for initial years in your software career. Its very important get over your fear of programming and believe that there is a solution for every problem. The analytical side comes into play while understanding various nuances in the code, it is easy in this open environment to get a piece of code which does the work for you but more important point is to learn how that piece of code helped you. It is this difference between using something and learning something. If you take interest in learning, you will enjoy it and will have abundant ideas for a topic. For every new language there is some learning curve and it may be different for different people depending upon individual analytical abilities. Nevermind if you are taking more time than others but make sure you learn it the correct way. At the end of the day your aim should be to play around with language and enjoy while doing that.
arulk pillai
Author
Ranch Hand

Joined: May 31, 2007
Posts: 3219
But how does that help me? Once I close the same, I almost forget what comes next( the line or code). Obviously I don't like byhearting it as-it-is to produce the same! Wht do i do? I'm feeling so bad in front of my friends and others when I can't give the ideas/get the ideas to code!


The best way is to build a decent prototype project yourself. There are myriad of tutorials on the net. Build a decent project with Web, Database etc. I have some tutorials at http://www.lulu.com/java-success which can get you started.......
Ragav Baskaran
Ranch Hand

Joined: Nov 04, 2007
Posts: 36
View every thing that you come across in your day to day life in the form of OBJECTS. that will bent your mind to focus on programming.
Rajeev Ja
Ranch Hand

Joined: May 06, 2007
Posts: 38
Almost nearing 2 years,thanks for all the replies but i feel personally is that java has become like copy paste language.
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 16019
    
  20

Normally, we'd chide you for waking a zombie thread, but if ever there was a good justification...

Unfortunately, you're all too correct. I've seen far too much copy-and-paste done by people who neither understood what they were doing, nor were granted the resources they needed to do the job intelligently.

The results have not been pretty. Employers don't want the "Best Java Programmer" (which is me, by the way ). They want a monkey. Someone who'll "Git 'R Dun!" as fast and as cheap as possible. The results can be seen in the news almost daily as another 130 million credit card numbers end up in evil hands and another big-name web application has a multi-hour outage.


Customer surveys are for companies who didn't pay proper attention to begin with.
Deepak Bala
Bartender

Joined: Feb 24, 2006
Posts: 6661
    
    5

Unfortunately, you're all too correct. I've seen far too much copy-and-paste done by people who neither understood what they were doing, nor were granted the resources they needed to do the job intelligently.


Although I agree, what single out java ?

Employers don't want the "Best Java Programmer"


This depends on the context. Job roles that require application maintenance alone are usually well off with monkeys.


SCJP 6 articles - SCJP 5/6 mock exams - More SCJP Mocks
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18760
    
  40


Also... what has this got to do with the quest to become the best programmer? Just because companies prefer monkeys, doesn't mean that you have to be a monkey. Just because your colleagues do cut and paste doesn't mean that you should. There is nothing wrong with doing research on the web -- but using code you don't understand is not research.

Henry


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 16019
    
  20

Deepak Bala wrote:
Unfortunately, you're all too correct. I've seen far too much copy-and-paste done by people who neither understood what they were doing, nor were granted the resources they needed to do the job intelligently.


Although I agree, what single out java ?
Actually, I didn't. The problem has been around longer than the Java language itself

Employers don't want the "Best Java Programmer"


This depends on the context. Job roles that require application maintenance alone are usually well off with monkeys.


A common philosophy, but there have been some pretty strong arguments made against that. It's usually easier to understand your own code than someone else's, so it can be said - and has been said - that maintenance actually requires more skill than creation. Whether it's a superset or a completely different set of skills, I'll leave for another time, but once monkeys get ahold of code, it's unlikely that the code will ever be clean again.

And, unfortunately, the general attitude these days from those who do the hiring is that not only maintenance, but original code generation is a monkey job.

Because "All You Have To Do Is..."
K. Tsang
Bartender

Joined: Sep 13, 2007
Posts: 2380
    
    7

Hello there, my way of picking up new languages and first get acquainted with basic API/functions then try out those by changing "small" existing workable programs. Next building on it with a goal of achieving say X done.

The APIs can usually get from web resources or text books. Of course for Java, OO can be another route picking up how to do polymorphism, inheritence etc.

I still remember the first programming course I took in college... first copying a C Hello World program from the text book and then looping it to print out x times. I thought back then, how do I do that? Then you learn the for loop haha.


K. Tsang JavaRanch SCJP5 SCJD/OCM-JD OCPJP7 OCPWCD5
Sandeep Awasthi
Ranch Hand

Joined: Oct 23, 2003
Posts: 597
Because "All You Have To Do Is..."

Yes it is all you have to do is......

When I started my career, I used to try and write all the code myself. I may look into example or similar code to learn technique. But actual code, I used to write myself. This was because I knew if I write myself, I will understand and will never forget it. But as I spent some years in industry, I found people who do copy paste do it faster and Bosses are happy with them because they want it to be done and run quickly(All You Have To Do Is...... go to google and search this .... copy, paste and make it work and done!). I personally find easier to work in new development than maintenance projects.

Sandeep
shan Iyer
Ranch Hand

Joined: Jul 13, 2005
Posts: 391
To the OP: Since its been 2 years, why not start thinking beyond the realms of programming.
Where would you like to see yourself, say , 15 years from now? A researcher,university prof,vice-president/director in a fortune 500....Why not start a single-minded pursuit towards that goal . If architect is the position you yearn to reach, then maybe expertise in Java would help.


Warm Regards, S.Iyer
SCJP1.4, SCWCD1.4
Deepak Bala
Bartender

Joined: Feb 24, 2006
Posts: 6661
    
    5

A common philosophy, but there have been some pretty strong arguments made against that


I see the other side as well; that you have to understand some one else's code to maintain an app. A programmer maintaining an app is likely to do less damage. Anyway, the perspective differs from what you have experienced.

I was discussing this topic with a friend recently and we agreed that there are "Google programmers" and then there are "Programmers that work at Google"
Vikas Kapoor
Ranch Hand

Joined: Aug 16, 2007
Posts: 1374
Tim Holloway wrote: Employers don't want the "Best Java Programmer" (which is me, by the way ). They want a monkey. Someone who'll "Git 'R Dun!" as fast and as cheap as possible. The results can be seen in the news almost daily as another 130 million credit card numbers end up in evil hands and another big-name web application has a multi-hour outage.


I agree with this. At the end they spend much more time and money. Do we need to be lucky to get good employer?
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 16019
    
  20

Deepak Bala wrote:
A programmer maintaining an app is likely to do less damage.

I wouldn't count on it. It's not how much of the code you meddle with, it's what the code you meddle with does.

Here's one of the more common examples. Most webapps I've seen have Do-It-Yourself security systems. Which is something I don't recommend in any event. I've got a list of 10 reasons what that's the very last solution to webapp security you should consider. Item #7 has to do with maintenance. When the security manager is an undocumented one-off approach, a naive maintenance programmer is extremely likely to either not add the extra code (likely not even know it has to be added there) or do it wrong. Presto! You've just compromised application security. Another 50 million credit card numbers, medical records, email addresses or other sensitive data have just had a hole punched between them and the Bad Guys.

I deal often with maintenance programmers, and the attitude I've seen is that their managers typically tell them "You a bright person, you'll be able to figure it out. Come back to me when it's Done. You've got 3 whole days."

Sri Anand
Ranch Hand

Joined: Mar 06, 2005
Posts: 392
Do best java programing
kwanda ngcobo
Greenhorn

Joined: Jun 18, 2011
Posts: 2
i have found this page very help full i even signed as a member...i have get started and see where programming takes me.
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30370
    
150

Great! Welcome to CodeRanch!


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
kwanda ngcobo
Greenhorn

Joined: Jun 18, 2011
Posts: 2
Thanks
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
If English is not your native lanuguage and if you have trouble understanding programming books and other learning materials written in English, then studying English will certainly help you become a better Java programmer. If you strongly increase your understanding of what authors say and learn how to "deeply" read technical subject matter, this will help in many ways. Moreover, your communication skills will get stronger as well as your writing skills.

Good luck!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: How to become Best Java Programmer