Top 4 Recommended books to learn C

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ก.ย. 2024

ความคิดเห็น • 89

  • @raunakmukherjee8029
    @raunakmukherjee8029 ปีที่แล้ว +59

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

  • @mhalton
    @mhalton 2 หลายเดือนก่อน +6

    The 1st book was NOT written by Mr. Stallman. Mr. Stallman wrote the book's foreword.

  • @arthurgalindojr.4175
    @arthurgalindojr.4175 6 หลายเดือนก่อน +6

    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.

  • @nieczerwony
    @nieczerwony ปีที่แล้ว +5

    I would personally add "Understanding Linux kernel" book.

  • @gaudnorm
    @gaudnorm ปีที่แล้ว +3

    I recommend "The Linux Programming Interface".

  • @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 ปีที่แล้ว +1

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

    • @PlayTypeGaming
      @PlayTypeGaming ปีที่แล้ว +2

      @@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.

  • @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 9 หลายเดือนก่อน

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

    • @MrHaggyy
      @MrHaggyy 9 หลายเดือนก่อน

      @@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 9 หลายเดือนก่อน

      @@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 9 หลายเดือนก่อน

      @@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 9 หลายเดือนก่อน

      @@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?

  • @gitgudsec
    @gitgudsec 7 หลายเดือนก่อน +3

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

    • @antshivrobotics
      @antshivrobotics  7 หลายเดือนก่อน +1

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

  • @alibinabdulwahab2857
    @alibinabdulwahab2857 8 หลายเดือนก่อน +1

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

  • @markymarco2570
    @markymarco2570 5 หลายเดือนก่อน

    And the IDE's and working with large projects?

  • @pythontest512
    @pythontest512 2 หลายเดือนก่อน +2

    Why are these old books so ridiculously expensive?

  • @Jaqopx
    @Jaqopx ปีที่แล้ว +1

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

  • @squid13579
    @squid13579 ปีที่แล้ว +3

    Long live procedure language ❤🔥📈.

  • @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!

  • @khomo12
    @khomo12 ปีที่แล้ว +1

    Thank you!👍👍👍

  • @mhalton
    @mhalton 2 หลายเดือนก่อน +1

    Only C is worthy of applause!

  • @Shivam_3567
    @Shivam_3567 ปีที่แล้ว

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

  • @pingoleonfernandez7638
    @pingoleonfernandez7638 ปีที่แล้ว +2

    TLCL is a jewell of a book.

  • @luisfernandodelacruzgomez4473
    @luisfernandodelacruzgomez4473 5 หลายเดือนก่อน +1

    what about C++?

    • @antshivrobotics
      @antshivrobotics  5 หลายเดือนก่อน

      I haven't programmed much in C++ tbh.

  • @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

  • @naumstojcevski8634
    @naumstojcevski8634 2 ปีที่แล้ว +1

    Well done, nice video

  • @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.

  • @emirhanyac8623
    @emirhanyac8623 9 หลายเดือนก่อน

    are we should read all of them 1 to last ?

    • @antshivrobotics
      @antshivrobotics  9 หลายเดือนก่อน

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

  • @beastOfVengeance
    @beastOfVengeance ปีที่แล้ว +1

    Great

  • @KimberlyWilliamsch
    @KimberlyWilliamsch 7 หลายเดือนก่อน

    Aca

  • @lumberjackdreamer6267
    @lumberjackdreamer6267 ปีที่แล้ว

    15 minutes of half witted slow blabla….

  • @zemlidrakona2915
    @zemlidrakona2915 ปีที่แล้ว +6

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

  • @talhashah3986
    @talhashah3986 2 ปีที่แล้ว +15

    Thanks for sharing your precious knowledge with us.

  • @antshivrobotics
    @antshivrobotics  2 ปีที่แล้ว +5

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

  • @RezaMarz
    @RezaMarz 10 วันที่ผ่านมา +1

    Thanks.

  • @linkpad6270
    @linkpad6270 2 หลายเดือนก่อน +2

    I also recommend 'Modern C' by Jens Gustedt

  • @sahilrawatxiic2875
    @sahilrawatxiic2875 หลายเดือนก่อน

    Gospel ?? Bro you need to learn vocabulary

  • @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#.

  • @LukeAvedon
    @LukeAvedon 2 ปีที่แล้ว +2

    Ooooooh "Points On C" Looks so so good.

  • @marcoschoucino1588
    @marcoschoucino1588 ปีที่แล้ว +1

    great video :)

  • @BryanChance
    @BryanChance ปีที่แล้ว +1

    very nice

  • @guilherme5094
    @guilherme5094 ปีที่แล้ว +1

    👍Thanks!

  • @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

  • @mikelong3444
    @mikelong3444 2 ปีที่แล้ว +1

    🔥🔥🔥

  • @Singlton
    @Singlton ปีที่แล้ว

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

  • @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.

  • @ReptilianXHologram
    @ReptilianXHologram 2 ปีที่แล้ว +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.

  • @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

  • @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  7 หลายเดือนก่อน

      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 7 หลายเดือนก่อน +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!