Ubuntu-Pakistan Old but evergreen - Investing in your IT Skillset

Fouad Riaz Bajwa bajwa at fossfp.org
Sat Aug 19 19:58:32 BST 2006

Investing in your IT Skillset 
Anthony Barker


September 8, 2002
Often friends of mine ask me - "What is the hottest IT skill?"

There is a problem for many IT workers that I think is best illustrated by
the MCSE designation. You study hard to memorize menu systems and hands on
practical information regarding the use of Microsoft Technologies. You then
pass some exams which may or may not really reflect your understanding of
the technology - and two years later the information you worked so hard to
memorize is out of date and can be discarded.

So how do you safeguard your career and ensure that your skills are
marketable in the future ? Three rules for investing in your skillset are -
study what you love, focus on value-add, and invest in fundamental longer
term skills.

Study what you love

Study what you love is fairly self explanatory - but a foreign idea for many
people who entered the IT industry simply as conduit to a higher paying job.
Typically, we are better at things we like and learning the associated
skills comes more easily. If what you love isn't that marketable, often
times the skills you develop can be use as a stepping stone to commercially
applicable skills.

For example some programmers love python or ruby - two programming languages
which do not yet have the similar commercial demand as other languages such
as c++ or Java. If you learn Python extremely well - you can use this to
learn object oriented programming, functional programming, the unix
programming environment (sockets, pipes, etc) the windows programming
environment (COM, OLE, etc) and the vast majority of programming concepts as
well as the C programming language.

For those who love the system administration of linux - learning all the
commands, shells scripting and perl can lead understanding the
administration of solaris, linux or aix.

While studying what you love - try to learn what ever it is thoroughly - and
not jump around from one thing to another.

Make sure you choose what you love not simply out of habit. For example I
knew " vi " , the unix text editor fairly well and I considered moving to
emacs to edit code because it has more functionality. Initially I didn't
like it - the keystrokes with CTRL and ALT felt strange. I persisted - and
now am beginning to like it. 

Remember these things are just tools - and while you can love a tool - what
you should really focus on is enjoying and improving the process or act of
using the tools.

Focus on Value Add

Value-add is mostly common sense - but common sense many IT professionals
miss as their vision is clouded by technical details. How can you add the
most value to your customer ? i.e. " What is my current/future
customer/employer's biggest problem - and what can I do to fix it most
efficiently and effectively in the long term ?". 

Try to learn skills in areas that are "must have's" - a litmus test is " If
the service was unavailable for 1-7 days could the company continue to
function like normal ? ".

Many people focus on the value add marketed by vendors. For example a major
corporation I know was thinking of moving their desktops from Windows 2000
to Windows XP. The true value add in this case is questionable. In general
it is wise to question all claims from vendors for materials particularly if
they include the terms "legacy" and "upgrade".

Skills with Open Source software immediately make you of value. You can
implement a File server for 500 users for only the cost of the hardware and
consulting time ? A firewall/proxy server on a reused server ? Cost to the
client = Nothing + Cost of your labor = a real win. 

For programmers it is good to focus on learning environments that allow you
to more rapidly produce useful quality code. Open source gives you access to
tons of tested libraries that can speed your development time. Using
dynamically typed and interpreted programming languages such as Python, Perl
or LISP will reduce the number of lines of code you have to write and debug,
and speed the code-compile-debug cycle, which can cut the cost of

Open Source tools give you access to the guts of the application - which
allow you add more value to the customer. In traditional proprietary
software solutions such as MS SQL Server if you have problems you need to
pay a lot of money to call the vendor to get access to some hidden debug
parameters that you can then apply to the application. You then try to
interpret the debugging information, submit it to the vendor and then wait
for a patch. This is much like trying to fix a car when you can't open the
hood. Save the $20,000 part of the service contract and do it yourself.
Often times this takes a mixture of system administration and programming

Recognize most people adapt very slowly and typically resist technological
change. For example replacing Microsoft Office with Open Office on 1,000
desktops may sound great in terms of reducing total cost of ownership.
However, the truth is that the amount of time for retraining and resistance
from the user community would probably make this project fail. Lock-in to
proprietary systems is the anathema to value-add. 

Try to understand the economics of technological change(2), understand how
to do a business proposal, and how to sell software projects. If you do -
you are more likely to get " what you love " accepted as a corporate
solution. Typically with sales of software solutions you sell to the
business decision makers - not necessarily IT. Get the product or solution
in their hands so they can evalgalize it and make sure you sell at multiple
levels in the organization - have multiple people "going to bat " for you
and your solution.

Avoid monopolies if possible. Software vendors can reduce the value add of
the "total solution" that you are working on by arbitrarily changing
licensing agreements and increasing prices. By using open standard or open
source software that is not controlled by one company you ensure that you
solution will have longer term value. Open software generally has a longer
staying power than proprietary solutions. Witness the staying power of ANSI
C programming environment or the X86 hardware platform(3).

Different operating systems allow you to add different amounts of value. The
unix philosophy has been to create a number of " small sharp tools ".
Tapping into those tools in Unix or windows and using a glue languages such
as Perl, Python or Bourne Shell to string them together allows you to
automate much of your job. Automation adds value to your customer and often
allows them to service themselves.

Crosstrain yourself to add value. For example if you are a programmer learn
to do basic administration of a database server. Ask the dba what his/her
biggest challenge. If you are an administrator study python, or perl. Having
a bigger picture understanding allows you to add more value.

A final thing you need to understand is the value of standardization and
consolidation. For example for a large company who has standardized on Java
Servlets may have reason to use PHP on some website - however, the value of
PHP as a superior method of RAD development of dynamic content is
significantly reduced. The company will have to staff and support this
additional technology - often maintaining overlap in staffing and expertise.

IT has improved companies in terms of Communication, Workflow, Job
Automation, Financials (which could be communication - but I put it
elsewhere) and customer service delivery. However each company is different.
I would recommend if you are committed to your employer figure out what
makes their business tick. An easy way to do this is to read how stock
market analysts value different companies in that industry(4). For example,
commercial banks are upgraded or downgrade often on their corporate loans.
Therefore, loan risk evaluation and the workflow around those loans is a key
item. Business schools teach method on how to determine what a businesses
key success factors are. What are your customer or employers keys success
factors and how can you improve them ?

Invest in fundamental longer term skills

An administrator who learned Microsoft's version of Unix - Xenix in the
early 80's would have no problem picking up and administering a modern Unix
or Linux style system. Would a DOS user be able to administer a Windows XP
box ? The best way to avoid the loss of you skills is to try to learn skills
that are open, fundemental to the computer industry, and don't tend to fade.

Try not to learn skills that are controlled by one company. IT Companies can
be fickle - dropping technologies if they don't seem to be meeting ROI
expectations. C/C++, SQL, TCP/IP, Perl, XML, Korn Shell and others are all
not controlled by one interest and will last into the near future.

Unfortunately the superior technology doesn't always win - so how do you
pick what to learn ? If you can get your hands on a copy of the competing
technologies play around with them for a while, read reviews from
intelligent reviewers and keep your fingers crossed. Try to identify
"Silicon Snake Oil " by using your good judgment.

Some products are necessarily proprietary and you will have to deal with
that. For example to manage Cisco routers I would focus on learning routing
technology via setting up Linux as a router and then learn how Cisco has "
applied " that technology. Learn RDBMS systems via Postgresql - and then
learn how Oracle has applied and extended that technology. Learn to
administer email systems via postfix and then see how MS Exchange has
applied their technology to the protocols. For developers the same applies -
learn open technologies first and then you can see how vendors have applied
them. For example learn C++ on a linux box using toolkits such as wxWindows
or QT and then see how Microsoft has modified standards in their C# + .NET

Finally you have a strategy for learning and career development- write down
your 3, 12, 36 month skill development goals. Join a user group such as the
Perl Mongers or Linux User Group and meet people with similar interests.
Post a message to the usenet to get study mates. Look at signing up to
mailing lists for new users - for example the Learning Python mailing list
is excellent and keeps you on track. Put aside 3 times per week for
learning. Steady learning is the best.

Avoid 1-5 day crash courses. They are the industry norm - however all the
current learning research points to the fact that we learn better over an
extended period of time. So much so that if you tried to cram your learning
into 1 day - you would only learn 60% as much if you studied 1.3 hours per
day over a work week.

Make a project of it. Most people learn best in situations where we apply
what we have learned immediately. So if you are learning something related
to your current project - great. If you are learning something for the
future I would recommend making a project out of it. So if you want to learn
firewalling - setup an old machine at home using linux and later learn
"CheckPoint " or a similar application of the technology or join an open
source project to apply your programming knowledge.

The IT job market is now slowly picking up after months of decline, make
sure you are in a position to take advantage of it.


Anthony lives in Toronto, Canada and enjoys teaching his daughter and wife
the wonders of zsh ;-)
He runs a small consulting company that advises firms on email security and
develops email based solutions.

(1) The Mythical Man Month, Brooks

(2) http://www.dtc.umn.edu/~odlyzko/doc/slow.evolution.txt

(3) Competitive Advantage: Creating and Sustaining Superior Performance,
Micheal Porter

(4) http://finance.yahoo.com

Fouad Riaz Bajwa
General Secretary - FOSS Advocate
FOSSFP: Free & Open Source Software Foundation of Pakistan ® Secretariat
Office of the General Secretary
E-Mail: bajwa at fossfp.org
URL: www.fossfp.org ; www.ubuntu-pk.org
This e-mail message is intended for its recipient only. If you have received
this e-mail in error, please discard it. The author of this e- mail or
FOSSFP: Free and Open Source Software Foundation of Pakistan (R) takes no
responsibility for the material, implicit or explicit.

No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.11.2/422 - Release Date: 8/17/2006

More information about the Ubuntu-pk mailing list