My 2 Year Journey of Learning C, in 9 minutes

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

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

  • @stickguy9109
    @stickguy9109 ปีที่แล้ว +704

    Segfault is like learning any other thing. People exaggerate it too much. "Centering a div", "deleting the default cube", "dark souls is hard". There are many examples

    • @voxelrifts
      @voxelrifts  ปีที่แล้ว +64

      That's DEFINITELY what's happening here

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

      You’re spot on

    • @drygordspellweaver8761
      @drygordspellweaver8761 ปีที่แล้ว +45

      Centering a div is the sole exception 😂😂😂

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

      The amount of times I've realized I still don't know how to center a div😅

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

      @@TheMasabaa bruh these guys :D

  • @bishopoftroy
    @bishopoftroy ปีที่แล้ว +793

    I`m not a big C programmer but i`m very grateful i started programming with it. It is actually fun and a beautiful language.

    • @bishop6903
      @bishop6903 ปีที่แล้ว +9

      LOL Segv make it beautiful of course

    • @collincampbell7689
      @collincampbell7689 ปีที่แล้ว +12

      Until you are wondering why you have to override the buffer overflow...

    • @bishopoftroy
      @bishopoftroy ปีที่แล้ว +49

      @@collincampbell7689 you wonder why do you have to stuff in any programming language.

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

      i want to get back to my first love "C" and functional programming, my mind felt clear when only thing about the functional or process thing from the beginning till end , but when it comes to object, MVC and others it just like making something one thing at a time.

    • @b.wallet5295
      @b.wallet5295 ปีที่แล้ว +2

      There is nothing beautiful or fun about it

  • @krunkle5136
    @krunkle5136 ปีที่แล้ว +120

    It is great because it forces you to be systematic and careful, and will just let you make linked lists without complaining.
    The more new languages restrict you and make more things automatic, the more you're less encouraged to think carefully, and the more processing power is stolen.

  • @BboyKeny
    @BboyKeny ปีที่แล้ว +71

    C is a really good way to learn programming. It's really easy to understand how many other languages work under the hood.

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

      Yeh so true! I learnt the basics of C and now coming into C# is so much easier and taken a few chunks off the learning curve.

  • @danidotexe_
    @danidotexe_ ปีที่แล้ว +107

    respect for your decision to stick to C for a while. it's not always the most fun when you're learning, but what you learn from C lasts the rest of your programming life

  • @vitalyl1327
    @vitalyl1327 ปีที่แล้ว +260

    The "Crafting Interpreters" book failed to mention the coolest way of implementing bytecode interpreters in C - using the computed goto extension to do an indirect threaded code execution (supported by gcc and clang, which is pretty much all everyone should care about these days). It's significantly faster than the mere case approach described in the book.

    • @voxelrifts
      @voxelrifts  ปีที่แล้ว +40

      That's a very interesting technique indeed! Thanks for sharing it. (I do care about MSVC though :P)

    • @vitalyl1327
      @vitalyl1327 ปีที่แล้ว +17

      @@voxelrifts there is always a way to fall back to case if your compiler does not support computed goto, see how it's done in OCaml bytecode interpreter for example (look for the file 'interp.c')

    • @voxelrifts
      @voxelrifts  ปีที่แล้ว +18

      @@vitalyl1327 Yup. I looked up "computed goto" and the first article came up with a 25% speedup which is quite insane. So having this as a fastpath would make a lot of sense. I'll look into the OCaml interpreter when I can for sure!

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

      @@voxelrifts you guys tqlking seems like very pro , i also want to be pro in programming 😓

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

      Look into Duff’s Device

  • @Mr4thProgramming
    @Mr4thProgramming ปีที่แล้ว +16

    Wow, thanks for the shoutout! I look forward to seeing what you do with your codebase, and what videos you're making next!

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

      Thanks again for your fantastic series :D

  • @drygordspellweaver8761
    @drygordspellweaver8761 ปีที่แล้ว +198

    I actually had to take a “C vacation” after programming in Java/kotlin for 3 months. Seriously the OOP paradigm weighs on the soul.

    • @mrmaniac9905
      @mrmaniac9905 ปีที่แล้ว +16

      You're crazy. I have to use C and rust on a daily basis for my job. I ONLY program in kotlin and the occasional javscript/python at home. I don't think there is a legitimate use case for c at all anymore outside of highly specialized programs like compilers, game engines, and anything else that ACTUALLY needs the performance boost. With technology where it's at now java is right on par with c in terms of performance. Hell, I finished the initial release of my game engine (written entirely in kotlin) and can rival the performance of godot. There is very little benefit to c these days, other than what I mentioned above and embedded programming.

    • @mrmaniac9905
      @mrmaniac9905 ปีที่แล้ว +8

      as a general rule of thumb, I keep languages without a package manager the hell away. Cmake, premake and what have you are just DISGUESTING after coming from gradle, npm, and other first class package managers.

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

      @@mrmaniac9905 ....this is either the ultimate troll and deliverance of satire or you legitimately need to be locked up in an insane asylum.
      Gradle. You have got to be fking kidding me. Gradle, a first class package manager 🤣
      If you are using Cmake as a "package manager" then you have no clue what you're doing to begin with. C doesn't need a "package manager". You include the source code you will be using. Nothing could be simpler. Meanwhile, absolute trash like gradle gives you stack traces 250 calls deep...
      Yeah, nice troll 👍 almost had me for a second!

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

      ​​​​​​@@mrmaniac9905maybe thats because you cannot fix a single system error by yourself? Or even dont know how to compile a tarball from commandline? Like wtf did you even realize how you sound. Dont misunderstand me when i say you are probably the type of a very oppurtunistic software Engineer, it is solely possible that you are a very good programmer but that what you are saying just sounds a bit to uninterested in how the things are going under the hood

    • @_Jayanky_
      @_Jayanky_ ปีที่แล้ว +37

      ​@@mrmaniac9905Someone's a little pissy, I like C because it's simple and easy to work with. Java needs too much boilerplate

  • @nald-dev
    @nald-dev ปีที่แล้ว +14

    Love this journey storytelling, hope you gaining more and more experience ahead and enjoy!

  • @Hassan-lv9di
    @Hassan-lv9di 8 หลายเดือนก่อน +2

    Your approch and projects are wonderful! I really enjoyed the video

  • @dvxv4016
    @dvxv4016 ปีที่แล้ว +11

    I learned C relatively recently and I can not imagine coding without pointers and references

  • @g0w1h4m
    @g0w1h4m ปีที่แล้ว +28

    Thank you for sharing your experience. As a software engineer by profession, I have forgotten the beauty of programming solely for the purposes of enjoyment and learning. I miss those days.

  • @maxplayerone9565
    @maxplayerone9565 ปีที่แล้ว +202

    Cool video! I remember that when I used C I've never had any seg faults so I thought those memes come from more experience guys but it turns C isn't as bad as people say😅

    • @voxelrifts
      @voxelrifts  ปีที่แล้ว +35

      Yeah it really isn't! I don't even know where the memes about segfaults originally came from :P

    • @lolcat69
      @lolcat69 ปีที่แล้ว +49

      ​@@voxelrifts from bad coders...

    • @voxelrifts
      @voxelrifts  ปีที่แล้ว +22

      @@lolcat69 I was informed it might be due to C being primarily used in programming for embedded systems. I really think that should be clarified in said memes though

    • @emmanueljerry2032
      @emmanueljerry2032 ปีที่แล้ว +12

      It mostly revolves around what you are using C for
      If it does a lot of memory manipulation you are most likely to run into a segfault

    • @lolcat69
      @lolcat69 ปีที่แล้ว +11

      @@voxelrifts i can tell you, the only times i seg fault is cuz my code was shit, and i made some bad allocation of memory or used a std function wrong

  • @cathalogrady2331
    @cathalogrady2331 ปีที่แล้ว +10

    I have too been using C for the past 2 years, funny :). I tried many other languages javascript, java, python3, rust, etc (actually used python and javascript extensively) but for all of my personal projects I kept coming back to C. It is so comfortable in the low overhead. I can *really* program, I am not bogged down by verbosity, having to look up syntax or libraries, its all there. All you need to write C is a c compiler, vi and the man pages. C is also very flexible, and is the first language I turn to when trying to understand DSA or programming paradigms. Just today I have been learning about more functional languages (following using prolog in uni ) and finally understand monads ! woop, I implemented them in C to re-enforce them.

  • @namehere5165
    @namehere5165 ปีที่แล้ว +18

    I can so agree with this video! When I initially started learning C for a class, I was also surprised with the general productivity increase, contrary to the actual amount of 'work' seeming to go up. I'm seeing why a lot of people much prefer the agility of a functional programming approach to the general 'much-ado-about-nothing' class hierarchies and file structures of object-oriented programming.

    • @MI08SK
      @MI08SK ปีที่แล้ว +4

      C is procedural not functional, an example of a functional programming language is haskell

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

      I was confused about functional vs. procedural vs. OOP as well. Functional is where every function is immutable (i.e. doesn't change anything outside the function). Procedural supports mutable functions. And OOP _typically_ leans into making everything mental model "objects", including functionality (except those that support "static" functions and/or "Singletons"). Another "recent" (2014) synonym for procedural is "data-oriented". C is indeed procedural.

  • @thats-no-moon
    @thats-no-moon ปีที่แล้ว +62

    I too am starting out with C (as a computer engineer coming from Java and Python) and your video helps a lot. I can also recommend the "C Programming for Everybody (CC4E)" course, especially if you are already a programmer. It basically goes through the first edition of the K&R book and introduces C as a convenience layer for assembler. To see it this way helped me a bunch.
    Anywho, thanks for the video :)

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

    Wow ! Be courage and show experience to the world ! Lot of people need your story ! Have fun friend ! ❤

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

    Great stuff...I recently started learning C++ after about two years of python. I'm really enjoying myself with C++.

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

    I also came from Java and after I finished my postgrad, I decided that I never wanted to look at the language again.
    I picked up C and it is without a doubt my favourite language.

  • @69k_gold
    @69k_gold 9 หลายเดือนก่อน +2

    While watching videos like this, I feel like I was the only one in the whole undergrad world who got into CS without a massive headstart

  • @PureAsbestos
    @PureAsbestos ปีที่แล้ว +4

    I agree about bringing that C procedural mindset to OOP languages. It is very easy to over-architect things in Java, C#, and even C++.

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

    I love you!
    because I love low-level schtuff and so do you!

  • @polecat3
    @polecat3 ปีที่แล้ว +29

    I do get a lot of seg faults, but it's true that they usually aren't bad to debug. Mostly I'm misspelling a filename or forgetting to initialize a variable

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

      the thing is; obviously mistakes are quick to fix, but first you must find the mistake; and when the error core is "program's dead, screw you ♪"... hope you aren't getting tired staring at your code-base for hours...
      Have fun finding the l amongst the I
      IIIIIIIIIIIIIIlIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

    • @voxelrifts
      @voxelrifts  ปีที่แล้ว +4

      ​​@@something3194 but that's not what happens with segfaults if you're using the address sanitizer or a debugger.. the only thing it tells you is that there was an access violation which is the same as a nullpointer exception in other languages. So debugging c code isn't too different from debugging any other language.

  • @DenisTruong
    @DenisTruong ปีที่แล้ว +4

    coming from web dev and learning C for work that I do now thanks for sharing,

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

      what do you use c for at work ?

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

    The end is epic, a piece of advice to us: C you next time!

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

    Much enjoyed and shared this with my students. I actually started out many years ago with C++ but I'm enjoying C more and more, especially teaching it. Cheers

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

    beautiful, not boring video. Thanks for sharing.

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

    Very nice, I'll give your code a lookthrough. Thanks for the GS plug.

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

      It was a great resource for me for figuring graphics out so thanks for making it!

  • @rodrigo-tj1gf
    @rodrigo-tj1gf ปีที่แล้ว +1

    "I ve got some experience with c++ but i still got confused on why pointers are usefull" damn that speaks to my soul

  • @TechnoSan09
    @TechnoSan09 ปีที่แล้ว +25

    C is really great language,
    For a low to middle level language with much control over hardware it has one of the best elegant syntax
    C really taught me core principles of computation after learning basics of CS and programming with python as a absolute beginner

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

      C is a high-level language with the ability to do low-level interfacing through asm()
      You might be surprised how useful asm() is, it’s a life saver for graphics libraries

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

      ​@@Vexxel256 Is it really?

  • @copzi
    @copzi ปีที่แล้ว +7

    Cool stuff! I learned the pain of the all ceremony, state encapsulation, and other “clean code” after I switched to using Clojure. While it’s surely not the tool for the jobs that have to “go fast” it is certainly a joy to work on the problem at hand and not the problem of what we usually think of as code structure.

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

      Enjoy your header files hell

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

    A started witch C after visual basic and I love it.
    It's been a while that I haven't written something in C though 😢

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

    just started getting familiar with C. Thanks for keeping me motivated :)

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

    You are amazing! Yes it’s time to try some functional languages and then you can view C and it’s struct/union from a new perspective.

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

    Amazing and very inspirational for my coding journey. Thank you for making the video, just subscribed the channel, looking forward to learning more,

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

    your journey is awesome ❤

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

    Wow, what a gem of a channel I've been recommended

  • @MePeterNicholls
    @MePeterNicholls ปีที่แล้ว +16

    Yes! The first time I tried C and I was following making a sort algorithm I was like - huh? What? It doesn’t have????? And it took sometime for it to sink in why. And realising C was almost as close to the metal as a programming language gets. And the power!

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

      Yup C is 1 step above Assembly... And C++ is just a glorified C!

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

      @@skilz8098 and objective C….🙈

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

    This video gave me back the confidence to learn C again which I had lost 🙂

  • @P-G-77
    @P-G-77 ปีที่แล้ว +2

    Learning C in 9 minutes... good phrase, good to learn the very basic, not only.

  • @NOPerative
    @NOPerative ปีที่แล้ว +12

    C takes a good bit of commitment, but the event (regardless of time spent) will reward the journeyman with deeper insight not only to systems but self.
    I became more familiar with assembler prior to C and C was still a bit of a learning curve due to pointer management but the fundamentals carry over that neither language is difficult for any other reason than you are the creator and security officer. Both disciplines offer a great deal of control and with that power comes great responsibility while the more you know and understand your data the more easy the definition of your code will emerge allowing you to develop in the languages at an almost second nature level of "Dev Ops". Familiarity & passion = performance but more importantly lets one know where they should be rather than used as scales determining whether they "suck" compared to other devs. Self imposed critique is not an ally - find that language that intrigues you and try to work with data that also intrigues and you will eventually find your rhythm & rhyme with stanza being more relevant to that performance level that previously staggered your mind.
    Totally agree with everything you pointed out in the video - absolutely nailed the essence of transgress into C and the importance of such an event. This observation is a mantle (believe it or not) and says a great deal about your intellect. Old school developers would be very pleased to see your progression. Good stuff.
    Awesome video. Checks the affirmation box. Wish you many happy journeys.

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

    a string is an array of characters, this got me excited

  • @bala-yb8lq
    @bala-yb8lq 2 หลายเดือนก่อน

    video was useful in a way...keep the good work up

  • @MarcosOliveira-us4wf
    @MarcosOliveira-us4wf ปีที่แล้ว +1

    That video comes in the right moment of my life, studded C in university two years ago, this year I'm back to this language for get more knowledge about programming, I finish the basis, but I don't know how I can advance...

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

      I suggest you the book (from 1999 I think) "Algorithms in C".

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

    Damn! It will took me 5 years just to be able to write all your project.❤❤❤

  • @kevin.malone
    @kevin.malone ปีที่แล้ว +1354

    It took you two years just to learn C in the span of 9 minutes?

    • @voxelrifts
      @voxelrifts  ปีที่แล้ว +266

      Now that would've been epic

    • @nitilpoddar
      @nitilpoddar ปีที่แล้ว +134

      This comment is hurting my brain

    • @w花b
      @w花b ปีที่แล้ว +9

      ​@@nitilpoddar yeah, do the math now

    • @Manas-co8wl
      @Manas-co8wl ปีที่แล้ว +27

      Accurate representation of my learning pattern and time management

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

      Imagine the preparation for that haha

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

    Your videos are calm and nice💐

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

    I really hope that you keep adding videos! Hi subscribe with that tiny bit of hope that you continue making videos!

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

      That is the plan! Exams cause a lot of delays though 😅

  • @anon_y_mousse
    @anon_y_mousse ปีที่แล้ว +42

    If you've never done low level programming, learning about pointers and how and when to use them can be daunting, but it sounds like you're going to stick with it. I would suggest that you learn to use the compiler to generate assembly and learn assembly while you're at it as it would make you a better C programmer. Also, read both the Intel and AMD optimization manuals as they will help you write better code in any language. Also also, get a copy of the C standard document and read it, maybe not all the way through in one sitting, but any parts that stick out in your mind. C11 added generics with the _Generic keyword, learn how to use it.

    • @voxelrifts
      @voxelrifts  ปีที่แล้ว +18

      Assembly is precisely what im learning right now. It's super fun :D

    • @J-Random-Luser
      @J-Random-Luser ปีที่แล้ว +5

      If I'm being honest, I would avoid the use of _Generic. To some degree, I can definitely appreciate the idea of being polymorphic over function arguments, but frankly I don't think this kind of behavior belongs in a language like C, even outside of the portability concerns. For what C is used for, not having the function you're calling be immediately clear is *begging* for issues.
      This kind of behavior is much more suited to higher level languages like C++ or Rust which are much, much more suited towards applications development than C is. In these cases you actually want these nice abstractions, while in C, having abstractions can honestly just lead to more problems.

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

      @@voxelrifts If you want to take it a step farther... and more than just learning assembly... You might want to look into CPU or ISA design! Ben Eater has an excellent video series here on Y.T. where he builds an 8-bit CPU on a breadboard. Now, it is a SAP model based on a Von Neumann architect... yet it is a theoretical turing complete system... From there, there's also course called From NAND to Tetris that's very good. And I also found a course from Bilkent Online Courses that's from about 10 years ago that is quite good as well. There are many others out there too!

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

      @@J-Random-Luser That could depend on the application at hand. If you're doing low level stuff such as operating systems or embedded systems I could definitely agree with your argument. However, if you are working with basic application side of things and you're focusing more on "Objective C". Then this could be a suitable operation, perhaps in "compiler or interpreter designs"? I wouldn't rule it out. I would however suggest learning about it's functionality, it's capabilities, it's intended uses, it's pros and cons and learn to understand when, where and how to use such a feature.

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

      Fuck paying 200€ for a fucking standard document

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

    Currently started to work with C++, coming from python, and JS. Was a fun watch, good luck in everyone else’s journey!

  • @romzeek
    @romzeek 10 หลายเดือนก่อน +23

    Hello, friend. Could you please add subtitles? I'm kind of deaf

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

    Thx for sharing free resources and channels rather than promoting paid content

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

    My journey was interrupted a year ago. I started it seeking precisely the benefits you got from it. Time to make time for C.

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

    I just saw PrimeTime's video where he reacts on this exact video
    And I got this on my yt feed now

  • @ThatOpinionIsWrong
    @ThatOpinionIsWrong ปีที่แล้ว +12

    Cool vid, just starting to learn C after learning Python for 1 year, to better understand how it's implemented under the hood. Like you said at the beginning of the vid, a lot of things have been taken for granted, it's hard to adapt to so much typing and boilerplate.
    Also, 4:00 we have the same last name :D

    • @w花b
      @w花b ปีที่แล้ว +4

      I did the exact same... It was hell. Honestly, It would've been better to start with C and then go high level but this path works as well. Starting with python as a beginner makes it less overwhelming though.

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

    8:13 "You should DEEPLY understand what you're using"
    I feel so called out lol

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

    As a C hobbyist programmer, I can't imagine programming without pointers

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

    I have really enjoyed watching your video. It takes time learning anything worth while and you have proved it. However, when you start working in a company on an existing large and complex codebase that has little or no documentation, if that is the path you take, you will find out soon enough why C is difficult. When it is your own codebase and you know where everyhting is then all the C issues will not be there that much, but as soon as you work on a complex C project that is not your codebase all the misconception will turn out to be true. That is why C++ has smart pointers. There are alternatives that are trying to replace C such as Rust and Zig and they will probably become the new low level languages.

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

      I'm gonna be honest I don't think smart pointers are required at all. There's almost always faster and nicer options. (Ofcourse nicer is just my opinion)

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

    thank you for this! Valuable and inspiring ^_^

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

    I fell in love with C as well. ❤

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

    Fun fact: I have run into significantly more segfaults writing PHP than C.
    Granted, I write PHP for a living, but it is actually hilarious how often I have crashed PHP-FPM.

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

      Isn't PHP written in C?

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

      @@illegalsmirf yes

  • @256k_
    @256k_ ปีที่แล้ว

    the joys of being a student. i wish i was this free.

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

    Thank you for the video.

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

    this video is really valuable

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

    A wise man once said:
    "Nothing better than C"
    /Linus Torvalds/

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

      "ASM and C is the most powerful combination in programing"
      - Dave Paul (Creator of Windows Task Manager)

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

    The point I learned and got the job DONE

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

    after years of using C++, I'm ready to stop blowing my leg off and just settle with a toe.

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

    Having studied both C (self-taught) and chemistry (at Uni) I totally approve of what I see here :)

  • @alplayzmc3034
    @alplayzmc3034 ปีที่แล้ว +4

    I just came out to my family of java programmers as a C developer. They kicked me out of the house. C pride!

    • @g.krishna4565
      @g.krishna4565 4 หลายเดือนก่อน

      I only c homelessness

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

      you should've kept it a C cret

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

    The fact I'm making a project called Graphit that does the exact same thing that yours did is a huuuge coincidence

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

    very peaceful video

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

    love the conclusion!

  • @juliajean6731
    @juliajean6731 ปีที่แล้ว +10

    In my journey I started with C then did a bit of C++ but we had an haskell discovery class and it changed my life. I highly recommend you give it a try. It's going to be hard at first ngl but the concept your going to learn are incredible

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

    I'm learning C too, to get easy the steps use org-mode with snipets of code and evaluate it on the same document, save a lot of time. Maybe you could try and comment about it your thoughts

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

    You're awesome dude 😎

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

    I like the advice you gave at the end.
    May I know how many years of experience you had in programming before you started learning C?

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

      Before C, about 3 years. But I was using scratch before that.

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

    Next up, a journey across the sea!

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

    WAIT
    You learned for 8 months and went to transpiling already?
    Impressive stuff

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

    +1000, C really makes you faster. You need to be so focused on the task while progamming in C, that it becomes a habit, so when you switch back to any other language, you just kill your tasks ^_^ in the fastest and most elegant way. If Bruce Lee was a coder, he would code in C, I guess)

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

    C is the best for any beginning developer.

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

    Would you mind making a video on the build systems you prefer when working with a decent sized C project. I in the same boat as you. Thanks for the video :)

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

      ATM I use bat and sh files which is far from ideal. I plan to make my own :)

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

      ​@@voxelrifts not sure about you but.. they're good enough.

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

      @@presauced At the start of a project, definitely.

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

    ive been learning it for about a month and I love it Ive written a command line text based game which has some ascii animation using a C compiler app on iphone Ive also worked on coding moving ascii analog clocks and things quite fun so far my goal is to program drivers and maybe make small games

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

      All pf this in a month? How many hours did you spend?

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

      @@smallSphere69 hmm well I read c for dummies which is a few hundred pages, read almost all of c all in one desktop reference for dummies which is about 800 pages and im on page 700 so and read about half of kernigan and ritchies original book. so well say about 50 hours of reading which if you think of itt in terms of playing a video game or watching movies is nothing. Coding the actual stuff oh jeese not that much lets say another 30 or so basically whenever I get time. Its been very rewarding so far. Id say the ascii analog clock was the hardest because you need actual math.

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

      @@cursedfox4942 My reading speed for programming books is about 6 to 10 pages per hour, so in 50 hours (that means a full month, because I can devote around 12-13 hours of studying per week) it means I could read 300 to 500 pages. That means to actually try all the examples in the book.

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

    If I could go back in time the first thing I would learn is how memory stores things at address:value and all you're doing with code is move those values around in memory by iterating through addresses

  • @skilz8098
    @skilz8098 ปีที่แล้ว +16

    I'm 100% self taught and I dove into C++ for working with 3D Graphics. Now when I first started to learn programming, I jumped into the C++ language, I was still using mostly C style functions such as printf instead of iostream, however, I was using new and delete as opposed to malloc and free conventions...
    Yet through my own studies and my own personal experiences I'd have to ask in a rhetorical sense and this is not meant to put anyone down as this is just a general observation that is related to the craft...
    Can one truly consider themselves a programmer or software engineer if they don't even know or understand what pointers are and how to properly use them? These are one of the most fundamental and basic concepts in how the CPU communicates with RAM either in terms of accessing memory to read its content, write data to it, or to fetch another instruction! Just saying!
    As I said, I'm 100% self taught with 0 college credits towards computer science. Yet I feel that if one doesn't understand pointers in general and how to use them... Then they truly don't know how to properly instruct a CPU!
    Again this isn't to put anyone down. It's just a general observation of the craft! A craft that I'm devoted to even to the point where I researched into CPU and ISA(Instruction Set Architecture) design right down to the Logic Gates themselves! I dove so deep into it that I stepped out of the realm of computer science - software engineering and dove into the realm of hardware engineering - electronic engineering.
    There's nothing wrong with higher level languages and higher levels of abstraction, yet if you don't know what's going on under the hood... for me it's just a recipe for major disasters much later on! Just food for thought! It's always better to know and not ever use it, than to not know anything about it when it's required.

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

      Hello sir electronics sophomore here, i want to make my basics strong in software development but also want to dove deep into how memory works, what would you recommend to your younger self.

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

      @@yashnarvariya4725 Back in the early to mid 2000s it was a bit different as there wasn't as much information or content available online back then as there is today. Back then when learning C/C++ it was a matter of trial and error, reading through forums, and going back and doing more trial and error. You have to learn to use the tools that you have such as your debugger, disassemblers, etc... Today it's quite a bit different because there is plenty of material out there. But for learning the basics of how hardware is built or works, Ben Eaters Breadboard series is a great introduction.

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

      There are many times when I’m programming in other languages that I think “man, this would be trivially easy in C”. Pointers are THAT fundamental

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

      a 'pointer' is just an 'offset', so if you call an offset a pointer, you fail as an engineer

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

      @@willtheoct Pretty much... The easiest way to know what pointers are is that in hardware they are the actual address lines that become active to a specific location in memory either it be a register, a location in ram, a location in the cache or even on some other device such as a hard drive or external storage, video memory, etc... It's basically the mailbox number to where the data is stored. They're not really all that complicated... Now getting a handle on doing pointer arithmetic can take a little getting use to it to be proficient at it. The main reason for this is knowing the size of the allocated block... you have to know how many bytes your data or data structure pointer type is. Some pointers are 4 bytes, others are 8 bytes, and some devices might even have their own implementation defined sized... and this can in some rare cases vary by either the language, compiler, operating system (platform) and or architect. For example many years ago even before my time back in the 60s maybe even in the 70s a byte wasn't even 8 bits... Some bytes back then were 6 and some were 7.... but that's a different topic altogether. Now regular pointers on the stack aren't too bad... but heap allocated memory has to be properly cleaned up and the pointer has to be freed otherwise many bad things are going to happen...

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

    "It all started when I was looking into how a compiler is made..."

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

    Thank you.

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

    Incredibly inspiring. Saved for as reference for my own journey.

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

    bro voice so soothing

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

    No matter what the language, this is a must to learn, it is said that the process control: sequence, cycle, selection, can solve all the problems in the world. Of course, only understanding the flow control can truly understand the program!
    1. Sequence: Normal statement execution, from top to bottom.
    2. select :if or select...
    3. for while...

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

    next step, create a database and output html using only c. the graphics and low level asm coding can only go so far, unless you're interested in robotics, but creating c/c++ cms and improving web speed is on the horizon that you can put it to good use.

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

    I'm learning C now. Cant even fathom writing more complex things or how to even go about it.

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

    I too started learning C since 2021 and now I'm into embedded systems lol.

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

    Thanks for this informative video about C , it encouraged me to start this journy too! I'd like to ask you , what are the resources did you use to learn Java? Thanks in advance!

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

      To be honest I don't think I learned the basics from anywhere in particular. But I followed along with a few series by youtube.com/@GamesWithGabe after I understood the syntax and stuff

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

    I love c

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

    this guy is the guy who can get 10 years experience in 2

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

    Good Content, I subscribed you.

  • @JohnWilliams-gy5yc
    @JohnWilliams-gy5yc ปีที่แล้ว +1

    That C23 makes the new 'compound literal' an unnamed lvalue on the right hand of an assignment, is diverted from C++ lifetime. However this means with C23 you can construct by pointer semantics with one-liner from now on, eg. one-liner mktime( & (struct tm){ } ). I don't think this C23 feature can be adopted by C++ because the move semantics needs the existing of rvalue lifetime.

  • @theegg-viator4707
    @theegg-viator4707 ปีที่แล้ว

    Very nice 👍🏻

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

    thanks for sharing

  • @Ahmed-to9hi
    @Ahmed-to9hi ปีที่แล้ว

    There is still multi threading, and fork(). Im currently doing a project in University, where we get a baseline OS and have to implement multi threading and fork() by scratch