[buug] I've been getting 2 of Everything, why?

Mark Handley mjh at icir.org
Tue Aug 13 12:00:50 PDT 2002


>But seriously, as far as learning programming languages goes, it's a
>wide open field. At this point, you probably don't know what you want to
>be doing with programming languages, you just find them cool. I'd say
>learn C (or learn C++, but ignore all the fru-fru crap, like templates
>and shit like that). Learn C because it'll provide you a good foundation
>on which to build on.

I guess it depends how much time you've got, and what you want to do.

 - If you want to learn how to think about problems, then I can't
   recommend strongly enough learning a functional language.  Haskell
   (www.haskell.org) might be a decent choice, but there are plenty of
   others to choose from.  This isn't likely to be a serious practical
   skill you can sell, but what you learn about how to think will stay
   with you when you're hacking C later.

 - You should learn an Object Oriented language.  C++ or Java are both
   practical languages to learn, although C++ is pretty crufty in many
   ways.  OO is also a way of thinking about problems, although
   perhaps more tied to syntax than functional language thinking is.

 - You should learn a scripting language.  Personally I prefer Python
   over Perl, but this is a religious thing.  You need decent
   scripting skills for so many things.

I've lost track of the number of languages I've programmed in over the
years - probably around 30 or so.  The vast majority of my work has
been in C and C++ - I've written about 50K lines of C++ in the last
year.  But in an ideal world, I definitely wouldn't start with C
(you'll learn too many bad habits), and C++ is too crufty to make a
good starting point (the learning curve is pretty steep), although
it's really good for developing large systems once you've got more
experience.  You'll end up programming in C at some stage anyway, but
try to avoid starting there if you have a choice - you'll spend all
your time thinking about why it core-dumped, rather than about the
higher level concepts of the problem you were trying to solve.

Cheers,
	Mark




More information about the buug mailing list