Best c programming books according to redditors

We found 43 Reddit comments discussing the best c programming books. We ranked the 15 resulting products by number of redditors who mentioned them. Here are the top 20.

Next page

Top Reddit comments about C Programming Language:

u/JohnScott623 · 58 pointsr/raspberry_pi

If you want to get her a Raspberry Pi, you will need a couple of things. (I will assume that you intend to get her a Raspberry Pi 3 Model B, more commonly referred to as just the Raspberry Pi 3.)

For one, you'll almost certainly want a mouse, and a keyboard is a must-have. You need a microSD card (at least 8GB recommended) for her to keep files on, though you may want to get her a larger one if she will benefit from having more space. (You will also want to get an adapter like this if your microSD card doesn't come with one to make the microSD card easier to connect to some computers.)

Finally, you will need to find a power source of some sort. You will probably want one that connects with micro USB, though other adapters can work (though they're a little more complicated, so I won't get into that). A good adapter should be about five volts (nearly all micro USB adapters are about five volts, so this shouldn't be a problem), but it should also be at least 1.5A (1500mA) or 2A (2000mA) to be usable. More is better. (For more detailed information regarding power supplies, see the FAQ.)

Some Raspberry Pi starter guides state that you should buy a USB Wi-Fi adapter as well, but this is usually not needed to maintain a Wi-Fi connection with the Raspberry Pi 3, as it comes with a built-in Wi-Fi adapter (and a Bluetooth adapter, too).

If she wants to get into coding or programming, she should learn a little bit about various programming languages and decide which one she wants to learn first. The steps that must be taken to learn programming vary greatly upon the language she chooses. Below, I have listed some resources for the most popular ones.

HTML, CSS, and/or JavaScript: W3Schools, Codecademy, Khan Academy

C and/or C++: Tutorials Point, Head First C

Edit: I made it more clear that one amp power supplies are minimalist and their use should be discouraged.

u/JonKalb · 28 pointsr/cpp

Modern C++ (C++11 or later) books are not nearly as plentiful as those for Classic C++, but there are a few notables.

Bjarne's college text may be what you are looking for:

Programming: Principles and Practice Using C++ https://www.amazon.com/Programming-Principles-Practice-Using-2nd/dp/0321992784/ref=pd_sim_14_2/144-7765085-0122037

It is aimed at engineers, which makes it less general, but might be good for you.

Of course his general intro is also updated to C++11.

The C++ Programming Language https://www.amazon.com/C-Programming-Language-4th/dp/0321563840/ref=pd_sim_14_2/144-7765085-0122037

This is aimed at experienced systems programmers, so it may be a bit heavy for students, which makes the Primer (that you mentioned attractive).

C++ Primer https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113/ref=pd_bxgy_14_img_2/144-7765085-0122037

Be certain to get the 5th edition.

Of Scott's books only the latest is Modern.

Effective Modern C++ https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996/ref=pd_sim_14_2/144-7765085-0122037?_encoding=UTF8

This is less an introduction for students than for Journeymen (Journeypeople?) programmers.

For just plain good programming style consider Ivan's book.

Functional Programming in C++ https://www.amazon.com/gp/product/1617293814

Don't be put off by "Functional." This style of programming will make your students excellent programmers.

There are some modern books of high quality that are niche.

The ultimate guide to templates:
C++ Templates https://www.amazon.com/C-Templates-Complete-Guide-2nd/dp/0321714121/ref=pd_sim_14_1/144-7765085-0122037

The ultimate guide to concurrency:
C++ Concurrency in Action https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/ref=pd_sim_14_1/144-7765085-0122037

Some library options:

Despite its name, this is mostly reference. A very good reference.
The C++ Standard Library: A Tutorial and Reference (2nd Edition) https://www.amazon.com/Standard-Library-Tutorial-Reference-2nd/dp/0321623215/ref=pd_sim_14_2/144-7765085-0122037

Arthur's book covers C++17, which makes it one of the most modern on this list:
Mastering the C++17 STL: Make full use of the standard library components in C++17 https://www.amazon.com/Mastering-17-STL-standard-components-ebook/dp/B076CQ1RFF/ref=sr_1_fkmrnull_1

To what extent are you teaching C++ and to what extent are you teaching programing?

Good luck and have fun!

u/dstrott · 6 pointsr/Cplusplus

ubuntu, cmake, gcc, learn about references, pointers and const correctness, these books: my favorite data structures book, and stupid simple tutorial book

edit: also, I've recently started using Visual Studio Code as an editor. Its pleasant to look at, is multi platform and gets rid of the normal nastiness that you'd normally have to deal with from real visual studio.

u/bithush · 5 pointsr/C_Programming

Head First C is very good. It not only covers C but also valgrind, make, threads, sockets and networking, etc. It is a great introduction to C and commonly used tools. I was surprised at how much they covered as normally a beginners book in a lower level language do not cover the more complicated things such as networking and threads.

u/[deleted] · 5 pointsr/learnprogramming

I found myself in a similar circumstance years ago.

I would recommend learning C first. Programming in C is a very friendly intro.

After that I'd recommend Advanced C and Data Structures in C.

These 3 books will teach you the basics of programming, recursion, sorting, stacks, queues, graphs, hashing, etc...

After you can do that in C, everything else will be much easier.

I know a lot of people recommend Java or other OOP languages but in my opinion it's best to start out in C and then transition to an OOP language.

I recommend installing ubuntu and using vi as a text editor. Compile using gcc.

If you decide to go with another language The New Boston has lots of video tutorials in various languages. Personally I don't care too much for his tutorials, although I know some people do like them, but one thing that is helpful is that the first few videos in any particular language series shows you how to install a compiler or IDE and get it up and running. If you're not too computer savvy these can be helpful.

If you go the python route I recommend these free sources:

Learn Python the Hardway

Think Python (this book is used with MIT's intro to CS course)

MIT's intro CS course

Think Stats (use python to do statistics)

Tons of other sources:

http://freevideolectures.com/

http://academicearth.org/

(note: at academic earth you can find programming courses from Stanford University. Their intro course is in Java. So if you want to learn Java that could be a good way to go.)

u/phao · 4 pointsr/C_Programming

Right. But don't be so quick to judge. =)

The issue is that there isn't anything much better out there. A lot of the issues with teaching C is C itself.

C it a very simple language, maybe too simple. A lot of the safety in C is difficult because C doesn't give you anything to get that right. The solution to this is being very good at it, know what you're doing and avoid the problems. Modularity barely is possible in C (it is only through simple means). Dynamicity is a pain. All of these things that other languages simply support out of the box, you have to go through major hops in C so you get them.

From what I understand, most uses of C today only exist when nothing else is applicable. That is, when they really need the sort of benefits you get from using C, because the language itself isn't that great.

You could write whole books on getting modularity right in C, on getting dynamicity right in C, on getting security right in C, and so forth. And in fact there are:

u/tracernz · 3 pointsr/programming

If you ever thought Amazon or Goodreads reviews are worth anything, check out the reviews of OP's book, and Traister's book:

C# In Depth on Goodreads
C# In Depth on Amazon

Mastering C Pointers on Goodreads
Mastering C Pointers on Amazon

u/LegalizeAdulthood · 3 pointsr/cpp

There's also the book "Functional Programming in C++" by Ivan Cukic that's coming out soon. See his Functional Programming: Data talk from Meeting C++ 2017 for a description of how to do some immutable data structures.

u/redditthinks · 3 pointsr/C_Programming

I used Head First C which has a friendly style. Just yesterday I found Beginning C which looks pretty good.

u/Herald_MJ · 3 pointsr/matt

Some people go with THREE. Monsters.

u/mkhry · 2 pointsr/compgeom

I'll take a shot at this.

  • Here is a good course on the subject from CMU. The lecture notes for all the topics are available and are well written.

  • The Computational Geometry Pages attempt to be a comprehensive directory of all computational geometry resources on the net. It's maintained by a professor at UIUC and does a pretty good job of accomplishing its goal.

  • The Dutch Book is the book for computational geometry. I am also a fan of Computational Geometry in C because it provides a lot of code examples and that really helps me understand better.

    This is definitely enough to get you started. Best of luck!
u/cbarox · 2 pointsr/gamedev

For just starting out, my favourite is C++ Programming in Easy Steps. It explains everything clearly using plain English and covers the basics of the language.

u/computerdew · 2 pointsr/learnprogramming

I know this might not be as helpful as the other posts here, but I suggest learning Python first. Python is quite easy and will get you started with programming. After learning Python, head into C. C is a great language, and it is used for many things. The Linux kernel was written in C, the Apache Web Server was also too. After C, I suggest learning C++. Hope that helps on where to start.

Here is a great place to learn Python

EDIT: After doing the courses on CodeAcademy, you can purchase a great book on C. Written by the guy who made it (Dennis Ritchie)

u/chaosxem · 2 pointsr/cpp_questions

K&R it's not latest C book but it gives an acceptable tour of C enough to get the basics cover.

And that's why I recommended the ISO C Standard along with K&R: by this way you have an introduction plus the ultimate C reference... everything covered.

Secure coding should be left to other books such as this one.

u/nickdesaulniers · 2 pointsr/programming

I've read almost all the books on C. I think you can get by with just:

  1. Head First C
  2. Expert C Programming: Deep C Secrets
u/alleystraycoder · 2 pointsr/C_Programming

Well, I'm a little afraid to recommend this book to you since it doesn't hold your hand if you're a first time programmer. But since you have a little Python knowledge in your head, try taking a look at a book called "Head First C." If you follow along with the book, do every exercise, and complete the labs, I think you'll come out ready to tackle the world like a 240-pounds football linebacker.

u/arcsecond · 2 pointsr/raspberry_pi

So, (IMO) the raspberry pi doesn't specifically bring anything to learning C++ that I think you couldn't get on any other computer. And I'm assuming you have a computer because you're posting here (could be a phone but i don't know).

If you've got windows I tend towards Visual Studio and on a Mac I'd go with Xcode. When I'm in Linux I tend to just go straight to gcc and make (this won't make sense to you yet)

Books: These are the ones that were used in my C++ focused classes:

Big C++
ADTs, Data Structures and Problem Solving in C++

Hope this helps.

u/CharityBot_ · 1 pointr/test

Help charities by using this Amazon link:

Link 1: Supports The Electronic Frontier Foundation


=====
This comment was posted by CharityBot, a Reddit bot that helps raise money for charity. Learn how CharityBot works

u/steelreal · 1 pointr/learnprogramming

I'm a senior computer engineering student, and if I was going to relearn how to program, I'd pick this. It's written by the actual creator of C and the paperback is only $15.

C has a wrongly given reputation for being archaic and complex. But really it is programming distilled into its most simple form. Also, much of C's syntax is common across other major languages like C++, C#, and Java.

u/DonPhelippe · 1 pointr/greece

Ερμ όχι, που τέτοια τύχη. Απλώς έχοντας βλακεία με το σπορ, έκατσα και έμαθα Pascal μόνος μου give or take και μετά το γύρισα στη C μαζί με ένα φιλαράκι λίγο καιρό μετά που βγήκε η Βίβλος. Αλλά αν δεν είχα περάσει από Pascal στα formative years μου (12-15) δεν θα μπορούσα να εκτιμήσω την ελευθερία και τη δύναμη της C και δεν ήμουν σίγουρος αν θα άντεχα να διαβάσω WinAPI.

(Προφανώς τις γνώσεις μου για προγραμματισμό τις απέκτησα πριν πάω στο (Αγγλικό) πανεπιστήμιο όπου από ένα σημείο και μετά απλώς δεν πατούσα στα μαθήματα προγραμματισμού γιατί ήθελα να βρίσω κοσμάκη για τις απίστευτες παπάτζες που έλεγαν (χαρακτηριστικό παράδειγμα ότι μας δίδασκαν Borland containers & collections, με τη Standard Template Library της C++ να ετοιμάζεται να γίνει ANSI και ότι μας έδειχναν αυτοί οι κόπανοι θα γινόταν obsolete μέσα σε κάτι μήνες... γίδια).

Τα γράφω αυτά όχι για τίποτε άλλο, αλλά μας διαβάζουν και νεότεροι εδώ και ίσως θα είχε ένα νόημα να παρατήσουν τη DotAρα και τη LoLάρα και να πιάσουν καμιά Delphi και κανά VS Community Edition / JDK και να δούνε πως δουλεύει το πράμα.

u/YesSoupForYou · 1 pointr/cpp

If you're able to get a book, there's a book that teaches very well the basics of C++, from there you can build on it by looking at learncpp.com and www.cpluscplus.com
The book is called C++ programming in easy steps by Mike McGrath ( amazon link)

u/AnTaRes27_ · 1 pointr/utdallas

the books i have:

C++ 8th edition by Tony Gaddis amazon link

C 8th edition by Paul & Harvey Deitel amazon link

Schaum's Outline: Advanced Mathematics for Engineers and Scientists amazon link


the books i want:

Shigley's Mechanical Engineering Design (in SI units); ISBN 978-9339221638

Machinery's Handbook; ISBN 978-0831130916

Machine Shop Trade Secrets by James Harvey; ISBN 978-0831132279 or 978-0831134778 (prefer second edition)

*CNC Trade Secrets by James Harvey; ISBN 978-0831135027

you can PM me your offer and we'll negotiate from there :) note it doesnt really need to be a 1:1 trade. if you have other things in mind PM me anyway i might be interested

i'll delete the post when it's all out. thanks!

u/rakhithamk · 1 pointr/arduino

I used following book to learn C, Pretty good book but 1000+ pages, mostly because they take a lot of time to explain things and give lot of exercises. Some you can skip.

https://www.amazon.com/How-Program-8th-Paul-Deitel/dp/0133976890

u/ischickenafruit · 1 pointr/C_Programming

C How to Program (Deitel & Deitel) - Great book that introduces C programming as well as concepts of programming, and a bit about C++.

One comment I would make is that you're trying to do too many things. Pick one and work at it until you get to a point of feeling "fluent". You'll know you're fluent when you feel that you can express anything that you like in the language.

u/IntOverflowException · 1 pointr/learnprogramming

That's completely fine.

Here is an excellent book on learning C. I really enjoyed this book, it might be up your alley.

u/krosenil · 1 pointr/C_Programming

You can start with Head First C. I think, this book is good for starting.

u/PooBiscuits · 1 pointr/EngineeringStudents

Let me recommend a very good book to use: https://www.amazon.com/Head-First-C-Brain-Friendly-Guide/dp/1449399916

This will teach you the basics of C, and just how computers work in general. I found it immensely useful when I was taking a class in C last summer. Any book in the Head First series is fantastic.

u/squatch04 · 1 pointr/AskProgramming

Here's part of a passage that really explains the differences well. I hope it's as helpful for you as it was for me.

This is from Problem Solving and Program Design in C:

Section 2
The College experience: Computer Disciplines and Majors to Choose From

Computer Science

> Computer science as a discipline encompasses a wide range of topics from theoretical and algorithmic foundations to cutting-edge developments. The work computer scientists are trained to do can be arranged into three categories:

> Designing and implementing useful software
>
Devising new ways to use computers
> * Developing effective ways to solve computing problems

>A computer science degree consists of courses that include computing theory, programming, and mathematics. These courses ultimately develop the logic and reasoning skills integral to becoming a computer scientist. The math sequence includes calculus I and II (and in many cases, calculus III) as well as discrete mathematics. Some students also study linear algebra and probability and statistics. A computer science degree offers a comprehensive foundation that permits graduates to understand and adapt to new technologies and new ideas. Computer science departments are often found at universities as part of the science, engineering, or mathematics divisions.

> Computer scientists take on challenging programming jobs, supervise other programmers, and advise other programmers on the best approaches to be taken. Computer science researchers are working with scientists from other fields to perform such tasks as using databases to create and organize new knowledge, making robots that will be practical and intelligent aides, and using computers to help decipher the secrets of human DNA. Their theoretical background allows them to determine the best performance possible for new technologies and their study of algorithms helps them to develop creative approaches to new (and old) problems.

Software Engineering

> Software engineering (SE) is the discipline of developing and maintaining large software systems. These systems must behave reliably and efficiently, be affordable, and satisfy all requirements defined for them. SE seeks to integrate the theory of computer science and mathematics with the practical engineering principles developed for physical objects.

> An SE degree program is closely related to the computer science degree
program, and they are usually offered within the same department. In fact, most computer science curricula require one or more software engineering courses. An SE degree can be considered a specialized degree within the confines of the field of computer science.

> SE students learn more about software reliability and maintenance of large systems and focus more on techniques for developing and maintaining software that is engineered to be correct from its inception. Most programs require SE students to participate in group projects for the development of software that will be used in earnest by others. Students assess customer needs, develop usable software, test the product thoroughly, and analyze its usefulness.
Professionals who hold a software engineering degree expect to be involved with the creation and maintenance of large software systems that may be used by many different organizations. Their focus will be on the design principles that make the system viable for many people and through many years.

> Although an SE degree has a recognized description, the term software engineer is merely a job label in the workplace. There is no standard definition for this term when used in a job description, and its meaning can vary widely among employers. An employer may think of a programmer or an IT specialist as a software engineer.

u/maredsous10 · 1 pointr/ECE

My General Thought

I find it is best to learn and get exposure from several book/media sources coupled with actual application of things learned.

----

Introductory Texts/Links

Short Intro
http://heather.cs.ucdavis.edu/~matloff/unix.html

C Programming: A Modern Approach
http://knking.com/books/c2/index.html

Head First C (Different Presentation Style, check amazon preview)
http://www.amazon.com/Head-First-C-David-Griffiths/dp/1449399916/

Programming in C
http://www.amazon.com/Programming-C-4th-Developers-Library/dp/0321776410/

PDF Tutorial
http://phy.ntnu.edu.tw/~cchen/pdf/ctutor.pdf
Original Here > http://www.tutorialspoint.com/cprogramming/index.htm

C The HardWay (Mostly complete)
http://c.learncodethehardway.org/book/

Zed's K&R Critique
http://c.learncodethehardway.org/book/krcritique.html

Practical C Programming
http://shop.oreilly.com/product/9781565923065.do

Ben Klemens Modeling with Data book has a short C introductory section.
http://ben.klemens.org/pdfs/gsl_stats.pdf

-----

Reference
Harbison and Steele C Reference Manual
http://www.careferencemanual.com/

Plan on developing on Linux?
The Linux Programming Interface: A Linux and UNIX System Programming Handbook
http://www.amazon.com/dp/1593272200/

Didn't get Pointers?
http://www.amazon.com/dp/1449344186/

21st Century C, This book got dogged a lot, but I think its a nice text.
http://www.amazon.com/21st-Century-Tips-New-School/dp/1449327141

K&R Scan (If you want an idea what's inside K&R)
http://www.iups.org/media/meeting_minutes/C.pdf

-----

Need an Editor?
VIM Book
ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf

Vim Video Tutorials
http://derekwyatt.org/vim/

-----

Back in the Day
I used these books years ago. They're somewhat dated, but still useful and cheap.
Programming in ANSI C
http://www.amazon.com/Programming-ANSI-Hayden-Books-library/dp/0672484080
Advanced C: Tips and Techniques (Hayden Books C Library)
http://www.amazon.com/Advanced-Techniques-Hayden-Books-Library/dp/067248417X/

----

C Language Basics
How do I read/write files
How things are implemented at a lower level
Compiler Options and Functionality
What is a make file?
Debugging... How to do it... How do I use a standard debugger like GDB?



u/rahat106 · 1 pointr/C_Programming

For the absolute beginner, go for the coolest book on c

u/_justpassingby_ · 1 pointr/cpp_questions

People seem to like it, based on the reviews. I'm just not convinced it fits the needs of the op. From the preface:

>As an analogy, think of a short sightseeing tour of a city, such as Copenhagen or New York. In
just a few hours, you are given a quick peek at the major attractions, told a few background stories,
and usually given some suggestions about what to see next. You do
not
know the city after such a
tour. You do
not
understand all you have seen and heard. You do
not
know how to navigate the
formal and informal rules that govern life in the city. To really know a city, you have to live in it, often for years. However, with a bit of luck, you will have gained a bit of an overview, a notion of
what is special about the city, and ideas of what might be of interest to you. After the tour, the real
exploration can begin

This would seem to imply more books being read afterwards. What I would argue is that you may as well skip the fast-tracked books like this and learn it from the ground up the first time. I don't know about other books being mentioned, but C++ Primer does that for sure.

I learned from C++ Primer, and then at university there was a course learning from Big C++, which is another big book, and even then there were always questions on the forums that I knew would have been unnecessary had C++ Primer been used (although data structures and the like were definitely covered better in Big C++). C++ is like that, and it's best not to try and learn it in a day like you can some other languages.

u/coolnonis · 0 pointsr/learnprogramming

Head First C .. Best C book i've ever read. Thank me later.

u/ScotticusMaximus · -1 pointsr/ECE

If by computer engineering you mean including programming then
Big C++ by Horstman & Budd was an amazingly good book for learning C++. Reading this I probably didn't even need to go to my lectures.