views:

889

answers:

12

Can anybody list the Technical skills required to be a Senior Web Developer?

What I know that the person starts in the fields as Programmer then he becomes Developer after that Senior Developer ...

A: 

Programmer == Developer

A Senior Web Developer does not ask question what skills he has over a Programmer/Developer. He just knows it.

User
I disagree with the 'developer not asking questions' part. No matter what level one may be, there's never an end to the learning, and questions are a great method.
Cuga
It was meant as a joke. Sorry if it missed you.
User
Interesting answer, so being "Senior" is a state of mind apparently :) I'm Senior because I just know I am. Period. :)
Kekoa
You're only as old as you feel.... ;)
RolandTumble
Agree with Cuga. In my opinion, one that does not want to ask question, if he should, is not really a good programmer/developer. But, since this is a joke... it cracks my smile. ;-)
Nordin
A: 

A good understanding of separating logic from presentation is a must at this level.

Ian Roke
Yes if we are talking in general but is there any other technical skills related to web development?
Khaled Musaied
+9  A: 
  • Having seen SQL injection attacks
  • Having seen XSS attacks
  • Having seen awful code
  • Having seen great code
  • Having made stupid errors
  • Having made errors that where the result of trying to be too smart

And of course being able to identify all of the above.

Joachim Sauer
Hooray, I'm a senior web developer!
Kekoa
How many stupid errors exactly? <counting />
BenAlabaster
Fascinatingly domain-specific; you rarely actually /see/ SQL injection or XSS in an intranet environment, but you can be senior nevertheless (and you still want to avoid them, which is rather more important than having seen someone make the attempt).
ijw
ijw: even if you never actually seen an attempt, you could easily try to do them on your own on your own system. And if you neither done that *nor* seen a real one, then I personally think you don't know how they work and how to defend from them.
Joachim Sauer
+3  A: 

"Senior" means "experienced." That doesn't imply a particular skillset, and "Web developer" is such a broad title that it could be almost anything (database expert, PHP guy, ASP.NET guy, Ruby guy, guy who does the whole website including graphics and so forth)

mquander
"Senior" means not giving a title upgrade instead of pay rise.
Tom Hawtin - tackline
+15  A: 

If there's anything I've seen from computer programmers is that they arbitrarily assign titles.

One day I feel like a developer, another a programmer, architect, and sometimes even a software engineer.

Being Senior is merely to say someone is more experienced than another, when really it's a title assigned by management to give the impression of leadership.

In more structured companies, they have set criteria for these things, but are basically arbitrary, and not globally standardized.

Kekoa
Or it's tied to pay.
Min
If you lead a team of developers then a possible job title could just be senior rather than manager.
Ian Roke
I've had "Queen of France" on business cards before for that exact reason. Titles are meaningless inside the programmer world, but outside Director of Technology sounds better then the "Sr. Developer assigned to rewriting everything"
David
Tied to pay: Yes, title inflation instead of pay rise usually.
Tom Hawtin - tackline
I am not asking about the title it self but what are the technical skills senior web developer must have
Khaled Musaied
Yes I know, this is the problem, your question could also have been titled as "What skills do I need to be the best programmer?" The title "Senior Web Developer" is sufficiently vague to make the question itself vague. I was just pointing out that we shouldn't rely on titles to indicate a particular skill set.
Kekoa
+5  A: 

In very general terms, I'd say that experience, superior communication skills and confidence within your realm would be the minimum to set you apart from a junior developer.

wweicker
+3  A: 

Forget about titles, they are useless anyway.

But, as mquander said, "Senior" means experienced. If someone says that he's an experienced Web Developer, he should AT LEAST be able to respond to questions like these:

  • What does "quirks mode" mean, and how do you make your browser trigger it?
  • What's the box model?
  • When creating a form, how do you decide to use the GET method or the POST method?
  • What's a "high pass filter" in CSS?
  • When writing JavaScript, why you should NOT try to determine the user agent from the user agent string? And how do you actually figure out the capabilities of the user agent? What's graceful degradation?
  • What's a closure in JavaScript?
  • What's the prototype model in JavaScript?
  • What's the DOM, and how do you manipulate it with JavaScript?
  • What is / How to avoid SQL Injection?
  • What is / How to avoid XSS attacks?
  • What is / How to avoid CSRF attacks?

I've met "web developers" that don't even understand the concept of "quirks mode", or try writing JavaScript code as if it were C or Java.

Jorge Gajon
Web development isn't all about front end. Just like many other job titles out there, it doesn't always mean the same thing.
TM
Yes, I know that. I posted just a few examples of concepts that you need for web development, most of them are front end related, but for example, those relating to GET vs. POST and how to avoid SQL Injection and CSRF attacks, are related to server-side development.
Jorge Gajon
Thanks for your detailed answer, but what are the rest of the concepts?
Khaled Musaied
@TM That do you think a senior web developer must have?
Khaled Musaied
@Khaled, another important topic is accessibility. A simple example is that the main content of the page/article should come first in the HTML source, before any other sections like navigation menus, and re-accommodate these sections with CSS. Also adding <link rel=""> items and/or actual links (<a>) at the very beginning to jump to the content or navigation list.This is for the benefit of users with some kind of visual impairment, since they usually navigate with text-based browsers and some voice synth software.
Jorge Gajon
+11  A: 

I'd say the key skills for anyone that is looking for a lead role are [in no particular order :P]:

  • Accountable - The buck stops here, someone who can shoulder the responsibility without pointing fingers at others.
  • Adaptable - Life changes fast, if can't change with the times, you'll be left behind.
  • Approachable - their team can ask them questions and talk to them
  • Attentive - they actually listen to their team and understand them
  • Aware - they're aware of what is going on around them instead of sticking their head in the sand.
  • Can type - No hen peck typists need apply in this industry.
  • Charismatic - People have got to want to listen to you.
  • Communicative - You've got to want to communicate with your team
  • Competent - You've gotta know your stuff.
  • Confident - If you're not confident in yourself, how is anyone else going to be?
  • Decisive - can make decisions themselves and be accountable for them
  • Driven - You've gotta see the goal and go right after it.
  • Focused - You've gotta have the staying power to keep going and reach the goal.
  • Inspirational - this is the most important one for me! If you can't inspire people, what are you doing?
  • Meticulous - The truth is in the details.
  • Nurturing - The test of a good teacher is when their students surpass them.
  • Resourceful - You've gotta be able to find the answers to the things you don't know.
  • Technically minded - In this industry at least.
  • Understanding - If your team don't think you understand them, they won't bother trying to understand you.

As a leader, it's your delegates that help build your success. Treat them like gold, and they will do the same for you. One non-programmer that can inspire 10 "average" programmers to greatness is worth more than one great programmer who can't inspire their team to do more than meet their job requirements.

I'd say if as a leader you can inspire as many of these qualities as you can in your own team, you'll be unstoppable regardless of the level of your own technical abilities.

BenAlabaster
@balabaster Thanks , is there any techincal-wise skills needed?
Khaled Musaied
+5  A: 

HTML (duh)

  • Forms

CSS

  • Box model
  • Positioning/offsetParent
  • Cross browser concerns/Hacks
  • Selectors/Priorities
  • How to use a DOM inspector

JavaScript

  • OO/JSON
  • A framework or two
  • open objects/dynamic properties
  • closures
  • debugging w/Firebug && VS
  • cross browser concerns

HTTP

  • GET vs POST vs HEAD, etc.
  • SOAP
  • REST
  • Caching

One or more Middleware/Frameworks (ASP.NET, Java, PHP, Rails, etc.) including the respective web server (IIS, Tomcat, Apache, Mongrel, etc.)

One or more RDBMS (Oracle, MySQL, MSSQL)

SCM (branching, tagging, merging, etc.)

Able to handle issues that others have been unable to solve (escalation).

Able to mentor junior developers

Nice to have:

  • Design Patterns/Anti-patterns
  • Data Structures/Algorithms
  • Development automation (Ant, Continuous Integration, etc.)
  • TDD
  • XML/XSLT/XSD/XQuery
  • Methodologies (Agile, Scrum, XP, whatnot)
  • Domain Knowledge (Accounting, Manufacturing, whatever your client(s) do(es))
  • RIA (Flash, JavaFX Silverlight, etc.)
  • Graphic/Aesthetic Design
  • Regular expressions
steamer25
Thanks for your detailed answer
Khaled Musaied
+1  A: 

In short, a senior developer/programmer is the one whose opinion (regarding programming) is highly regarded by other fellow programmer/developer.

For me, this is an acid test question.

Nordin
A: 

When you'll be senior, you'll know it, and your bank account too. If you ask, then you're still not...

I don't agree :)
Khaled Musaied
A: 

A hatred of Internet Explorer.

MaSuGaNa
Oh yes - I completely agree!
Katy
What else? by the way do you mean IE6
Khaled Musaied