Forum Controls
Spotlight Features

The Rich Engineering Heritage Behind Dependency Injection

Andrew McVeigh takes us on a tour of the rich heritage behind dependency injection, what it represents, and tells us why its here to stay.

NetBeans 6: Matisse Updates

NetBeans 6 delivers great updates to the Matisse GUI builder. Spend a few minutes with Roman Strobl and get an expert briefing on what's new and what has changed.

Introduction to Groovy Part 3

In this, the third and final installation of Andres' Introduction to Groovy series, you learn about how Groovy handles variable numbers of arguments, named parameters, currying, and more about Groovy operators. Including, some new operators.

Easier Custom Components with Swing Fuse

Swing Fuse (actually just Fuse), is a framework designed to make it easier to create your own custom desktop components. In this article, Daniel Spiewak shows you how to get started and provides sample source code you can download.

Benchmark Analysis: Guice vs Spring

Willam Louth shows how he uses JXInsight Probes to investigate probable performance issues with code bases that he is not familiar with. He also highlights possible pitfalls in creating a benchmark, as well as in the analysis of results.
Replies: 25 - Pages: 2   [ 1 2 | Next ]
  Click to reply to this thread Reply

Is there a recipe to go from a novice to a senior in a short span.

URL: JAVA-J2EE success

At 9:12 PM on Apr 2, 2006, akpillai wrote:

Does experience alone enough to go from a novice developer to a senior developer? Is a developer with 8 years of experience more knowledgeable and skillful than someone with only 4 years?

I do not believe so. All depends on how much a pro-active and an eager learner you are. Some developers are more pro-active than others in a sense that they always look for ways to acquire more knowledge/skills and ways to improve their code by

-- Reading articles and books of relevance.
-- Preparing for Java certifications.
-- Participating in Java forums/discussions.
-- Actively discussing your doubts with a senior/fellow member of the team (I had been lucky to have good mentors) etc. Pro-active learners are more likely to have good mentors.

In my view, pro-active learners with less experience should aim at writing a skills/knowledge based resume as opposed to concentrating more on their work experience.

For example:

Java - 21 months.
Servlet - 8 months.
JSP - 6 months.
EJB - 6 month.
Hibernate - 6 months
UML - 4 months
SQL - 20 months
XML -- 8 months

and so on. I had to do this in my early stages of job hunting to get a foot in the door for an interview. Once I am at an interview, all my pro-active learning starts to unwind and once you start impressing your interviewer, the number of years of experience you have becomes less significant.

Those of you who are already in good jobs can impress your team leaders, solution designers and/or architects for a possible promotion by demonstrating your pro-actively learnt skills/kowledge. For example, I impressed my superiors by identifying the following basic issues in an existing piece of code and subsequently fixing them:
-- Struts action classes are not thread-safe.
-- JSP variable declaration is not thread-safe.
-- Valuable resources like database connections should be closed properly to avoid any memory and performance issues.
-- Throwing an application exception will not rollback the transaction in EJB.

Finally, Technical skills must be complemented with interpersonal skills . That is, be a team player, be tactful and don’t be critical of everything, do not act in a superior way and have a sense of humour.

Would like to know others' view on this.
1 . At 9:21 AM on Apr 3, 2006, Drew DeNardo wrote:
  Click to reply to this thread Reply

Re: Is there a recipe to go from a novice to a senior in a short span.

In terms of technical skills, intelligence, and creativity -- there is some correlation between years of experience and abilities in these areas, but the correlation is probably small. Some of the brightest and best coders I have known impressed me as such when they were 22 and fresh out of College.

In my opinion, however, it takes more than talent with languages, algorithms, and paradigms to achieve a "senior" level. Being senior means more than just kick-ass coding. I expect a senior engineer to understand the business side of things and contribute to making correct business decisions even when they are not optimal from a technical point of view. I expect a senior engineer to be able to interact with senior management and executives inside and outside of my company -- and the maturity and communications skills needed for that have a much stronger correlation to years of experience than does ability to bang out code [see caveat below]. I expect a senior engineer to be able to deal with tasks that are big in scope and largely undefined -- and for all of us but the pure geniuses, it takes time (and lessons learned from many mistakes) to be able to do this.

What does this mean? In terms of coding skills, years of experience are not a big factor in my book. In terms of the breadth, depth, and maturity of the entire skill set (technical and otherwise), years of experience is often a good indicator. Do I know people who have earned a senior designation after 4 years on the job? Absolutely. Do I know people with 20 years of experience who haven't earned it? Absolutely. That is why there shouldn't be written-in-stone rules limiting or forcing the transition to senior engineer. Nonetheless, the lessons you learn from putting in your time -- and making the most of that time -- are invaluable in terms of growing yourself personally and professionally.

[Caveat from above: I know plenty of seasoned/senior engineers who scare me to death when they talk to the person in the cube next to them, much less anyone in management, so seniority is far from a predictor here. I would say that for those engineers who have at least adequate social skills, however, maturity is a reasonable but not perfect predictor of the scope and visibility of internal / external communications the engineer is ready for]
2 . At 10:22 AM on Apr 3, 2006, Brian Cunningham wrote:
  Click to reply to this thread Reply

Re: Is there a recipe to go from a novice to a senior in a short span.

In any job, an active willingness to expand your expertise beyond what you know (even outside/beyond Java programming) will go a long way. Most of the jobs that I've landed haven't been so much because of what I know as much as my willingness to learn more .

At the same time, I wouldn't get too focused on rising through the ranks. There are no hard-and-fast rules, and definitely no shortcuts. I found that this article makes some very valid points - the #1 thing being:

"Get interested in programming, and do some because it is fun. Make sure that it keeps being enough fun so that you will be willing to put in ten years."

That alone will carry you a long way in your career. One way or another, managers will notice the people that are passionate about what they do: For good or ill - the bad managers will be threatened by it (which means you need a better place to work), the good ones will reward it.

It sounds cliche, but far too many people out there focus on rising through the ranks without thinking much about whether they actually enjoy what they do: If you love what you do, the rewards will come in time.
"The easy, familiar approach often has nothing in it's favor except that it requires less thinking" -Michael Abrash
3 . At 10:53 AM on Apr 3, 2006, Roland Hesz wrote:
  Click to reply to this thread Reply

Re: Is there a recipe to go from a novice to a senior in a short span.

Be the cousin/son/daughter/lover of the IT boss :)

You'll be senior in no time :)
4 . At 11:04 AM on Apr 3, 2006, Yakov Fain DeveloperZone Top 100 wrote:
  Click to reply to this thread Reply

Re: Is there a recipe to go from a novice to a senior in a short span.

> Does experience alone enough to go from a novice
> developer to a senior developer?

Unfortunately, having just good technical skills alone is not enough to become a senior (at least career wise). You can definitely become a geek, which is not the same as a senior developer

>Is a developer with 8 years of experience more knowledgeable and skillful than someone with only 4 years?
Not at all. A consultant with 4 years of experience working on various projects is most likely more skillfull than most of the people sitting in the same cubicle for 8 years doing the same routine coding.

> Some developers are more pro-active than others in a
> sense that they always look for ways to acquire more
> knowledge/skills and ways to improve their code
> by

This is a very important pre-requisite. One need to have a really good motivation to become a senior programmer.

>Pro-active learners are more likely to have good mentors.

This is The most important part. I've a good success rate in converting motivated juniors into senior programmers within 6-9 months by giving them portioned amounts of various technologies and showing how they work together. You must have a good mentor with a real-world experience. Ideally, someone should refer such a person to you.

> Finally, Technical skills must be complemented
> with interpersonal skills
. That is, be a team
> player, be tactful and don’t be critical of
> everything, do not act in a superior way and have a
> sense of humour.

This is really very important.
Yakov Fain my blog
5 . At 1:40 PM on Apr 3, 2006, Will Hartung DeveloperZone Top 100 wrote:
  Click to reply to this thread Reply

Re: Is there a recipe to go from a novice to a senior in a short span.

> Not at all. A consultant with 4 years of experience
> working on various projects is most likely more
> skillfull than most of the people sitting in the same
> cubicle for 8 years doing the same routine coding.

This is the key, IMHO. If you're in a small consulting firm, particularly one where you're involved in many disparate "6 month" projects, and where you get to interact with the customer, then you'll "grow" faster than someone locked in a backroom reading every book on the planet.

Why? Because you get trench experience, getting the code right, maintaining it later, fighting deadlines, meeting reasonable and unreasonable people to get reasonable and unreasonable compromises, etc. It's great going on sales support calls and watching the marketing guy make promises that YOU are going to have to deliver on.

Write 3 large projects in 18 months for 3 different clients, and do you know what you get? 3 different projects to maintain and support, along with a 4th to plan and implement. Nothing focuses the mind like the phone ringing.

Working on several projects also gives you more opportunities to try new things. Say you write a project based on Struts and then want to try, say, Tapestry. There's no way you're going to "redo" your first project to support Tapestry. The client won't pay for it, and however good Tapestry is, it's not any better than a working system.

But there's no reason you can't use it on a new project for a new client.

I used to work at a defense contractor doing work for simulations and such. There was a guy there working on a aircraft simulation. It was written in FORTRAN as I recall.

7 years later reminiscing with old friends and co-workers, I found out he was still there, still working on that same simulation. Meanwhile I had run off from missile simulations into magazine publishing (there's a leap), then post production for film and television, warehousing, book publishing, etc. All over the map.

So, book learning is important, but world experience is far far more important. Get out from behind the books and have a client screaming in your face during a site visit. Trust me, you'll learn something.
6 . At 2:59 PM on Apr 3, 2006, Abhay Bakshi DeveloperZone Top 100 wrote:
  Click to reply to this thread Reply

For me: recipe existed. 'Confidence factor' weighed in.

Mr. pillai: This was such a relevant topic you had posted on Javalobby. Congratulations! I appreciate your attempt to generate an opinions' database from the readers of our Javalobby.

I think, at the end of this thread, you should also take the responsibility and put together the recipe for every one of us to come back and refer to.

Now, as for my opinion, there certainly exists a recipe to go from a novice to a senior *in a short span*. I don't know what the 'precise' recipe is; but such avenues exist. Many prominent avenues were mentioned in your initial post, and I agree with most of them.

I also agree with other posters here on this thread. One thing I want to add, which is as follows: I too had seen myself going from a novice to a senior in a short span of time (by following similar steps as mentioned in your post) - but the 'confidence' factor (you know, the 'confidence' factor :) ) only came through experience. But, that must be just me. Things work differently for different individuals. To express my opinion in other words - after getting to the 'senior' spot, I always knew what solutions existed for a given problem; but, I wasn't sure if my solutions were optimum. Therefore, I say that the 'confidence' factor came in after I had years' of experience. Do you see what I am trying to say?

But, again, the recipe exists. Mentors will (and should) help in increasing the 'confidence' factor for a student. Then, it becomes up to the novice-turning-senior person how to approach problem-solving in real life.

Thank you again.
7 . At 7:47 PM on Apr 3, 2006, akpillai wrote:
  Click to reply to this thread Reply

Re: Is there a recipe to go from a novice to a senior in a short span.

Thanks for all the very valid points. As was pointed out businees knowledge is another key factor. It is a skill by itself to know how communicate with busineess in their language without any technical jargons.

Would also like to know some of the other success stories and what really helped them achieve it, so that others can benefit from it as well.
Java J2EE Job Interview Questions With Answers | Java J2EE core concepts and Key Areas
8 . At 8:45 PM on Apr 3, 2006, Tom Pridham wrote:
  Click to reply to this thread Reply

Re: Is there a recipe to go from a novice to a senior in a short span.

At my place of employment in Tampa FL, we are trying to fill 2 J2EE positions to work with WebSphere. We have been hard pressed to find anyone who really knows what they are talking about. Here are what I look for when doing either a phone screen or a face-to-face interview:

1. Can the candidate articulate what they are trying to say in a clear and simple manner.

2. In the roles the developer has had, do they understand what is going on outside of their cubicle walls. (i.e. What the QA process is. Who the QA people are. What type of SDLC you are using. How does your entire business operate. etc) The reason I say this is that I have intervied strong "heads-down" coders that are great at creating objects, but CANNOT interface with the business or quality folks. In the type of economy we are in in the USA, "heads-down" coders will become almost obsolete. You must learn some basic business skills to go along with your technical ones.

So the recipe for moving up the Java ladder quickly is really knowing what you are doing. Gain some basic business skills. Constantly read JavaLobby.org and TheServerSide.com. Either joing an open source project or create one of your own. READ READ READ!!!! :-)

God Bless,
Tom
Regards,
Tom Pridham
Technologist & Founder
Coastal Software Solutions Inc.
office: 813.600.5053
Pridham@Mindspring.com
9 . At 9:44 PM on Apr 3, 2006, Jeffrey Bennett wrote:
  Click to reply to this thread Reply

Re: Is there a recipe to go from a novice to a senior in a short span.

I really think you're confusing intelligence with wisdom.

Knowing the ins and outs of a wide variety of technologies is mere intelligence. You *can* climb very high very fast in this regard. Books, classes or just putting the time in go a long way in raising ones technical intelligence.

But the designation of senior conveys some level of wisdom as well. Here, you have to consider the softer side of things. Being able to read the client, knowing when to shut up, being able to convey technical information to non-technical people. Developers often dissmiss all of this as 'politics', but isn't it the politically saavy people that become 'seniors'?

Wisdom is not as easily learned. I know of no good way to to learn it except through long experience (and by learning from one's mistakes). I suspect that's why we see roles like 'tech lead' (intelligent, but generally lacking in politics) as opposed to 'team lead' (actually managing people, i.e. seniors). These are effectively 'junior leader' positions, but limit the potential damage that could be done by inept people handling.

To become wise quickly, you would need to hold a position of leadership. The mantle of command will give you the experience needed. Obviously, "business" only does this when it has something to gain in exchange, but there are places where you can pick up the requisite skills. Open source projects, community organizations and the like all offer places where you can practice your people skills.
10 . At 10:42 PM on Apr 3, 2006, Jonathan Locke wrote:
  Click to reply to this thread Reply

Re: Is there a recipe to go from a novice to a senior in a short span.

I believe there is a sort of short-cut process. But only very rare individuals can take it because most people have such a terrible time with ego and changing their minds. The basic problem is that progress requires learning and real learning pretty much requires you to fail. This is the formula:

- never do anything where you don't risk failure; if you can't fail, you can't learn.
- always strive to understand why, not just how. dig into your mistakes no matter how painful to understand where and how and when YOU fucked up
- listen critically and with focus not only to mentors and fellow programmers, but to everyone around you
- be a masochist; accept and encourage criticism of your work. to do this, you have to really get into tearing yourself down: become your own worst critic
- never believe that you understand anything, no matter how much of an expert your ego wants you to be
- teach what you need to learn even if you don't fully understand it... actually, /especially/ when you don't fully understand it.

If I had done these things from day one, it would have taken me half as long to get where I am... on the other hand you can only progress as fast as you can progress. Rapid progress may be superficial. And progress is never linear. I'm reminded of the saying "the best horse runs at the shadow of the whip". This is true in some sense. But the horse that doesn't experience whipping doesn't get a deep impression of the lesson. The horse who has been whipped longer may find a deeper revelation than the one who always runs before being whipped.
11 . At 11:44 PM on Apr 3, 2006, Jean-Marie Dautelle DeveloperZone Top 100 wrote:
  Click to reply to this thread Reply

Re: Is there a recipe to go from a novice to a senior in a short span.

The term "senior" ofter implies "older", I assume that you mean "leader" here. I don't think there is any single recipe to be a good leader. It takes opportunity and a broad range of personal skills. I have met few true "leaders" in my career, none of them was excessively technical but all were good listeners and most importantly all had a vision and were able to share that vision. Finally, it is my opinion that the best leaders work for you and not for their own boss or their own personal career. Therefore, someone too interested in becoming a "leader" (e.g. looking for recipes ;) ) is doomed to failure in my book. Unfortunately, the competitive climate in large US companies makes it very difficult to find good leaders there...
Jean-Marie Dautelle - Marlboro, MA
-- Javolution: Everything should be made as simple as possible... -- JScience: But not simpler!
12 . At 5:39 AM on Apr 4, 2006, Mats Henricson wrote:
  Click to reply to this thread Reply

Deep knowledge is good, but so is also wide knowledge

I work at a small consultancy firm called Crisp , and what we do is to spend every second Friday morning studying something new or interesting together. One of us (we're 9 at the moment) gets to prepare a subject of his or her own choosing. Then he/she presents it and we discuss it for about 3 hours. Some days it is very interesting, some days a bit less, depending on your own interests, of course. Over the last four years we've skimmed these subjects:

Bash, Hibernate annotations, Testing Swing applications, DWR, Ajax, Mambo, Java 5 threading, AspectJ, Subversion, IoC, SWT, SpringMVC, The Future of Java, ANTLR, Usability, XP 2.0, Integration Testing, JavaSpaces, Tapestry, CSS, Function- and system test, Prevayler, Wiki, NakedObjects, Swing, UML 2.0, Java gotchas, Spring, DBUnit, Security, UML, JSF, VoiceXML, Java 5, C#, Cryptology, Ruby, XDoclet, Hibernate, XML Schema, Python, WAP, WebDAV, Tiles and Struts, JContract, .Net, Web Services, RUP, JUnit, Servlets 2.3 & JSP 1.2, JDO, J2ME, EJB, JDK 1.4, JNDI, Refactoring, JMS, XSLT.

I wouldn't dream of calling myself a Tapestry expert, but I've seen the basics, and that is part of being a senior developer, IMHO.
13 . At 6:22 AM on Apr 4, 2006, Yakov Fain DeveloperZone Top 100 wrote:
  Click to reply to this thread Reply

Re: Deep knowledge is good, but so is also wide knowledge

Mats,

You are missing the point. Learning N technologies/languages is good, but this alone does not make you a leader. I hate to say that, but these day it'll only can make you "a senior resource" (unfortunately most managers call programmers "resources" this term). Beeing a just a good programmer is not enough, and such skills can be purchased for less overseas ( I wrote about it over here: http://java.sys-con.com/read/180348.htm ).
I know very good Java programmers who have the following attitude: "just let me write code and leave me alone". These people are not leaders, and I hope the original poster is planning to become a leader and not just a person who know some programming language well.
Yakov Fain my blog
14 . At 7:16 AM on Apr 4, 2006, Tito Bayuadji wrote:
  Click to reply to this thread Reply

Re: Is there a recipe to go from a novice to a senior in a short span.

> - never do anything where you don't risk failure; if
> you can't fail, you can't learn.
> - always strive to understand why, not just how. dig
> into your mistakes no matter how painful to
> understand where and how and when YOU fucked up
> - listen critically and with focus not only to
> mentors and fellow programmers, but to everyone
> around you
> - be a masochist; accept and encourage criticism of
> your work. to do this, you have to really get into
> tearing yourself down: become your own worst critic
> - never believe that you understand anything, no
> matter how much of an expert your ego wants you to
> be
> - teach what you need to learn even if you don't
> fully understand it... actually, /especially/ when
> you don't fully understand it.

Kudos for you, I feel the same especially in 'teach', teach someone about something, give you another perspective, and automatically give you more knowledge about the stuff.

thread.rss_message