Why C? - CS50 Podcast, Ep. 7

Поделиться
HTML-код
  • Опубликовано: 8 сен 2024

Комментарии • 131

  • @furrukhjamal00
    @furrukhjamal00 5 лет назад +327

    I took cs50x in 2016, took me nearly 8 months to finish the course. 2 years later I would agree that starting with C was the best decision and format structure for CS50. It should always be like this

    • @rajab4187
      @rajab4187 5 лет назад +5

      I started C++

    • @smort123
      @smort123 3 года назад +12

      @@rajab4187 🆗🆒

    • @smort123
      @smort123 3 года назад +1

      @Dario Kayden fuck Off bot

    • @hetaeramancer
      @hetaeramancer 3 года назад

      what was the course called? is it in this channel? does it teach you how to program using C? please tell me...

    • @XMoresh
      @XMoresh 3 года назад +9

      They are expert in programming .if they schadule that we learn C first. There is something that we dont know

  • @judahb3ar
    @judahb3ar 2 года назад +36

    I started learning programming in JavaScript, then took CS50. Wow, the difference in my understanding of "what is going on under the hood", so to speak, has been so beneficial. Seems like starting in C is a great choice.

    • @loremipsum928
      @loremipsum928 Год назад +4

      I have the same experience. CS50, particularly starting with C, filled in so many gaps in understanding the fundamentals in programming and made me write better code.

    • @vivekkoul4428
      @vivekkoul4428 Год назад +3

      My journey also quite similar. Started CS50 in Feb last year with no programming experience. Found week 3 too hard so stopped further. Then switched to web development and javascript from October 2021. Learned a lot of JS. Then came back again to CS50 to know something which every software engineer should know. And now i am on week-6! Planning to complete before 1st Jan 2023. I feel it's problem sets are really hard for a complete beginner. So because of this reason I feel that this course is best for both beginners and those with some coding experience. After gaining some programming experience using javascript i came back again and solved those psets. In all this is the best course u have ever taken

  • @chaomanu
    @chaomanu 3 года назад +70

    I studied python first for a few months as my first language and then started CS50. It really helped me solve those problem sets, just by giving me an idea of how to think as a programmer

  • @Whatdisaypt1and2
    @Whatdisaypt1and2 Год назад +84

    Never stop teaching c. It will always be the best first language. Keep calm and free your mallocs

  • @divyam._.maheshwari
    @divyam._.maheshwari 2 года назад +57

    Why C? The answer is simple: Theory of Relativity. David just thought: let's first show them the hardest programming language, so later when they see Python (which is objectively still hard), it feels like a walk in the park. Genius move right there, @cs50.

    • @katarzynakapusta2525
      @katarzynakapusta2525 2 года назад +15

      Right? And wasn't it a brilliant idea to start with Scratch, and soon translate those splashy-coloured blocks into sets of curly braces, so that they don't seem like an extra layer of obscurity anymore (or at least less so :p)?

    • @divyam._.maheshwari
      @divyam._.maheshwari 2 года назад

      @@katarzynakapusta2525 Yes! CS50 is awesome.

    • @donovanm.8909
      @donovanm.8909 2 года назад

      this reply is asinine. i dont need to learn manual driving to know using an automatic is much better. i have eyes. it really is that simple, im sorry you have no imagination.

    • @stopthecap8810
      @stopthecap8810 Год назад

      thats not what the theory of relativity means you fucking pretentious moron.

  • @fsociety852
    @fsociety852 5 лет назад +12

    i'm follow MOOC curriculum Computer Science from Prof James Leland Harp and I study alone . I always look forward to CS 50 podcasts because when i followed CS50 Harvard i didn't feel alone. I feel I'm joining the student community of computer science

  • @islandcave8738
    @islandcave8738 2 года назад +7

    I think one advantage of starting with C over Python for beginning, is because I think the strong typing, makes it easier to communicate the concept to the learner that there are different "types" of variables.
    Also, it is better than C++ or Java or C# for a starter language, because object orientation is a more advanced concept, that is more easily understood once you understand basic variables and functions well.
    And yes, the low level aspect, but not too low level of assembly, is good, so that the learner can form an appreciation of what the computer is doing without getting too used to high level stuff first is good.
    Also, pointers are not that hard, if well taught.

  • @johnkriervillanueva5112
    @johnkriervillanueva5112 3 года назад +25

    I agreeeeeee soooo much! I'm so thankful that I got to learn C first because later on, I have a better view of what goes on underneath. Let's take houses metphorically for example, when something goes wrong in a house and you don't have the blueprints, it's quite hard to decide on what's the best approach to fixing it. Whereas when you know what's underneath, you can pretty much start out on the path closest to the problem.

    • @donovanm.8909
      @donovanm.8909 2 года назад +1

      except you still have the blueprints, they're just written using modern standards. you wouldn't build a house or even start to learn how to build a house using old engineering techniques would you? using old tools for drawing doesn't help you to understand how new ones work better. you're using an incomplete metaphor to describe an idea you cant even comprehend.

    • @mikatu
      @mikatu Год назад +1

      @@donovanm.8909 exactly. people eat any BS nowadays. it is different knowing how stuff works and learning old techniques which have nothing to do with it.

  • @JoArtsDev
    @JoArtsDev 2 года назад +11

    man I got to admit that from Malan I've learned just as much about english dictionary (as non native speaker), this guy always has me googling "new word Ive never heard of" meaning.

  • @IMWATCHING501
    @IMWATCHING501 3 года назад +5

    I would like to share my experience for all of you who dislike or disprove of teaching C as first language.
    My first language was not C, it was JavaScript which has some syntax similarities to C. What happened to me when learning JavaScript, I found myself many times asking "what hell is going on under the hood" and ended up working my way backwards from a high level language back to a low level language. If you considering to get serious at programming I would argue that learning low level programming is mandatory, for your own sake.

  • @adamantinebipartite4732
    @adamantinebipartite4732 5 лет назад +13

    Good talk, you and Brian are a dream-team. Teaching C first is definitely a good way to go. I've started to get more into low-level programming, and I'm reading textbooks on computer organization and operating systems. The book covers MIPS assembly, and working with really takes it to the next level in understanding what's going on under the hood. It's awesome!

    • @ronr2030
      @ronr2030 5 лет назад

      What is the "Book". ?

    • @adamantinebipartite4732
      @adamantinebipartite4732 5 лет назад

      ​@@ronr2030 Oh, of course. The book on computer organization is called "MIPS! MIPS! What wonderful Nips!: A Deep Dive Under the Hood, 8th Edition", by Richard Chase. The operating systems book is called "A Fastidious Rundown of Underlying Truths Revealed within Operating Systems: Linus Torvalds: The Would-be Trillionaire: Heartbreak, Brilliance, and Redemption, The Already-told story, 18th Edition.", written by John Endian-Flops. Both a must read, in my opinion.

    • @vaylx2253
      @vaylx2253 Год назад +2

      @@adamantinebipartite4732 none of these books exist… lol

  • @mehmedkukavica8076
    @mehmedkukavica8076 3 года назад +11

    50% of programming is the use of abstractions. In c and other languages, Stream is an abstraction that you have to use from the beginning and everyone skips to explain it. If you understand the functions for straem in c I think you will understand each documentation 80% easier. It doesn't matter if it's Java, Javascript, C ++, ..

  • @raybp7512
    @raybp7512 Год назад

    The fact that CS50 have you literally create functions like atoi or max in C where you have to always specify your data types (floats, ints etc) makes going to other languages so enjoyable and I think many find they miss the strictness or C

  • @KouCain
    @KouCain 3 года назад +23

    I like how Brian played devil's advocate and caught David off guard, I find that quite cute

  • @ankitcaring
    @ankitcaring 4 года назад +15

    Plz do more of these podcasts...
    #love from INDIA

  • @pankajkhushalani
    @pankajkhushalani 5 лет назад +6

    I really wanted this podcast. Weeks before I came to know about CS50x on edX from a close friend, I had already begun a course in C++. I gave CS50 a try in the middle of .y C++ course and found it absurd to learn C. However, eventually I understood why Prof. Malan started with C. He used it to gradually level us up on abstractions. It helped me program better. Thank you Prof. Malan !

    • @TheVertical92
      @TheVertical92 3 года назад +1

      Yep.
      Its really dumb how many of these WebTeachers say shit like "Dont learn C, its a waste of time. Learn Python or JavaScript".
      And i was one of these ppl that followed this advice. I started learning JavaScript (after HTML/CSS) and at first i really made some progress.
      But i got to a point where i had a blockade bcs i was confused about what happens under the hood. It was too abstracted.
      Then i found CS50 and got into C. It really helped alot and i finally got some sort of problem solving mindset.
      And i really have to say: C is a very cool language. I enjoy the interaction with the metal^^

  • @datpham31415
    @datpham31415 Год назад

    CS50 content is so wonderful. There is no CS structure that is comfortable and much fun than CS50x. I'm from Vietnam

  • @ZedP
    @ZedP Год назад +9

    Yep, starting with C and continuing with Python. Sometimes that's just everything you need to know about programming.

    • @germa66stealthblack
      @germa66stealthblack Год назад

      what about continuing with js instead of python, do you think it's good idea?

    • @ZedP
      @ZedP Год назад +1

      @@germa66stealthblack Of course you can. However, JavaScript has the more limited scope than Python, but if you are satisfied with it, just go on.

    • @chikenmacnugget
      @chikenmacnugget Год назад

      @@ZedP more limited scope lmao

    • @better6207
      @better6207 Год назад

      ​@@ZedP how does it have more limited scope
      I heared js can be used in front end as back end compared to python which only can be used in back end developement

    • @ZedP
      @ZedP Год назад

      @@better6207 Python is not used only in web development, it has pretty universal scope.

  • @excalibur05
    @excalibur05 Год назад +1

    Never change this. C is the goat

  • @codybishop7526
    @codybishop7526 5 лет назад +70

    I love the course but man, the problem sets start off very difficult. The lectures are easy to follow but the online course assumes we are all Harvard quality students.

    • @louiversal_
      @louiversal_ 4 года назад +6

      Cody Bishop LMFAO I feel the same way

    • @mohammedhubail1607
      @mohammedhubail1607 4 года назад +12

      Such difficulity is made that quality to begin with.

    • @fernandoed1517
      @fernandoed1517 4 года назад +9

      the challenge is fun

    • @SoySasha
      @SoySasha 4 года назад +18

      The thing is that the lection is there to give you the basic concepts and what are the things you are going to implement, how are they related. The shorts are more what are these concepts in detail. And how to implement is up to you. You have to struggle, rewatch, google, try and fail. They are supposed to be hard, because otherwise you would do this easy quiz and won't learn that much. Practice makes a real maestro.

    • @TheVertical92
      @TheVertical92 3 года назад +4

      Yes they are hard if you never coded before.
      I had some experience with JavaScript before i got into CS50 and the mario pset melted my brain^^
      But after this warm up, it was ok. CS50s approach is much better than others imo.
      I learned JavaScript on FCC and i have to say:
      Going through so many concepts so quickly that you forgot half of it when you finally get to the projects, is just not the right approach for me.
      I love FCC, but CS50s approach to introduce into coding is much better imo.

  • @br3ak_
    @br3ak_ 2 года назад +5

    Absolutely amazing and informative podcast, thank you so much.

  • @armstrongtixid6873
    @armstrongtixid6873 4 года назад +10

    You know, I hated C to start, but now I like coding in C after this course! Thank you so much. It's a shame that C seems to be a dying language, only used in ridiculously power-hungry tasks.

    • @TheVertical92
      @TheVertical92 3 года назад +2

      Well like you said: It just seems like that.
      But C wont die anytime soon. And its not only used for power-hungry tasks. Its used especially in Embedded-Systems...and we have a lot of them^^

    • @unixpert321
      @unixpert321 3 года назад +3

      Thats cuz modern applications have evolved to a level where doing most stuff like making a basic gui would have you writing hundreds of lines of c

    • @metalcarlos23
      @metalcarlos23 2 года назад +12

      I like to think of C as Latin. People say it's a dead language but in reality it's everywhere.

    • @nigh_anxiety
      @nigh_anxiety 2 года назад

      If you're using Python you're (usually) mostly using C under the hood. C will probably be around for a long time as a low level language. Fortran and Cobol are still around, and if you write those you can get some good contract work maintaining old systems.

    • @nayankumarbarwa4317
      @nayankumarbarwa4317 2 года назад +1

      @@nigh_anxiety You cant really use the "under the hood" term here
      It belongs to only David, the man himself

  • @savannahlin8063
    @savannahlin8063 4 года назад +9

    After class, I enjoy coding in c. thank you so much

  • @well.technically
    @well.technically 3 года назад +8

    I never understood why my uni dropped C as an introductory programming language in favor of Python, a few years after my freshman year. You could choose either one when I started, later you must have gone through Python and C was only optional but I don't think the students know what they're missing on when they choose to skip it. And that's the kind of European uni where you basically graduate in the major you enrolled in before starting the college. So it's not like "being bothered with C" may have no value for you as you're to graduate in CS no matter what.

    • @donovanm.8909
      @donovanm.8909 2 года назад

      because people actually use python in the real world and it will help you get a job. typing printf("
      "); doesnt help you to understand the function of the command print anymore that typing print() does. you kids seriously have zero imagination

  • @carldupreez4438
    @carldupreez4438 5 лет назад +9

    Do you think you could do an introduction to assembly language where you could teach just the very basics of language?

  • @ipodtouch470
    @ipodtouch470 2 года назад +1

    I like both ideologies I started with Java then moved to c. I took assembly before I learned c though. Programming in Java let me learn how to think like a programmer, if I would have started with c I would have gotten overwhelmed with all the manual things you have to do.
    I can also see the flip side though some people that start with something with python might have a hard time moving to c. Also starting with c builds grit and let’s you learn low level memory which is a great knowledge to have in your back pocket.

  • @akariamano5544
    @akariamano5544 5 лет назад +4

    C is great for learning.

  • @vaibhavbijapur6037
    @vaibhavbijapur6037 2 года назад +2

    as an electrical engineer i was first exposed to Assembly with microprocessors and then C for embedded systems. In that context C is King hands down because there is nothing as fast for those applications.

  • @yash1152
    @yash1152 Год назад

    6:22 > _"for those listening in, it's not planned"_
    heheheh, i like the gentle way sir DJM handles things :D

  • @shivanshuudeniya3338
    @shivanshuudeniya3338 5 лет назад +4

    I just love this man's voice...

  • @krazeemonkee
    @krazeemonkee Год назад

    pedagogically ~ in a way that relates to the methods and theory of teaching

  • @majdalin1265
    @majdalin1265 Год назад

    I started learni Javascript but i coudn't understand the fundumentals of programming for example i coudn't understands what loops/nested loops under the hood Then I started learning C and it made it much easier

  • @tomaslluna9656
    @tomaslluna9656 Год назад

    david and brian absolute leyends !!

  • @BijouBakson
    @BijouBakson Год назад

    Thank you

  • @Tidonius
    @Tidonius 2 года назад +1

    Word of the day: pedagogically
    Bonus points if you can drink every time it’s said without permanent liver damage.

  • @davidcottrell1308
    @davidcottrell1308 Год назад

    DM is very good. Great teacher!!

  • @Brlitzkreig
    @Brlitzkreig 2 года назад

    Such a legend of a course

  • @nihonium2865
    @nihonium2865 5 лет назад +23

    Damn, I click so fast when I see C :D

  • @joshuasimmons696
    @joshuasimmons696 Год назад

    You got my attention, subscribed

  • @joemcmanus3585
    @joemcmanus3585 2 года назад +2

    I mean I understand the reasons for "Why C?" and I understand the coursework, the theory and can follow everything that is going on. Where C trips me up is with syntax and the IDE - project work just takes up so much time. I am really not interested in ever using C for anything ever again so inherently I have a very strong mental barrier to wanting to learn C to a level where I can write code in it. This is my main objection - I have no desire to learn how to code in C.

    • @vivekkoul4428
      @vivekkoul4428 Год назад +1

      I feel the purpose of CS50 is not to teach you any programming language but what are the principles behind computer science. Language is just a tool to understand those. If you know basics then you can learn any language. That's what was the intention when they created this course. Otherwise nobody will learn HTML/CSS/JSS/SQL/Python/C in a single course.

  • @Aemilindore
    @Aemilindore 5 лет назад +2

    Thanks. We love cs50

  • @anzifai717
    @anzifai717 5 лет назад +5

    uni start with c .......mine does

  • @wellumm
    @wellumm 3 года назад +1

    Damn I wish I could find answer to is cs50 course right place to start after being familiar to coding with MIT's processing? My goal is not to create visuals but problem solving -maybe to make novel interactions- I would appreciate any insight.

  • @djsharpmclive1221
    @djsharpmclive1221 3 года назад

    Thx

  • @prakharrastogi2336
    @prakharrastogi2336 3 года назад

    In cs50 I enjoyed C, Specially Pointers. Tysm.. David Malan💯

  • @ahmedrami8400
    @ahmedrami8400 3 года назад +1

    This looks like one of (suits) posters

  • @AlmostRipeOrange
    @AlmostRipeOrange Год назад

    Podcasts are so old . Update pls

  • @ekosetiawan_indo
    @ekosetiawan_indo 3 года назад

    not just I, it's we

  • @iamarh
    @iamarh Год назад

    How about starting with C++?

  • @ua2894
    @ua2894 Год назад

    Moving away from php is always the righ decision.

  • @colinmaharaj
    @colinmaharaj 2 года назад

    Is there a 2022 version of this

  • @JokhioAppsReal
    @JokhioAppsReal Год назад

    WE WOULD LIKE IT MORE IF IT WAS VIDEO

  • @sony07101988
    @sony07101988 5 лет назад +3

    I am currently working as Python developer for the last 2years. Will it be beneficial if now I learn C Or C++, so that I could know more about what actually is going under the hood????

    • @sony07101988
      @sony07101988 5 лет назад +1

      My first language was Python only.

    • @lyricsmint567
      @lyricsmint567 5 лет назад +12

      Then C is going to be a nightmare for you..

    • @adhamsalama4336
      @adhamsalama4336 5 лет назад

      Probably not.

    • @rajab4187
      @rajab4187 5 лет назад

      C++ bruh its what u need

    • @brijeshsamal7035
      @brijeshsamal7035 3 года назад

      Learn it. There is no doubt that transitioning from high-level languages like Python and JavaScript to C or C++ is going to be hard, but it's always important to know what's happening "under the hood" as you say. CS50 will make C easy for you.

  • @nataliehill5899
    @nataliehill5899 3 года назад +2

    php documentation is way more pleasant to read compared to python documentation in my view.

  • @srinivasams9323
    @srinivasams9323 3 года назад

    one advantage i had with c was i learnt ten touch typing with c writing so many codes made me familiar with keyboard

  • @Aamnah
    @Aamnah 3 года назад +2

    pedagogical?

    • @KouCain
      @KouCain 3 года назад +1

      I think it's similar to the word "academically"

    • @ElixirOfEuphoria
      @ElixirOfEuphoria 3 года назад +3

      New word for me too, adjective defined as 'related to teaching'

  • @mikatu
    @mikatu Год назад +3

    Imagine a pilot, learning how to drive a race car, is going how to ride horses..... yep, you are learning how to ride horses as kind of "you need to know how horses work, because cars are faster".... stop with that c crap!! keep it as a side-quest if you need, but scrap it from the main course.

  • @pprahul2003
    @pprahul2003 2 года назад

    Why not Java ?

  • @Aemilindore
    @Aemilindore 5 лет назад +7

    Real men & women know proper C. They also know python. But they learnt C first.

    • @rajab4187
      @rajab4187 5 лет назад

      C++ that's what my uni started

    • @Aemilindore
      @Aemilindore 5 лет назад

      @@rajab4187 C++ is lovely too.

    • @billygruff6541
      @billygruff6541 5 лет назад +4

      lol "real men"

    • @Aemilindore
      @Aemilindore 3 года назад +2

      @@amalldekan1432 or we could follow Ben Eaters RUclips channel, build a breadboard CPU and build out instruction set and build our compiler and be super men & women

    • @brijeshsamal7035
      @brijeshsamal7035 3 года назад

      @@amalldekan1432 I myself prefer C to JavaScript(having used both languages, but not at any advanced level), however, I cannot deny that using shit to describe JavaScript is indeed not a good choice. JavaScript is used very much today almost everywhere and node.js and react allow JavaScript to do brilliant stuff.

  • @thewolfofswingthat2035
    @thewolfofswingthat2035 2 года назад +1

    nice forehead

  • @jonathanmessina4715
    @jonathanmessina4715 Год назад

    Javascript or python could get you a job faster, but your understanding of what's really happening would be inferior.