Most people nowadays want instant gratification, and need continuous rewards as motivation. In order to secure those rewards, they tend to take unwise shortcuts and avoid the work of acquiring actual skills. They gain just enough knowledge to put out work based on commercial or free templates, and what we now see are sites that are poorly coded, poorly written, cluttered, difficult to maintain, and most of all, undistinguished.
This attitude is perpetuated by software manufacturers and others who promise that their products and services will give instant gratification and success.
- Online “web builders” that “anyone can use to build a web site with no knowledge required!” There’s a vast difference between fill-in-the-blank templates and real, handcrafted web sites.
- Bloated IDEs that promise one needs no skills, just click-click-click, drag-n-drop, and POOF! instant webmaster. The code they generate is typically cryptic and proprietary, designed to keep one locked-in to their software and their expensive upgrades.
- Development frameworks that are so complicated that one will never understand them without an advanced degree and years of study, which, by then, are obsolete.
- CMSes that take longer to configure and customize than it would take to hand-code a site, and are so complex that if it has a bug, you wait and hope for the next release (and make excuses to your clients).
- Searching for, downloading, installing and trying thousands of templates, themes, skins, modules, gizmos and scripts is another big waste of time.
These things all waste time and money, and most of all, disappoint clients. Sure, one can build a web site with some high-level package, but how to fix the bugs? There simply are no shortcuts around building and understanding one’s own hand-made code.
However, there are good shortcuts one should develop and practice.
- Build and maintain a nice collection of clean code that one can understand, then re-use the heck out of it! And there’s nothing wrong with locating and using others’ free scripts (particularly as examples for learning), but don’t use them if you don’t fully understand them. Doing otherwise is always counter-productive.
- Assemble and maintain a knowledge-base of technical resources, such as free PDF books and web articles, covering all business, technical, and legal aspects. Never search for the same thing twice! Make a Dox folder and populate it with topical sub-folders. Populate them with good-quality reference material and link them for easy access. Make a Start menu group just for reference documents.
- Learn to use online resources effectively, building a bookmark folder of the best sites (avoid most forums and blogs, big time-wasters). Good sites include Dev Guru, W3 Schools, A List Apart, and there are many others. When work is slack, take an online course or develop some new skills.
- Learn to hand-code in a good tabbed editor, with macro and clip libraries (e.g., NoteTab Pro or UltraEdit). Develop the habit of modularizing code and saving clips where they may be easily located. As skills improve, take time to back-port improvements into the clip library.
- Learn proper code formatting and commenting. I prefer the 1-space indent because it’s easy to maintain and follow. The two-space indent used by many HTML editors is confusing, and the tabbed indent is even worse, running deeply-nested code blocks three feet right of the margin. What’s the point of indenting if one can’t follow it? I also recommend writing one line per tag pair, i.e., no hard returns between tag pairs. Use an editor with soft-wrapping, and turn it on and off as needed: on for writing paragraphs, off for coding. Very handy.
- Learn CSS and Strict HTML. Deprecated markup is, well, deprecated! Standards compliance is a good thing, and it’s getting better as browsers improve support for it. Strict markup is also more future-proof. Support for deprecated, transitional HTML tags and attributes will fade away.
- Develop an efficient, optimized work-flow cycle. More on this below.
- Don’t waste time exploring the learning-curves of bloat-ware. Spend that time learning design, scripting, standards, writing, security, and accessibility.
- Avoid getting caught up in ideologies and fads. Clients are concerned with results, not ideology. If the crowds are raving about something, it’s probably a fad, and one can’t build a business on a fads. Most of them will not provide any competitive advantage, they’ll just waste time and energy.
These practical shortcuts, and many more, will pay off in the long-run, saving a bunch of time and trouble. I know, because I’ve spent too much time breaking most of the above points!