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 Newbie needs professional advice Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Soft Skills this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Careers » Jobs Discussion
Bookmark "Newbie needs professional advice" Watch "Newbie needs professional advice" New topic
Author

Newbie needs professional advice

Steve King
Greenhorn

Joined: Aug 13, 2001
Posts: 2
"Prepping for an exam is not quite the same thing as mastering a subject. Java professionals will tell you that there's a small subset of Java knowledge one needs to get to work productively. You can pick up the rest as you need it."
I'd really be grateful for pointers to that 'small subset of knowledge' to get off to a flying, and practicle start. Any tips?
Many thanks, Steve
Raghav Mathur
Ranch Hand

Joined: Jan 12, 2001
Posts: 641
"Prepping for an exam is not quite the same thing as mastering a subject"
then why do waste so much time in preparing for the certification ???


Raghav.
Mark Herschberg
Sheriff

Joined: Dec 04, 2000
Posts: 6037
Originally posted by Steve King:
"Prepping for an exam is not quite the same thing as mastering a subject. Java professionals will tell you that there's a small subset of Java knowledge one needs to get to work productively. You can pick up the rest as you need it."
I'd really be grateful for pointers to that 'small subset of knowledge' to get off to a flying, and practicle start. Any tips?
Many thanks, Steve


OO
--
Understand object oriented programming. That is first are foremost. Understand how to take a problem, and create a set of classes and packages from it. Unfortunately, this is best learned from experience.
Know basic data structre theory
-------------------------------
If you don't have a CS degree, go to your local college, find what book their data structures course uses, and read it. You should understand sorting and searching, storage structures like hash tables and binary tress, and, if possible, learn a little bit of recursion theory and complexity theory.
APIs
----
Don't worry too much about specific APIs. I don't care if you know the IO API's inside out, if you're a smart guy, and understand what a stream is, you can figur eout more complex IO as you need it. And if you can't w'll figure it out for you when we do a design/code review.
What APIs should you know, at least minimally:

  • [list]IO - know the basics, e.g. how to read and write text to a file
  • Swing - understand the event model and listener pattern
  • Threading - understand the basics of multithreading, how you create and use new threads
  • XML - theXML and the Java APIs itself are easy, and frankly, I personally don't care if you know them, but other people like to see XML on a resume, but learning both XML itself, and some of the basic APIs may help
  • EJB - know the basics, what they are and how to use them (optionally servlet's, too)
    basically, when learning APIs, go for breadth over depth. The tests often focus on depth, understanding the obscure nuiances of using a particular class or method. But again, if you're smart, and know what's out there, you can learn it as you go. So don't worry about understanding every last detail, as you would for the certification exam.

    --Mark
  • Tim Barker
    Greenhorn

    Joined: Aug 03, 2001
    Posts: 24
    Originally posted by raghav mathur:
    "Prepping for an exam is not quite the same thing as mastering a subject"
    then why do waste so much time in preparing for the certification ???

    Because that is what employers want obviously!
    Junaid Bhatra
    Ranch Hand

    Joined: Jun 27, 2000
    Posts: 213
    Basically what Mark said. I totally agree with him.
    Also I would say a basic knowledge of UML is essential (atleast class & interaction diagrams).
    Knowledge of some basic design patterns is also essential.
    One of the problems in recent times has been the explosion of so many different technologies (EJB, JSP, Servlets, JNDI, JTA....), and the accompanying API's. So the tendency for someone starting out new would be to try and learn all these various things, without putting in adequate effort to learn good OO design. Sure someone can claim to be an EJB guru, but if he doesn't know what an Abstract Factory is, it's useless, atleast in my opinion. I would classify such kind of people as API programmers
    Sure, you cannot learn OO overnight, it takes time & exeperience. But at the same time, you can really help that process by looking at good OO code that others have written. There is a lot of good code out there, and the best example of it is the jdk source code itself. For example, I learnt a lot by studying the Collections API code, and how the various classes were designed.
    So in a nutshell, concentrate on the fundamentals, and if your fundamentals are strong, you can learn any new API any time.
    Lastly I would strongly recommend reading "Effective Java" by Josh Bloch. There is a ton of good information in the book, which will be useful to everyone, irrespective of experience level.
    Raghav Mathur
    Ranch Hand

    Joined: Jan 12, 2001
    Posts: 641
    A question to TIM
    hey .... for a moment forget about the employers , and think about urself .... what do you want from urself ...?
    Preparing for certification is equavalent to master the topic , and if you don't have this attitude , then you are obviously into trouble .
    Tim Barker
    Greenhorn

    Joined: Aug 03, 2001
    Posts: 24
    Originally posted by raghav mathur:
    [b]A question to TIM

    Preparing for certification is equavalent to master the topic , and if you don't have this attitude , then you are obviously into trouble .
    [/B]

    I think many people can tell you that getting certified hardly means mastering the subject (in this casee java). There are many stories of people who have passed the exam, but don't really know how to program. There are also many stories of people who are great programmers and already work in the industry, but who have failed the test. In my opinion, many of the questions on the test are ridiculous and in no way qualify you in being a programmer. But, nevertheless if you don't have a lot of experience then you chances are not very good you will get a job programming in java if you don't pass the exam.

    P.S. I hardly consider myself in trouble since I have a PhD in neuroscience.
    krishna anand
    Ranch Hand

    Joined: Jan 21, 2001
    Posts: 61
    Dear Friends
    I totally agree with what Mark says .In fact he has wonderfully spelt out how to go about becoming a great Java Programmer .Thank's to you Mark for your clear reply .
    ------------------
    Krishna


    Krishna
    Mark Herschberg
    Sheriff

    Joined: Dec 04, 2000
    Posts: 6037
    You're welcome. Junaid added some good topics, too, UML and design patterns. I was trying to just stick to Java topics, but if you'll forgive some self promotion, if you want to talk about becoming a better practical programmer, in general, check out the slides from a talk I give. They can be found at http://web.mit.edu/hershey/www/Real_World_Software_Engineering_files/v3_document.htm
    The talk covers some basic software engineering topics which don't get covered in most collegiate CS programs. There's also a list of references, books and web sites which will give you a starting point on these topics.

    --Mark
    Steve King
    Greenhorn

    Joined: Aug 13, 2001
    Posts: 2
    I'm privaleged. Advice much appreciated and taken to heart, especially Mark's generous reply, (may your fox-trot never faulter!). Thanks for a great forum .
    - Steve
    Raghav Mathur
    Ranch Hand

    Joined: Jan 12, 2001
    Posts: 641
    i,am shocked ...... What you've said is a selfcontradictory statemant ...... if you say that it is possible to clear the exam ( scjp for people who can't code then tell me how were you able to complete you PHD without mastering the subject .
    Originally posted by Tim Barker:
    I think many people can tell you that getting certified hardly means mastering the subject (in this casee java). There are many stories of people who have passed the exam, but don't really know how to program. There are also many stories of people who are great programmers and already work in the industry, but who have failed the test. In my opinion, many of the questions on the test are ridiculous and in no way qualify you in being a programmer. But, nevertheless if you don't have a lot of experience then you chances are not very good you will get a job programming in java if you don't pass the exam.

    P.S. I hardly consider myself in trouble since I have a PhD in neuroscience.

    Raghav Mathur
    Ranch Hand

    Joined: Jan 12, 2001
    Posts: 641
    mark :
    http://web.mit.edu/hershey/www/Real_World_Software_Engineering_files/v3_document.htm
    can the following link be downloaded ?
    do tell , please .
    Tim Barker
    Greenhorn

    Joined: Aug 03, 2001
    Posts: 24
    To raghav mathur.
    Who said anything about not mastering neuroscience? I am very knowledgable in the subject and have taught at the University level. If want to believe that passing the exam makes you God's gift to programming go ahead. Would you believe getting a good score on the MCAT would make you a doctor or qualify you in any way to treat people? It is just a test get over yourself!
    Raghav Mathur
    Ranch Hand

    Joined: Jan 12, 2001
    Posts: 641
    TIM:
    That 's exactly my point ..... how can you master a pirticular thing withoiut understanding it ( in this case , java) .
    Mark Herschberg
    Sheriff

    Joined: Dec 04, 2000
    Posts: 6037
    Originally posted by raghav mathur:
    mark :
    http://web.mit.edu/hershey/www/Real_World_Software_Engineering_files/v3_document.htm
    can the following link be downloaded ?
    do tell , please .

    Well, the copyright notice, which can be found at (http://web.mit.edu/hershey/www/Real_World_Software_Engineering_files/license.html) says that's fine fo personal use. (I should really include the notice in the slides.) However, there's no zip, so it'll be a little work by hand. Maybe I'll fix that this weekend (no promises.)
    --Mark

    Tim Barker
    Greenhorn

    Joined: Aug 03, 2001
    Posts: 24
    Raghav:

    This all started from me inserting a 1 line comment that I believed that the main reason for taking the Java Certification test is for employeers. I still stand by this statement. I been lost on the logic you are using. Your last comment was "how can you master a pirticular thing withoiut understanding it [sic]" The answer is you can't master something without understanding it. I never said you could. So if you master the Java Certification test you understand how to take the test. You obviously must know something of the java language, but you certainly don't have to be a master of the language just because you passed the test. This holds true in all areas of life. Imagine you wanted to get your computer repaired. There are 2 people you are choosing from to do the job. One of them has been repairing computers for 7 years, but has no certificate; the other has just started working, but has a A+ certificate. The one who has been repairing computers for 7 years is charging $5.00 more. Which guy do you choose? According to your logic you would choose the guy with the A+ certificate because they are both masters of their field and he charges less. I would go for the guy with 7 years experience even though I would have to pay the extra 7 dollars. I would believe the guy with the certificate must know some things about fixing the computer, but I would not be convinced he was an expert(master) simply because he held a certificate. If you disagree fine we will just have to agree to disagree.
    P.S. I think an A+ certificate is about fixing home computers, but if it is not just replace whatever certificate is with A+ ;-)
    Patricia Anderson
    Greenhorn

    Joined: Jun 15, 2001
    Posts: 24
    In my experience three things are important: a solid university degree (and it helps if you graduated from a reputable university), work experience(and it helps to work for a good company), and certification.
    When I had the first two, I scoffed at the third. In reality I was bitter, angry, and afraid. Bitter because a colleague was chosen for promotion instead of me -- and all things equal the guy with certification got the promotion. Angry because I spent a lot of money, a lot of real hard school work for five years; and guys at work with certification seemed to get more recognition. Afraid -- to take the certification exam (university reputation at stake).
    Today I am certified. I am so proud to have all three: a university degree, experience, and certification. But now, I love the pin the most.
    Peace.
    krishna anand
    Ranch Hand

    Joined: Jan 21, 2001
    Posts: 61
    Dear Friends
    Patrica has given in a nutshell the formula for success in I.T Industry 1) University Degree 2) Experience & 3) Certification .An ideal candidate is one who has all the three .So we not un-necessarily debate on the relevance of certification v/s experience as both are required in equal measures .
    ------------------
    Krishna
    Raghav Mathur
    Ranch Hand

    Joined: Jan 12, 2001
    Posts: 641
    THat is what i,am trying to tell , if a person has cleared th scjp that means he's well versed with the concepts which is equavalent to mastering the subject . i,am not going beyond the topic. how is possible to clear the exam without being well versed in it .
    Originally posted by Tim Barker:
    Raghav:

    This all started from me inserting a 1 line comment that I believed that the main reason for taking the Java Certification test is for employeers. I still stand by this statement. I been lost on the logic you are using. Your last comment was "how can you master a pirticular thing withoiut understanding it [sic]" The answer is you can't master something without understanding it. I never said you could. So if you master the Java Certification test you understand how to take the test. You obviously must know something of the java language, but you certainly don't have to be a master of the language just because you passed the test. This holds true in all areas of life. Imagine you wanted to get your computer repaired. There are 2 people you are choosing from to do the job. One of them has been repairing computers for 7 years, but has no certificate; the other has just started working, but has a A+ certificate. The one who has been repairing computers for 7 years is charging $5.00 more. Which guy do you choose? According to your logic you would choose the guy with the A+ certificate because they are both masters of their field and he charges less. I would go for the guy with 7 years experience even though I would have to pay the extra 7 dollars. I would believe the guy with the certificate must know some things about fixing the computer, but I would not be convinced he was an expert(master) simply because he held a certificate. If you disagree fine we will just have to agree to disagree.
    P.S. I think an A+ certificate is about fixing home computers, but if it is not just replace whatever certificate is with A+ ;-)

    Tim Barker
    Greenhorn

    Joined: Aug 03, 2001
    Posts: 24
    Originally posted by raghav mathur:
    THat is what i,am trying to tell , if a person has cleared th scjp that means he's well versed with the concepts which is equavalent to mastering the subject . i,am not going beyond the topic. how is possible to clear the exam without being well versed in it .

    There was a cow that jumped over the moon
    Anonymous
    Ranch Hand

    Joined: Nov 22, 2008
    Posts: 18944
    Originally posted by raghav mathur:
    THat is what i,am trying to tell , if a person has cleared th scjp that means he's well versed with the concepts which is equavalent to mastering the subject . i,am not going beyond the topic. how is possible to clear the exam without being well versed in it .

    Clearing the SCJP most certainly does not mean that you are well versed in Java, or programming. Failing the SCJP does not mean you are poor in Java or in programming. Clearing the SCJP means one thing: you have attained enough knowledge about the material on the test to get a passing score.
    Tim Barker
    Greenhorn

    Joined: Aug 03, 2001
    Posts: 24
    Originally posted by Chris Thibault:
    Clearing the SCJP most certainly does not mean that you are well versed in Java, or programming. Failing the SCJP does not mean you are poor in Java or in programming. Clearing the SCJP means one thing: you have attained enough knowledge about the material on the test to get a passing score.

    Chris thank you for your voice of reason.
    Raghav Mathur
    Ranch Hand

    Joined: Jan 12, 2001
    Posts: 641
    i agree ..... failing doen't mean that you are a bad programmer but clearing with a good percentage surely enforces the fact that you are through with the fundamentals ....... and a person who's not through with the fundamentals , how can he/she get through the exam .
    This is what i,am trying to tell tim .
    Originally posted by Chris Thibault:
    Clearing the SCJP most certainly does not mean that you are well versed in Java, or programming. Failing the SCJP does not mean you are poor in Java or in programming. Clearing the SCJP means one thing: you have attained enough knowledge about the material on the test to get a passing score.


    [This message has been edited by raghav mathur (edited August 18, 2001).]
    Pankaj Mokal
    Greenhorn

    Joined: Oct 31, 2000
    Posts: 3
    Originally posted by Mark Herschberg:

    OO
    --
    Understand object oriented programming. That is first are foremost. Understand how to take a problem, and create a set of classes and packages from it. Unfortunately, this is best learned from experience.
    Know basic data structre theory
    -------------------------------
    If you don't have a CS degree, go to your local college, find what book their data structures course uses, and read it. You should understand sorting and searching, storage structures like hash tables and binary tress, and, if possible, learn a little bit of recursion theory and complexity theory.
    APIs
    ----
    Don't worry too much about specific APIs. I don't care if you know the IO API's inside out, if you're a smart guy, and understand what a stream is, you can figur eout more complex IO as you need it. And if you can't w'll figure it out for you when we do a design/code review.
    What APIs should you know, at least minimally:
    [LIST]

    IO - know the basics, e.g. how to read and write text to a file
    Swing - understand the event model and listener pattern
    Threading - understand the basics of multithreading, how you create and use new threads
    XML - theXML and the Java APIs itself are easy, and frankly, I personally don't care if you know them, but other people like to see XML on a resume, but learning both XML itself, and some of the basic APIs may help
    EJB - know the basics, what they are and how to use them (optionally servlet's, too)
    basically, when learning APIs, go for breadth over depth. The tests often focus on depth, understanding the obscure nuiances of using a particular class or method. But again, if you're smart, and know what's out there, you can learn it as you go. So don't worry about understanding every last detail, as you would for the certification exam.

    --Mark

    excellect advice for some who really wants to be a good programmer. thanks for the advice.

    [This message has been edited by Pankaj Mokal (edited August 30, 2001).]
    Mark Herschberg
    Sheriff

    Joined: Dec 04, 2000
    Posts: 6037
    Originally posted by raghav mathur:
    i agree ..... failing doen't mean that you are a bad programmer but clearing with a good percentage surely enforces the fact that you are through with the fundamentals ....... and a person who's not through with the fundamentals , how can he/she get through the exam .
    This is what i,am trying to tell tim .

    My point wrt to this, and I think it's Tim's as well, is that while passing the test may demonstrate solid knowledge of the "fundamentals", that knowledge by itself is not sufficent to be a good programmer, or even a plausible one. I personally saw a number of people who had no CS degree, and no experience, but passed the SCJP. They didn't have clue one how to program, but they could regurgitate Java grammer, no problem.
    - I can and have hired people with a college degree, but neither experience nor certification.
    - I would hire a person with experience, but neither a degree nor certificaiton.
    - I would not hire someone with only certification (no dergeee, no experience).

    --Mark
    Mike Sasin
    Greenhorn

    Joined: Aug 31, 2001
    Posts: 6
    I'm glad Tim is not the only one with an advanced degree in another field interested becoming a programmer. I myself went to law school, got tired of practicing law, fell in love with programming (especially Java) and am starting my career over. Having passed the bar and practiced law, I hope I can shed some light on this whole "mastering" a skill controversy. Passing the bar exam does not teach you a thing about the day-to-day practical aspects of practicing law. Just because someone passed the bar doesn't mean they'll be a good lawyer, and I don't believe it tests overall "mastery". So why do it? Two reasons: uniform standards for basic knowledge and what I call a "right of passage." Let's face it, different schools and different intructors have their own way of teaching things. So, two people from two different law schools may have been taught the same subject two different ways! In order to ensure a BASIC uniform competence (note I stress basic) and to try to protect the public from incompetent lawyers (notice I say "try" to protect), the state makes everyone take the bar exam. The right of passage thing tests mental toughness - how bad do you want to do this? I knew people in law school who had relatives who were lawyers and showed them all the tricks of acing exams. Others had to work. The bar exam says okay, now you need to study this stuff for however many months and sit for a comprehensive two-day exam, 8 hours a day. If you really want to practice law, you'll go through this ordeal.
    A cynic would say that both of these reasons appeal to employers - an employer knows they'll get someone with a basic knowledge of the subject and they'll get a stooge willing to work their butt off for something. An idealist would say this is a factor of internal resolve. The answer is probably somewhere in the middle.
    Mike Sasin
    Greenhorn

    Joined: Aug 31, 2001
    Posts: 6
    Originally posted by Patricia Anderson:
    In my experience three things are important: a solid university degree (and it helps if you graduated from a reputable university), work experience(and it helps to work for a good company), and certification.
    Patricia - Do you think that the university degree must be in CS? I am one of those career changers with a degree (a few in fact) from solid schools, but not in CS. I got my computer training at a "lowly" local tech school. A friend of mine with a Masters in EE said this would not matter in my case. Since I have already
    proven myself both academically and professionally in another field, the fact that I went to a tech school makes no difference; all that matters is that I have skills. Any thoughts?
    When I had the first two, I scoffed at the third. In reality I was bitter, angry, and afraid. Bitter because a colleague was chosen for promotion instead of me -- and all things equal the guy with certification got the promotion. Angry because I spent a lot of money, a lot of real hard school work for five years; and guys at work with certification seemed to get more recognition. Afraid -- to take the certification exam (university reputation at stake).
    Today I am certified. I am so proud to have all three: a university degree, experience, and certification. But now, I love the pin the most.
    Peace.

    Patricia Anderson
    Greenhorn

    Joined: Jun 15, 2001
    Posts: 24
    Mike,
    I have worked with and have met too many successful people in the Tech sector who are not CS majors to say that only CS people can do quality Tech work. Leverage your skill in other disciplines to your own advantage.
    In my own horizon, the best:
    1) Java developer --is a business major; a close runner up is a biology major.
    2) Web developer -- has a BS in education
    3) CS Math teacher -- a mechanical engineer
    4) Linux guru -- a math major
    5) But the best Network and systems programmer I know, (and the best poet) is a CS major
    ps. Not to mention the most gorgeous lady in the world is a CS major.
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: Newbie needs professional advice