views:

461

answers:

8

After teaching myself coldfusion for around three years and doing a few sites for friends, I was lucky enough to get a role as a junior coldfusion developer.

I have now been here for about six months, and have learnt alot so far about svn, project management, stored procedures etc etc. And have also been learning Jquery, CF9 ORM whilst working, so its been an excellent working environment.

Thing is, im a bit unsure about progression, and at what stage i should be looking to advance to a middleweight developer.

At the moment I feel I am working at a lower level of responsibility than the senior developers, but on the current project im working on, I really dont feel any difference in our levels of programming.

Further to this, I have also been given a project to run on my own, which is the re-design of the companys main website. Which I think is a reasonable amount of responsibility for a junior.

So, am wondering at what point I should be looking to move into a mid-level position.

A: 

You should remain a junior developer for at 3 years, there are so many things going on behind the scenes as you increase in skill that it is hard for you to handle them at this point. The further up the ladder you go the more politics start to play a part in how you interact with colleagues. Also the less questions you are allowed to ask as well, because people will come to you as the expert. So that being said I recommend asking as many questions now as you possibly can to prepare yourself for being a mid-level developer.

Woot4Moo
I disagree regarding the "questions you can ask" point. Every single person should admit when they don't know something, and ask questions to resolve the matter. Your *reasoning* ability to should be quite fast, as well as your ability to understand, but I find it frustrating if people are actively avoiding asking questions so that they appear smart.
Noon Silk
Does it really require a fixed time scale?
namtax
I agree with namtax, I have never considered that it takes a fixed number of year to gain the skills required. Seniority is measured in ability and attitude, not years. One of the biggest problems in IT is its reliance on needing x number of years in a certain role.
jheppinstall
in terms of years, based on state side figures, thats how I have always had it described to me. Time > Ability (In terms of what hiring managers tell me )
Woot4Moo
+2  A: 

Redesigning a company website should be a big deal for anyone! Of course, that all depends on how big the company is.

There's a lot to get your teeth into here: static vs dynamic, load balancing, hardware, database, security.

If you get this right you will be definitely middle-weight or better!

You're on the right lines, learning SVN, JQuery etc are all good skills. The thing I look for in developers moving to the next level is mastery of tools. I never met a good developer who wasn't a master of his/her tools.

Fortyrunner
+1 for the mention of getting that one big project right. Gotta prove yourself with a path of successes (or learning experiences).
Mat Nadrofsky
+5  A: 

Really, all that really matters is if you can do the job as it is advertised. If you look at an advertisement, or hear about a job, and feel comfortable doing it, then go for it! Probably, you won't get much consideration until you've had a few years experience, but it can't stop you from wanting to be challenged; to seek out the harder work and try and get it.

I think, typically, people stay as "juniors" for around a year or less. After that, you tend to consider yourself mid-level.

But as I said, what's more important is if the you can do what the Job says, and not what the job title happens to be (people can word their job titles strangely).

In my opinion, if you are confident about your skills, and think you can do the job, I see no particular reason to not give you a chance (but of course, make sure you deliver on it :)

Noon Silk
Thanks, very good advice
namtax
A: 

You mention responsibility as one of the differences between you and the 'senior' devs. The question is: Are you ready to take on more of the responsibility? Seniority is about your attitude to work, your skills and your ability to do what you are hired to do, it cannot be measured in years in any suitable or meaningful way.

jheppinstall
I feel I would be ready for such responsibility. As I say, I have been given the task of redeveloping the companys central website, so feel like greater responsibility has been given to me already.
namtax
+2  A: 

This business is funny.

I started out as the sole programmer for a tiny shop. I rewrote one piece of software almost entirely and constructed several more from the ground up. When they replaced me, they hired four guys. At the time I thought it was because I was awesome, but it turns out that it was a combination of their desire to expand and the amount of work involved in handing off several significant pieces of software.

My next job I was responsible for one tiny piece of a million-line commercial package. Because of my previous experience, I knew a fair amount about everything a system needed to do, and I had a very different perspective on development than most of the existing programmers at that shop. I ended up going all over the place, from testing to install development to architectural brainstorming.

In my current role, I started as a mid-level guy who knew how to program but didn't know the system, and now I'm doing the planning and core framework development.

It's likely that you won't really be a "mid-level" developer until you've moved on to another role, maybe even several. I would be extremely hesitant to hand over a lot of responsibility to someone who has only been developing professionally for 6 months unless they showed an incredible aptitude for the work. More importantly, your ability to function as something more than a junior developer depends largely on what your team needs and what you can contribute.

Having said that, there's no roadmap - look for bigger and more interesting projects to take on, and pitch yourself as a candidate. At some point you will find yourself ready to move upwards and onwards, and, most likely, outwards. It's really hard to break out of a junior developer role unless you're in a very structured work environment with strictly defined tiers, but it's really easy to move upwards when you transition to a new job.

Mike Burton
Yeah, it seems likely that getting a new job will be the only way to progress. Thanks for your detailed response
namtax
+1  A: 

To be honest, a lot of developers think they are better than what they actually are (you may or may not fit in to this category).

I have been part of the interviewing/testing process for senior developers, and many who consider themselves senior fall down when asked simple technical questions. This is because people have different interpretations on what constitutes a particular "level". Unlike some professions, there is no prescribed level at which you get promoted up the ranks, the amount of variance in skills and capabilities out there is huge.

To me, a developer should not consider themselves a mid level/intermediate developer until they have been in the business for at least 2 to 3 years, and in that time they have either had more than one job, or have had several roles within the same company. This has got nothing to do with intelligence and capability and specific programming skills, it has to do with experience. You can be the smartest cookie in the packet, but you also need to have experienced lots of different situations and road blocks, and know how to overcome each one in the best way possible. You will not have experienced everything at this stage, but you will have had a good grounding, and be able to use the experience you have to overcome new problems.

More importantly, you cannot take a level of expertise at one place and apply it to the whole market. You may be awesome at your current place of employment, but the standards can be totally different when you step through the doors at someone else's place. You do want to paid for what you are doing though, so if you are doing the work of (what is considered) a senior dev at your current place, then it is only fair you get the same compensation and/or recognition.

In regards to guaging your level of seniority, don't be too fixated on it, because the standards vary so much. I personally think that you need to look at how other industries judge these things. Is a civil enegineer a senior after participating in the building of one bridge? Is a surgeon a senior after just one or two years of operating on people?

slugster
A: 

There are a couple of different ways to look at this, IMO:

  1. Within the company. Does your current employer have well-defined levels of junior, intermediate and senior developers? If not, then that may be part of the problem here. There are so many different interpretations of the terms that some companies may claim that it takes 10 years to become an intermediate while others may have a much lower threshold. If there are clear levels then you should discuss with your manager what you have to do to get there. What doesn't he see that would make you an intermediate developer? Note that this is working within a company and not wanting to take on other definitions in a sense.

  2. Outside the company. This is where things can get tricky as now each company's standards start to apply but it may not be a bad idea to find a few placement firms and see what they think of you wanting to move into an intermediate position. If you want a couple of examples of such a firm, here in Canada there is Robert Half International and Sapphire Technologies.

JB King
A: 

should a mid level be conversant in oop? be able to write regular expressions? bitwise permissions? left joins? there could be a checklist...

Robert Huttinger