views:

1136

answers:

14

I am planning to take an independent study course for my CS degree. I would like to focus it on aspects of web design/management and web programing. I have decent skills in, HTML, javascript, css, php, and msql.

I would like to learn how to refine what I know and learn some other things required to excel in the web world.

So what are some other areas I should research? How important would you rank the following?
ASP, XSL, VBScript, Flash, Silverlight, JQuery
I would you add other things to the list?

Any hints from people already in the field?

Related:

What should a developer know before building a public web site?

+10  A: 

ASP(.NET): It depends what your aiming at for a job. It's always good to know other languages.

XSL: Not hugely relevant in most cases. Certainly not important.

VBScript: Totally pointless. An IE-specific scripting language.

Flash: Again, nice to know but not neccesary.

Silverlight: Like Flash but much less widespread/important.

jQuery: jQuery is something you can learn in a day or two, if you know javascript.

So, the ranking of how important they can be IMO

  1. ASP.NET and jQuery (joint)
  2. Flash
  3. Pre .NET ASP (I'm sure there's a lot of legacy apps that still use it)
  4. XSL
  5. Silverlight
Macha
Recommend JavaScript in #2, before Flash. Effective use of jQuery is dependent on it and I would never hire a "web developer" who isn't at least proficient in real JS.
Rex M
He already said he knows javascript. I just ranked among the ones he asked about.
Macha
If you've got an understanding of ActionScript, then you're 90% done when it comes to learning JavaScript, since AS is based on ECMAScript (not an "official" version of it). When flipping between the two, JS just feels like a stripped down version of AS.
Alex Jillard
"VBScript: Totally pointless. An IE-specific scripting language." AND "Pre .NET ASP (I'm sure there's a lot of legacy apps that still use it)" - I see VBScript as a server side language. But it doesn't even matter, you probably don't want to be maintaining this crap anyway. +1
John MacIntyre
A: 

ASP, nah

XSL, maybe

VBScript, hell no

Flash, aha

Silverlight, [no comment]

JQery, zomg :D

C# is also good thing to consider. Regualr Expressions are must.

majkinetor
+2  A: 

I would work on gaining a solid knowledge in the things you mentioned (HTML, javascript, etc) before moving on to new technologies. Focus on learning programming paradigms such as Object Oriented Programming, the MVC design pattern, etc.

After you have that down I would start working with some frameworks (jQuery, YUI, MooTools, CakePHP, Zend Framework, etc). Also, you should try working with some version control systems (SVN, CVS, GIT). That should be sufficient to land yourself a job in web development.

Then I would move onto some of the new technologies you mentioned.

tj111
Agreed, except for the CVS part. SVN and Git are fine, but CVS is a dead end.
William Brendel
Any decent shop will have solid version control set up and often list it in the job requirements. I agree CVS is outdated, but some places (*cough* mine *cough*) still use it, so it wouldn't hurt to learn it.
tj111
@TStamper, I'd say version control is also good for version control. Alyways nice to be able to go back to an older version of your code. It's also helpful for a simple backup and can be used to deploy as well.
Alex Jillard
+7  A: 

One thing to add to your list -- Testing.

Learn how to test your code, your interfaces, and everything in between. And learn how to automate all of your testing. This means learning apps like

  • Selenium
  • Watir
  • Webrat
  • and others.

In addition, I would suggest learning a really good MVC framework like Rails, ASP.NET MVC, or SpringMVC.

Chris Johnston
+22  A: 

You want to know how web servers work, how to configure them, how to check logs. You want to know about CGI, FastCGI, monitoring and maintaining servers. I would learn LAMP in and out.

Cross-browser compatibility is a big must. This is probably the hardest part of web development, learning browser bugs.

CSS - Do not skip learning table-less design.

Standards - Read specs on W3 on HTML, XHTML, CSS, etc Understand why standards are important.

Server side languages - Learn at least a couple of languages that operate on the server: PHP, Python, Ruby, C#, and Frameworks for these languages such as Django, Rails, ASP.Net, and ASP.Net MVC.

JavaScript - I'd get to know this pretty well. Very important for dynamic sites. You also want to learn JavaScript libraries like jQuery, Dojo, and Prototype.

Persistent Storage - Learn SQL, MySQL, or SQLLite, or MSSQL if going the Windows route. Maybe check out Berkeley DB if you're feeling adventurous.

Flash, Flex, Silverlight - At least stay current, maybe make something in them to understand how they work, security issues.

RFCs - At least know which are relevant. Read about HTTP protocols and headers, mime-types, etc.

Security issues - XSS, SQL Injection, form validation (never trust the user!).

User interface basics - Know what works what doesn't.

Source control - Learn SVN, and maybe git or mercurial

Design Software - Learn how to use Adobe products such as Photoshop and Fireworks as you'll be expected to make mocks into working websites if you ever work with a designer.

apphacker
isn't MVC a design pattern, not a framework?
John Isaacks
@John Isaacks, ASP.NET MVC is a framework built around the design pattern.
Simucal
In a way you are right. But, if you currently know a bit about HTML etc. you do need to schedule the next ten years of your live to get up and running with all this. So yes, your correct but not realistic.
Luke
It takes time, but if you at least know what you need to know, that's a good start.
apphacker
A: 

First of all, do you want to do frontend work, backend work, or a mix of both?

For frontend work: HTML CSS Javascript Jquery as a framework

For backend work:

One of ASP, .NET, PHP, or Java SQL - learn querying and learn (simple) db design An ORM - Kohana, propel, hibernate, etc.. (i don't know the MS ones) potentially a framework - Drupal, CodeIgniter, zend (can you tell I work with PHP all the time?)

Zak
+1 learning an MVC-oriented framework should be a requirement for PHP developers. I'm no MVC zealot, but after you see enough self-proclaimed "PHP expert" resumes that haven't used the "class" keyword since their first PHP tutorial, it makes you somewhat of an idealist.
Tom
A: 

All of the technologies you mention are good things to know (or at least know that they exist), but tools and languages come and go. I'd suggest a good look into design patterns; these have a quite a bit more shelf life as a training investment.

Also, you can't go wrong brushing up on your soft skills. Writing clearly about technical topics in a way that both technical and non-technical users can understand is a skill that not everyone can master, and will certainly set you apart in the working world.

Scroll Lock
A: 

Now that you have the basic skills, add a web application framework/CMS like Joomla or Drupal, learn how to customize it. This is what users have been asking for lately, for rapid website development.

Also, learn to do shopping carts. Nearly everyone I work with wants a shopping cart - sometimes they don't even know what they want to sell yet.

Lastly, learn to do Ajax properly. Jquery and other tools are (really!) nice, but you should have a fundamental understanding of how Ajax works.

justfred
+4  A: 

Specific technologies aren't really important. Don't allow yourself to become wedded to a single mindset for web development. You can write terrible applications in the best framework, and vice versa.

People that can program a language are a dime a dozen. People that can make good, smart decisions, all the way from design to implementation, are rare. The only way to get to that point is to work, work, and work some more; eventually, you develop instinct for things that are elegant vs. ugly, verbose vs. concise, just enough vs. too much.

It looks like you already know some LAMP stuff. Look at Ruby on Rails, Java EE frameworks, and .NET. Write something in all of them. Figure out what you like and what you don't, and revisit these things frequently. Don't believe what people tell you ("Java is bloated!" ".NET is evil!" "Ruby doesn't scale!"). Find out for yourself.

Understand what your tools do. Understand how every single character gets from your application to the user, and what route it takes to get there. Realize that adding more libraries and layers doesn't always help.

Most importantly, find people that are smarter than you, work with them, and learn from them. Realize that what you don't know will always be greater than what you do know.

--riney

riney
A: 

If you plan on going the Java EE route, you might want to look into things like JSF and some of the other related technologies: Facelets, Seam, RichFaces

Zack
A: 

You listed ASP, XSL, VBScript, Flash, Silverlight, JQuery. Instead of ASP I'd recommend focusing on ASP.NET (there's a huge difference). Next JQuery (and enhancing your JavaScript skills if need be). Flash and ActionScript require a learning curve all their own so you might consider those after a solid foundation in web development.

If you do that well then that should keep you busy in an independent study course. You might, as an alternative, consider an independent study course to really just be a broad sweep of web technologies.

Carlos Justiniano
A: 

I'd consider either ASP.Net or Java and consider working on some 3 tier architecture where there is a middle layer, as well as consider getting into Web Services for another section you left out.

As for the list you gave:

  • ASP - Classic ASP I'd leave out. ASP.Net 1.0/1.1 I wouldn't suggest getting into. ASP.Net 2.0 and higher is certainly a good idea to my mind.

  • XSL - This can be useful if you ever get into manipulating data like what a web service may output or take as input.

  • VBScript - I wouldn't touch with a 10 foot pole, but I did do this for years and saw more spaghetti code than anyone should ever see.

  • Flash/Silverlight - Pick either if you want to get into front-end graphics like work.

  • JQuery - This seems to be up and coming but I think I'd wrap this in with some AJAX or other functionality so you get to see how things combine rather than a technology on its own little island.

Web server software like IIS or Apache may also be worth getting into and understanding how to configure the server and set up web sites on servers.

Design patterns if you haven't seen those would be another idea for an area to explore.

I'd also suggest getting into more formalized software development methodologies like Agile or Waterfall and combine other practices like source control, coding standards, and testing that may all prove to be useful things to experience.

JB King
A: 

As a webdeveloper, in my opinion, you should

  • Design sites : It needs CSS, Jquery, Photoshop (even if you are not the designer, you should know what works better that other).
  • Optimize sites : Clear HTML, Adding Meta Tags, Cross Browers, optimizing for low Bandwidth connections, for different screen sizes
  • Code sites : Using PHP or ASP.net and having knowledge on an Editor (Like Visual Studio) also working in a FrameWork (especially on PHP) is very useful.
  • SQL : Finally you should know how to connect and work with an SQL DataBase

All other things, you'll learn them by work, the more you work, the more experience you get.

Omar Abid