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

Re: Book questions



On 04/09/2015 05:15 AM, Petter Adsen wrote:
For a long time I've been meaning to learn more about regular
expressions, and I found the following books: "Mastering Regular
Expressions" and "Sed & awk", both from O'Reilly. Does anyone have any
experience with these, and an opinion as to which I should start with?
I also found the K&R book, "The UNIX Programming Environment" by
Kernighan and Pike, and "UNIX Systems Programming for SVR4" from
O'Reilly. Since I want to learn C I know I need to read the first of
these, but I was wondering how the other two are, if anyone here has
read them.
Also, are there other books I might want to supplement these with? I
found two Linux-specific books as well, but they are really old. One of
them comes with a CD of Slackware from 1996. :)

I have "Mastering Regular Expressions" 1 e., which was the definitive text on the subject. It is good for explaining the differences between the various regular expression implementations. From the command line, I use grep for simple stuff and egrep for above simple stuff. For the benefits of a script/ program, I use Perl.


I refer to "Awk and Sed" when I need to decipher something written in those languages, otherwise I use Perl for those kinds of tasks.


I started with C at the same time K&R 2 e. came out. It was the definitive text at the time. Typing in the examples and doing the chapter exercises was very helpful.


I read the "The UNIX Programming Environment" back when. Glancing at the table of contents, there's a lot more than C programming in there. Given your C programming focus, I don't know how much it would help you.


On 04/09/2015 06:28 AM, Petter Adsen wrote:
> ... the basics are what I'm interested in here. Once I get a good grip
> on those I can look into more modern and Linux-specific topics. I'm
> most interested in learning how to write portable code anyways, so
> these should be a good start.

Writing portable C programs is a non-trivial undertaking. For Unix-like platforms, GNU autoconf is probably the most sophisticated solution to this thorny problem:

    https://www.gnu.org/software/autoconf/


On 04/09/2015 06:38 AM, Petter Adsen wrote:
> I'm mostly interested in getting a good foundation in C programming,

Understand that there are niches in computer programming, and the quest for a better mousetrap in a given niche is a driving force in language design. B was intended to be an improvement on A (assembler) for systems programming (kernel, device drivers, core libraries and utilities, etc.). B didn't turn out like the authors wanted, so they wrote C and the rest is history. C still dominates in its core niche, and there are many good and useful programs that were originally written in C and remain C to this day. Learning C is a useful skill, if only as a stepping-stone.


While C has been called a "high level language" and can be, and has been, used for writing almost anything, the mountains have multiplied and grown still higher, and other languages, frameworks, systems, etc., are the pinnacle of their respective niche.


On 04/09/2015 06:28 AM, Petter Adsen wrote:
> I'm most interested in learning how to write portable code

Today when somebody says "portable code", most programmers respond "Java". While I view Java as a step backwards, "a language that runs on the JVM" is something that I find very appealing.


On 04/09/2015 06:28 AM, Petter Adsen wrote:
> I actually also found "Learning Perl", and I think I have the Cookbook
> if I dig a little deeper,

All you need is "Programming Perl" and you'll have the core Perl books.


On 04/09/2015 05:15 AM, Petter Adsen wrote:
> are there other books I might want to supplement these with?

SICP is probably the most powerful CS book I have ever read:

    http://mitpress.mit.edu/sicp/full-text/book/book.html


HOP expresses these ideas in Perl:

    http://hop.perl.plover.com/


AMOP is on my reading list:

    http://mitpress.mit.edu/books/art-metaobject-protocol


I need to find a good book on multi-core and networked parallel programming.


David


Reply to: