[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] A question for programmers - Inspiration



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Joey Hess <joeyh@debian.org> writes:

> I don't think I've really anwered your question, though I hope I've
> provided some perspective. I'd really like to hear from people who
> have just gotten into programming and learning about computers in
> the past 2 to 4 years and have managed to find good sources of
> motivaton, and what those motivations were.

I probably fall into that category.  Although I'd messed around with
BASIC on 8-bit machines in the early nineties, I had never done
anything particularly useful or worthwhile.  Until I started using
GNU/Linux for serious in 1999, I had never been able to code anything
under DOS/Windows because I couldn't afford the development tools, and
switching to Debian allowed be to get into programming for the first
time (I initially chose Debian because of it's philosophy).

I already had a desire to learn to program, and I started with an
introductory `C' book from the local library.  Once I had mastered the
basics, I wrote a small tool `stcolortool' to clean the print heads on
my Epson printer (at the time, there were no other Free tools to do
this, and I wanted a DFSG-free GPLed tool).  I was the sole person on
the project, and I used it as a means to learn all about GNU and
systems programming, CVS etc.--it was very over-engineered, with
autoconf/automake/libtool, Info and manual pages, integration with
LPRng via lpc, and Debian packaging (there are probably still mails in
the -mentors archives).  This certainly "scratched my itch".

About a year later, I was contacted by the lead developer of the
Gimp-Print project, who had a similar tool that was generally better,
and was invited to join them.  I merged the (few) things I did better
into their tool, and soon found a lot of things I could improve (one
of the first was packaging it for Debian).  Since then I spend a good
deal of time coding for the project, and I now officially maintain the
gimp-print packages in Debian (I maintained them upstream for two
years prior to getting DAM approval).  This has still given me the
opportunity to learn new stuff, most recently libxml2 and libdl.

> I keep running into young teens letely who are clearly interested in
> computers, but are stuck in the pit of just using and tweaking
> prepackaged stuff and not learning or creating anything much, and I
> would like to find ways to help them make the step up.

I spent most of the nineties in that situation.  In my case, I think a
basic interest in programming (a /need/ even?) helped a lot, but even
more so was creating a useful tool that I needed.  Actually *creating*
something of your own is very empowering.  I think what really got me
addicted was putting it up for public download, and finding that quite
a lot of people from all over the world also found it useful.  Working
on a simple, small, project by myself gave me the knowledge/experience
to work on bigger projects with groups of people (there's certainly a
social side too, which I probably wouldn't have been too good at
initially).  My point is that while it's easy to say "add/fix xxx
feature in yyy program", this might well be out of the depth of a new
programmer both in terms of the skills they need to do it
(understanding the infrastructure and conventions of a project), and
the social skills they need to cooperate with the maintainers.

I'm (apparently) a Biologist, and all my CS knowledge is self-taught
from books/USENET/mailing lists.  I've found I've become a better
programmer by learning several languages (C, C++, Perl, m4, SQL, sh)
which gives you more insight into how to approach a problem by being
aware of the different ways you could solve it.  However, while I've
spent most of my time coding rather than reading, knowing about
algorithms, data structures and compiler theory etc. are still things
I've needed to learn, and will continue to learn as I find time--I
don't think you'll be a great programmer without them.  In the last
year I've worked my way through quite a few books, and I think I'm the
better for it.  For example, learning C++ has given me more insight
into ISO C than any C book ever did.  I now tend to write "OO C" which
has improved the design and clarity of my code no end.  Before, I
tried using GTK+ and didn't "get" it at all.  Afterwards, I tried
learning GTK+, and all made perfect sense!  I would have liked to
write GTK+ programs from the start, but it's only after three years of
doing non-GTK+/non-graphical stuff that I have begun to appreciate the
beauty of the design of GTK/GObject, and be in a position to program
in GTK+ /well/ rather than muddling my way through with it.


Just my 0.02╒!


Regards,
Roger

- -- 
Roger Leigh

                Printing on GNU/Linux?  http://gimp-print.sourceforge.net/
                GPG Public Key: 0x25BFB848 available on public keyservers
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.6 <http://mailcrypt.sourceforge.net/>

iEYEARECAAYFAj5/j9YACgkQVcFcaSW/uEhtAwCeLmlbBiiCIenuS00l2ejD/INa
qJkAn3nUC0YiI1yWagnC/9Ay5snUmpLL
=zO4N
-----END PGP SIGNATURE-----



Reply to: