Web Development

General discussion

Locked

What should one learn for web development?

What should a web developer learn as far as languages and scripting, etc. goes? There is so much out there besides HTML, CSS and JavaScript. ASP? VBScript? VB.NET? C#? Perl? PHP/MySQL?

What are the best things to get some background in?

This conversation is currently closed to new comments.

Thread display: Collapse - | Expand +

All Comments

Collapse -

"Still sites designed with ASP"?

by Paymeister In reply to What to learn?

You say that like it's a bad thing.

Uh... is it? I run an intranet site for work and some other websites privately using ASP, though I believe we have the .net framework available. ASP seems to meet my needs - what am I missing? (Aside from bells and whistles, that is...)

Collapse -

ASP not a bad thing!

by wayneb In reply to "Still sites designed wit ...

ASP is still very useful. I still use it frequently myself. I was just stating that in the number of growing programming technologies it is keen to know a little of everything even those languages that have been around for awhile. ASP has been out there for awhile and the .net infratructure seems to be the new car model on the lot..so to speak.

Collapse -

Wow, No Java Servlet/JSP?

by JohnnySacks In reply to What should one learn for ...

I've been deep in database world for a couple years and the front end development department at my company is 100% Microsoft. Have I been so far removed from front end development for so long that Java does not even merit a mention with regards to web development? Let's check. For an overly simplified but nonetheless valid comparison, do a Dice.com search.
ASP.NET - 95 jobs
JSP - 129 jobs
PHP - 37 jobs

C# and VB.NET sure look pretty and work well coupled to a $1,000 Visual Studio IDE and they're 100% platform independent (provided you're running Windows). Just watch the sales presentation: Point, click, drag, ... web site done. Trouble is in the real world, everything requires custom coding and that's where the productivity of the many web development languages stratifies to about the same level.

Sun may have done a disservice to the JSP/Servlet API by marrying it to the J2EE package. When I think J2EE, things like BEA, JBoss, Websphere come to mind, very complicated products. Many less complicated (and free) products are available for Servlets and JSP.

During my PHP days, I was surprised to read PHP was not thread safe for use with Apache 2 and still, to this day, is not. Seemed to work OK for me on Apache 2 though, don't understand why after all these years a web language is not considered thread safe. I had JSP/Servlet experience at the time and threading was a given. I was also doing a lot of old school ASP work also and was frustrated by the inability to create and share multi threaded objects in the web server context without C++.

Collapse -

Thread safe?

by ytvette In reply to Wow, No Java Servlet/JSP?

By thread safe, do you mean the capability for multi-threading? I'm just a newbie to web programming, so I don't know all the buzz words yet. Thanks!

Collapse -

thread safety

by apotheon In reply to Thread safe?

Thread safety refers to the ability of a system to correctly run multiple threads concurrently. Thread safety is kind of a difficult proposition for cross-platform technologies, however, because of the fact that Windows itself is not capable of running threaded applicatons properly. All it can do is "fake it" with neutered multiple processes, as opposed to proper threads.

Thus, a fully thread-safe system that is cross platform needs to be able to both leverage the threading capability of most operating systems and handle platforms where threading capability is limited, faked, or fully nonexistent as well. The PHP guys have pretty much decided to ignore thread safety altogether as a "solution" to the problem.

Most web development doesn't get to the point of requiring multithreaded web applications until they scale past the point where PHP isn't an appropriate technology, anyway, though. As such, it's hardly an issue. If you're writing code complex enough that making a multithreaded application of your project sounds like a good idea, you should be using a server-side language other than PHP.

As for Java-based solutions (JSP, et al.), don't bother with those until you get to a point where multithreaded operation is such a given that supporting a Windows platform is a completely absurd proposition anyway. For small projects with relatively low traffic, JSP and the like are inappropriate. You need something lighter weight and easier to manage for such projects.

There's a middle zone of sorts, where threading can net you significant scalability advantages but Java solutions are still pretty hefty for your needs. That's the area where pretty much anything other than Java or PHP is a good option, including Ruby on Rails, Python/Zope, Perl's Mason or Catalyst, ASP.NET, and probably a couple dozen other options come into play. All of these can scale down through most of the situations where PHP would also be appropriate and up through most of the situations where Java would be appropriate. As such, for the most flexible and wide-ranging skillsets, I'd recommend pretty much anything other than Java or PHP, and these general-purpose technologies are basically all thread-safe when run on platforms that properly handle threaded code.

Collapse -

definition of platform independant:

by Jaqui In reply to Wow, No Java Servlet/JSP?

it does not matter what OS you are using.

your "(provided you're running Windows)."
is the perfect proof that the mentioned tools and technologies are NOT platform independant.

sheesh, only a windows only person would think that platform independant meant anythiing but os independant. are you sure you don't work for microsoft? they are infamous for that type of insane thought pattern.

Collapse -

Maybe it was sarcasm.

by apotheon In reply to definition of platform in ...

The guy was commenting on the fact that Java wasn't included in the list of options, and contrasting it (favorably) with Microsoft technologies, so it's possible he meant to say "plaform independent (provided you're running Windows)" as a euphemism for "platform independent (but not, really)".

Then again, I could be wrong.

Collapse -

maybe

by Jaqui In reply to Maybe it was sarcasm.

I'll give him the benefit of the doubt on it.

but it really is a common attitude amongst people who don't understand operating systems at all.

Collapse -

an approach to learning web development

by apotheon In reply to What should one learn for ...

First, of course, learn XHTML and CSS. Any web developer should know these things, even if (s)he expects to spend all development time working with a server-side language, because one should understand the interface design limitations when developing the back end to a web application.

If you're just looking to learn technologies on your own, I'd recommend learning PHP next as a way of easing into it. Skip Javascript unless and until you need it for something specific. When in doubt, don't use Javascript. Among other things, this approach will help ensure that you learn how to design a site so that even when Javascript is used, it degrades gracefully.

Once learning some PHP and getting familiar with it enough to kinda get a handle on how web development is done at the low end, move on to Perl, Python, or Ruby. If you're looking to work solely on a Windows platform and are developing for end users that are 100% Internet Explorer users, ASP.NET is a definite option. On the other hand, if you intend to do cross-platform development or general-purpose web development for users who will potentially be using Firefox or other browsers, ASP.NET probably isn't the best option. In fact, if you're doing cross-platform development, it is DEFINITELY not the best option.

If you're already a programmer, it might make sense to skip the PHP step and go straight to Perl, Python, or Ruby. Of these, Perl is the most ubiquitous, and thus probably the most important unless you have specific needs that suggest Python or Ruby as the best first step. On the other hand, the only language more common on the web for web development than Perl is PHP, so keep in mind that despite PHP's deficiencies as a programming language and regardless of your programming experience, PHP may be a best choice for a first language anyway.

Don't start with Java unless you already know Java and know you'll be working pretty much exclusively with Java. Java for web development is something to learn if/when you are going to do some Java-based web development, and not before. The platform and installed system requirements are impressively difficult to maintain in anything less than an enterprise situation, the appropriateness of Java for small web development projects leaves something to be desired (to put it mildly), and stuff like J2EE/JSP constitutes an exceedingly painful system to use in comparison with other web development technologies. In short, if you don't already know that Java is what you have to use, don't bother starting with Java for web development (though you may want to end up there eventually, depending on your career goals).

In summary:
I recommend starting with just learning XHTML/CSS pretty well, then learn PHP, then move up to Perl, then start pursuing whatever catches your fancy -- and fit Javascript in there just whenever it suits your needs and learn web development with Java only if you have to. ASP.NET, VBScript, VB.NET, and C#.NET are appropriate only for single-platform Windows development with only Internet Explorer being used by all your clients -- and some of those (such as VBScript for the client) shouldn't be used even with Windows servers and IE clients unless you're specifically aware of what configuration is on the clients because your IT department controls all clients that will access your site (which limits the usefulness of VBScript on the client side to certain intranet sites).

If you want to get started with PHP and don't know where to begin, there are some things you should know:

1. There's a lot of bad PHP code out there. Don't assume that because something was done in PHP a given way that this is the way it should be done. Be careful when looking at example PHP code.

2. There are many, many free online resources for PHP out there. Make use of that.

3. You'll eventually want to get a book or two on the subject of web development with PHP. When in doubt, try to aim for stuff that deals with database integrated development, and if all else fails you can generally trust the O'Reilly titles on just about any programming subject. If at all possible, get involved in the open source development community enough to get a firm grasp of what constitutes good and bad code and what constitutes good and bad books on the subject before spending any money. Surprisingly, the best community for learning to recognize good resources for PHP might just be the Perl community -- check out PerlMonks in particular.

If you have the right background knowledge to make use of it, there's a PHP tutorial I wrote recently that might prove useful to you in getting started if PHP is where you want to go first for a back-end web development technology to learn. It'll give you the basic knowledge necessary to start making easily-maintained, small websites that use PHP and flat-file data storage. You do need to know some basics of general programming concepts and both XHTML and CSS to be able to really make use of the tutorial, but you don't by any stretch need to be an expert with any of it.

Good luck with whatever you do.

Collapse -

Totally agree (rather better than my attempt)

by technical In reply to an approach to learning w ...

Cant disagree with anything here. If you put all this into action its difficult to see where you could go wrong.

Related Discussions

Related Forums