How do I become a Linux developer

Victor Odhner vodhner@home.com
Thu, 18 May 2000 07:34:19 -0700


Hi, Roy.

If Kevin's suggestions seem on target for you, that's fine.  This is
especially the track for someone interested in systems, compilers,
systems administration, systems architecture, etc.  Also, if the
open-source concept is very important to your identity and sense of
mission, then by all means get into Linux up to your eyeballs.

But if your emphasis is more on applications -- databases, web servers,
GUIs, batch processing and scheduling, etc., you may find that you don't
need to make much of a special effort in Linux.  Just become as
knowledgeable as possible about all aspects of Unix from an applications
programmer's point of view.  If you are interested in web development,
definitely learn all you can about Apache since I think it is even
bigger than Linux at the moment.  Also be aware that "what's hot" shifts
continuously, so you need to keep your eye on the market from year to
year.

In my case, the OS under which I work doesn't make much of a
difference.  If you want to be employed in the Unix community in
general, application skills are fairly portable from one Unix flavor to
the next.  If you work in a Sun or HPUX or other Unix environment, you
are likely to find that your employer has a little Linux action going on
the side, as well as the more conservatively-managed FreeBSD.  (If they
don't use any Free Software, that may be a sign that they're not open
minded enough to qualify as your employer.)

Definitely learn how the Unix kernel in general works.  This is pretty
portable knowledge, and essential to becoming a sophisticated user and
programmer under Linux, Sun, or anywhere else.

Definitely learn and practice the procedures of obtaining Free Software
off the Internet and installing it under Linux -- another portable skill
-- because this greatly amplifies your ability to put together
applications.  Also learn something about intellectual property laws so
you know what you may and may not do in a business environment.

And if you do develop some GOOD software of general value which you're
free to give away, then release it as Free Software -- that's a useful
addition to your resume, to show potential employers or clients that you
know how to produce.  Be careful:  Some employers try to get you to sign
a draconian agreement by which they own every thought you think while
you are employed there.  You can negotiate specific exclusions in some
cases, to keep your freedom regarding private projects not affecting
your employer's interests.  (Or you can eschew employement and go it on
your own as a consultant, but note that this eats a lot of your time in
marketing and business management.)

Everything Kevin wrote about lurking on lists, taking on projects, etc.,
are all good advice as well.  There are important cultural traits that
you need to make part of your persona, and only you can decide which
ones.  But the key thing is to find a focus of interest, and also try to
learn the DEPTH at which you want to operate (kernel development, system
administration, networking, security, database, web, etc.).

Go for breadth first, so you know where you want to go; then go for
depth in certain chosen areas, unless you decide that you'd be better as
a generalist.  And you can always change your focus -- I've done that a
few times.

Good luck!

Vic