Developer Skills
-
Junior:
- Able to work unsupervised on small projects.
- Able to research technical problems and develop complete solutions using only an Internet connection and an Amazon.com gift card.
- Able to understand the architecture of an existing system after a few weeks spent reading the code.
- Perky and brunette.
Intermediate:
- Able to work unsupervised on large projects.
- Possesses knowledge required to accomplish common tasks with minimal time spent on research.
- Obsessive about thoroughly testing all code before checking it in.
- Able to understand the architecture of an existing system after a few days spent reading the code.
- Perky and brunette.
Senior:
- Able to supervise large projects.
- Able to write books and articles used by junior developers when researching technical problems.
- Able to write brutal testing systems for all new code prior to checking it in.
- Able to recognize and understand the architecture of an existing system after a few hours spent reading the code, as well as provide a list of potential problems should the system be adopted, and several suggestions for significantly improving performance and reducing resource consumption. Should be able to explain the system to a junior programmer or a senior manager with equally good results using completely different terminology, and above all should be able to do so while remaining
- Perky and brunette.
Perky? Show me a programmer who's perky, and I'll show you a programmer that's either on the end of a three day World of Warcraft marathon, or a crystal meth addict (not that you can tell the difference).
Software Zen:
delete this;
-
Junior:
- Able to work unsupervised on small projects.
- Able to research technical problems and develop complete solutions using only an Internet connection and an Amazon.com gift card.
- Able to understand the architecture of an existing system after a few weeks spent reading the code.
- Perky and brunette.
Intermediate:
- Able to work unsupervised on large projects.
- Possesses knowledge required to accomplish common tasks with minimal time spent on research.
- Obsessive about thoroughly testing all code before checking it in.
- Able to understand the architecture of an existing system after a few days spent reading the code.
- Perky and brunette.
Senior:
- Able to supervise large projects.
- Able to write books and articles used by junior developers when researching technical problems.
- Able to write brutal testing systems for all new code prior to checking it in.
- Able to recognize and understand the architecture of an existing system after a few hours spent reading the code, as well as provide a list of potential problems should the system be adopted, and several suggestions for significantly improving performance and reducing resource consumption. Should be able to explain the system to a junior programmer or a senior manager with equally good results using completely different terminology, and above all should be able to do so while remaining
- Perky and brunette.
I'm a porky tourette. Do I qualify?
Henry Minute Do not read medical books! You could die of a misprint. - Mark Twain Girl: (staring) "Why do you need an icy cucumber?"
-
Having recently been plagued with a junior developer whose coding doesn't seem to be improving (even after working for close to 3 years :wtf: ) and interviewing a bunch of people who despite extensive programming experience, still cannot complete a very basic coding test :confused:, I've decided to investigate what skills the coding community reasonable think that Junior, Intermediate and Senior developers should be capable of... Opinions please?
Junior - has basic understanding of the environment and language as well as basic coding techniques, and requires regular supervision and peer review. Intermediate - uses more advanced coding techniques and has deeper understanding of the capabilities of the language/framework - requires occasional supervision. Senior - same as intermediate but can lead a team of developers and requires little/no supervision.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001 -
Junior:
- Able to work unsupervised on small projects.
- Able to research technical problems and develop complete solutions using only an Internet connection and an Amazon.com gift card.
- Able to understand the architecture of an existing system after a few weeks spent reading the code.
- Perky and brunette.
Intermediate:
- Able to work unsupervised on large projects.
- Possesses knowledge required to accomplish common tasks with minimal time spent on research.
- Obsessive about thoroughly testing all code before checking it in.
- Able to understand the architecture of an existing system after a few days spent reading the code.
- Perky and brunette.
Senior:
- Able to supervise large projects.
- Able to write books and articles used by junior developers when researching technical problems.
- Able to write brutal testing systems for all new code prior to checking it in.
- Able to recognize and understand the architecture of an existing system after a few hours spent reading the code, as well as provide a list of potential problems should the system be adopted, and several suggestions for significantly improving performance and reducing resource consumption. Should be able to explain the system to a junior programmer or a senior manager with equally good results using completely different terminology, and above all should be able to do so while remaining
- Perky and brunette.
All the blonds become project managers?
-
Having recently been plagued with a junior developer whose coding doesn't seem to be improving (even after working for close to 3 years :wtf: ) and interviewing a bunch of people who despite extensive programming experience, still cannot complete a very basic coding test :confused:, I've decided to investigate what skills the coding community reasonable think that Junior, Intermediate and Senior developers should be capable of... Opinions please?
Junior: No Programming Experience other than college (without college self-taught), background in math, rudimentary understanding of principles of Computer Science. Requires constant supervision of tasks. Intermediate: Around 3 years professionally, mastered at least one language, familiar with professional development concepts such as source control, testing, team play, and maintainability. Able to accomplish tasks with minimal supervision Senior Developer: Mastery of environment, multiple languages, ability to quickly learn and adapt to new technologies and techniques, able to mentor less experienced developers and accomplishes tasks with no supervision. Should be able to understand the big picture and code appropriately, requesting design changes when appropriate. Each higher level assumes mastery of a lower level.
Need software developed? Offering C# development all over the United States, ERL GLOBAL, Inc is the only call you will have to make.
If you don't ask questions the answers won't stand in your way.
Most of this sig is for Google, not ego. -
Having recently been plagued with a junior developer whose coding doesn't seem to be improving (even after working for close to 3 years :wtf: ) and interviewing a bunch of people who despite extensive programming experience, still cannot complete a very basic coding test :confused:, I've decided to investigate what skills the coding community reasonable think that Junior, Intermediate and Senior developers should be capable of... Opinions please?
Wenff wrote:
and interviewing a bunch of people who despite extensive programming experience, still cannot complete a very basic coding test
On one side people complain that there are talented developers in the country - yet very often there are posts here that complain that they can't find a good developer. Somewhere, there is a disconnection. Perhaps you are in some isolated town in the middle of nowhere?
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
My latest book : C++/CLI in Action / Amazon.com link -
Wenff wrote:
and interviewing a bunch of people who despite extensive programming experience, still cannot complete a very basic coding test
On one side people complain that there are talented developers in the country - yet very often there are posts here that complain that they can't find a good developer. Somewhere, there is a disconnection. Perhaps you are in some isolated town in the middle of nowhere?
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
My latest book : C++/CLI in Action / Amazon.com linkOops - never mind. You are in South Africa :-) I assumed you were in the States.
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
My latest book : C++/CLI in Action / Amazon.com link -
Wenff wrote:
and interviewing a bunch of people who despite extensive programming experience, still cannot complete a very basic coding test
On one side people complain that there are talented developers in the country - yet very often there are posts here that complain that they can't find a good developer. Somewhere, there is a disconnection. Perhaps you are in some isolated town in the middle of nowhere?
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
My latest book : C++/CLI in Action / Amazon.com link -
Having recently been plagued with a junior developer whose coding doesn't seem to be improving (even after working for close to 3 years :wtf: ) and interviewing a bunch of people who despite extensive programming experience, still cannot complete a very basic coding test :confused:, I've decided to investigate what skills the coding community reasonable think that Junior, Intermediate and Senior developers should be capable of... Opinions please?
One thing to look for too is a sense of insight. This is vital for debugging and figuring out problems. Whether you have a PC or an embedded system (I have done both), you need insight into the overall picture in order to make educated guesses as to what way to accomplish a task, insert debugging code, etc. Someone who looks at the big picture in addition to the small details. All the best software engineers I have worked with (and hardware engineers too), had the ability to see the bigger picture from their insight. As a result, their designs, code, etc. had fewer bugs when released and were a lot more easily maintained. A second thing to look for is a willingness to learn and the willingness to investigate new technologies and ways of doing things. This gets one so much further. I have worked with embedded engineers, Windows CE software engineers, and PC software engineers, and have found that these 2 things are the common thread between all the best ones.
-
The unswerving ability to know when you don't know something but know how to find out. Code is properly commented (in other words the comments actually relate to the code :-)). Always and without fail. Code is readable. The knowledge that tests are pretty meaningless other than to the smart arse that wrote it. I may not be able to write complex code for situations that never arise in real life under test conditions (how often do I have to write code under those conditions in your office? Really? Not sure I want to work in an office as poorly managed as that) but I can tell you how I would approach and then solve the problem. Just my tuppence worth.
digital man wrote:
The knowledge that tests are pretty meaningless other than to the smart arse that wrote it.
You nailed it.
Best wishes, Hans
[CodeProject Forum Guidelines] [How To Ask A Question] [My Articles]
-
Wenff wrote:
and interviewing a bunch of people who despite extensive programming experience, still cannot complete a very basic coding test
On one side people complain that there are talented developers in the country - yet very often there are posts here that complain that they can't find a good developer. Somewhere, there is a disconnection. Perhaps you are in some isolated town in the middle of nowhere?
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
My latest book : C++/CLI in Action / Amazon.com linkI think the REAL problem is that so many developers are asking such high salaries compared to their skill level. We had one applicant that wanted $50,000/yr - fresh out of college and with absolutely no work experience in the industry. I've been programming for nearly 30 years, and I don't make much more than that myself, and I'm rated at Programmer 4. Maybe that's why I don't have problems finding work. I don't have over-developed expectations (I personally think US programmers as a group are WAY over-paid). We're currently looking for an entry-level programmer (Programmer 1 or 2). They're idea of adequate pay for man entry level coder is $30k/yr. If I were a developer desperate for a job, I think I'd be willing to dumb-down my resume in order to get an interview, and then take the job when it was offered. For the record, we find it very difficult to find programming talent in San Antonio, and I think it's because developers aren't so ready to accept the lower pay that the geographic area demands. That serves to feed the problem that there aren't a lot of high-tech companies in town with programming positions. It's a vicious cycle.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001 -
I think the REAL problem is that so many developers are asking such high salaries compared to their skill level. We had one applicant that wanted $50,000/yr - fresh out of college and with absolutely no work experience in the industry. I've been programming for nearly 30 years, and I don't make much more than that myself, and I'm rated at Programmer 4. Maybe that's why I don't have problems finding work. I don't have over-developed expectations (I personally think US programmers as a group are WAY over-paid). We're currently looking for an entry-level programmer (Programmer 1 or 2). They're idea of adequate pay for man entry level coder is $30k/yr. If I were a developer desperate for a job, I think I'd be willing to dumb-down my resume in order to get an interview, and then take the job when it was offered. For the record, we find it very difficult to find programming talent in San Antonio, and I think it's because developers aren't so ready to accept the lower pay that the geographic area demands. That serves to feed the problem that there aren't a lot of high-tech companies in town with programming positions. It's a vicious cycle.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001Wow, I thought Johnstown was a low pay area, the bottom end my my companies programmer 2 bracket is around $50k, the bottom of the programmer 1 bracket was $35k 4 years ago, and AFAIK was increased by a significantly more than inflationary amount last summer.
Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall
-
All levels should produce commented code that is easy to follow. Anything out of the ordinary must be commented or otherwise documented for your own later understanding or for a new coder to examine. Each level must be able to communicate their ideas to all others. Higher levels should not discard ideas and techniques from lower levels without providing good reason due to their knowledge of the systems or previous experience.
My new favourite phrase - "misdirected leisure activity"
What's a comment?
Todd Smith
-
I think the REAL problem is that so many developers are asking such high salaries compared to their skill level. We had one applicant that wanted $50,000/yr - fresh out of college and with absolutely no work experience in the industry. I've been programming for nearly 30 years, and I don't make much more than that myself, and I'm rated at Programmer 4. Maybe that's why I don't have problems finding work. I don't have over-developed expectations (I personally think US programmers as a group are WAY over-paid). We're currently looking for an entry-level programmer (Programmer 1 or 2). They're idea of adequate pay for man entry level coder is $30k/yr. If I were a developer desperate for a job, I think I'd be willing to dumb-down my resume in order to get an interview, and then take the job when it was offered. For the record, we find it very difficult to find programming talent in San Antonio, and I think it's because developers aren't so ready to accept the lower pay that the geographic area demands. That serves to feed the problem that there aren't a lot of high-tech companies in town with programming positions. It's a vicious cycle.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001 -
What's a comment?
Todd Smith
I tend not to comment much, but "Any code of your own that you haven’t looked at for six or more months might as well have been written by someone else." Eagleson’s Law brings to mind the need to write and occasional comment in case I forgot what I was doing there. :-D
SS => Qualified in Submarines "We sleep soundly in our beds because rough men stand ready in the night to visit violence on those who would do us harm". Winston Churchill
-
Having recently been plagued with a junior developer whose coding doesn't seem to be improving (even after working for close to 3 years :wtf: ) and interviewing a bunch of people who despite extensive programming experience, still cannot complete a very basic coding test :confused:, I've decided to investigate what skills the coding community reasonable think that Junior, Intermediate and Senior developers should be capable of... Opinions please?
I'm curious why anyone would hire junior or intermediate programmers these days. Surely a senior one that is actually good makes better economic sense?
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
-
All the blonds become project managers?
They keep my pencil sharpened.
-
I'm curious why anyone would hire junior or intermediate programmers these days. Surely a senior one that is actually good makes better economic sense?
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
Indeed, juniors are really only useful on large teams. It's like a pyramid. If an enterprise wants to economize, they can reduce the size of the team, but if so they must increase the average experience level of the members. Eliminate the lower-level developers, not the higher-paid ones.
-
Having recently been plagued with a junior developer whose coding doesn't seem to be improving (even after working for close to 3 years :wtf: ) and interviewing a bunch of people who despite extensive programming experience, still cannot complete a very basic coding test :confused:, I've decided to investigate what skills the coding community reasonable think that Junior, Intermediate and Senior developers should be capable of... Opinions please?
Junior writes:
if ( x == true )
return true ;
else
return false ;The code is easy to read and the logic is correct and easy to follow. Intermediate writes:
return x==true?true:false ;
Uses more of the language/toolset. The code is more concise (and dense) but is not as easy to read; the logic is still correct, but harder to follow. Advanced writes:
return x ;
Cuts to the chase, uses only the tools required, doesn't try to show off his superior knowledge.
-
Junior writes:
if ( x == true )
return true ;
else
return false ;The code is easy to read and the logic is correct and easy to follow. Intermediate writes:
return x==true?true:false ;
Uses more of the language/toolset. The code is more concise (and dense) but is not as easy to read; the logic is still correct, but harder to follow. Advanced writes:
return x ;
Cuts to the chase, uses only the tools required, doesn't try to show off his superior knowledge.