Borrowed words… »
« Journey Through Time: The makings of a geek

Baby steps into the WebDev world…

I’ve decided to document my research and work as I explore the world of web development. There are a number of reasons for why I’ve decided to do this:

  1. I’d like to be able to logically follow the trail of my studying and research. Bookmarks of webpages may show me the sources that I draw from, but they don’t do a good job of showing my train of thought.
  2. Not only does it document my trail, but articulating what I need to learn also forces me to organize the process itself.
  3. I’m sure there are other folks who are wondering where to start and might like a few tips. It’ll be a learning experience for everyone!
  4. I’ve always been amazed by the free resources all over the internet; just imagine that everything I’ve learned about design and scripting so far has been without spending a dime on the actual information. I feel like the best way to show my appreciation is to talk about them.

In a nutshell, I need to learn how to develop applications server-side if I’m going to gain any legitimacy. Thanks to the awesome guys over at GeekISP (their rates are amazing), I now have a really great development platform: fast, stable hosting on an OpenBSD machine.

The Skinny

Being a big fan of open-source software, I’m looking to get fully acquainted with a LAMP or LAMP-like system (OpenBSD is close enough). For newbies, this software bundle stands for Linux, Apache, MySQL, and PHP (or Perl). With these, you’ve got all the basics to create a dynamic site…assuming you can use them.

I like the acronym, because the order is also a good one in which to start. First, I’ll need to get used to the operating system (Linux). Once that’s done, then I can learn how to set up and manage a server (Apache). Finally, I can learn the database software (MySQL) and scripting language (PHP or Perl) basically simultaneously. Killer website, here I come!

Resources

One step at a time though. How exactly do you get used to a new operating system? Well, for now, I’m not really using a new OS, at least not all at once. I’m currently using PuTTY to remotely access my account. There are already a few important things to learn here:

  1. PuTTY is a free telnet/SSH client. I’ve had a mild acquaintance with this already working with PBwiki, but now it’s gonna have to be my homie. There’s not a WHOLE lot to learn, because once you’re logged in, that’s it, but there are plenty of options for me to fiddle with in future days, particularly the security stuff.
  2. OpenBSD/Linux and all the other Unix-based/like operating systems are a class all their own and are gonna be a challenge to a long-time Windows user like myself. I mean, i could make some badass batch files in DOS back in the day, but this is a whole new level. For this purpose, here’s my reading material:
    1. Unix/Linux tutorial for beginners - A good simple starting point.
    2. UNIXhelp - better organized, maybe.
    3. Unix commands reference card - a quickie cheatsheet
    4. Bash beginner’s guide - Bash is a Unix shell that you’re just gonna need to know eventually. For more help, there’s the Advanced Bash-Scripting Guide.
  3. I need to get really comfortable with at least one of the major text editors, Vim or Emacs. I’ve chosen Vim, and this quickref is useful.
  4. Gentoo is a Linux flavor I’m going to be installing on my own computer to get myself even better acquainted. In a client like PuTTY, I can always run back to Windows like a scared puppy, but what if it’s on my machine?
    1. My friend Chandler jokingly suggests Linux from Scratch as an alternative. Right. I’m a borderline nerd, not king of the dorks.

Roadmap into the future

So that’s a good start. Feel free to follow me on my journey, learning things as I do. Or just watch me fall deeper and deeper into geek-land. Your call. In any case, the roadmap after this:

  1. Apache will be the next leg of my journey. Although I haven’t done a lot of research into this part yet, PCStats’ Website Hosting with Apache is a useful read, although they explain it from a Windows perspective. On the other hand, that’s probably part of the appeal, as it provides me with a comfortable point of departure in an environment I’m familiar with.
  2. I need to continue keeping my Web2.0 skills fresh by getting even more familiar with Prototype and Script.aculo.us.
  3. On that note, I really want to get a better handle on SVG and VML, the w3 standard vector graphic format and Microsoft’s attempt at developing its own “standard.” Dynamic graphics updated client-side just seems exciting to me.
  4. Get acquainted with MySQL and PHP. If I’m feeling ambitious, Perl as well, but I don’t think it’s at all necessary. Or maybe I’ll learn Python in time to catch up with the imminent release of Python 3.
  5. Learn how to use Subversion. For that, there’s an awesome online book.
  6. Spend some solid time fiddling and experimenting with development with the entire framework, so that I can handle everything from the server to client-side. Michael better help me with this, as much as I’ve been helping him learn Javascript and CSS.
  7. The cherry on top: learn Ruby (on Rails). Then my 1nt3rw3b education will be mostly complete, and I can feel comfortable calling myself a professional.

But WHY?

I get asked this question a lot. Presumably, my career choices at the moment are either Ethnomusicology or Medicine. Why in heaven’s name would I want to have the full-fledged skills of a web-developer also?

Well…it’s fun. Also, I’m learning a valuable skill that is helping me earn money now and will undoubtedly help me with any other career. The internet isn’t going away, and anyone with the skills to develop professional sites and applications for it is going to be valuable in the new world. I’m a dreamer and often impractical, but I’m not an idiot.

Sunday, January 28th, 2007 : Web Development : No Comments

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

No comments yet

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>