Learning What I Know

I recently received an e-mail from one of my subscribers that asked a question. The answer may be useful to some so I’m placing it here.

The original question

It seems so interesting developing websites application these days, thanks to the web 2.0 phenomena. I can’t call myself a web developer or anything near that, but I’m interested to learn these kind of [things].

[…]

Since you seem to be real world developer to me, I have a couple of questions to ask you. I’ve been messing around with XHTML, CSS, Javascript, PHP and MySQL [for] a couple of months now, and it frustrates me sometimes when I sort of forget things and [can]’t understand the flow of the design of what I’m trying to achieve. [..]

Based on your experience, do you do everything by your own, i mean there are the front end and the back end [things], do you do both?

Talking of object oriented programming (i guess that’s what prototype, script.aculo.us and ajax are really about), which OOP did u learn first? I [learned] simple Java before but does that come into play for web development as well? I mean, does it help if i go into detail learning Java?

Any other useful advice? I would appreciate your comments. Thank you.

My Reply

Web 2.0 phenomenon…Yeah, its good to stay on top of things like that :)

Development. XHTML, CSS, Javascript, PHP and MySQL…I do it all, however, I did not learn them all at once…but over a series of years. I think the key concept is to really try and keep your logic from your design – keep the MySQL/PHP side of things separate from the XHTML/CSS side of things ( e.g. Ajax, Templating, and the Separation of Layout and Logic). Javascript is a bit of a wildcard and bridges between both the presentation and logic.

You can do the above with and without Object Oriented Programming…although OOP is the preferred method. My first OOP language was Java. Next I branched out to Object Oriented PHP, and finally (last year) I learned Object Oriented Javascript.

All you really need is the OO concept in your head before you branch out and if you’ve used Java, you should be good to go. So to answer your question: “Does it help if you go into detail learning Java.” is this: It won’t hurt, but isn’t necessary to succeed in learning the above languages/tools. When using Object Orientation and switching languages, its all about learning the syntax and the gotchas associated with your chosen language.

The biggest chunks of advice I can give regarding your tools of choice are as follows:

XHTML/CSS

  • keep it simple
  • use ids/classes rather than inline styles

PHP

  • live on php.net
  • learn through irritation with your own code…mine goes through constant revisions and optimizations
    – pick up a templating engine to help keep your layout and logic separate. I use XTemplates. I’m thinking about looking into SmartyTemplates….use whatever you wish…but templates save TONS of time.

MySQL

  • know your data
  • know how to normalize your data
  • download open source applications and look at their database structure for a good idea of what their doing and go from there

Javascript

Grooming Real Life Leadership Through Virtual Worlds

wow_tuxedo My friend Jon passed this article from Wired Magazine off to me as it suits my interests a bit more. This article reiterates what I have been chanting for some time now, real world lessons can be learned in virtual worlds like World of Warcraft.

Gaming tends to be regarded as a harmless diversion at best, a vile corruptor of youth at worst. But the usual critiques fail to recognize its potential for experiential learning. Unlike education acquired through textbooks, lectures, and classroom instruction, what takes place in massively multiplayer online games is what we call accidental learning. It’s learning to be – a natural byproduct of adjusting to a new culture – as opposed to learning about. Where traditional learning is based on the execution of carefully graded challenges, accidental learning relies on failure. Virtual environments are safe platforms for trial and error. The chance of failure is high, but the cost is low and the lessons learned are immediate.

We see even now that MMORPGs are affecting the economy, laws, and communication. As the games become more social, they are introducing experiences and obstacles to end users where those users may have never had the opportunity to encounter them. And as with many experiences in the real world, those users grow and alter behavior patterns to suit these diverse situations in the virtual world. Wired’s article focuses on MMORPGs grooming managers as a direct correlation to holding the position of Guild Master. They write:

[T]he process of becoming an effective World of Warcraft guild master amounts to a total-immersion course in leadership. A guild is a collection of players who come together to share knowledge, resources, and manpower. To run a large one, a guild master must be adept at many skills: attracting, evaluating, and recruiting new members; creating apprenticeship programs; orchestrating group strategy; and adjudicating disputes. Guilds routinely splinter over petty squabbles and other basic failures of management; the master must resolve them without losing valuable members, who can easily quit and join a rival guild. Never mind the virtual surroundings; these conditions provide real-world training a manager can apply directly in the workplace.

Heh. It may sound corny, but in my stint as an officer of a World of Warcraft guild, I was able to garner some knowledge of mangement with regards to conflict resolution, player management, evaluation of applicants, advertisement, and extra-guild relations; each lesson has allowed me to grow as a person on both a personal and professional level (oddly enough). Despite my appreciation for the acquisition of knowledge through virtual methods, the artcle’s last line is still laughable. They say:

The day may not be far off when companies receive résumés that include a line reading “level 60 tauren shaman in World of Warcraft.”

While that seems unlikely, will there come a time where I’ll be filling in my Guild management experiences on my resume?