|
In 10 Reasons to Develop Your Technical Skills, I
explained why it’s important to develop your technical skills as an
integral part of your personal development efforts. Strong technical
skills can save you time, increase your income, and enable you to
extract the most bang-per-buck from your technology purchases.
I promised you an article on the how, so here are 10
things you can do to improve your technical skills, regardless of
your current skill level:
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.
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.
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.
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.
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.
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.
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.
Erin learned web programming in the same manner. She
wasn’t a technically adept person when we first met, but attempting
to create her first web site got her in motion. Eventually she
started a web consulting practice, creating dozens of small business
web sites. She also built her own sites including VegFamily.com and
ErinPavlina.com and generates most of her income from them. So the
simple decision to make some basic web sites eventually led to
generating abundant sustainable income from online businesses. We
learned by doing.
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.
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.
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.
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.
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.
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.”
|