Primers for Entering The World Of Web Development? 41
SecretAsianMan asks: "In the early days of the Web, being a webmaster required only a basic knowledge of HTML and some skill in graphics. Many programmers, myself included, scoffed at so-called 'web programming', considering it highly unworthy of the name. While we were busy scoffing, the Web grew up. Today's Web is much more than a collection of static HTML documents; it is dynamic, interactive, and filled with enough buzzwords to make your head spin. I'm considering retargeting myself to web development in order to open up more job possibilities. What should I learn, and in what order? What is the best method to fast-track into web development?"
Re:What to learn? (Score:1)
Why Perl?!? (Score:2)
I've found PHP to a lot easier to learn and understand and have not found a time (yet) when it couldn't meet my needs as a web developer.
Just seeking examples why Perl is better to learn
Re:Why Perl?!? (Score:1)
Well, Perl is a general programming language, not just a web development languge, so it will take you further. You never know when you might want to get out of web development...or get forcibly removed from it (Dot.Com.Crash).
Also, since it excels at text handling (and the most important stuff on a web site is text...Content is King), it's quite good for web development.
If you find yourself having to be the Web Developer/Sysadmin/Web Server Maintainer/Etc., the sysadmining and general "Swiss Army Chain Saw" nature of the language can help you get a lot of things done quickly and efficiently. If you end up being "only" the Web Developer, well, it never hurts to have the flexibility to do more, as the recent change in the Hi-Tech job market has shown. Perl can also let you do more as a web developer. Philip Greenspun [greenspun.com] has a review of "Mastering Regular Expressions" on Amazon where he talks about how Perl and Regular Expresions helped him save a client $10K by changing a ton of .html files in an automated fashion.
That sort of thing is what causes people to emphsize Perl for web development. It lets you do more with less. Not to mention all the modules out there waiting to be put to work for you...
Anyway, just my $.0.0002 Benjamin,
Re:Why Perl?!? (Score:1)
In any case, learn something!!
Learning Web Design/Development (Score:1)
Step 2: Learn CSS (!!!)
Step 3: Learn Graphics (GIMP, Photoshop, Paintshop etc.)
Now you have basic Webdesign knowlededge and you can choose between two ways:
1. The developer way:
Step 4: Learn Perl [perl.com]/PHP [php.net]
Step 5: Learn SQL/databases in general
Step 6: Get better in everything...
2. The desginer way:
Step 4: Learn Flash
Step 5: Get better in graphics, video design etc.
Step 6: Buy a Mac
Of course, you can try doing both ways, but in fact you will become only "master" of one of them.
X
3. The Network Dude way: (Score:2, Informative)
Although I feel obligated to add another job-type: The network dude that keeps apache, the mailserver, and php running on multiple virtual domains with inter-server databases and backup systems. They're important too.
3. The Network Dude:
4: Set up your own [linux/windows 2000 server edition] box
5: Install [Apache/IIS], [PHP/ASP/JSP], and [MySQL/PostgreSQL/MSSQL/Oracle] onto it.
6: Read all about TCP/IP protocols, DNS, MX-Records, routes, routers, etc.
7: Read all about your webserver, and how to keep it secure
8: Learn awk, sed, and perl.
One of these routes will cost you $1000+, the other will cost you $0.00+
--Robert
Re:3. The Network Dude way: (Score:2)
Indeed. People get so caught up in the free-as-in-speech aspect of OSS/FS that they tend to forget about the implications of the free-as-in-beer aspect. Because such qulity software is available at no charge, I am open to educational opportunities that otherwise would be out of my financial reach.
An interesting note: when I submitted the article, my last sentence was "Please, no Microsoft 'technologies'.". While I'm quite pleased that my article got accepted, I find it somewhat ironic that this part was censored by people who speak out against censorship.
Re:3. The Network Dude way: (Score:2)
Unless perhaps the idea was to make the question more generally useful to the /. audience. It's called editorial license, and in this particular case it made sense.
As one who does web design/publishing/programming in a LAMP (great term!) environment as part of my myriad other duties in a school district, it's very interesting to me to see what else is available and used in "the real world". I'm glad the question was generalized a bit.
My tuppence...
XML (Score:1)
In general its more useful to have skills that existing employees might not have.
Re:Learning Web Design/Development (Score:1)
Or... if you want a job is this stingy economy, learn Java (especially J2EE), which is in high demand. Perl and PHP are slowly going away, and Java(J2EE)/ASP(blech!)/Python are in high demand.
Check job listings (Score:1)
I'm considering retargeting myself to web development in order to open up more job possibilities.
I would start by checking current job listings for your area. In my area I don't see a single Perl or PHP job, but there are several jobs requiring ASP and SQL Server/Oracle. It's my rough feeling that the open source technologies (Apache, Perl, PHP, MySQL/PostgreSQL) still is not being used at most established companies. They're focusing on the Microsoft stuff (ASP, IIS, SQL Server) or the Solaris/Java route (JSP, Servlets, Oracle). There are a few doing IBM Websphere and DB2 with Java.
Personally, I have a broad range of skills. My server-side skills are the strongest and I mainly do integration with middleware. But I also know HTML/Javascript really well and have gotten pretty good at Photoshop. Being able to do both the client and server side can be a good selling point. In a small company you can replace 2 people. In a larger company you can bridge the server and client teams.
If you want to learn the client-side stuff, I'd start with the free trial downloads of Macromedia Dreamweaver, Fireworks, and Flash. Those are the most marketable skills. You probably want to learn Photoshop as well, but there's a lot of overlap with Fireworks. I would stay away from Microsoft Frontpage since there are about a billion people with Frontpage skills on the market.
On the server side, I think it's a tossup between the most marketable skills. In part it depends on what language experience you have. If you know Visual Basic, go Microsoft and learn ASP with Access and SQL Server (or the MS Data Engine). On the top end, learn MTS and MSMQ. If you know C or Java, definately look at the Java side. Get Tomcat (apache.org) and do Java Servlets and Java Server Pages with Oracle. If you can get Solaris (even the free download of Solaris for Intel) working and use that, even better.
You could also enhance your skillset with some things like streaming audio/video, search engine optimization, cross-language, or middleware integration.
SQL (Score:2)
The most important skill you need to learn if you're going to build database-driven web sites is SQL. If you learn how to massage the data into the form you want before you present it, you'll save yourself a lot of work, and likely have a better-performing app as well.
SQL has been around a long time and is not going away. It's more important to learn it deeply than to learn any of the plethora of languages out there for tying databases into the web, even mine [sourceforge.net].
Re:SQL (Score:2)
Whether you're using Perl, PHP, ASP, Java, JSP, Python or any other language, the backend database is the most important aspect of what you are working with and the SQL statements are identical under each language.
It's worth being aware, however, that you can generally get by with simple SELECT, INSERT, DELETE and UPDATE commands; outer joins and their ilk are probably less necessary, but can save a lot of programming work if you get them right.
Finally, learn what foreign keys are! They will save the integrity of your database and save a butt-load (imperial) of sanity checks in your program! This was one of my main drives to upgrade PostgreSQL when 7.0 came out as it was, IIRC, the first to support foreign keys.
As an aside, you may not have to understand how to be a DBA. Where I work, we have "infrastructure" and "applications". Infrastructure manage the OS and Oracle DBA stuff (installation, tweaking init paramaters and user creation) while the applications people create the databases, create tables and populate them with data. If you fit into the 'applications' part (which it sounds like you want to), you just need to know where the database is and how to access it.
Re:SQL (Score:1)
Re:SQL (Score:1)
select a.name, w.name
from web_languages w, administrators a
where w.admin = a.name(+)
and w.name in ('php','perl','asp','java','jsp','python')
order by a.name, w.name
Agreed. Here is a good SQL tutorial w/interpreter (Score:1)
I agree that SQL should be the first language to learn since almost everything on the web is database driven. I've used the following tutorial to brush up on my SQL skills and it has helped me tremendously. I especially like the online interpreter so you can build queries and see their results online without having to install a database locally on your computer. Check it out! [sqlcourse.com]
Looking back on 5 years (Score:1)
All and all, I find myself disallusioned by the overall medicrity that is accepted in web programming.
Re:Looking back on 5 years (Score:2)
This, and your whole post are pretty much dead on. I spent 5 years (1995 - 2000) doing web development, because when I came out of school that was what was getting hot.
After 5 years the pace of change slowed down, I got tired of the amateur environment that was pervasive, and I missed C/C++.
I am now back in front of nedit [nedit.org] on Solaris writing C++ code, and I do web stuff (Perl, PHP) in my spare time. I'll likely do web-based programming for a living sometime again in the future, but I am not in any hurry for now.
Re:Looking back on 5 years (Score:2)
Where you are. Where I am, the ratio is more like 30-70-0.
(And I'm part of that last number.)
Re:Looking back on 5 years (Score:1)
Learn HTML (Score:1)
I see people all the time that can whip out a Flash animation or program a nice dynamic page, but if you look at the underlying HTML it's just a mess. Missing alt tags, font tags wrapped around images and shims. Ugh. Learn good, solid, HTML and the rest will come easy.
Re:Learn HTML (Score:1)
Re:Learn HTML (Score:1)
Re:Learn HTML (Score:2)
Besides, if you can't write good clean HTML, then you're not a real web developer - you're a "web publisher".
Re:Learn HTML (Score:1)
They also have a very good validator/bbs/tutorial etc etc.
Get your head around XML (Score:2)
Retargeting? (Score:1)
I find it odd that you say that. I've been trying to retarget myself to something other than web development in order to open up more job possibilities. I feel stuck in web development and I was hoping to try and find work outside of the Perl/PHP/SQL/web market. I encourage you to follow the advice already on this page if you want to go ahead and do that, but I'm having trouble getting work as a web developer with only two years of experience. I certainly scoffed at "web programming" when I was in college and never dreamt I'd be wishing I could get out of it.
I didn't look to become a "web developer" I just sort of fell into it because I was familiar with Perl. From there it snow-balled into all the other webly tools that I'm now familiar with.
LAMP (Score:1)
The O'Reilly network has coined a term that they call LAMP: Linux, Apache, MySQL, and Perl/PHP/Python. See this article [onlamp.com] on the O'Reilly network for more information. Understanding the applications mentioned under this monika seem to me to be essential to a being a web programmer these days.
In the real world, it appear to be... (Score:2)
Step 2: Forget about standards and compatibility. If it works on the very latest version of IE on Windows, good enough. If it works only on your monitor and your client's monitor, good enough. It if requires 256Gb of RAM and a gigabit ethernet to load, that's fine too, as long as the client has one when you demo it to them.
Step 3: Write stuff that requires fancy, obscure and proprietary plug-ins. Never mind if search engines can't index it, it's gotta be fancy, dammit.
Step 4: Forget about content. It's image that matters, not content. Who cares if the pages don't say anything or the shopping cart has security holes out the whazoo, as long as the buttons are animated and the graphics use the entire colour pallete? It sure doesn't hurt Microsoft, so why should it hurt you?
Re:In the real world, it appear to be... (Score:1)
Web Work (Score:1)
I have to second the LAMP comment, but with a few deeply-felt extras thrown in:
Good luck,
Anne
Start Here! (Score:1)
Sorry, I got caught up replying to the "Why Perl" comment, and then I realized I should have just posted this link.
Greenspun has a PhD from MIT (good paper credentials) and has made a hojillion dollars building websites (real world success). Sadly, the company he started was taken over my Sinister Venture Capitalists (TM).
Great book, and it's free. You can also buy a copy if you want. It's big and pretty. That's important.
:-)
Seriously, the book includes a good bibliography, and links to books he's written on SQL and other things. They're also free. You really can't go wrong starting here.
Now, go get yourself a Linux box (I plan to get an extra one free Saturday from my beloved Hal-PC [hal-pc.org] at their giveaway), set up a webserver and a database and get to work!!
:-)
HTH,
J2EE (Score:1)
I've learned php two years ago, and I've been working in a web agency for 6 months. And from my own experience, you should learn Java 2 Enterprise Edition. Enterprise JavaBeans, persistence servers, a bit of corba, XML is a must, transactions and of course a bit of sql. The j2ee thing was supposed to be huge, and it's definitivly the best thing you can do in the web department. Perl and php are ok, but java is really a better concept. It's ideal for big systems. After three months of php, you're gonna get bored. But the java possibilities are endless.
Go check out apache's jakarta project(jakarta.apache.org), and jboss.org. These guys are awsome.
Have fun
My experience has been.. (Score:1)
What to learn? (Score:1)
Web Developer and Web Designer are two completely different things.
If you want to work at a small company, and develop from scratch, learn Perl, PHP, and PostgreSQL. These seem to be the standards. They work well (I have built several sites with PHP/PgSQL), and are pretty easy to learn, plus they are pretty good under heavy loads.
If you want to work for a larger company with more divisions than Einstein, you will need to know Java. SQL of some sort. That's about it.
I wouldn't even bother 'learning' ASP, because truth is truth, it's ridiculously simple, and can be learned in a weekend(besides, it's microsoft!!)
Look at the large sites out there: IBM [ibm.com], Target [target.com], and Bluelight.com [bluelight.com]. They all use J2EE compliant Application servers.
Look at some of these: Art Technology Group's Dynamo [atg.com], Blue Martini [bluemartini.com], BEA's WebLogic [bea.com], and IBM's WebSphere [ibm.com].
Some of these guys even have demo downloads, so you can see what you might be working with. Basically, learn the basics(HTML, CSS, Javascript), learn a programming language(C, C++, Perl, Java) and then start playing with the combination. Good luck, and have fun!!