views:

82

answers:

4

I ask this question as I have a lot of free time coming up and want to further myself in web design and web programming. I want to know how I can MOST EFFECTIVELY achieve a high level of skill and expertise for designing, maintaining and creating websites.

I believe in learning by doing, and that's how I have been progressing so far. I've come to a point where I feel I'm limited and think that going back to school or studying these topics would be time-expensive.

What are the important things one should focus on and learn? What languages should I have at least a decent grasp on, and which ones do I absolutely HAVE to know. What technologies are up and coming and which ones should I at least be familiar with?

Thank you for your time.

A: 

PHP, Ruby, Python, and C# are probably the top 4. You can't really go wrong with any of them... you can search the job market to see what's in highest demand.

I'd say pick a project that's just a little bit beyond your skill level and try building it ;)

Mark
django is not a programming language. I think you mean python.
Gabi Purcaru
Unless you mean Rails and ASP.NET.
Ignacio Vazquez-Abrams
@Gabi: Yes.. I did mean Python. @Ignacio: Those are the frameworks I had in mind, but you aren't necessarily limited to them.
Mark
A: 

I would suggest playing with wordpress and drupal for PHP practice. Django is well written and can help with python practice; also try writing your own wsgi application, its fun!

Ruby is popular, Ruby on Rails is nice though I don't code in Ruby unless maintaining legacy code.

Those will get you through the open source world. C# is good to know, but general .NET 3.5/4.0 knowledge may be more useful so if you have to write a C#.NET proxy to a WCF web service since there wasn't a python solution ready to go like I had to do a month ago you'll be okay.

The best advice I can give is read, read, read... read everything you can get your hands on. Read up on agile project management, test driven development, unit testing, javascript, jQuery, YUI, Dojo. Everything is useful in web programming, especially if you need to support someone else's code (90% of the time).

Scott
A: 

You will be considered good when you have done good work. It doesn't really matter what technology you are using to do the work in, it matters whether it does what you want it to reliably and securely.

Designing websites requires a different set of skills than building websites. In fact, there are several facets of web design-for example, there's the aesthetic design (what it looks like) and the information design (what it does), and the technical design (how it does it).

Initially, I think you should work to understand, conceptually, what the basic technologies are that make the web run. You should be able to write a brief survey paper, 8-10 pages, that describes what the web is, what it is used for, what the backbone technologies are, and so forth. You should also research how web sites are built, what the roles are for people involved. Once you know all of that, you can work out what to do next.

For example, what is your passion? Where do you see yourself working in the environment that you just described? Once you know that, pick a task or technology that moves you in that direction and start learning.

philosodad
A: 

Take a look at Stackoverflow. Now, try to make a clone of it. A little by little. It has a clean look, a useful and intuitive UI and IMHO very good design.

I believe if you find an archetype that you like, you'll care more about trying to make something like it, than just aimlessly building something without passion.

darioo