Ask HN: What are the essential skills for a web developer?
Can you list a skills, languages, and tools that I should learn to be the perfect web developer.. for open source?
Can you list a skills, languages, and tools that I should learn to be the perfect web developer.. for open source?
To be a web developer you should have knowledge of html, css, javascript, and ajax.
You should understand table-based vs. css-based coding patterns. Cross browser issues, gzipping, js minification (yui, jsmin, closure), css minification, js and css file concatenation and why, learn a js library or two or three. Also learn sprites, and how forms work.
You need to really, really learn javascript. Prototypical Object Oriented development, after you know and understand it, then feel free to insult it (or love it).
Know which is quicker innerHTML or node creation and insertion (trick question!). Learn javascript development patterns. contribute to a javascript library.
json, json is very important.
There's a scattershot off the top of my head.
* You should know (really really know) one language - preferably one conducive to writing web applications. PHP, Python, Ruby, Java and .NET seem to be the ones in vogue today. Perl, Haskell, Scheme, Smalltalk, as well as several others, will absolutely work too, but tooling seem to be somewhat a step behind, at least when compared w/ the ones in the first group.
You should know Javascript. Not jQuery, Prototype, or MooTools. You should know web_developer.prototype.javascript.
* You should have great communication skills. Arguably, the ability to clearly and eloquently express yourself is sine qua non for (being successful at) doing pretty much anything that involves other people but, given that the bar seems to be considerably lower for us folks in traditionally left-brain professions, I feel obliged to mention it.
* You should have a knack for aesthetics, and be familiar w/ interface design and usability. You don't necessarily need to be able to produce aesthetically pleasing, usable anything, but you should be able to _know it when you see it_. And this is a lot less subjective than conventional wisdom would have you believe.
* You should have an understanding of how to store and retrieve data, what sort of operations are expensive when querying, and be able to model at least simple schemas.
* You should be able to write concise, uniform looking markup and css (or (and?) be familiar w/ the myriad use tools that can make this considerably easier for you).
* You should enjoy it.
Also Helpful:
* A background in Comp Sci will presumably give you some knowledge of design patterns (more helpful than algorithms for most web development work out there today, in my experience), a familiarity w/ different languages and general approaches, and the ability to write somewhat decoupled, modular, testable code amongst a few others.
* Being naturally curious, as well as enjoying it, will help you keep up with a fairly fast-evolving landscape of different standards, platforms and approaches.
Do you want to work on large or small jobs?
For large jobs you will need to know a lot about reliability, scalability and sometimes performance. PHP or whatever language you work with is only a small part of the puzzle.
For small jobs you will have to know the browser quite well (CSS, JavaScript/JQuery).
While it's possible to "learn" jQuery, it's a much less arduous process if you already understand how JavaScript works on a core level.
I was asking about if I should learn frameworks like zend.. and if there is any other new tools, or skills that I should learn.
Your answers helped me a lot, thank you all.