Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Sorry answering so late, I just returned from extended weekend vacation... :(

I recommend learning C as one (important) step in understanding your computer - and C bring you so close to hardware it's scary sometimes... ;)
I learned C after knowing couple of assembler languages, Algol and PL/1, and after that one can get feeling how C builds layer between assembler and traditional high-level languages as perl.

If you are inclined to learn another language allowing you to do scary trick and gain complete control of the computer, try FORTH. It allows you to do things as no other languages - for the price. It was said only 10% of programmers are able to program reliably in FORTH, but they all can be very good and productive. The way FORTH is build it might run on bare processor without OS (FORTH will be the OS). It has some simple concepts and some extremely powerfull techniques to define new concepts. I newer seen another language allowing to define new control stuctures so easily. Not data structures, control structures.
My professors of computer science taught me that programming means "extending language by adding concepts to better solve tasks from problem domain" -- adding new data stuctures and operators/procedures to process them.
FORTH is ultimate example of this approach. For some reason it is not very popular - I can understand it is not easy on beginners, but IMO it is very empovering excercise on your understanding.
I've seen implementation of complete Tiny-Pascal part of Pascal language written in FORTH on 11 pages not too dense written - one page was interpreter on P-code and one was CDL-like extension to FORTH, basically YACC for FORTH.

I recommend to learn C assuming it will be just one of other languages which concepts you are willing learn. If you have intention to learn only one more language (after perl you already know), I will have hard time to decide between java (with all the objects and hype and usefullness for your career etc) and maybe VisualBasic. Maybe, if you are interested in Windows platform, VisualBasic might be a good choice. It is farther away from perl than C, and will give you different perspective. Also, it is common script language for all MS Office products, and believe me, you can do a lot of smart things in VisualBasic for MS Word, or for Outlook, if you'll learn MS Office object model.

"The C Programming Language" by Brian Kernighan and Dennis Ritchie. Countless people have said over the years that it's a terrible book for beginners...

I believe it is misunderstanding. This book was never intended to be for beginners - I believe it says so in preface. Just the opposite: is is book for programmers experienced in other languages to get quick understanding of common features other languages have common with C, and how they might differ. And book does excellent job solving this problem -- I alway remember how much more enjoyable experience (for a programmer knowing half a dozen different languages) is to learn new language from a book like Kernighan/Ritchie's book. The only exception so far was Camel book -- and also because it it not intended as first programming book for complete novice with no experience of programming whatsoever.
IMO, because you already know perl, you'll enjoy Kernighan/Ritchie's book better than another "C for complete beginner" book. Also, "Big Blue C" book is a classic, as a Camel book. Concept of first program as print "Hello, world!"; comes from here.

pmas
To make errors is human. But to make million errors per second, you need a computer.


In reply to Re2: How does learning C benefit a programmer? by pmas
in thread How does learning C benefit a programmer? by nysus

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2024-04-19 02:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found