ManagingYourITSkillsWithOpensourceTechnologies
From: Fouad Riaz Bajwa bajwa [at] fossfp [dot] org Reply-To: bajwa@fossfp.org To: general@linuxpakistan.net, ubuntu-pk@lists.ubuntu.com, 'Bytes For All FLOSS Consortium' bytesforall_floss [at] yahoogroups [dot] com Subject: Ubuntu-Pakistan Old but evergreen - Investing in your IT Skillset Date: Sat, 19 Aug 2006 23:58:32 +0500 (13:58 GMT+5)
Investing in your IT Skillset Anthony Barker
http://www.xminc.com/linux/hottest_it_skills.html
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 development(1).
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 talent.
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 environment.
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
Regards
Fouad Riaz Bajwa General Secretary - FOSS Advocate FOSSFP: Free & Open Source Software Foundation of Pakistan Ž Secretariat Office of the General Secretary E-Mail: bajwa@fossfp.org URL: www.fossfp.org ; www.ubuntu-pk.org Disclaimer: 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
– Ubuntu-pk mailing list Ubuntu-pk@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-pk