views:

1119

answers:

9

From the job point of view, what should be the minimal tangible skills (languages, platforms/tools etc.) that an aspiring web programmer must possess?

+11  A: 

HTML, CSS, Javascript, Any Server side scripting language (PHP, VBScript, Java, ASP.NET using C# or VB.NET etc) , Basic knowledge of web server (IIS, Apache etc), database server (MS SQL Server, Oracle, MySQL etc) and db connectivity.

Good knowledge of XSS & SQL injection can help the web solution be built more securely.

Nahom Tijnam
VBScript is not a server-side scripting language, and by Java you maybe mean Java Server Pages...
Camilo Martin
@Camilo. VBScript is used by Classic ASP
Thorpe Obazee
+1  A: 

To be a good web programmer. you should atleast have following skills:

  1. Should know platform of your choice. It could be .net or Java.
  2. You should be well versed in object oriented programming. Language will depend based on your platform. It could be C#/VB.Net or Java or any other language.
  3. As a web programmer a firm grip on web standards, HTML, javascript should also be there.
  4. I would say that you should know a good deal of SQL Server/ Oracle.
Pradeep
I have to disagree with OOP, it seems almost unnesicary.
Unkwntech
Why not? In today's world are you just writing some HTML and javascript and call it web development? I like to distinguish the web developer from page designers. A web developer need to know basic principles of OO.
Pradeep
I missed that even javascript is OO. How will you avoid being OO?
Pradeep
well, javascript aside, I don't think that OOP is something that is terribly nesicary.
Unkwntech
+4  A: 
  • HTML
  • CSS
  • JavaScript
  • One of ASP.NET, Java, Perl, Python, PHP
  • SQL
Steven Huwig
+5  A: 

As a web developer and business owner (web development) I would say the following list is what you would need, in order of importance, everything from 8 on is optional, but HIGHLY recomended.

1) HTML
2) CSS
3) Image/Photo Editing
4) JavaScript
5) AJAX
6) PHP/ASP/.NET/JAVA/....
7) Sql
8) Security (XSS, SQL Injection)
9) SSL
10) Apache/IIS

Unkwntech
Is security an optional skill? You're kidding, right?
JesperE
+1  A: 

I had to preform a research assignment on this for web languages class actually. You will notice that places offering a higher salary will expect a lot more.

For an entry level job with 3 - 5 years exp an employer wants at least:

  • HTML
  • CSS
  • Javascript
  • At least one scripting language (usually PHP)
  • Knowledge in at least one of the database technologies (MySQL / SQL etc)

For jobs that ask for at least 5 years experience and up, they will usually want a higher skill set (obviously). A typical example:

  • HTML, DHTML
  • CSS
  • Javascript
  • XML, XSLT
  • Multiple Scripting Languages - some but not all (Perl, PHP, python, ASP/ASP.NET, JSP)
  • Databases and database utilities (MySQL, SQL, Oracle etc)
  • Apache or IIS (Internet Information Services)
  • AJAX

Other things that may be listed are sharepoint experience and experience with adobe software, which are always nice to know if you're going into web. In small businesses, sometimes the web developers are the graphic design team as well, so be prepared for that.

John T
+3  A: 

Here is a subset of skills posted Unkwntech except in my preferred order. Reasons given afterwards:

1) Security
2) Server Side Programming language
3) SQL 
4) Javascript 
5) HTML 
6) CSS
7) Image Editing 

I put security on top, because if you don't know how to prevent injection attacks, and don't know how to prevent XSS, and you don't have the mindset to be a total pessimist about what your users will end up doing, I don't want you writing in my codebase.

Knowing how to code, but not understanding security, is a recipe for failure.

No, not even on a private corporate lan. Security Is #1.

( and no code, is the most secure code ;) )

ServerSide programming language comes next, because you should have a good system that separates design from data processing, and thus, you should know enough to keep yourself away from the HTML, and just focus on the problem at hand. You can be a very functional component with no HTML interactions.

SQL comes 3rd, because you still don't need to know the front part of the deal. Many organizations have people whom do just the front part of it, and you don't need to know about how it works. Your the code monkey whom hacks the database and PFM that makes the site work. You're just going to waste your perfectly good braincells trying to be a good designer and a good programmer all at once.

JavaScript gets 4th base. Because JavaScript tends to be just outside the reach of your average designer. And its fun, but you can still perform an excellent role in a company not knowing it.

Html & CSS comes in 5th and 6th, because hopefully once you've gotten 1-4 down pat, you'll have an idea of good design, and then you can learn HTML like a programming language by getting familiar with the syntax and semanticness of it, and you'll write clean concise code with no pollution from the "we think about how it looks first" team ( whom gave you table based layouts made in dreamweaver ) and you'll write logical syntax and then make it look good, and people will love working with your HTML because you'll bust it with a validator every time.

Image editing is last, because you get your hands on this too early and you'll abuse it, and then your HTML will suck and your code will look awful. Images are great for embellishments, but don't make them Everything

( I dropped AJAX, because that's really just JavaScript, and knowing Apache & SSL are not overly important, your sysadmins more likely to funk with that once, and then be done with it )

Kent Fredric
+1  A: 

From the job point of view it's useful to know couple of languages and ideas from the specialty you are concentrating on. It'd be also good if you'd know how to pull together few programs, but not always necessary.

From the actual programming point of view it's crucial to be able to:

  • write neat compositions
  • design clean and well-structured programs
  • learn whatever that interests you at moment
  • reduce the amount of work by delegating it to programs
Cheery
+8  A: 

There are great answers here, but of course the only "minimum skill" is "ability to learn". The more the better.

Ali A
yeah, but you don't want to employ somebody with such a trivial skill set ;P
Kent Fredric
The **only** relevant answer here.
Ilya
Hire a good developer with ability to learn, and within 6 months he/she will be an expert at just about anything.
JesperE
From the other side, this is a hardest skill to verify it's existence :) Still "ability to learn" is a winner skill :)
Ilya
Ali, is ability to learn a tangible skill set?
Nahom Tijnam
Nahom, why not? You can learn how to learn, you can measure how good someone is at learning, it's a skill, people differ. Why not?
Ali A
A: 

In my experience the following are much more important than persons knowledge of a particular technology.

  1. Is the person able to get in depth understanding of a problem quickly including edge conditions
  2. Is the person able write code that is "simple" and easy to follow
  3. Does the person appreciate the value of unit tests, TDD and automated acceptance testing?
  4. Does the person understand basic software concepts such as garbage collection, static vs dynamic typing.
  5. How well will the person adopt to your team? Does the person have an overinflated opinion of oneself?

Specifics of technologies you are using are likely easier/quicker to learn than how your business works and what your value system is.

Kozyarchuk