-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Joey Hess <[EMAIL PROTECTED]> 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----- -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]