Advice on programming advice

Jul 05, 2006 16:50

So, I've been programming for a very long time, 19 years or so. As you might expect, people ask me for advice on learning to program ( Read more... )

questions, programming

Leave a comment

Comments 19

feignedapathy July 6 2006, 00:03:35 UTC
The lucky thing now is that we have computers fast enough that many different languages work at a pretty decent clip, depending on what you're doing ( ... )

Reply

sonofzeal July 6 2006, 00:38:51 UTC
I agree with your thoughts on OO langauges. I found C++ to be far more intuitive than C, at least in the abstract. Of course, the language and the type of programming are related. Currently, I'm in the game industry, so if that's where a person wanted to be, C and C++ are the way to go.

Reply

(The comment has been removed)

feignedapathy July 6 2006, 01:54:22 UTC
That's actually quite a nice thing about Java, is there is very little overhead to begin with. Creating small, usefull applications can be done without external modules or importing new routines, and one can then learn how to inherit from objects rather than going into procedural hell. ;)

Reply


hollyking July 6 2006, 00:28:41 UTC
I would recommend starting with Scheme and point them to PLT Scheme to get a free compiler/dev environment. With How to Design Programs and

Reply

hollyking July 6 2006, 00:32:40 UTC
dammit! I missed a closing tag so my long and thought out plan was eaten by the lack of ability to edit a comment.

For those playing at home the rest was, in short:

...Structure and Interpretation of Computer Programs available for free online they could learn the fundamentals of programming without having to worry about UI details. PLT Scheme offers a free compiler/environment that works well with HtDP.

Reply


craigp July 6 2006, 00:46:11 UTC
in the general case i'd say python, even tho i hate its whitespace-structured syntax (i *like* closing braces; wtf?). i also like ruby quite a bit, but i think python's implementation is cleaner, certainly insofar as embedding is concerned (there's also much better support for C++ interop; eg: boost-python). much of ruby's problems stem from its perl-ish heritage (and the use of globals).

but, of course, the question to ask them is what they want to program and why. C++ and python cover quite a bit (and, contrary to what others may advocate, i'd suggest learning C before C++).

btw, fortran isn't obsolete.

Reply

feignedapathy July 6 2006, 00:48:17 UTC
I would say that if someone was learning how to program, one might as well skip the python process and go right to C. :(

And yes, C should go before C++. What one learns in C handily moves to C++ without having to deal with C++'s odd way of dealing with subclassing and interfaces compared to other OO languages. ;)

Reply

craigp July 6 2006, 01:14:25 UTC
it depends on what they want to do; unless they want to become a professional (or otherwise be very serious about it), there may not be that much reason to learn C.

Reply

zanfur July 6 2006, 02:41:50 UTC
It's obsolete enough. I agree with learning C before C++ -- I'd actually recommend learning C before any C-derived language, including Java. Java is one of those languages you don't ever "learn" so much as "use".

I was actually poking around at Python, looking at the idea of adding LDAP auth to Mailman. The documentation I found was terrible, which is one of the reasons I typically recommend Ruby over Python these days. Do you know of a good tutorial for Python?

Reply


kushali July 6 2006, 02:14:30 UTC
I agree that it is a hard question. Sometimes you can narrow in on an answer by looking at the problem domain they're working in or their learning style. If you want them to succeed it helps to provide them with a good tool ( ... )

Reply


naruvonwilkins July 6 2006, 04:23:35 UTC
Tell them not to care about the hardware they're working on, but only the APIs they actually need. Try to narrow their field of vision or they'll become overwhelmed. With Windows, especially, it's impossible to get anything done if you're trying to learn at a high level at the same time. Learn at high level out of a book; program simple examples.

Reply


Leave a comment

Up