Why C? - CS50 Podcast, Ep. 7

Поділитися
Вставка
  • Опубліковано 5 чер 2024
  • The CS50 Podcast is hosted by CS50's own David J. Malan and Brian Yu at Harvard University. Each episode focuses on (and explains!) current events and news in tech and computer science more generally.
    • CS50 Podcast
    In this week's episode of the CS50 Podcast, David and Brian talk about why CS50 is taught (primarily) in C.
    This is the CS50 Podcast.
    Links to the articles in this episode:
    Why does CS50 at Harvard use C as its primary language?
    www.quora.com/Why-does-CS50-a...
    Why did you decide to replace PHP with Python? Is PHP closer to C?
    www.quora.com/Why-did-you-dec...
    Top languages over time
    octoverse.github.com/projects...
    Follow us on other social media to get news on upcoming shows and more:
    Google Podcasts: play.google.com/music/listen?...
    iTunes: podcasts.apple.com/us/podcast...
    Soundcloud: / podcast0
    Spotify: open.spotify.com/show/3MxtKWd...
    ***
    This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming.
    ***
    HOW TO SUBSCRIBE
    ua-cam.com/users/subscription_c...
    HOW TO TAKE CS50
    edX: cs50.edx.org/
    Harvard Extension School: cs50.harvard.edu/extension
    Harvard Summer School: cs50.harvard.edu/summer
    OpenCourseWare: cs50.harvard.edu/x
    HOW TO JOIN CS50 COMMUNITIES
    Discord: / discord
    Ed: cs50.harvard.edu/x/ed
    Facebook Group: / cs50
    Faceboook Page: / cs50
    GitHub: github.com/cs50
    Gitter: gitter.im/cs50/x
    Instagram: / cs50
    LinkedIn Group: / 7437240
    LinkedIn Page: / cs50
    Quora: www.quora.com/topic/CS50
    Slack: cs50.edx.org/slack
    Snapchat: / cs50
    Twitter: / cs50
    UA-cam: / cs50
    HOW TO FOLLOW DAVID J. MALAN
    Facebook: / dmalan
    GitHub: github.com/dmalan
    Instagram: / davidjmalan
    LinkedIn: / malan
    Quora: www.quora.com/profile/David-J...
    Twitter: / davidjmalan
    ***
    CS50 SHOP
    cs50.harvardshop.com/
    ***
    LICENSE
    CC BY-NC-SA 4.0
    Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License
    creativecommons.org/licenses/...
    David J. Malan
    cs.harvard.edu/malan
    malan@harvard.edu

КОМЕНТАРІ • 132

  • @furrukhjamal00
    @furrukhjamal00 4 роки тому +329

    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 4 роки тому +5

      I started C++

    • @WhiteThunder121
      @WhiteThunder121 3 роки тому +12

      @@rajab4187 🆗🆒

    • @WhiteThunder121
      @WhiteThunder121 3 роки тому +1

      @Dario Kayden fuck Off bot

    • @makara2711
      @makara2711 3 роки тому

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

    • @gonahkar5657
      @gonahkar5657 3 роки тому +9

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

  • @Whatdisaypt1and2
    @Whatdisaypt1and2 Рік тому +84

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

  • @chaomanu
    @chaomanu 3 роки тому +69

    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

  • @DJ-lo8qj
    @DJ-lo8qj Рік тому +37

    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

  • @fsociety852
    @fsociety852 4 роки тому +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

  • @br3ak_
    @br3ak_ 2 роки тому +5

    Absolutely amazing and informative podcast, thank you so much.

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

  • @datpham31415
    @datpham31415 9 місяців тому

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

  • @adamantinebipartite4732
    @adamantinebipartite4732 4 роки тому +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 4 роки тому

      What is the "Book". ?

    • @adamantinebipartite4732
      @adamantinebipartite4732 4 роки тому

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

  • @ankitcaring
    @ankitcaring 4 роки тому +15

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

  • @raybp7512
    @raybp7512 10 місяців тому

    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

  • @pankajkhushalani
    @pankajkhushalani 4 роки тому +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 роки тому

      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^^

  • @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 Рік тому

      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.

  • @mehmedkukavica8076
    @mehmedkukavica8076 2 роки тому +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 ++, ..

  • @shivanshuudeniya3338
    @shivanshuudeniya3338 4 роки тому +4

    I just love this man's voice...

  • @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 Рік тому +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.

  • @carldupreez4438
    @carldupreez4438 4 роки тому +9

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

  • @ipodtouch470
    @ipodtouch470 Рік тому +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.

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

    david and brian absolute leyends !!

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

  • @codybishop7526
    @codybishop7526 4 роки тому +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 3 роки тому +12

      Such difficulity is made that quality to begin with.

    • @fernandoed1517
      @fernandoed1517 3 роки тому +9

      the challenge is fun

    • @SoySasha
      @SoySasha 3 роки тому +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.

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

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

    Never change this. C is the goat

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

    Such a legend of a course

  • @savannahlin8063
    @savannahlin8063 3 роки тому +9

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

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

    DM is very good. Great teacher!!

  • @KouCain
    @KouCain 3 роки тому +23

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

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

    Thanks. We love cs50

  • @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 Рік тому

      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

  • @joshuasimmons696
    @joshuasimmons696 10 місяців тому

    You got my attention, subscribed

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

  • @akariamano5544
    @akariamano5544 4 роки тому +4

    C is great for learning.

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

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

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

  • @majdalin1265
    @majdalin1265 10 місяців тому

    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

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

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

  • @armstrongtixid6873
    @armstrongtixid6873 3 роки тому +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

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

  • @BijouBakson
    @BijouBakson 10 місяців тому

    Thank you

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

    Is there a 2022 version of this

  • @prakharrastogi2336
    @prakharrastogi2336 3 роки тому

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

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

    How about starting with C++?

  • @nihonium2865
    @nihonium2865 4 роки тому +23

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

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

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

  • @djsharpmclive1221
    @djsharpmclive1221 3 роки тому

    Thx

  • @ekosetiawan_indo
    @ekosetiawan_indo 3 роки тому

    not just I, it's we

  • @AlmostRipeOrange
    @AlmostRipeOrange 11 місяців тому

    Podcasts are so old . Update pls

  • @joemcmanus3585
    @joemcmanus3585 Рік тому +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.

  • @sony07101988
    @sony07101988 4 роки тому +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 4 роки тому +1

      My first language was Python only.

    • @lyricsmint567
      @lyricsmint567 4 роки тому +12

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

    • @adhamsalama4336
      @adhamsalama4336 4 роки тому

      Probably not.

    • @rajab4187
      @rajab4187 4 роки тому

      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.

  • @ahmedrami8400
    @ahmedrami8400 3 роки тому +1

    This looks like one of (suits) posters

  • @anzifai717
    @anzifai717 4 роки тому +5

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

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

    WE WOULD LIKE IT MORE IF IT WAS VIDEO

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

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

    Why not Java ?

  • @ua2894
    @ua2894 10 місяців тому

    Moving away from php is always the righ decision.

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

  • @Aemilindore
    @Aemilindore 4 роки тому +7

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

    • @rajab4187
      @rajab4187 4 роки тому

      C++ that's what my uni started

    • @Aemilindore
      @Aemilindore 4 роки тому

      @@rajab4187 C++ is lovely too.

    • @billygruff6541
      @billygruff6541 4 роки тому +4

      lol "real men"

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

      @@amalldekan1432 or we could follow Ben Eaters UA-cam 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.

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

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

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

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

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

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

    c# is bad lang

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

    nice forehead