One of the best ways to improve your technical skills is by reading books. As a teenager I used to buy computer books at the local bookstore. Today it’s far better to shop online because you can more easily find the true gems and avoid the lemons. Visit
Amazon.com, search for a book on a particular topic you wish to learn, and check the reviews and ratings. Look for books with at least 4 out of 5 stars (I usually don’t buy any with less than 4.5 stars). Take advantage of Amazon’s browsing features to quickly find the best books in any field.
Even when you opt to buy technical books locally (such as for an easy return if it doesn’t suit you), you can still check the online reviews to rule out the bad ones. Take your time previewing books in the bookstore or online, especially if cost is a concern. If you can’t understand the first chapter, don’t waste your money.
Although technical books can be expensive and are often padded with lengthy code listings and other fluff, the good ones make up for it with clearly organized, well-edited, well-indexed content. Books in their second edition or later are a great choice because they’ve already been through at least one round of testing in the marketplace.
2. Read online tutorials
The advantage of online tutorials over books is that they’re accessible, timely, and of course free. The disadvantage is that they usually aren’t professionally edited, which can leave them lacking in completeness and/or clarity. However, they often sport other features like abundant interlinking, user comments, and interactive demos. Sometimes the comments are better than the original information, since they can contain lots of additional tips and suggestions. I find this is particularly true of reference sites like
php.net (a reference site for PHP).
My favorite way of finding online tutorials is to use Google. If I need a CSS tutorial, I’ll search on
CSS tutorial. I usually find something halfway decent in the top 5 results this way. Other variations that work well include
how to XXX,
XXX reference, and simply
XXX, where XXX is whatever you wish to learn.
3. Hang out with geeks
If you spend enough time with technical people, some of their knowledge will rub off on you. Even geeks learn from other geeks, but if you aren’t much of a geek yourself, a great way to accelerate the development of your technical skills is to join a local computer club or users group. Use
APCUG (Association of Personal Computer User Groups) and/or
WUGNET (Windows Users Group Network) to find a group near you. Such groups usually welcome new members of any skill level. Contact one of them and attend a meeting as a guest to see if you like it.
Once you join a computer club or other geek-ridden association, volunteering is a great way to make fast friends. These nonprofit associations are frequently in need of volunteers for committee and project work; even if your technical skills are weak, they often just need raw manpower. When I decided to become active in the
Association of Shareware Professionals during the late 90s, I put a lot of energy into volunteering. I wrote articles for their newsletter and served a year each as vice-president and president of the association. It was a lot of work to be sure, but I learned a great deal from working closely with the other volunteers. Many of those lessons have proven invaluable in running this personal development web site. In fact, writing those articles, which gradually became less technical and more motivational, contributed to my 2004 career switch from software development to personal development.
4. Subscribe to technical magazines
Technical magazines used to be one of my favorite outlets for learning, but I cancelled all my magazine subscriptions years ago. During the early 80s, I spent many long hours typing in BASIC programs from Family Computing and similar magazines (it took me a long time because I hadn’t yet learned to type). While I think print magazines are less useful today — the same info can often be found online for free – they’re an inexpensive way to improve your general technical skills, especially if you’re unlikely to push yourself in other ways. The professional editing and experienced writers are a big plus.
5. Take classes
If group learning is your thing, look for college extension courses and other classroom and workshop offerings in your area. Periodically I get catalogs in the mail from UNLV, and while I lived in Los Angeles, I received them from UCLA, Learning Tree University, Pierce College, Santa Monica College, and others.
A key advantage of classroom learning is the opportunity to interact with an experienced educator. Teachers with decades of experience know plenty of educational distinctions you won’t find in books or online tutorials. And unlike many technical writers, they know how to teach.
If you really want the degree, consider going to college and majoring in a technical subject. I earned Bachelor of Science degrees in Computer Science and Mathematics. But given my path after college, these degrees were unnecessary busywork rather than practical skill building. I started learning to program when I was 10 years old, and while I did pick up some additional distinctions in college, it would have been a better use of my time to skip college altogether and learn the info on my own. In the long run, I found my math and physics classes far more useful than my computer science ones — my knowledge of the former didn’t become obsolete so rapidly.
6. Create your own web site
Long-term readers of this site know I’m a big fan of experiential learning. Setting a goal to create a basic web site is a great way to learn practical skills like HTML and CSS. When you have a compelling reason to learn, your goals will accelerate your learning, and you’ll learn with a focus on practical application.
I learned HTML in 1995 when I wanted to make my first web site. I created the site as I learned the HTML language, gradually evolving it from the basic “Hello, world” example. Later I learned CSS, PHP, MySQL, and RSS, so I could do more interesting things than plain vanilla HTML would allow.
7. Build your own PC
If you want to develop better hardware skills, a great project is to build your own PC from scratch. I did this in 2004 and found it very rewarding. You’ll save money, learn a lot about how your computer works, and end up with a nicely customized machine that you can easily upgrade. After all the components arrived, it took me about a day to assemble everything and install the necessary software. This may or may not be a good use of your time, but I found it worthwhile for the experience. I still use this same PC today, and it’s plenty fast enough for my needs.
A detailed, novice-friendly, step-by-step tutorial I used can be found at
My Super PC. I used
PriceWatch.com to find the best online prices for all the components, which beat local retail prices by about 30% on average. I remember buying several components from
NewEgg.com.
If this project makes you nervous, I wouldn’t recommend it. But if you feel comfortable researching and selecting components and carefully following assembly directions, it’s a rewarding way to spend a day.
8. Embrace a variety of software
General software productivity improves with breadth of experience, so use many different software programs (online or offline) to improve your overall ability to get things done through software. I started using software in 1981, and such broad experience makes it easy for me to learn new applications quickly. I usually dive in and start using them without going through the tutorials or reading the manual. This saves me a lot of time and makes it easier for me to justify the effort of installing new software and upgrading old software.
When Erin has trouble figuring out how to do something in one of her applications, I’m often able to solve her problem in seconds even if I’m not familiar with the program. After using hundreds of different software programs, you eventually learn to think like an interface programmer, so you intuit how certain features are likely to be implemented. Think of it as technical intuition.
Branch out from software myopia, and experience the full richness of using many different interfaces. You’ll learn a lot about interface design from image editing programs, programming tools, and of course computer games. The greater the variety of interfaces you experience, the faster you’ll be able to learn and master each new program you use.
9. Learn to program
Programming is the art of instructing a computer to perform a task. The key to accomplishing this feat is learning to think like a computer. Programming is one of the most mentally challenging tasks a human being can perform, but nothing compares to the satisfaction of engineering a piece of code to solve a specific problem. Ask any programmer.
I learned to program in BASIC at age 10 and later went on to learn over a dozen programming languages. The challenge of developing my logic and analytical skills at such a young age has served me well my entire life, even in seemingly non-technical pursuits.
For example, I tackle many personal development problems with a programmer’s mindset. How do we define the problem? What are the possible solutions? Which solution best meets our constraints? What are the instruction steps to implement the solution? Does the solution produce the desired output? Can we make this solution more elegant or optimal? I’ve taken the common programming process of requirements gathering, architecture, design, coding, debugging, and optimization and applied it to personal development.
While humans certainly aren’t as precise or predictable as machines — we have major compatibility issues, sometimes even with ourselves — a programmer’s mindset can generate effective solutions to very human problems. Intuition is a big factor in both personal development and programming, but I like that there’s a structured fallback process that works in both fields. It’s much harder to use this process in personal development though because we know how a computer thinks, but we’re still figuring out how humans think.
10. Marry a geek
Your final salvation on the road to geekdom is to – gasp – marry a geek. I shudder to think of the technical purgatory Erin would be wallowing in right now if we’d never met. I almost cried when I first saw her slogging away on a 10″ monochrome Mac in 1994, and I soon gave her a pity upgrade to a PC with a 14″ SVGA monitor. I told her that if I die first, she’ll need to marry another geek right away – an easy task for someone with her social skills.
If you aren’t a geek yourself, then do what you can to recruit one into your family. If that’s too much to ask, at least find a geek you can befriend. They can really save you in a jam, and they’ll keep you from falling too far behind the rest of the world.
Be kind to your geek friends, and offer them fair value in exchange for their help. Creative trades are often welcome. For example, Erin and I are both inept when it comes to fashion and home decorating (my colorblindness certainly doesn’t help), so someone who can teach us how to dress and buy furniture that matches would be a welcome ally. Right now the best we’ve got is our six-year old daughter. She’s very sure of herself, but I’m not sure her advice can be trusted.
In case you haven’t noticed yet, geeks are taking over the world. How many geek billionaires are there now, including the richest person in the world? Technical skills are of major importance these days, and the technical have-nots are more estranged than ever. As hockey legend Wayne Gretzky says, “Skate where the puck is going, not where it’s been.”