C is 50 Years Old. Should You Learn Rust?

Sdílet
Vložit
  • čas přidán 25. 04. 2023
  • ITS A DEBATE AS OLD AS TIME. OR POSSIBLY 8 YEARS DEPENDING ON YOUR DEFINITION OF THE WORD "YEAR".
    There's ton's of debate around what language you should learn first. Is it C? Is it Rust? TODAY WE FIND OUT.
    🏫 COURSES 🏫 Check out my new courses at lowlevel.academy
    🙌 SUPPORT THE CHANNEL 🙌 Become a Low Level Associate and support the channel at / lowlevellearning
    🛒 GREAT BOOKS FOR THE LOWEST LEVEL🛒
    Blue Fox: Arm Assembly Internals and Reverse Engineering: amzn.to/4394t87
    Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation : amzn.to/3C1z4sk
    Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software : amzn.to/3C1daFy
    The Ghidra Book: The Definitive Guide: amzn.to/3WC2Vkg
    🔥🔥🔥 SOCIALS 🔥🔥🔥
    Low Level Merch!: www.linktr.ee/lowlevellearning
    Follow me on Twitter: / lowleveltweets
    Follow me on Twitch: / lowlevellearning
    Join me on Discord!: / discord
  • Věda a technologie

Komentáře • 918

  • @turun_ambartanen
    @turun_ambartanen Před rokem +496

    That intro makes no sense. Time clearly came into existence on January the first, 1970.

    • @Leonhart_93
      @Leonhart_93 Před měsícem +4

      At least they had the decency to pick something decent as the starting point, and not 1971-07-17 or something 🤣

    • @chaosbytes
      @chaosbytes Před měsícem +3

      @@Leonhart_93 I'm incredibly disappointed they didn't use June 9th of the prior year, colossal missed opportunity

    • @yuichikita6018
      @yuichikita6018 Před 8 dny +2

      Wait, does that mean Time will cease to exist on January 19, 2038?

  • @Stopinvadingmyhardware
    @Stopinvadingmyhardware Před rokem +1939

    Learns C, builds a C library that handles memory like Rust.

    • @LOL-cp6js
      @LOL-cp6js Před rokem +100

      accept 🙂👍

    • @GeneralHazerd
      @GeneralHazerd Před rokem +308

      Whoever does this should be hailed as a god of programming. Songs will be sung of their deeds for a thousand years. Shrines will be built in their honor. Children shall be named after them. They will bring about a new era!

    • @christopheriman4921
      @christopheriman4921 Před rokem +89

      @@GeneralHazerd But wouldn't that just be Rust?

    • @peter9477
      @peter9477 Před rokem +138

      @@christopheriman4921 Without a syntax change to allow implementing a borrow checker, no. Rust memory management is inextricably tied to that.

    • @Wariowa345
      @Wariowa345 Před rokem +11

      probably impossible

  • @postmodernist1848
    @postmodernist1848 Před rokem +1115

    Whether or not you're going to learn Rust or use C in production, C is so immensely important to computer science and computing history that basically every real programmer needs to have experience with it

    • @LowLevelLearning
      @LowLevelLearning  Před rokem +169

      Totally agree

    • @daro_ziom
      @daro_ziom Před rokem +90

      unreal programmers thank god they don't need to

    • @stopper0203
      @stopper0203 Před rokem +1

      Yep

    • @lubba64
      @lubba64 Před rokem +6

      Nah probably never going to have a use case for C. Maybe if i were an embedded developer or went to a university

    • @stopper0203
      @stopper0203 Před rokem +30

      @@lubba64 Really? From experience I'd say that having the confidence to use C anywhere makes you 100x more effective as a developer - even if you don't use it in whatever project you're currently working on.

  • @semicharmedkindofguy3088
    @semicharmedkindofguy3088 Před rokem +108

    I've used C professionally long enough to be mad at it's limitations, but it is still the best language to build your foundational knowledge with. Because once you understand C, you start to understand the building blocks that pretty much the entire field of software development is built on. You don't have to learn it first IMO, any high level language is fine, but definitely learn it second. Speaking from my experience learning C contextualised my earlier experience with Java and a lot of the design of the language features started to make sense.

    • @FastRomanianGypsies
      @FastRomanianGypsies Před 8 měsíci

      Yes without its limitations it would be the greatest language--the programmers.

  • @guilherme5094
    @guilherme5094 Před rokem +393

    C.
    If every language were like a martial art, I'd say that C is the one that improves your combat posture, and that can really make a difference.

    • @k1gen
      @k1gen Před rokem +10

      Underrated comment!

    • @unperrier5998
      @unperrier5998 Před rokem +22

      C gives you a fighting chance when the other languages fail you.

    • @julienmarcuse9023
      @julienmarcuse9023 Před rokem +43

      I feel like rust improved my "combat posture" - other languages will let you write basically whatever, so it's easy to get into bad habits since the compiler usually won't catch them, or will give you warnings at most. in Rust, mistakes that are just considered bad practice in other languages are actually compiler errors, so rust can help you learn how to design resilient code, and it's a skill that will affect how you write non-rust code, too.

    • @postsupremacy
      @postsupremacy Před rokem +11

      @@julienmarcuse9023 im trying to care. i really am

    • @weirdo911aw
      @weirdo911aw Před rokem +14

      Yes, and Rust is like Aikido, looks good superficially but essentially useless

  • @Zwiebelgian
    @Zwiebelgian Před rokem +356

    As quite a new „rustacean“, the biggest improvement for me was the tooling. I know C and C++ have lots of great third-party tooling but no setup one short command for everything is just so much better.

    • @Miles-co5xm
      @Miles-co5xm Před rokem +12

      the exact reason, I want to try out rust, but c++ seems so simple that i just dont want to leave it.

    • @tourdesource
      @tourdesource Před rokem +126

      @@Miles-co5xm There's not a single aspect of C++ I would describe as "simple".

    • @anon-fz2bo
      @anon-fz2bo Před rokem +2

      Yep, that's was the deal breaker, although I still code cpp sometimes for scripts and if I just want that classic feel

    • @JorgetePanete
      @JorgetePanete Před rokem

      " "*

    • @Miles-co5xm
      @Miles-co5xm Před rokem +3

      @@tourdesource what makes you think so?

  • @alexanderheim9690
    @alexanderheim9690 Před rokem +75

    100% learn C. I would advise any beginner to start with C until you get to posix things, do those too and voila, a bit more networking stuff and you are set for great success

  • @TJDeez
    @TJDeez Před rokem +297

    Full stack dev here and I can't stand how commonplace it is to just not give a fuck about memory. This depiction is so accurate. Even solid experienced devs happily choose js methods that create completely unnecessary memory and make excuses.

    • @TehKarmalizer
      @TehKarmalizer Před rokem +31

      Tbf, JS makes it difficult to not allocate memory. You fight the language to be performant. Other garbage collected languages don’t necessarily have that problem, despite garbage collection always being a performance uncertainty.

    • @TimothyWhiteheadzm
      @TimothyWhiteheadzm Před rokem +30

      Not caring about memory waste is one thing, not caring about memory safety is a completely different issue. JavaScript is memory safe. C is not. Using a wasteful js method typically won't create bugs. Being careless about memory management in C typically will.

    • @framegrace1
      @framegrace1 Před rokem +5

      As a devops and sysadmin... I'm the one that ends up feeling the pain. Typical one: reading unbounded queries from a DB. A Time Bomb waiting to explode on most of your systems. (I'm sure your company have at least one of those, no matter who you are :) )

    • @TimothyWhiteheadzm
      @TimothyWhiteheadzm Před rokem +1

      @@framegrace1 True but as always its a balance between the cost of that timebomb going off vs the cost of preventing it from happening. Highly reliable systems simply cost more. But yes following best practices is important to reduce the number of potential time bombs.

    • @bionic-beaver
      @bionic-beaver Před 11 měsíci +1

      GNOME Shell devs?

  • @muhammadsulthanmazaya2388

    Quality content, never expect something less from you 😄

  • @diogob003
    @diogob003 Před 11 měsíci +9

    I've learned and coded a lot of C. Now I'm beginning to learn Rust and there's some patterns that I definitely will use within my C code too

  • @joshua7884
    @joshua7884 Před rokem +2

    I enjoy the topic, the content and the comedy, thank you

  • @LogicEu
    @LogicEu Před rokem

    Best video out there about programming language choices when learning by far!

  • @sammyfromsydney
    @sammyfromsydney Před rokem +40

    Experienced developer here. C and Java among other languages. I'll learn RUST as soon as I have a need for it. Right now there are no job listings that list RUST in my area and right at the moment there are no software projects using RUST that I want to get into. If you're going to be a developer you should expect to be asked to pick up languages quickly as needed. It shouldn't take more than a couple of weeks to get productive with basics, though obviously it will take you longer to learn idioms, libraries and frameworks with proficiency.

    • @MiChEaLaDeNuGa-kx6iv
      @MiChEaLaDeNuGa-kx6iv Před rokem

      So I re-write to build a project which was previously built on typescript with rust , I’ve been crying since , rust is after my life , the syntax is sweet, I love it forces you to use snake case conventions but it’s just too unnecessary complicated

    • @steveoc64
      @steveoc64 Před rokem +5

      Agreed. After a few decades you get pretty good at spotting long term trends vs fads as they emerge.
      The current return to caring about low level code is an expected outcome of moores law tailing off whilst scale keeps increasing.
      Rust is in the fad category. Unfortunately a lot of noobs can’t see this yet, and they are going to get horribly burned by investing heavily in rust.
      They are all cheering each other on, watching videos from inexperienced “sw engineers” who don’t know any better.
      Rust has all the red flags of a massive train wreck in the making.

    • @shrootskyi815
      @shrootskyi815 Před rokem +2

      What exactly are the red flags that you're seeing?

    • @zaper2904
      @zaper2904 Před rokem +2

      @@steveoc64 *Fucking this* seriously Rust has been treated like the second coming of Christ for the past decade and yet there is still basically nothing that actually uses it its actually insane how *not* popular it is, its like the reverse Java.

    • @julianrachele757
      @julianrachele757 Před rokem +6

      @@zaper2904 The language is only 8 years old, give it some time. Firefox's entire JavaScript engine is written in it, and it's starting to be used more and more in the Linux and Windows kernels

  • @boody8844
    @boody8844 Před rokem

    Thank you for this! I was pretty overwhelmed.

  • @paulchamberlain7942
    @paulchamberlain7942 Před 3 měsíci

    Yours is some of the best advice around for programmers.

  • @snek_john_titor
    @snek_john_titor Před rokem +19

    C++ have good memory security features. But too much people write C code in C++ with is pointless

    • @snek_john_titor
      @snek_john_titor Před rokem +1

      @@satrac75 Yes. Rust, C and C++ still coexists well

    • @zactron1997
      @zactron1997 Před rokem +12

      That's the real problem with C++. It's all well and good that you "can" write secure and safe code, but it's entirely non-trivial to enforce that standard. And good luck trying to enforce it if you need any third party code!

    • @maleldil1
      @maleldil1 Před 2 měsíci +2

      C++'s memory security features are behind what Rust can do. For example, you have no way of encoding lifetimes in the type system as Rust does, so anyone can trivially write code that gets that wrong. There's also no enforcing of reference aliasing (e.g. many shared references vs a single mutable reference).

  • @hicknopunk
    @hicknopunk Před rokem +108

    I agree C is great as you need no libraries, objects or classes when creating software. Direct low level hardware calls give you full control of the audio chip/card.

    • @malcolmx86
      @malcolmx86 Před rokem +25

      C is godlike

    • @peter9477
      @peter9477 Před rokem +25

      Just an FYI, but you can do exactly the same with Rust, with only slightly more verbosity.

    • @parlor3115
      @parlor3115 Před rokem +3

      Ok, and what are the advantages of C?

    • @katekyy7
      @katekyy7 Před rokem +12

      ​@@parlor3115 Idk what do you mean but I have 2 answers:
      "Ok, and are those advantages of C?" - Yes.
      "Ok, and what are advantages of C?" - That you can directly manage memory. You pretty much have full control of your cpu. So pretty much what the main comment said. And that's not everything but obviously I am too lazy to write everything here.

    • @GlennHamblin
      @GlennHamblin Před rokem

      @@parlor3115
      Know it and you shall know.

  • @wagnerjosegertrudesmuitoal3638

    Thanks for the great advice!

  • @Zempi3
    @Zempi3 Před 10 měsíci

    This is so awesome! 😍This is exactly the question I faced just a couple of weeks ago.... and yeah, I chose C ❤

  • @psymcdad8151
    @psymcdad8151 Před 9 měsíci +3

    My friend had a very pragmatic approach to this question;
    "Take a look at some examplecode. Pick the one that looks appealing. You will have to pick up other languages allong the way, so start with one that you like on first look. Most important is to just start somewhere and then keep going."
    (Was C++ for me. Just recently decidet to go 'full C' after another 30-ish-hour-nightmare-debugsession-from-hell because returnvalues from templates that get funeld into frameworks wich in turn return a pointer to a polymorphed class with 35 levels or inherritance sucks quite some major cojones. And while I miss some features of C++ (references, operator- and function overloading) the general ease of use outweights those few drawbacks, IMHO)

    • @azimuth4850
      @azimuth4850 Před 5 měsíci +1

      Same exact thing happened to me. I think it depends on what you're using it for. Personally I am writing math programs that just need to do a lot of calculations. So I don't need all the complexity of C++, it's useless to me. I'll admit I still use vector though, because it's going to take me a while to be an expert at C.

  • @jongeduard
    @jongeduard Před rokem +57

    My advice would be to learn several programming languages, at least 3 or 4. So learn Rust and C, but do more if you can.
    I can at least recommend learning a combination of languages from which you learn all of these aspects: manual memory management, automatic memory management (garbage collection), procedural programming, object oriented programming (OOP) and functional programming (the latter one is gaining more popularity these days), strongly typed, loosely typed (scripting languages are often loosely typed). Many languages have a combination of those aspects, so you can often learn multiple things together.

    • @jessiegoodman9620
      @jessiegoodman9620 Před 11 měsíci +8

      Just dont add C++ to that list or you'll be learning 1 language forever

    • @FreestylStudio
      @FreestylStudio Před 11 měsíci

      Learn all languages! 😈

    • @jongeduard
      @jongeduard Před 11 měsíci

      @@FreestylStudio So you also know how many programming languages actually exist in the world? 😜

    • @FreestylStudio
      @FreestylStudio Před 11 měsíci +1

      @@jongeduard Can't be more than 500, eez peez

    • @U20E0
      @U20E0 Před 11 měsíci +1

      this is the most correct answer

  • @Korudo
    @Korudo Před rokem +1

    This was super helpful. Thanks for answering that question, and providing a proper context.

  • @S7rul
    @S7rul Před 6 měsíci

    I would add that it can be realy helpful too learn to read a little bit of assembly. The stack realy first clicked for me when I had to read and undrestand a function decompiled to assembly for school.

  • @madezra64
    @madezra64 Před rokem +26

    Just gained a new respect for you. Many Rust tubers try to shit all over C, that you should avoid C like it's Aids, that C is useless, etc, denying the fundamentals of systems programming and understanding of programming as a whole in general. C is an incredible language, BUT so is Rust. It's very refreshing to see a Rust advocate step up and be honest about it. I tried learning programming from Python, C++, C#, and a few other languages first and it was a literal nightmare. Without any logical understanding of what was happening behind the scenes I was basically at the mercy of whatever tutorial or teacher I had. You know print("Hello, World!") displays "Hello, World!", but you don't know why or how. You just ASSUME the computer sees print and displays your sentence. Now some tutorials are better than others and give you some insight into abstraction, but the reality is most don't, and with that lack of fundamental understanding most beginners are confused from the beginning to the very end. It's like okay I see what these things I typed potentially can do, but I have no way of manipulating into my own will and desires because I know fuck all about the basics beneath it... It was when I finally decided to learn some basic assembly (cause why not at this point of my confusion) did I FINALLY understand what I was learning at the higher level. It was the epiphany that all beginner programmers stride for. That moment where shit just "clicks" and you now KNOW the path you must take to get better and know what to look for and learn. Did I understand how to do anything specific? Fuck no! But I understand the path I needed to take. I understood I needed to learn a, so I could learn b, then approach c, for approaching d, and so on and so on. I didn't learn assembly, but I learned what a programming language actually was. That's when I jumped right into C and began accelerating and actually learning finally!
    I really don't believe Python is a good beginners language for this very reason among other languages.

    • @Fafr
      @Fafr Před 2 měsíci +1

      Well, I suppose Python works for those who want things magically done without caring about what happens there? I mean, I'm more than sure there are tons of people out there learning things solely so they get some sort of a job, not because they're truly interested in the language and its inner workings

    • @programmingloop7
      @programmingloop7 Před 13 dny

      Wait you tried to learn programming by going over 3+ languages, struggled and you think it's the languages fault? I think perhaps you were switching too often without giving yourself the time to solidify the concepts first. To go from Python, C++, C# and a "few other languages" and still having that level of confusion tells me the path that you took was the problem not so much the languages. I think the issue was that you didn't have a good roadmap so you were all over the place and it made things more difficult. It's a very common problem that beginners face so I completely understand where you're coming from, but I just wanted to clarify the programming languages weren't the reason because many many people have become successful software engineers without learning C first

    • @madezra64
      @madezra64 Před 13 dny

      @@programmingloop7 That is a fair point. I should also elaborate. Just reread my comment and can see how it sounds in hindsight. So basically my over all point was the lower level stuff seemed to snap everything in place? Like, everything from high to low felt very abstract in a way I couldn't grasp until I saw assembly and how that translates into higher level stuff.
      Basically I suck at explaining shit.

    • @programmingloop7
      @programmingloop7 Před 13 dny +1

      @@madezra64 I got you. Btw I do agree with you that learning lower level stuff will help grok these concepts in a deeper way

  • @IvanStamenkovicSeemsIndie

    C and Zig. Would recommend a lot

  • @agedvagabond
    @agedvagabond Před 4 měsíci

    I started using rust from c# and I am amazed how easy it is, rust seems to allow the use of higher level concepts that I commonly used in c# and I thought going to a lower level language would be difficult but generics and dynamic types are so much simpler and logical when down at lower level I wish I had learned it sooner, and the speed and memory usage! Amazing. I never used C but I did watch the cs50 videos that used c.

  • @johanngambolputty5351
    @johanngambolputty5351 Před rokem +2

    Absolutely, and this is coming from someone who has spent most of their time with python... knowing a bit of c at least, helps you appreciate things like deep copies vs shallow copies. But yeah, maybe python (or I guess any dynamic interpreted language, just less syntax and easier debugging to begin with) then c then c++ then rust :)

    • @demenevdmitriy4175
      @demenevdmitriy4175 Před rokem +2

      C++ is a rabbit hole

    • @johanngambolputty5351
      @johanngambolputty5351 Před rokem +2

      @@demenevdmitriy4175 Maybe, but it gave us RAII and zero cost abstractions, and in my view it's pretty sane in its approach to OOP which sometimes goes too far in other languages...

  • @billigerfusel
    @billigerfusel Před rokem +53

    C Syntax is just so simple and pure. Rust is like they tried to be as hipstery as possible.

    • @FlanPoirot
      @FlanPoirot Před rokem +12

      how is it hipstery? it looks exactly the same way as all modern languages (postfix types and keywords for everything). it's just how modern languages are built (it makes parsing way easier), if you look at languages built in the late 80s up to the mid 2000s you'll see that a lot of them just look like an extended C (Java, C++, C# and the likes)
      also the mechanics in the language are all there for a good reason, the borrow checker helps with memory bugs, expression based syntax reduces boilerplate and mutability by default reduces general complexity
      almost everything else is present in most languages and if u take the time to properly look at the language you'll see that it's not actually that different it merely is more pedantic with how u should write stuff cause it cares (sometimes a bit too much) about safety

    • @JorgetePanete
      @JorgetePanete Před rokem +2

      ​@@FlanPoirot because*

    • @FlanPoirot
      @FlanPoirot Před rokem +2

      @@JorgetePanete 🤓

    • @Simlo
      @Simlo Před rokem +5

      I feel like Python went as hipstery as possible

    • @RandomGeometryDashStuff
      @RandomGeometryDashStuff Před rokem

      ​@@SimloI like python syntax because it uses keywords of lowercase letters for most things and that's easy to search in google like 'python3 "{keyword here}"'

  • @thingsiplay
    @thingsiplay Před rokem +6

    I'm just doing light commandline programs for desktop in Rust since 2 years, but I decided to go into C too. The reason is, that so many programs are written in C and I can either port them to Rust or just help on the code base in C as it is. In example I can't do much in one of my favorite applications, RetroArch, because it is not written in Python or Rust. So, I'm going to learn C once and for all! Somehow, Rust gave me the confidence to do that. Not sure if that makes sense. Edit: I should have noted that I read the C Language from Kernighan & Ritchie book 20 years ago or so.

  • @felipedidio4698
    @felipedidio4698 Před rokem

    Very well said

  • @betatrix8474
    @betatrix8474 Před 7 měsíci

    one of the best videos I've ever seen
    idk why people try to choose 1 thing when they can learn everything !

  • @ulrich-tonmoy
    @ulrich-tonmoy Před rokem +6

    Well theres Zig and Nim
    Nim might be good for Web dev as its compile to other lang like c js and it has c like performance + python like syntax it should be great to build js packages quickly with Nim
    and Zig lets you use c and its promising and it lets you choose how you want you memory to be manage it gives all the choice out there so this should be great for performance type native and embedded system

    • @djazz0
      @djazz0 Před rokem +2

      I code embedded with Nim it’s great :)

  • @WizardOfArc
    @WizardOfArc Před rokem +43

    I fully agree with this C then Rust approach. A great book I used for learning C was « Learn C the hard way » …
    Although I think dabbling in Haskell can help explain some of the abstractions/ patterns that rust uses…🤔

    • @MrGriefCreep
      @MrGriefCreep Před 7 měsíci

      As a Rust dev with bits and pieces of C/C++ exposure, I agree as well. C is a powerful but very simple language which makes it easy to understand all of the concepts you need to make a compiled program, and knowing C will help with transitioning to Rust immensely, as Rust simply adds a layer of depth through borrowing from functional languages, much in the same way as C++ borrowed from OOP.
      Rust is my favourite systems language because when you fuck up, it makes it very clear how you've done so (and how to fix it).
      Some people take tissue with Rust's verbosity, that it is that which allows the language the safety it has. I simply think that going from C -> Rust should be the main systems dev pipeline over C -> C++.
      Hell, Zig is pretty cool too, but I really dislike the way it prints variables to stdout, so I don't use it much. Really it's all down to taste.

  • @Bp1033
    @Bp1033 Před rokem

    assembly is fun, it lets me put all my variables into display memory. just ignore that line of pixels on the top left.

  • @thepisewigeon
    @thepisewigeon Před rokem

    This was a really great video, funny and informative, noice

  • @thomasi.4981
    @thomasi.4981 Před rokem +34

    Learning C for one semester helped me enormously in my programming journey. Especially when, in the next semester, i taught myself Rust. C has made me a better programmer, just like he says. It's an insanely cool experience. Rust is fun, though. I enjoy the potent abstractions while knowing I've hardly lost any speed.

    • @dysania1832
      @dysania1832 Před 4 měsíci +1

      Do you know of any good ways to learn rust? I currently know python without oops

    • @thomasi.4981
      @thomasi.4981 Před 4 měsíci

      @@dysania1832 Reading the official online book "The Rust Programming Language" and running every single example it gives in your IDE (VSCode) is the best way in my opinion. That's how I got started.

    • @ultimatedude5686
      @ultimatedude5686 Před 2 měsíci

      @@dysania1832Look into rustlings. It has a bunch of challenges that walk you through the syntax, borrow checker, and some of the common types from the standard library.

    • @amihartz
      @amihartz Před 2 měsíci

      @@dysania1832 ChatGPT. Just try to program something and whenever you get stuck, ask it a question. Don't ask it to write your whole program for you. Try to write the program yourself, and only ask it things when you get stuck. If you think, for example, your program might benefit from having a class, you can ask ChatGPT "hey, does Rust have classes, and if so, how can I create one?" ChatGPT is good because even if you ask it a silly question it often will point you in the right direction.

  • @zilog1
    @zilog1 Před rokem +121

    Another thing to note is that C is crazy small for a language. The entire manual is like, 100 pages. I would say its actually a good beginner language.

    • @hwstar9416
      @hwstar9416 Před rokem +14

      Where can I find such manual?

    • @zilog1
      @zilog1 Před rokem +25

      @@hwstar9416 The C Programming Language. 2nd Edition. google it. stop asking people to do things for you. you cannot have random people on the internet hold your hand. do it yourself or you will never be successful.

    • @nates9778
      @nates9778 Před rokem +215

      @@zilog1 You went full stack overflow with your answer there calm down.

    • @jvmgang
      @jvmgang Před rokem +98

      ​@@zilog1 was that really necessary? He asked for what manual you were talking about, it's not clear that you meant the C programming language 2nd ed. in your original comment

    • @NostraDavid2
      @NostraDavid2 Před rokem

      @@zilog1 get the hell out of here with that attitude! Some people simply learn better from humans. And you post about some nebulous manual and then act pissed when someone asks? You're acting weird, my man.
      Props for giving the source though.

  • @wege8409
    @wege8409 Před 14 dny

    I started to try to learn c a little while ago but I had so much trouble trying to set up a GUI. I am considering learning Rust instead just for the package manager and ease of setup.

  • @melvyn99
    @melvyn99 Před měsícem

    There is a different kind of developer we have today. Everything is library or an import so all people are doing is someone elses code to put things together. I'm glad to see more people going down the road of learning lower level languages. It changes the way you see computers and the software that you use on a daily basis.

  • @lightinside87
    @lightinside87 Před rokem +2

    C is a language that can't be replaced, if a language is built from C people will try to replace it. But here's the catch, C implements itself into other languages. Like putting MySQL Js Php and C, in microcontrollers and PLCs python bash and C, Java. Java is dirty but you get the idea. The bare bones of C will have security issues but there are other versions of C that were created and updated throughout the years. If C has security holes, it can be fixed by creating functions and libraries.

  • @tokiomutex4148
    @tokiomutex4148 Před rokem +6

    By learning C you won't understand how processors work, only what they do at the high level.

    • @yokunjon
      @yokunjon Před 11 měsíci +1

      Shhh, don't spoil it. Some people just want to feel different from others; it's c00l.

    • @ElPikacupacabra
      @ElPikacupacabra Před 11 měsíci +1

      True! But you still get more than with Rust. Really, any good programmer should have seen some assembly and how function calls work.

    • @fullmontis
      @fullmontis Před 5 měsíci +1

      you do understand how memory works though. Endianness, cache, how data structures are packed in memory, pointers, segments etc. All of that is abstracted away in GC languages, and it makes it unnecessary to understand how your program is mapped in memory. Maybe people are right in seeing pointers as dangerous, but the first time I was able to change a variable by overflowing a buffer it made me feel like I could see the matrix lol. You can't get that feeling of freedom and power with raw pointers from any other language, and I would say it's for the best, but you can't deny it's something that every programmer needs to experience at least once in their career.

  • @Nintron
    @Nintron Před rokem

    Fantastic video! 👏

  • @nelsonfleig5024
    @nelsonfleig5024 Před 3 měsíci

    I am currently the full stack chad in the video, but learning C to learn memory management and hopefully be able to do some lower level stuff. I've been wanting to get into Rust, but at this point it feels pointless since I wouldn't be able to appreciate the reasons why it was created and the kind of problems it solves.

  • @pjf7044
    @pjf7044 Před rokem +15

    Maybe I’m just too inexperienced but after trying rust and then trying C, C seems to be a bit “easier for me”. I am primarily a JavaScript developer . It’s interesting because I was very intimidated of C which is why I chose rust (and nearly GO) … but after trying rust and then hopping over to C, I find C a bit easier to learn

    • @peter9477
      @peter9477 Před rokem +8

      C is definitely easier to learn. Smaller cognitive footprint. On the other hand, Rust's advantages do ultimately outweigh the cost of learning it so it's worth the investment.

    • @TehKarmalizer
      @TehKarmalizer Před rokem +6

      C is definitely easier. Which makes it easier to do things wrong. The difficulty in r*st, especially for people unaccustomed to memory management, is often that it makes memory errors very difficult while C makes them very easy.

    • @oddikaro8236
      @oddikaro8236 Před rokem

      C syntax is much more direct and clear than Rust syntax, so it is easier to think and write what you want. However, as long as your program/software increases, crashes will also increase most likely.

    • @oddikaro8236
      @oddikaro8236 Před rokem +1

      @@peter9477 Yes...and no...almost 0% of software is made in Rust. Almost anything is made in C.

    • @peter9477
      @peter9477 Před rokem

      @@oddikaro8236 I'm not sure what your "no" is referring to. How widely Rust is used relative to C has little bearing on the cost-benefit ratio, although I will note that, despite less adoption, the existing Rust crates are *far* easier to add into a program and therefore far more effective than any existing C code, so even with its "0%" adoption rate it's still easily paying off its own investment quickly. I speak from experience, having written C since the 80s...

  • @ErikBongers
    @ErikBongers Před rokem +6

    I fully agree. In order to understand the moderate annoyances of Rust you need to feel the excruciation pain of C, I mean that constant anxiety of "I think I covered all edge cases...right?". I'd even go one step further: after learning C, try to refactor your programs to C++, using idiomatic C++ to avoid the dangers of C. Only THEN will you breathe a sigh of relief when seeing how much better Rust has implemented the safeguards.

    • @DissyFanart
      @DissyFanart Před 5 měsíci +1

      and even then people on the internet will sit around saying you're not a real dev because you choose to use rust and avoid pulling teeth every time you try to do basically anything.

    • @DS-nv2ni
      @DS-nv2ni Před 3 měsíci

      @@DissyFanart Maybe because what you say is not true and you are delusional?
      "avoid pulling teeth every time you try..." what?
      Make an example of something that you do often while programming for which C/C++ are such a pain? Are you a civil engineer on a nuclear plant? Do you program embedded systems for life saving situations? What kind of programmer are you to need that extra safety (and btw not having solid frameworks for that already in your prod at the same time after ALL these years of experience you have) ?

    • @ultimatedude5686
      @ultimatedude5686 Před 2 měsíci

      @@DS-nv2niSecurity is important for most large projects, and 70% of security vulnerabilities are memory-safety related. Rust is designed to mitigate these issues without sacrificing performance.

  • @DerSolinski
    @DerSolinski Před rokem +1

    Ha, didn't expect sound advice.
    Good one. The trolls are probably disappointed now.
    I personally think dabbling a bit with assembly is a good educational exercise too.
    Nothing fancy, e.g. building a deadpan calculator app would suffice. Gives tremendous amounts of insight.

  • @maevefinley92
    @maevefinley92 Před rokem +1

    Found this video today. Was pretty funny and shared it with my friend because I thought she might enjoy it. Also. My absolute first programming language is C and I started learning it like a few months ago. I had to stop though because I felt like I was making no progress. Decided to try again 4 days ago and started to get more on the correct path. I also did get a look into Rust when my friend showed me some of the code she made. It did interest me but I decided to master C first. Then I will take a deeper dive into Rust. I just need a mentor to help me though because I need to have some guidance in my journey to learn C and programming in general.

    • @FastRomanianGypsies
      @FastRomanianGypsies Před 8 měsíci

      SIGSEGV will be your mentor

    • @azimuth4850
      @azimuth4850 Před 5 měsíci

      You will be glad you learned C. Knowing a "lower-level" language will improve your skills even if you go on to specialize in some other language. Also if you ever get into an application like AI or Data Science where speed is essential, C is really the only way to go. I recommend the book by the original creators of C: "The C Programming Language" by Kernigan and Ritchie. Its a very good place to begin for a beginner. Be sure to do the exercises and have fun!

  • @allesarfint
    @allesarfint Před rokem +4

    That dude is not a real Rust programmer, didn't said "Rust btw" even once smh my head.

  • @sprytnychomik
    @sprytnychomik Před rokem +5

    Actually, first things that a programmer should learn are algorithms and data structures. Language then is just a way to express them. C and ASM are great languages to delve into computer architectures and writing efficient code.

    • @gappergob6169
      @gappergob6169 Před 10 měsíci +3

      Algorithm is not that necessary for beginners, it will instead make things appear more complicated than it seems.
      Most beginners project doesn't need much. Just basic design pattern, db, basic of network, some os stuff. They can grow from there, as they get more comfortable writing code.

  • @edwardmurphy440
    @edwardmurphy440 Před 3 měsíci

    Agree. Learn C first 1) it is a simpler language 2) you will understand computer architecture when you have learned C, 3) you will really appreciate the guardrails Rust puts in front of you before it will compile your program. Idiomatic safe Rust hides so much (which is ultimately very good) that starting there will actually make it harder to learn the why of Rust; why Box, why RC, why Arc?. I would learn to program in C, then learn data structures in C, then learn to code in Rust.

  • @HyperFirezAlt
    @HyperFirezAlt Před rokem +1

    3:30 I 100% agree here. I started with Java as my first language (modding Minecraft when I was like 12 and used it in High School classes) and initially taking classes in Uni with C++ was a bit of a shock. C/C++ provided the groundwork for the higher level objects in a language like Java. I feel like if I had learned C or C++ first, then Java would have made a lot more sense going into it. At this point however, I am very confident in both Java and C++ and I hope to have opportunities to use other languages such as Rust in the future.

    • @kingofhiskingdom4616
      @kingofhiskingdom4616 Před 9 měsíci

      Hi, as someone confused btw c++ and java right now. What should I go with. Which one is good as foundation and you can build cool and gui projects

    • @HyperFirezAlt
      @HyperFirezAlt Před 9 měsíci

      @@kingofhiskingdom4616 Java is by far easier to build GUIs with, same with C#. C++ is better if you want to build a solid foundation however.

  • @georgehelyar
    @georgehelyar Před rokem +15

    Everyone should learn C. It's not hard to learn, learning it teaches you a lot about how computers/languages work, and it's actually useful. I've had to drop down from another language to C several times for work.
    Then crash your C program a few times and rewrite it in rust, to appreciate the benefits that rust brings.
    If you just learn rust as your first language then it will seem hard and you won't understand why it is great.

    • @bobsmithy3103
      @bobsmithy3103 Před 7 měsíci

      Would you recommend C or C++? Usually I see job listing for C++ but not C so wouldn't learning C++ be better?

    • @henryshaw1437
      @henryshaw1437 Před 7 měsíci

      You can essentially learn the core aspects of C in like a week. Then, everything you learn in C is more or less directly applicable to C++ or C++ provides a "better" way to do what you would do in C. This is because C++ is for many purposes a superset of C (if you are gonna nitpick this statement, no body cares about hand countable number of C99 and beyond features that make C different) althought modern C++ has a lot of different features, that some people encourage over using C like constructs in C++.

  • @lazyh0rse
    @lazyh0rse Před rokem +9

    As someone who tried learning C, then got discouraged then tried C++. I would say C++ is usually enough in my opinion, you will not be a C wizard probably, but you will definitely learn a lot of C since most C++ libraries take advantage of C code or even written completely in C and you will use them like C. Anyway, just my thoughts. I found that the road to C++ was much easier ime.

    • @189Blake
      @189Blake Před rokem +1

      Interesting, C is more basic than C++, which in my case meant that I grasped better C than C++. With C++ there are so many features and updates that I know whatever I do, there will always be another way to do it, with its pros and cons. With C is just one way, period.

    • @lazyh0rse
      @lazyh0rse Před rokem +1

      ​@@189Blake You are right, but it's more that I could do something with C++ rather than it being "easier", since you have the standard library. But C, you have to build everything from the ground up. You could use libraries to speed up the job, but what I'm saying is that why not learn C++? I don't think you will learn less C, rather you would have both solutions and you can test and see what you like. In my case, I learn a lot of C even though I do C++. So I think it could benefit you more if you just went ahead and chose C++. If I'm to go the C route now, I would be able to hold up just fine. It's not like you would go 180% degree...

    • @kevinyonan9666
      @kevinyonan9666 Před rokem +2

      Keep in mind that C & C++ are not the same

    • @danielhalachev4714
      @danielhalachev4714 Před 6 měsíci

      Absolutely. C was overwhelming for me. C++ was enjoyable.

  • @johansteenkamp9214
    @johansteenkamp9214 Před rokem

    I think with with recent flood of articles on the Internet regarding the new T&C's of the Rust Trademark, a small group of people might be turned off to start learning Rust, especially if they plan in the future to write some educational content for a living.

  • @jacklwipa1187
    @jacklwipa1187 Před rokem

    Loving the beard 💪🏽

  • @therealb888
    @therealb888 Před rokem +9

    This is literally my dilemma RIGHT NOW!
    I'm not even exaggerating. I want to start building my projects ASAP & be productive. My area of interest (hw security & crypto) seems best suited for rust. But math,C, asm, computer architecture, memory, DSA, OOP are topics that would help me with a long term career.

    • @brumd21
      @brumd21 Před rokem +4

      You can do "math, asm, computer architecture, memory, DSA OOP" in Rust too :)

    • @eternal_flam3-145
      @eternal_flam3-145 Před rokem +2

      Honestly, it's probably a good idea to start in Rust. You'll want to start with something that will keep you interested, and then once you start finding interest in other fields, you can start venturing into C.

    • @therealb888
      @therealb888 Před rokem

      ​@@brumd21 thank you, I really love safety & performance rust brings, I'm a big fan of it. I guess I'd be more excited learning rust than any other language because I value it's benefits.

    • @0xCAFEF00D
      @0xCAFEF00D Před rokem

      One is a language which requires a lot of work to learn and understand. It forces you to learn about several high level language topics it's implemented and some it's invented.
      The other is a simple language that offers a thin abstraction over memory (less true every decade) that makes for a helpful model of most underlying machines you'll encounter.
      I think you should try Rust and see if you're really learning what you hoped. Because most of the things you mention are orthogonal to language choice and could be learned in either language. I'd prefer a simpler environment for that, but maybe you don't.

    • @0xCAFEF00D
      @0xCAFEF00D Před rokem +4

      @@therealb888 You shouldn't have preconceived notions about something you don't know based on what people say.

  • @shaunkeys7887
    @shaunkeys7887 Před rokem +5

    I wholeheartedly agree with this, with one extra clarification: Don’t spend too much time on C if you don’t need it. Learn the basics, understand how it works, and break some things. Then transition to Rust for production code. Obviously, there will be exceptions to this, because C is far more prevalent than Rust, but if you’re starting something new, you’ll usually be able to make better, more secure programs faster with Rust.
    Related side-note: Cargo is AWESOME! My biggest pet peeve with C is the barrier to entry for building any program with more than a few files. Build systems are HARD. Cargo may not have all the features of an old C build system, but it’s SO EASY. I can spend weeks on a build system for a C program or I could just use the defaults provided by cargo and be up and running in mere moments

  • @oefzdegoeggl
    @oefzdegoeggl Před 8 měsíci

    of course c first, then rust. but i'd like to add assembly in between, as this will allow you to understand what's going on behind the scenes.

  • @SnakeEngine
    @SnakeEngine Před 5 měsíci +2

    Everyone should learn C as this is the thinnest layer over Assembler that allows you to write high level code. Once you understand how to write it in C, you will be able to understand any language and concepts in a very profound way.

  • @JB52520
    @JB52520 Před rokem +4

    Rust is A LOT harder to learn than C. Never learn it as a first language unless you're freakishly genius or you're really into crushed dreams and mental breakdowns.

    • @abisarwan20
      @abisarwan20 Před 10 měsíci

      really ? i never really take my time for rust xD but i'm interested in

  • @SkegAudio
    @SkegAudio Před rokem +3

    I learned Python then Rust. The journey was painful but worth it.
    It has helped me write better code in other languages, including C.

  • @jaysistar2711
    @jaysistar2711 Před rokem +2

    No love for Zig? I'm going to go with learn Zig 1st, and Rust 2nd. To fix or port existing things learn C 3rd, C++ 4th.

  • @JaykPuten
    @JaykPuten Před rokem +1

    Hearing this reminds me of an old presentation or textfile I can't remember
    I *think* by cult of the dead cow
    (I'm 38... I'm old look it all up if anyone thinks I'm making this up)
    Smashing the stack for fun and profit
    Anyone else remember that?
    Awesome for the time as it was something that hadn't been covered in a like "we" sense rather than people just individually figuring it out and and keeping it to themselves...
    Yes alot of this is irrelevant...
    But I'm also interacting so you know the algorithm shows this channel to more people

  • @zawizarudo7295
    @zawizarudo7295 Před 11 měsíci +9

    Fun Fact: There are many static analysis tools for C like splint and clang static analyzer. So using them is like using borrow checker but in C. (Borrow-checker is also a static analysis tool)

  • @WarrenMarshallBiz
    @WarrenMarshallBiz Před rokem +3

    For me, it's about the basics. If you don't know what's happening under the hood, then it's hard to appreciate what Rust is bringing to the table. And I'm one of those who still uses C as my primary language because I find it expressive and freeing. But I do see what Rust is doing and it's not a bad thing.

  • @Pocketkid2
    @Pocketkid2 Před rokem

    In terms of learning, C is more important because else how could you appreciate what Rust does or does not bring to the table? Or any other programming language for that matter?

  • @dale116dot7
    @dale116dot7 Před 6 měsíci

    Most microcontrollers have an available C compiler, not all micros have any other compiler available. Although there are plenty of microcontroller applications written in assembly.

  • @xloppyschannel4881
    @xloppyschannel4881 Před rokem +3

    I tried more languages than my age, and I have to say use whatever you want to, either way your code is gonna be so bad that it should land you in prison.

  • @SarahGreyWolf
    @SarahGreyWolf Před rokem +3

    Personally I feel that writing learning Rust first can be very helpful for learning C in the future, working with the borrow checker and race safe threads can help you to realise where in C you need to be cautious with your memory management and watching your variable usage, and getting into scenarios that I did need to use raw pointers in Rust, is really helpful for then going on to experiment with C

    • @cthutu
      @cthutu Před rokem

      In my experience it's the other way round (mostly with C++). You understand why the ownership model in Rust is great. You understand why there are lifetimes to avoid dangling pointers because you're familiar with those problems in C/C++. But going back to C/C++ afterwards does make you a better C/C++ programmer.

  • @FA18_Driver
    @FA18_Driver Před měsícem

    LOL This was hilarious! Good job :D

  • @heitormbonfim
    @heitormbonfim Před rokem

    a hell of an actor you are!

  • @davidtozz
    @davidtozz Před rokem +6

    Well, with C you're getting your hands dirty. Literally.

  • @IonizedComa
    @IonizedComa Před 2 měsíci +2

    I've always said that C is the best language for beginners. The concepts translate to other languages, forces you to pay attention to how the stack and heap work etc.

  • @gnagyusa
    @gnagyusa Před 14 dny

    Good advice.

  • @nebulaeandstars9100
    @nebulaeandstars9100 Před rokem

    frankly, I'd say to learn both, plus maybe some assembly (ARM is good if you have a chip you can use)
    Use C and assembly to learn about how computers work, how programs interact with an OS, etc.
    Then use Rust to develop instincts around memory safety, as all it really does is force you to follow best practices

    • @wheeI
      @wheeI Před rokem

      arm is so easy to learn, 1000x easier than x86 due to being risc (what the fack is a cvttss2si???) and i'd say it's easier than c++. not c though, c is super simple.

  • @zactron1997
    @zactron1997 Před rokem +15

    Ok I understand the "You should learn C first because it teaches you how a computer works" argument is really common, and I used to believe it as well. But now I actually think this is a bad take. Despite what everyone thinks their start in programming was, nobody started writing in C.
    My grandfather's generation learnt by writing ladder diagrams, a trivial language with arbitrary rules and little bearing on the fundamental hardware.
    My dad's generation learnt by writing in BASIC, a trivial language with arbitrary rules and little bearing on the fundamental hardware.
    My generation learnt with JavaScript, a trivial language with arbitrary rules and little bearing on the fundamental hardware.
    Sure, in a computer science course at the university level you'll learn something like C right now, but does C really teach you how a computer "works"? It completely obfuscates how registers, caching, context switching, etc. work. C only feels bare metal because you already know how a computer works and you're projecting over the gaps.
    By the logic of "learning how a computer really works", you could make the argument that people should be writing assembly as their first language, and some schools still believe that. The problem is, assembly is awful for teaching how to think algorithmically.
    This is why most schools would teach maths and assembly: something high level for algorithms, and something low level for implementation.
    Now, we're in a world where languages are expressive enough, and computers are fast enough, that you can write complex algorithms in a very expressive language and compile them down to fundamental instructions.
    The C memory model is no less arbitrary than the Rust model.
    After all of that, I still think you should learn C, but not because you need it to understand a computer. You should learn C for the same reason you should learn Zig, Rust, TypeScript, BASIC, etc., Because knowledge is transferrable, and learning anything helps with understanding everything.

    • @mikethemonsta15
      @mikethemonsta15 Před rokem +1

      My start in programming was writing C

    • @zactron1997
      @zactron1997 Před rokem +2

      @@mikethemonsta15 That's awesome! No sarcasm or malice intended. But I would ask:
      1) Was it actually your first ever exposure to programming? (No high-level algorithms course in mathematics, no BASIC/Python/JS/etc.)
      2) Do you think you represent a common experience?
      I think there's a bias in these kinds of communities towards the savant. You already have to be either very enthusiastic or very good at programming to watch these kinds of videos, and I don't think that makes us a good representation of most people's experiences with programming.

    • @mikethemonsta15
      @mikethemonsta15 Před rokem +5

      @@zactron1997 That was my first exposure to programming. No algorithms or anything. No high level languages.
      I don't know if it's a common experience, I haven't surveyed anyone. But it is what I recommend to every new prospective programmer starting out. Start out with writing a simple console text adventure game in C. It'll teach you the basics about I/O, functions, data structures, string manipulation, and when you get something on screen, it feels real and very satisfying.

    • @UnworthyUnbeliever
      @UnworthyUnbeliever Před rokem +1

      ​@@zactron1997
      I have similar situation. my first programming language was C, and I'm very happy about it (i started around two years ago) but since then, i become a programming languages junkie.
      Also the saying "[...] by that logic one should start with assembly language not C [...]" is faulty reasoning (slippery slope fallacy), the 'low level' argument in favor of C does not extend to assembly language.
      Plus, 'low level' is not the only argument in favor of c, 'simplicity' and 'high return-for-effort' are two further arguments. Simplicity means among commonly used programming languages c is the simplest one to learn ( (simple != easy) && (simple != easy to master)). "High return-for-effort" means since it is so simple, it doesn't take much time to learn as use-case agnostic language, compared to POSSIBLE use cases one might have.
      All things combined, C is the best use-case agnostic beginner programming language.
      Dont even think about functional programming languages.
      ALMOST all books that teach OOP-supported programming languages start with classes and not with primitive concepts, which is bad way of teaching IMO.
      UI-enabled programming languages are bad beginning. (So basically JS)
      Also, JS is also bad beginning language (independent of aforementioned point).
      In-development programming languages with lacking beginner friendly teaching material are bad beginner languages, so Nim, Zig etc.
      C, python, go, php are examples of good beginner languages, IMO.

    • @felippealmeida8075
      @felippealmeida8075 Před rokem +2

      my first language happened to be C, and the thing is I dont see why people see it as hard, its just a bit less easy going than JS, and what does people mean by understanding how a computer works? The only thing I can think of is working with pointers, thats what I learned of more complex on my college, which isnt that hard once u define the types, u are just implementing data structures before using then, the diff on JS is that they came already built for you. Do people think C is hard?

  • @eljuano28
    @eljuano28 Před rokem +6

    C is the language of the gods. Rust is the language of the gods irritated killjoy wives telling them the platypus is a bad idea.

  • @davidkacmar6522
    @davidkacmar6522 Před rokem

    Start in assembler x86 to learn memory management and than go to C :) (doesn't have to be specific x86 but that's standard imo)

  • @dogyX3
    @dogyX3 Před rokem

    Now you gotta do C Vs Zig

  • @zvqle
    @zvqle Před rokem +8

    C Programming Language Gang
    👇

  • @norude
    @norude Před rokem +2

    Rust is faster than C, safer than C and syntactically better than C.

    • @happygofishing
      @happygofishing Před 11 měsíci

      Nothing is faster than c

    • @norude
      @norude Před 11 měsíci

      @@happygofishing Oh yeah? Create a hashtable

    • @raianmr2843
      @raianmr2843 Před 10 měsíci

      don't agree with the first claim but +1 because propaganda is important 😂

    • @joseoncrack
      @joseoncrack Před 2 měsíci

      Rust is faster than light.

  • @michaelschnell5633
    @michaelschnell5633 Před rokem +1

    Of course it's true that with C you can learn the hard (and thorough) way how computers work and how badly you can fail to translate your ideas into code - while Rust in many cases just denies to compile nonsense. But (1) it might be helpful that Rust's error messages provide explanations on what is abysmal, and (2) doing ASM is even more brutal than C on that behalf. Hence you should start with ASM to really get wet.
    (In fact I did start with doing ASM on a cupboard I don't even recall the name of any more , and then some 30 more ASM variants and some 20 higher level languages and now finally very delighted by slowly improving on Rust)

  • @dimaryk11
    @dimaryk11 Před 12 dny

    That's like the path of learning every language. Learn C first then learn something else after. Understanding C gives you a really good foundation

  • @caddr
    @caddr Před rokem +1

    Yes, C first and then Rust, sometimes you need FFI that only C can do in other programing language

  • @maximkulkin2351
    @maximkulkin2351 Před rokem

    Exactly! I was advocating for this order for a long time! You need to understand what high level language gives you to appreciate it.

  • @bellissimo4520
    @bellissimo4520 Před 6 měsíci

    I've been working with Java ever since it was introduced. But before that, I also programmed in C for a few years, and before that, back on my Atari ST computer, dabbled in assembly. I absolutely agree that learning a low-level language like C is very valuable, even when you don't want to use it later. It really helps better understanding what that stuff in a high-level language like Java does under the hood.
    Also, as of right now, with Rust still being quite young, you will likely find more job openings asking for C programming knowledge than for Rust. So for this reason alone I'd recommend learning C first.

    • @toby9999
      @toby9999 Před 6 měsíci

      Did you find it difficult to transition to Java after learning and using C?
      I also dabbled in Assembly way back in the 70s and 80s. Subsequently, I've been a C/ C++ developer for 25 years but completely failed at transitioning to Java. I hate the language literally and conceptually and I hated the whole java ecosystem. We're forced to use the Eclipse IDE. And what a peice of unstable bloated crap that is. And since our dev team has been moving away from C++ toward Java, I'm effectivelly being forced into early retirement.

  • @ssholum
    @ssholum Před rokem

    Really, you should just learn assembly first.
    Then go to ladder logic.
    Then C.
    Industrial control systems are fun. I want to go back to that someday.

  • @nevokrien95
    @nevokrien95 Před 9 měsíci

    Another field where learning c may not really help is ml.
    Not because we dont care about performance we really really do. But because gpus work differently to cpu.
    So I guess there it's learn c and then learn cuda so u can use it in c and understand the gpu

  • @robcab3725
    @robcab3725 Před 9 měsíci

    the 'i go to frat parties you don't'-bit was really good lol

  • @henrymaddocks984
    @henrymaddocks984 Před rokem

    I learnt C on MacOS classic. There you could lock up the computer so the only way to recover was turn it off.

  • @GmanGavin1
    @GmanGavin1 Před 6 měsíci

    So I made a rotating cube learning C++ / OpenGL and omg I was not prepared.
    NO ONE BRINGS UP:
    The build system for C / C++. I thought the scariest part was manual memory management but now when I hear about C / C++ I just think of needing to write Cmake files to build the stupid thing.

  • @SouravTechLabs
    @SouravTechLabs Před rokem +1

    It's like saying Vim or Emacs? Both :p (What a nice way to avoid conflict)
    Just kidding, I agree with you. It was fun with your other friends LOL.

  • @Mystixor
    @Mystixor Před rokem

    Well said.

  • @RockTo11
    @RockTo11 Před 7 měsíci

    It's actually not difficult to write safe code in C. Most people just don't think of their code from the fundamental point-of-view of how the program is executed, and how memory is used. There are perfectly suitable OS native APIs for memory allocation and usage.

  • @MochSalmanR1295
    @MochSalmanR1295 Před rokem

    Hello, @LowLevelLearning , can you make a videos how you understand about low level programming. right now I'm a mobile developer. I'm very enjoyed watching your video explaining low level stuff in very enjoy and clear explanation. can you tell me what i ha ve to do in order understand low level stuff right now i want to switch to become ML Engineer? Thanks

  • @jan5504
    @jan5504 Před 5 měsíci

    so which should I learn first if I want to venture on ethical hacking C or assembly? (Ignore the profile I don't how to change it, no connection. )

  • @sharperguy
    @sharperguy Před 9 měsíci

    i think it should be possible to create learning material to teach someone the fundamentals of computer programming, including the low level details, using rust. But to my knowledge, nobody has done it yet.

  • @alcar32sharif
    @alcar32sharif Před 3 měsíci

    Order of German CS students learned programming in 2007:
    1. Semster: Haskell (Functional Programming)
    2. Semester: Java SE 5 OOP
    3. Semester: C on ARM to build a complete OS from scratch.
    So it was from exotic, to easier, to hardcore and it was great 😃👍

  • @demonikidoff4613
    @demonikidoff4613 Před 11 měsíci +1

    I'm learning both. It's cool.

  • @pabblo1
    @pabblo1 Před 11 měsíci +1

    C is incredibly versatile. You can run it on anything, from a Commdore 64 from the 1980s, to an AMD Ryzen powerhouse from today.