With so many C programming textbooks to choose from, it can be hard to find one that's engaging and readable. The first edition of C Programming: A Modern Approach was a hit with instructors and students alike because of its clarity and comprehensiveness as well as its trademark Q&A sections. The book's spiral approach made the first edition accessible to a broad range of readers, from beginners to more advanced students. The first edition was used at over 225 colleges, making it one of the leading C textbooks of the last ten years. It was also popular among software developers, engineers, and other professionals who use C on the job.
What Readers Are Saying
Well, as the title says, I am wondering if anyone has ever used this text. I have gone thru the first five chapters and so far it doesn't seem to bad. Of course, this is my only reference as this is my first foray into programming and thought to start with C. My goal is to spend the rest of the year on C and then move on and learn Java, using the whole of 2015 to learn Java and build a portfolio and hopefully be gainfully employed in Zappos as a Java developer. But going back to the original question, just wanted to get the group's opinion on the book. Thanks for reading.
Covers the C language from the basics to advanced programming, for students and experienced programmers. Emphasizes a software engineering approach in sections on basic features of C; the standard C library; and advanced features such as pointers, declarations, and programming design. Features real-life examples, C code, exercises, and Q&A sections. Includes reference appendices. Annotation c. Book News, Inc., Portland, OR (booknews.com)
I fully agree with your opinion on learning C language as first programming language. I started first with Pascal and then got to C language (well, my very first language was actually BASIC, but it was when I was 9 years old).
I mostly agree with this. OP does have some opinionated arguments. But I feel as though C is a programming fundamental language like Python. At some point no matter what kind of developer you are you will have to interact with some C/C++ level issues. Another thing that is good to learn from C is the top down approach, because in JavaScript there is hoisting so the top down approach isn't always enforced regardless of the fact that certain things don't hoist.
Hmm instead Rust? Learn a low-level language which is very modern and also offers many abstractions you would expect from a modern language. At the same time, performant, memorysafe and a great active community.
The problem with C as a first language is that it's difficult to build something useful early on. You're left doing low-level exercises, rather than creating an application that can help your folks or impress your mates. I imagine this can be off-putting. Beginners might be left wondering: "Is this what programming is all about?"
In my University, at CS, they teach first functional with Haskell, one semester, then 3 semesters to understand fully C. I agree with you, but the only thing is that it makes it harder for you to learn functional programming, because you'll get used to imperative. Knowing that, C is a really good lang to start with CS.
The C language, despite the best journalistic assassins, trained monkeys on bikes, an alleged lack of fashion taste, is still alive and rocking in the building. C is, beyond dispute, recognized as a resource efficient and thus valid language to use, especially for highly effective operating systems such as GNU/Linux and for device driver creation. A good starting point for learning is K N Kings popular book "C Programming: A modern approach", published by Norton, which has just reached its second edition and hence worthy of a new review.
This corpus builds up, layer-by-layer, the concepts required to master the C programming language. Each chapter is structured with its contents first, some questions and answers (read as FAQ) and finally reinforcement exercises. If read in strict sequence, this book is an excellent investment for a student on a C programming course.
Starting from the very basics such as the history of the language, how to compile programs and "hello world", the book progresses from the general (I.O, expressions, loops, types etc.) and then tackles advanced issues such as pointers and arrays, low-level programming and program design.
I particularly like the structured learning approach. In particular, I enjoyed reading chapter 14 on preprocessors and chapter 15 on how best to write large programs. Many educational books miss these rather useful features.
This book is about C and its modern standards, C89 and C99. The author briefly mentions the compiler but otherwise stays focused on the main subject. The book does not discuss open source IDEs such as Eclipse. Still, in general, the book is handy for programmers who wish to write free software in C.
The book is excellent for learning the C language and it stays focused on that. This approach means that little mention is made of a programming IDE. Therefore, if you wish to know how to set up a development environment with GCC, make, subversion or the like then you are out of luck as the author has focused entirely on the language itself to the exclusion of any supporting environments.Book ----------------------Title C Programming. A Modern Approach: second edition. Author K. N. King Publisher NORTON ISBN 9780393979503 Year 2008 Pages 832 CD included No FS Oriented 8 Overall score 9
The authors provide a GitHub repository with implementations of various exercises and algorithms from the book in different programming languages.[7][8] Programs in the book are presented in pseudo code with implementations in Java, Python, Lisp, JavaScript and Scala available online.[8]
For the last thirty years, my specialty has been programming languages. I have written three books about languages: C Programming: A Modern Approach, Java Programming: From the Beginning, and Modula-2: A Complete Guide. The first edition of C Programming: A Modern Approach, published in 1996, went through 17 printings before being replaced by the second edition in 2008. C Programming: A Modern Approach is widely used by universities in North America and abroad and has been translated into Chinese, Italian, and Polish.
I also have a strong interest in computer science education. My 1997 paper, "The Case for Java as a First Language," was one of the first to argue that Java should become the primary language for teaching introductory programming. In 2008, I obtained funding from the Institute for Personal Robots in Education to introduce personal robots into CSc 2010 (Introduction to Computer Science).
This nontraditional text arose from the conviction that science and engineering students would benefit from an introductory course which covers all of physics from a modern point of view. The text takes the perspective of a modern particle physicist and is based more on wave dynamics and relativity than on classical mechanics. The subject matter is split into two volumes of twelve chapters each.
He also discusses how engineering leaders can upskill their teams without hiring additional staff, why modern approaches to learning often fall short (think YouTube), and why there is no evidence to support the idea that personal learning styles, such as visual or kinesthetic, impact learning outcomes.
I think that is generally emblematic of how we should approach all skill learning. We need the knowledge, but we also need to put it into practice and do the thing, and before we can expect to have the skill. And so this is why to come back to your question, why it's difficult to learn something new is because often we conflate those things together and we think I've read the book, I should be able to do the thing.
But at least mentally, I have this staging thought where I feel like I need to do something one way first in order to feel as confident as I want. . But to your point earlier, it sounds like that's more about my personal viewpoint on what's gonna make me feel good about what, how I'm approaching something versus necessarily what's gonna be most effective.
Conor Bronsdon: That definitely resonates with me because that coaching piece of having a media feedback, getting to put the skill in a practice and then go, oh, here's how I tweak it. That's certainly been my best experiences with learning. My question is, does this apply equally across all disciplines? for example, would a manager who's trying to learn new communication skills, forget those skills, the same rate as an engineer, might forget a new programming language they don't practice?
Conor Bronsdon: Yeah, I think I agree. I like the example I'm thinking of maybe would be something like selling or fundraising where it's something that maybe you'd only do every couple years if you're a startup leader, or maybe you don't do after you stop being a founder and you go work in another role, but coming back to it, you'd still retain a lot of that skill, but, okay, how do I approach this?
Do you see that as the right approach? It's not a cost effective approach, but again, in a world where you don't have great effective learning, It probably is the right approach. It's probably the best way to do that. Otherwise, and this was one of the impetus for me starting Skill Whale, otherwise the way that you solve that problem is if you're not gonna hire, you have to take it on.
dca57bae1f