Top 4 Recommended books to learn C

Поділитися
Вставка
  • Опубліковано 28 тра 2024
  • In this video I talk about the 4 core books that have helped me learn the C programming language. This is not the end all be all of C programming books. These are just my recommendations.
    This video series is part of the C programming playlist: bit.ly/3JCySBv
    Check out my review on the Linux foundation course (LFD401) if you want to diver deep into programming on Linux
    The Linux Foundation Review: Developing Applications For Linux (LFD401) • The Linux Foundation R...
    The playlist includes:
    - Top 4 Recommended books to learn C - • Top 4 Recommended book...
    - Introduction to GCC - bit.ly/3uRtYwl
    - C pre-processor directives - bit.ly/3Bo1cVj
    - Introduction to Makefiles -bit.ly/3uZzzR9
    - How to profile your code using gprof and linux perf - bit.ly/3LzvZTP
    - The Linux Foundation Review: Developing Applications For Linux (LFD401) • The Linux Foundation R...
    The books I recommend are:
    - An introduction to GCC - amzn.to/3GxGc0n
    - The C programming Language - amzn.to/3mn8DGb
    - Pointers in C - amzn.to/3mn1INi
    - GNU Make - amzn.to/3mqSIXK
    - Data Structures in C - amzn.to/3CpI4Wp
    - The Linux Command Line - amzn.to/2ZyjXpX
    - Linux Programming Interface - amzn.to/3bj5C3l
    Website: www.antshiv.com
    Blog: www.shivasnotes.com
    Patreon page: / antshiv_robotics

КОМЕНТАРІ • 81

  • @raunakmukherjee8029
    @raunakmukherjee8029 Рік тому +53

    The cleanest video of this type I've seen. Love the to-the-point presentation.

  • @arthurgalindojr.4175
    @arthurgalindojr.4175 2 місяці тому +2

    In the late 90s early 2000s I got a bachelor’s in information technology. The first language we learned was C with a dose of assembly Java and then HTML. We would compile using windows, after we mastered that we used code warrior or the miracle c work bench. I ended choosing a different career path about as far from tech as possible. C allows an understanding of tech that is unmatched. You will be shocked how much of every language you know, just from C to a basic knowledge of the Cisco operating commands. You have really understand what you are doing with C, it is programming without training wheels. Our text was C primer plus which was a little overwhelming. I ended up buying a book called beginning c, by Ivor Horton.

  • @antshivrobotics
    @antshivrobotics  2 роки тому +4

    If you liked the video, please subscribe and turn notifications on to not miss any future videos, thank you!

  • @talhashah3986
    @talhashah3986 2 роки тому +15

    Thanks for sharing your precious knowledge with us.

  • @alibinabdulwahab2857
    @alibinabdulwahab2857 4 місяці тому +1

    Hi. Thank you so much, really a good guide.

  • @LukeAvedon
    @LukeAvedon 2 роки тому +2

    Ooooooh "Points On C" Looks so so good.

  • @Jaqopx
    @Jaqopx Рік тому +1

    Hi, are the "GNU Make Reference Manual: Version 4.2 " the newest version of the book or different. Thank you

  • @guilherme5094
    @guilherme5094 Рік тому +1

    👍Thanks!

  • @marcoschoucino1588
    @marcoschoucino1588 Рік тому +1

    great video :)

  • @KarthikR-mh1tj
    @KarthikR-mh1tj 2 роки тому +19

    The video was really great. So would you recommend the learning C starting from compiler ending with Linux Programming Interface ?

    • @antshivrobotics
      @antshivrobotics  2 роки тому +21

      The short answer is Yes. The reason being C is not an easy language to learn. While working in C, you could get caught up in simple compiler errors/bugs., which can cause unnecessary frustration. Be it a C syntax error or a linker error. Able to read compiler errors, make sense of the issues and know what changes to make/fix can save you a lot of time and frustration.
      C is still very relevant more than we want to think. Whether you are working on an Arduino, Raspberry PI, or switch O.S for good and start using Linux-based systems, C knowledge will be necessary.
      I end with the 'Linux programming interface' as it teaches you how to write applications in C. Learning how to use POSIX libraries like threads, sockets, I.P.C, file systems is the next level in mastering C and leveraging advanced O.S functionality.
      It is just my opinion. I hope it helps.

    • @kennethcarvalho3684
      @kennethcarvalho3684 Рік тому

      @@antshivrobotics why is it a difficult programming language?

    • @boody8844
      @boody8844 Рік тому

      @@kennethcarvalho3684 I am guessing since it is considerably low level comparing to languages like javascript

    • @PlayTypeGaming
      @PlayTypeGaming Рік тому +1

      @@kennethcarvalho3684 Like the comment above said, C programming is at the low level, assembly is even lower than c. Other languages abstract most of the complex programming you have to deal with. In C you really have to be specific as to what you want to do for the compiler to understand your logic, you have to specify the types appropriately, you have to cast types appropriately. There is pointers, which are abstracted in most languages but in C you have to write them yourself, they are really powerful but you need a bit of practice to know how to use them, and lot of people struggle with them. Lot of languages are actually written in C, like JavaScript for example or NodeJS framework's v8 engine (c/c++), Python, JAVA's JVM , C# etc... so you don't have to deal with the difficulty involved with C, which is a machine level language but also a general purpose language. But knowing C will help you understand how computer works and it will actually make it easier to understand other languages well.

    • @MrHaggyy
      @MrHaggyy Рік тому

      @kennethcarvalho3684 C is designed to be a human readable abstraction of how a machine works.
      It's designed so you can perfectly shoot you in the foot with buffer overflow's, pointer out of reach, nullptr exception or namespace conventions.
      One big reason for C++ are classes. In C any bigger datatype is an array or struct of the base datatypes. So it's totally fine to use a function on data it wasn't designed for. A class is a new datatype. Any function that's supposed to work with the class needs this datatype as an argument.
      Java has a garbage collector. So you don't need to think through the lifetime of an object from start to finish. It will be deleted for you at some point.
      Python has variable datatypes, so if you run out of scope in your byte representation or went from integers to floats, or only need a textform of your number the language takes care of that for you.
      So if you know C you will appreciate how other language features make your life easier.

  • @zemlidrakona2915
    @zemlidrakona2915 Рік тому +4

    I learned C from K&R and never bought another book specifically on C (except for updated K&R).

  • @khomo12
    @khomo12 8 місяців тому +1

    Thank you!👍👍👍

  • @naumstojcevski8634
    @naumstojcevski8634 2 роки тому +1

    Well done, nice video

  • @BryanChance
    @BryanChance Рік тому +1

    very nice

  • @nieczerwony
    @nieczerwony Рік тому +4

    I would personally add "Understanding Linux kernel" book.

  • @gaudnorm
    @gaudnorm Рік тому +3

    I recommend "The Linux Programming Interface".

  • @MrHaggyy
    @MrHaggyy Рік тому +4

    Reading a good book about the command line, especially the unix/linux, is always good. You get reminded about special tools that can make your life easier as you need them. Also as a beginner you need it to walk within the environment, as an expert you need it to work on the environment...

    • @axn30158
      @axn30158 5 місяців тому

      Do you have any recommendation of books that approach this subject?

    • @MrHaggyy
      @MrHaggyy 5 місяців тому

      @@axn30158 William E. Shotts has a good one as well as Daniel J. Barrett. Shotts starts really basic and stays slow and detailed. Barrett is shorter and faster but it assumes a view things and does not go as deep.
      "Linux" by Rheinwerk Computing is a great open book but i only know the german version.
      "Linux Device Driver Development" is another one i use a lot. It`s focus is more on providing code for a system, but you get really solid basics as well.

    • @axn30158
      @axn30158 5 місяців тому

      @@MrHaggyy thank you. Btw, I say this as a lifetime windows guy, so I know nothing about linux. Besides those books, do you think its a good idea to install a virtual machine to use linux? If so, which version do you think its a good first approach?

    • @MrHaggyy
      @MrHaggyy 5 місяців тому

      @@axn30158 If you focus on a desktop or server I would install an Ubuntu VM to get started. Later you can either use dualboot of Windows and Linux or rent a Linux server. What type of computing or work on a computer are you doing?

    • @axn30158
      @axn30158 5 місяців тому

      @@MrHaggyy currently I am studying algorithms and data structures with focus on C due to college and I am deep studying C because I did like this language. Do you think this is a good road?

  • @markymarco2570
    @markymarco2570 Місяць тому

    And the IDE's and working with large projects?

  • @ravichandel8690
    @ravichandel8690 2 роки тому

    sir c book so that i can do c programming for microcontroller i am total beginner but like to learn how to program hardware

  • @beastOfVengeance
    @beastOfVengeance Рік тому +1

    Great

  • @sudhakarmaddila4295
    @sudhakarmaddila4295 2 роки тому +2

    Can you please recommend books for embedded C programming?

    • @antshivrobotics
      @antshivrobotics  2 роки тому +3

      When it comes to embedded systems, the hardware is necessary. You can pick either an Arudino or STM32 and start to tinker with it. From there, you can find resources like books, online documentation, or forums that can help you get started programming on that hardware.
      Once you are familiar with working with particular embedded hardware, it gets easy to work with other hardware. Things like embedded protocols (I2C, SPI, UART), timers, ADC, PWM, DAC are common to most embedded hardware.
      The language of C does not change. The books I recommend in this video will work for embedded systems. The only difference with embedded C is you have the hardware.
      I hope it helps.
      Good Luck!

  • @Shivam_3567
    @Shivam_3567 Рік тому

    Can you help me to find book in hindi for 'c'

  • @mikelong3444
    @mikelong3444 2 роки тому +1

    🔥🔥🔥

  • @chrissaltmarsh6777
    @chrissaltmarsh6777 2 роки тому +6

    The first book on computer language I ever read (as a working physicist, not a computer scientist. A tool of the trade) was the original K&R.
    Pretty soon I could get to what C would do because, well, it would do that. That is why they built it like it is.
    The other one everyone should read, of the same vintage, is The Mythical Man-Month, Fred Brooks, which is a terrible warning of stuff that can happen.
    Good vid, thanks.

    • @antshivrobotics
      @antshivrobotics  2 роки тому

      Thanks for recommending "Mythical Man-Month". Haven't read it. Will look into it.

    • @chrissaltmarsh6777
      @chrissaltmarsh6777 2 роки тому +1

      @@antshivrobotics There's a follow-up called 'No Silver Bullet'. Also rather depressing - but we do have Rust coming along! But my heart is with C,

    • @antshivrobotics
      @antshivrobotics  2 роки тому

      @@chrissaltmarsh6777 Interesting! Thank you for your recommendations.

  • @drygordspellweaver8761
    @drygordspellweaver8761 2 роки тому +20

    love C but unfortunately newer trends are deprecating access to it in its pure form. I had a lot of troubles with windows API using C as they insist on not supporting it for some reason, despite the fact windows is basically written in C.

    • @soyitiel
      @soyitiel Рік тому +1

      I thought it was written in C++

    • @MrHaggyy
      @MrHaggyy Рік тому

      Most of it is C, a solid piece is written in assembly, some newer stuff is written in C++ or C#.

  • @faanross
    @faanross 3 місяці тому +2

    i'm beginning to fall deeply in love with C.... am i gonna be ok???

    • @antshivrobotics
      @antshivrobotics  3 місяці тому

      You'll do just fine. C/C++ demand will always be there inspite of what others say.

  • @squid13579
    @squid13579 Рік тому +3

    Long live procedure language ❤🔥📈.

  • @josechavez9428
    @josechavez9428 Рік тому +1

    oh bls, sir ='u I have no idea how many books I have bought this year. At this rate I'll have my whole house full of books. Ok no, I'm just kidding.
    Thanks for the suggestions, they will be very helpful. ='u

  • @emirhanyac8623
    @emirhanyac8623 5 місяців тому

    are we should read all of them 1 to last ?

    • @antshivrobotics
      @antshivrobotics  5 місяців тому

      I wouldn't. These books are just references and use them when needed. My 2 cents.

  • @luisfernandodelacruzgomez4473
    @luisfernandodelacruzgomez4473 28 днів тому +1

    what about C++?

  • @i_youtube_
    @i_youtube_ Рік тому +5

    If you are comfortable programming in C, mostly you won't be comfortable programming in C++ as it's hard language and takes long time until you feel comfortable with it

    • @MrHaggyy
      @MrHaggyy Рік тому +2

      Interesting point. C++ allows almost everything you can do in C, in fact if you can solve a problem perfectly with C features thats usually the way to go in C++.
      Many great programmers like Guido van Rossum, John Carmack and even Bjarne Stoustrup himself write very C flavoured C++ code and use C++ abstractions when they identified the required patern for these abstractions in their code.

  • @ReptilianXHologram
    @ReptilianXHologram Рік тому +8

    The book you mention to learn C Programming at 4:17 is not really meant for beginners and it's outdated as it doesn't teach you the secure way to write C code. I was wondering if you had another book in mind for beginners to learn C programming but write it securely?

    • @denzel1708
      @denzel1708 Рік тому +1

      did u find any good book for beginners plz

    • @jonathandavis8014
      @jonathandavis8014 Рік тому +7

      @@denzel1708 One book that i am going through right now is C Programming a modern approach, and it generally is good for beginners and more advanced students, it also has better clarity, but it is quite more lengthy.(As a fast reader I am reading a chapter a day and even then it will take me 2 weeks or more) You can find plenty of more beginner friendly books but if you want to still get a good grasp on all the concepts (beginner to pro B) ), then that book is the way to go.

    • @denzel1708
      @denzel1708 Рік тому +1

      @@jonathandavis8014 iv already started a one that named C programming a beginners course by noel kalicharan ,is it good?

    • @denzel1708
      @denzel1708 Рік тому +1

      @@jonathandavis8014 also that book that u have mentioned,is it for beginners,a 101 beginner.

    • @jonathandavis8014
      @jonathandavis8014 Рік тому +2

      @@denzel1708 I haven't used that yet but I'm sure you can definitely learn enough to then advance to something like K&R.

  • @KimberlyWilliamsch
    @KimberlyWilliamsch 2 місяці тому

    Aca

  • @aligharaibeh3761
    @aligharaibeh3761 Рік тому

    The gcc is a compiler that compile c🤣🤣😭🤣

  • @godnyx117
    @godnyx117 Рік тому

    The real question is why to learn C, lol! People should really stop recommend this language anymore. Unless you want to look on other code-bases of course.

    • @joelnaya5341
      @joelnaya5341 Рік тому +1

      Its a beautiful language. Also its necessary for understanding the inner workings of the operatung systems as it does not have the abstractions that other languages provide. Also important for reverse engineering although more important in this regard would be assembly.

    • @godnyx117
      @godnyx117 Рік тому

      @@joelnaya5341 Yeah, it is indeed a beautiful language for specific use cases. In your case, assembly would be a better choice.

    • @antshivrobotics
      @antshivrobotics  3 місяці тому

      Many embedded systems, operating system developments, and performance-critical applications rely on C. For instance, your home router likely operates on a highly customizable Linux OS built in C. From refrigerators and smart appliances to cars, airplanes, and mission-critical applications, C is the backbone of their functionality. Additionally, many high-level languages, including Python, Node.js, PHP, and AI modules, are themselves developed using C. Given that virtually every microcontroller and processor manufacturer shares code in C for embedded systems, it's hard to overlook the importance of recommending this language.

    • @godnyx117
      @godnyx117 3 місяці тому +1

      @@antshivrobotics I understand your point, and I'm sorry for the part of my comment that says "People should really stop recommend this language anymore" as this is something completely unnecessary and shouldn't be said.
      My point was that there is no point to create new software on C as there are languages like D, Zig and C++ and soon Nemesis but like I said in the end, it is used for tons of other software so it makes sense to learn it if you want to contribute and/or learn.
      In any case, I have changed the last 10 months and would rephrase the comment better (or maybe not write it at all?) so I hope it didn't bothered you my friend!

  • @lumberjackdreamer6267
    @lumberjackdreamer6267 8 місяців тому

    15 minutes of half witted slow blabla….

  • @mariostelzner4530
    @mariostelzner4530 Рік тому

    IF YOU WANT TO LEARN TO PROGRAM WINDOWS BASED PC COMPUTERS, LEARNING C, C++, OR ANY OTHER HIGH LEVEL PROGRAMMING LANGUAGES WILL NOT HELP YOU TO CREATE COMMERCIAL GRADE WINDOWS PROGRAMS. WINDOWS IS A PROGRAMMING LANGUAGE UNTO ITSELF, FOR WHICH DOCUMENTATION IS VERY POOR AT BEST. AHAHAHA AHAHAHA LOL

  • @pingoleonfernandez7638
    @pingoleonfernandez7638 Рік тому +2

    TLCL is a jewell of a book.