OT: Where does it count?
Shlomi Fish
shlomif at iglu.org.il
Thu Oct 22 17:34:17 IST 2009
Hi Hetz!
See below for my response.
On Thursday 22 Oct 2009 12:59:57 Hetz Ben Hamo wrote:
> Hi,Since I'm looking for a Linux system job and the market conditions still
> sucks, I began thinking about other possibilities..
> One of them is to become a full time developer..
>
> As a system guy, I had my share of so-called "programming": I wrote lots of
> shell scripts, PHP, some perl etc. I wasn't a "script kiddie" and I didn't
> write scripts/programs day in day out, but rather as "solutions" to
> situations where I needed to "stitch" various technologies or apps.
>
> My question is simple: When does the "developer" experience starts ticking?
> (I'm not talking about any specific language here). Do the years of writing
> those small programs/scripts count as a "developer years"? or does the
> clock starts ticking when I'm a full time programmer?
>
Well, first of all read:
1. http://xoa.petdance.com/Stop_saying_%22script%22
2. http://www.perl.com/pub/a/2007/12/06/soto-11.html - "Programming is Hard,
Let's Go Scripting..." - by Larry Wall.
3. http://www.paulgraham.com/popular.html
4. http://www.paulgraham.com/power.html - succinctness is power.
Here's some stuff of my own. Back when I started being actively involved in
the Israeli and International free software community, I had some aspirations
of creating some top-down huge applications of my own with other people's
involvement. Among them were a CMS similar to FrontPage or the contemporary
high-cost Netscape offerings (which could analyse a site etc.), a Perl-based
RAD (Rapid Application Development) and Application Server, and I think there
was something else I forgot now. These aspirations did not amount to a lot.
It all changed after I worked on Freecell Solver. Originally what started as a
way to see if some ideas I got for seeing if some ideas I got on how to solve
Freecell worked (first written in Perl, then rewritten somewhat better in C -
a classic "Plan to throw one away"), I was so happy that it worked on some of
the boards and so placed a version of it on my site, and announced it on
Freshmeat.net.
The first version of Freecell Solver was horrible in my own standards today.
But it proved motivating enough for people to want to play with, comment on
the code, suggest or inspire ideas or ask me about it. While it has been a
niche project, there are so many Freecell enthusiasts (Start -> Programs ->
Applications -> Games -> Freecell, anyone?) that enough curious people found
it interesting and useful. So it became much better in time.
What I'm trying to say is that as ESR notes in
http://www.catb.org/~esr/writings/cathedral-bazaar/ , even the most active
open-source bazaar projects should start from something incredibly limited -
even a working proof-of-concept that will provide some ground to start from
and pique people's interests. And many successful projects were a scratch for
the developer's itch that eventually grew into something much larger.
Naturally, universities, research departments and companies doing FOSS or
deciding to release an existing application under FOSS can often tell some
developers "Work on this and that for many months, it's of no immediate use to
you, but we are going to make money from it or distribute it." Many open-
source projects started this way from a donation of code.
However, unless you get some money, you probably don't have the luxory to
create a top-down project like that. So my suggestion to you is to start
small: think of an idea for an open-source project, or preferably - join an
existing one; study the code; start writing automated tests, bug fixes,
patches, refactorings, etc.; don't get discouraged when people criticise your
patches, or tell you to fix trivial things there, before they commit, or even
if they are rude to you. That's part of life on the Internet.
There is no magical incantation to becoming a developer. It's a matter of
experience, intuition (learnt - not in-born), attitude and character. While
all able system administrators (including those on Windows) know scripting and
programming and are able programmers, they still may need a very different
mentality than that of a software developer (and vice versa).
There are some books I can recommend about transforming from a coder to a
developer:
1. http://oreilly.com/catalog/9780596001735 - Perl Best Practices (while
focusing on Perl 5, has some more major implications).
2. http://www.pragprog.com/the-pragmatic-programmer - "The Pragmatic
Programmer - from Journeyman To Master" - Personally, I found it a little too
stating the obvious and a book that could not live to my great expectations of
it, but it still may be a good book, and I found it accurate.
3. http://www.amazon.com/Coder-Developer-Strategies-Delivering-
Software/dp/078214327X (short URL - http://xrl.us/bft8nk ) - seems to be very
Windows/.NET - centric, and I did not read it but I'm mentioning it here for
completeness sake.
4. And naturally there is some stuff I wrote which you can find here:
http://www.shlomifish.org/philosophy/computers/
Not all of it is directly relevant to advancing from someone writing glue
scripts to someone who write "serious applications", but I still stand by most
of it.
5. Finally, also see http://www.joelonsoftware.com/ ,
http://www.paulgraham.com/ , Eric S. Raymond's (ESR) writings about software,
Extreme Programming, etc.
-----------------------------------------------------
Note that having a lot of free time (now that I am unemployed by choice), I am
willing to tutor someone (you or whomever) in becoming a more "serious"
developer. It doesn't mean I am willing to be your personal help-desk for
"what does this error mean?" or "How do I do X on Linux?" - that's what IRC
and mailing lists are for, really. You need to have a minimal amount of
independence.
However, I can provide general points for reference and further reading, code
review and some guidance in making design decisions, and could also help
someone who is willing to contribute to one of my own open-source projects or
those that I particularly care about.
If you are interested, please contact me by IM (and your first task is to find
it.). Other more experienced people may wish to also volunteer to tutor.
Regards,
Shlomi Fish
--
-----------------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
Interview with Ben Collins-Sussman - http://shlom.in/sussman
Chuck Norris read the entire English Wikipedia in 24 hours. Twice.
More information about the Linux-il
mailing list