OT: Where does it count?

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