[Linux-aus] Become C programmer

Adam Nielsen a.nielsen at shikadi.net
Wed May 31 19:11:34 AEST 2023


> Just wondering what's the right/easiest way to get a C programming job. 
> I have been working as a linux administrator. I have good understanding 
> of the language and how it interacts with the OS. However, I don't have 
> any professional experience. Any suggestions?

There are a few challenges when looking to employ a programmer, if
you're responsible for a team of them. The main ones:

 1. How well do they know the language?  Can they understand our
    existing code?  How quickly do they learn new things?

 2. Are they a "lone wolf" who is never wrong, or will they work well
    in our team?

If you are willing to contribute to open source projects, then you'll be
able to give prospective employers answers to both these questions.

For the first one, they can look at the project's version history to
see your commits, which will very quickly give them a good idea of your
level of expertise.

For the second one, contributing to a larger open source project is
only possible if you're willing to make compromises.  You have to accept
criticism of your code, address feedback, make changes, deal with the
occasional rejection, and all of that directly translates to the skills
needed when working in a team of programmers.  It also demonstrates
familiarity with tools like git, participating in code reviews and
discussions, and so on.

There's also a more subtle note too.  Those who have a passion for
programming usually write better code, have more up-to-date skills and
are generally more productive, as opposed to those who got into
programming only because it was a decently paid career.  The ones who
have a passion for it are far more likely to be open source contributors
than those who only do it to pay the bills.  So all else being equal,
the applicant with open source credentials will often be looked at more
favourably than the one who stops coding at 5pm.  Obviously this is a
generalisation but it often holds true.  It does lose some relevance as
people get older, as families and other commitments reduce the time
available for hobbies, but even a busy person who is passionate about
programming will still find the time to occasionally submit bug fixes
for the applications they use, even if only out of frustration!

So if you can show that you are successfully contributing to one or
more open source projects (where you aren't the one calling all the
shots) then it will remove a large amount of uncertainty about your
skills and abilities, which is probably the biggest barrier to getting
a job in any profession.  Everyone is familiar with the catch-22 of
needing experience to get a job, but being unable to get that
experience without the job, so this is one way around that problem.

However this is mostly relevant only if you're looking to join an
existing team within an organisation.  If you are a lone wolf and don't
want to work with others then the approach will be different, as you'll
likely be interviewed by people who won't necessarily have a technical
background.  In this case it won't be too much different to any other
role (like a sysadmin for a small business).  However in my opinion this
career path has drawbacks, because you miss out on learning from your
peers and always being encouraged to improve your skills.  You are far
more likely to get stuck doing the same thing and never advancing,
unless you happen to be the type of person who is always trying to learn
new things - but even then without anyone to advise you if you're
heading in the wrong direction, it's very easy to unknowingly pick up
bad habits.

Anyway, sorry for the long message but hopefully some part of it was
useful!

Cheers,
Adam.


More information about the linux-aus mailing list