Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re: What book would be valuable to someone self-taught?

by Marshall (Prior)
on Oct 26, 2011 at 22:29 UTC ( #934012=note: print w/ replies, xml ) Need Help??

in reply to What book would be valuable to someone self-taught?

I personally don't think that Perl is a good first language because it is huge with a lot of functions and for many things there can be multiple syntax's that work (I think for a beginner, this "many ways to do something" sometimes get in the way) - Perl borrows from many languages.

The traditional way to start would be with a much "smaller" language like C. Although nowadays many schools favor learning an OO (object oriented) language like Java first.

The fundamental issue is how to "think algorithmically" - how to break a complex problem down into steps that can be implemented in terms that the computer can understand. And then how to code each step. The "interfaces" between each section (step) of the program are very important.

Programming is an art that is based upon science. The science part concerns things like how to sort things based upon the minimum number of comparisons. There are well known data structures (how to organize data) that allow us to access data efficiently.

There are many folks on this forum who have spent most of their lives learning about software and how to write it.

My question for you would be: what level of proficiency do you want to achieve? What kinds of programs do you want to write? What would they do?

I would recommend that you register as a user (its free) and then you can send me or others messages amongst other benefits.

Anyway, tell use what you want to use software to achieve? In terms of functionality that would be useful to you.

You can get a lot of help here as long as the forum believes that you are trying and we aren't doing your class homework for you.

As far as short books, I would recommend K&R (Kernighan and Ritchie) Programming in C. The main thing to understand are basic loop structures and the idea of a "data type", integer vs a floating point. This is a "classic". But I will admit that perhaps it is not the best place for you to start depending upon what you want to accomplish.

I would recommend that you give us some guidance as to what you want to accomplish.

Comment on Re: What book would be valuable to someone self-taught?
Re^2: What book would be valuable to someone self-taught?
by mrstlee (Beadle) on Oct 27, 2011 at 07:23 UTC
    Can't agree with you there. C is an awful language for a beginner. All that pointer management. 20-odd% of a C developers time (according to research quoted by Robert Glass) is spent debugging memory-address errors. Great practice for debugging the linux kernel. Not so great for web page scraping.
      I did not say that C is the "right" place for all beginners to start. I said: I will admit that [C] perhaps it is not the best place for you to start depending upon what you want to accomplish.

      This has a lot to do with how proficient you want to become and what kind of problems that you want to solve.

      Basic loop structures, data types, etc are very important. These are the basics. You won't write Perl or any programming language very well unless you understand these fundamentals. This is true in BASIC, JAVA, FORTRAN, C, Perl.

        Ok. Sorry, I didn't mean to imply you advocated C as the best choice for a beginner.
        C apprenticeship involves plenty of determination, linker errors, seg faults, and printf. Investigation of the more creative aspects doesn't come until a fair bit later. One thing I would say is that programming in C really made me appreciate perl!

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://934012]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2014-07-14 01:07 GMT
Find Nodes?
    Voting Booth?

    When choosing user names for websites, I prefer to use:

    Results (253 votes), past polls