Should you Learn C or C++ Before Python?

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

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

  • @einzelganger5290
    @einzelganger5290 6 месяцев назад +3

    In my opinion, which I believe that some people might share, learning C and X86 Assembly Language is like learning how to be a motor mechanic and advanced driver.
    That knowledge allows you to understand and appreciate how the vehicle operates at its most primitive level.
    This knowledge is invaluable and nobody can take it away from you. I suggest learning straight from the source by getting a soft copy of "The C Programming Language" written by Brian W. Kernighan and Dennis M. Ritchie (the creator of the C programming language).
    What do you have to lose?

  • @neildutoit5177
    @neildutoit5177 3 года назад +314

    This is WRONG. It depends entirely on how you reason and how you learn. When I started I tried starting with Java and had no idea what was going on. After a year I tried Python and again I had no clue what was going on. Because these languages are completely detached from the hardware. It was only when I finally learnt C that I felt for the first time that I understood what programming was. Then once I'd learnt that I went back to Python which is now my main language. Many people can look at "System.out.println" and not care that they don't know exactly what it means. They just memorize. Some people, like me, need to understand how the thing on the screen relates to machine we're working on. If you're like me, save yourself a lot of time, start with C.

    • @nontraditionaltech2073
      @nontraditionaltech2073 3 года назад +15

      Very interesting take on things. In school our core curriculum was C++ based and then allowed you to take on other languages as electives. I graduated a few years ago and have picked up other languages easily as needed.
      Recently the school switched to python based, and is looking into a C/Cpp elective, We’ll see how that goes...

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

      @@nontraditionaltech2073 Learn DirectX or Win32 System calls call if you are using Windows. Unix System calls/OpenGL if you are using Linux

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

      This comment is so true. I started off better with C than with python or java... the truth is that I myself can relate with your curiosity. I’m not the type of person that just memorizes a function or whatever... I need to understand how that function works, what it does, and how it was written. C really expanded my curiosity over hardware how if statements work or how the computer can add numbers. It’s something that python could have never taught me.. most people just learn to add the numbers.. but they don’t stop and think HOW the computer adds those numbers... that’s what will make you a good programmer.. to understand how the computer does things... because it’s really not just 1+1..

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

      @@josemembreno4996 so what do you recommend for me ? Should i start with c++ or c?

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

      @@aliqvii9432
      I’m probably going to be bias here. That’s why I recommend learning a language that you really like and grasp on. C for me was the one. For many other people it’s python. It’s really depends on you really.

  • @aidananderson1697
    @aidananderson1697 3 года назад +106

    "It's like saying if you want to become a great carpenter you should learn to grow trees"

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

      That was a good line. Though if programming languages were different types of wood, a carpenter would know which wood to use for what thing he is building.

    • @froggyy
      @froggyy 3 года назад +7

      Why learn number system when you can learn algebra 👍

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

      I would think that is not apple to apple.
      Learning C before you learn Python is like you learn what is metal, what is iron, before you learn how to make a knife :)

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

      @@filoautomata it's a cute analogy, but yeah... Sorta breaks down on scrutiny.

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

      @@filoautomata Exactly, Stefan is not a true programmer.

  • @conorburke7888
    @conorburke7888 3 года назад +72

    I think a good analogy is Python/ JavaScript/Php is like learning to drive a standard car. C/C++ is like driving a Formula 1. It's a lot more dangerous but it's a lot faster. Some concepts carry over but there is still a lot to learn when you go over to those.

    • @matt-g-recovers
      @matt-g-recovers 3 года назад +2

      Very well said.
      I learned Java first but spent a few years working with JS out of college
      I circled back to C/C++ for deep dive finally this year and had a TON of good insight.
      Necessary no.
      I recommend it however.

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

      @@matt-g-recovers I agree. I think you can be a great app / web developer without C /C++, but to be a great all around software engineer you need to know what's going on closer to the metal.

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

      @@conorburke7888 Which means studying computer architecture and operating systems (and possibly some digital electronics). C and C++ are not close to the metal anymore since at least 20 years ago if not more.

    • @conorburke7888
      @conorburke7888 3 года назад +7

      @@ingframin not sure what you mean. Every operating system I'm familiar with is written in C

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

      @@ingframin Maybe not that close, but it's still far closer to the metal than about anything else. Those are not mutually exclusive.

  • @inesoliveira693
    @inesoliveira693 3 года назад +24

    Yes! Completely agree. I start learning programming in python, C# and PHP. Now, I'm studying Computer Engineering and I started to learn programming in Assembly and C, and finally I understand how computer works, what I believe that improved my skills as a programmer. 👩‍💻

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

      same here

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

      Great! Good luck ;)

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

      salve amigo, você acha que deveria começar com C ou Assembly? estou estudando javascript/html/css e vejo muitos dizendo a importância de entender como funciona as máquinas realmente, e começar com Assembly, depois ir pra C, C++ e assim vai...
      tenho uma visão de carreira diferente, busco agregar valor pra humanidade, não apenas fazer o máximo dinheiro visando lucro para uma empresa qualquer... pode soar ingênuo mas é isso, aceito qualquer opinião ou perspectiva se for da sua vontade!
      bascicamente, aprender sintaxes e frameworks ou conceitos computacionais.

  • @masteringreactnative
    @masteringreactnative 3 года назад +26

    I learned c first, and it helped me understand pointers which is useful for exapmle in js when you work with objects and arrays. My brother on the other side didn't learn c and I feel like he's missing some fundamentals, so my suggestion is to learn c at least a little bit, types, pointers... then move to python or something else

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

    i started my programming career in python. i completely regret not starting with c. c helps you learn exactly how a computwr works. no abstractions.

    • @frodobaggins3974
      @frodobaggins3974 2 года назад +4

      C doesn't 'help' you to learn about how a computer works. It brutally forces you to accept the knowledge :-)

  • @michakrzyzanowski8554
    @michakrzyzanowski8554 2 года назад +10

    Learning C or C++ makes you understand how the hardware works and when you understand it you can program in anything

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

      i'm looking forward to start my dive into this world with C, understanding computational concepts and then go into frameworks? would be better?

  • @einzelganger5290
    @einzelganger5290 6 месяцев назад

    Fun fact: a method is a function that has been assigned the properties of an object.
    You'll learning that when you study a high-level, object-oriented programming language like JavaScript which, more than any other programming language, puts a greater emphasis on the concept of objects.

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

    Speaking from personal experience, I learned Python first and it actually inspired me to learn other languages. First I moved to C#, and - understanding how psychic this language is - I decided to learn C++. It was hard, though i managed. If I didn't know Python while learning C++ I would have never touched it.

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

    When I learn python, I find it very easy. But it doesn't give me a feeling I'm learning. I don't have the feeling, comfort, confidence I used to have when I was studying math. I'm pretty good at math. And when I tried learning C, with the book "absolute C", it made me feel like I was learning math. and after only 2 days of learning C I decided to go back to python. And guess what, I wrote a little program in a very natural, effortless way. As long as I think of a solution, I'll write it out in python without any effort. In the days of learning C, I code very little, I focus on reading books. Sorry that English is not my native language. I just want to share some of my experience. Honestly python is not easy to learn unless you have a good teacher. What is a good teacher? This is very difficult to define. You may think that you learn C not to learn a programming language, but to learn how to program.
    However, if I think about why I should start with C, I think it's because at that time I couldn't find the right python book for me. So I had to learn C. It takes you to understand the details. if you have the opportunity to come into contact with good python books, i think python is still a great choice to start.

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

    Having practiced some C, moving to Python felt like a breeze. Syntactic specificity, having library functions for half the stuff you want to do ready and free data types felt like ultimately minor things as far as understanding what happens line to line and the concepts that you're implementing.

  • @tombert512
    @tombert512 3 года назад +6

    0:40 > C is a totally different animal than writing JavaScript or Python
    Not really? Yes, Python and JS are dynamic garbage-collected languages, but if you want to write *efficient* code, you have to be acutely aware of how memory is being allocated and freed. Are garbage collectors nice? Of course, they're wonderful, I don't have any desire to go back to C, but I'm quite happy for the time I've spent learning C just because of the increased understanding it gives you for the internals of programs.

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

      C is a language used for Windows and Mac applications, it's old, that's why it isn't used for AI and other bot uses, instead it is used in micro-controllers, so it is still an important language.

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

    Randomly saw someone comment exactly this on your other video. And then searched this and here you are answering this. I think nowadays there's too much gatekeeping in any part of life. There's snobs and theories everywhere about everything. But I like to live my life in a way that works. There's no better way than a way that works

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

    It is simple. If you are serious about programming, you should learn C first. In any area of the field, becoming an expert requires strong fundamentals. But if you just need to get by and solve problems in a modest size of projects (as most people do in the fields of scientific research), learning pythons is fine.

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

      i want to learn fundamentals so i will learnC++ first

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

      thank you, i'm currently learning javascript but i will stop and start C

  • @kevinknight997
    @kevinknight997 3 года назад +6

    learning C helped me understand memory and low level stuff which is not available with python

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

    I learned Python long before C++ and I think the learning process would be much different, than if you started with C++ and went to Python after.
    This is a great video! Viewer from Europe.

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

      I agree, Python is much more, write code and experiment with what you can do, and C++ is more think and understand or suffer.

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

    Thanks a lot... i started learning c since 3 days and thought that i would be a better programmer in python and will become data scientist

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

    I just wanna Learn C or C++ for the fun of it. YES I said for the fun of it. Then I’ll figure out what u to o do with either.
    By being exposed to different programming languages you get exposed to different ways of solving problems. To the point you can take one concept from one language and use it in another.

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

    finally... happy to see C++ on the title :)

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

    Stef out of all the RUclipsrs I value your opinion the most. Due to the fact what you say is spoken differently compared to other youtubers who claim in their zeal what they profess to be factual. You speak from experience, and it shows in your wording and how you articulate yourself. Getting to the point I have a question. I live in NYC, so the market is excellent for both C# and Java. My focus is on back-end development, Mobile development and maybe web development because I hear to get a job the easiest path is web development. I really enjoy coding I have played around with several languages to see what other languages look like. Also, I don't have an eye for color and design which is why I don't think I would be good for web development. From what information I provided which makes more sense C# or Java for back-end and as a hobby Mobile development with the possibility of making 2d games as a hobby? I looked at both for an entire week and I love the syntax they are both beautiful languages and I can't seem to choose which language is the better fit for my required needs in trying to find a job in the industry.
    P.S. sorry for the long and unclear question, thank you for reading my post.

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

      Hi. Both Java an C# are good choices. You will be working enterprise though ... and that's good if you like that workplace. I would lean C# sine you could get into the UNITY game engine. But you can do games in Java as well. Minefcraft was created in Java.

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

      @@StefanMischook Hey, Minecraft? had no idea? Gave me something to think about? Thanks, Stef once again, very insightful as usual.

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

    100% agree with you. The important thing is to start with one and then progress from there. I am quite fluent with C since I use it for my job. However, my first language was BASIC (QuickBASIC, not Visual Basic

  • @189Blake
    @189Blake 3 года назад +4

    Back when I started I was taught that C was a high-level language. I think we had advanced so much that I've heard some developers nowadays referring to C as a low level language.

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

      It is called a high level machine language, C is important if you want to know how a computer thinks(?)

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

      @@brijeshsamal7035 Most of the computers now available have very low core counts (i.e., few processors), so we can not say that they think. However, as core counts increase, and software size and sophistication advance, the answer as to whether computers can think may change. Chaos help us.

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

    I remember when I learned JavaScript I really missed pointers. In JS, to make changes to an element in an array, you have to change the entire array, it's computationally complex. To make a change to a C or C++ array, you just reference the address where the data is and change it. To delete the first n elements of an array in C++ you just move the pointer to where you want the array to start. One thing I didn't miss was having to call malloc and delete dynamically created data.

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

    Thank you so much! Each one of your videos is a gem, but this one was a diamond.

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

    Based on my VERY limited experience, the simple answer is no. It surely helps and makes for a deeper understanding of programming on the whole, but programming in low-level languages (C superset, Fortran, Assembly) is VERY different from JS, PHP, or even Python.

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

    Smash the like button three times for Stefan!👍🏽

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

    That's one doubt I had. Thanks for the advice!

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

    That's great Stefan, up early here in Cyprus going through your course :-) Thought I might be catching one of your live sessions, never mind :-)

  • @johnnycincocero
    @johnnycincocero 3 года назад +22

    I'm going to do the opposite! Python first, then C++.

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

      No one learns C++ first, everyone has their starting language to then jump into C++ because of it's complexity... it's more of a perfectioning skill C++

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

      If you learn C++ first, you know how to think like the computer.

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

      @@brijeshsamal7035 actually assembly language is for that

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

      @@santiagomedeglia3946 Well, C and C++ need you to think at the lower levels than most other ones do, so you know what's happening underneath the hood.

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

      @@brijeshsamal7035 but assembly is what is happening underneath c and c++
      And thst means c c++ is lower level than most languages as you say and assembly is even lower than that, its the lowest you can go directly on silicon

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

    I believe it depends on what kind of work the student will do after graduation. If you work in aerospace or embedded, the earlier you take on C or Cpp the better and the necessary aspects of HW and Architecture.
    But if the student does web or high level general application development in industry, an interpreted language is maybe ok to learn with (without messing with C or Cpp).
    But I learned Cpp first and have been ok since

  • @otmanm4095
    @otmanm4095 3 года назад +6

    C is quite easy to learn at first, C++ is not, though.
    JavaScript seems easy at first but understanding it really is harder, too much freedom.
    I don't know Python but lot of people say that this is super smooth to learn.

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

      The hard part about C is learning the HW and embedded domain that often accompanies learning C

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

      Python is a lot more straight forward for sure. It's very.. English. The syntax isn't difficult

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

    I noticed a similarity between JavaScript, Java and C#. The answer is in the Curly brackets and the break code. Python doesn't share these similarities; I don't like Python because it's like writing shorthand. versus writing correctly when expressing your ideas. Python is flexible and easier for the user but how is Python in comparison to Java or C#? I believe Python is only good for learning as a hobby which I am doing now using Pygame for making small games and not taken seriously.

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

      Yea ... I am not a fan of Python not using curly braces. Probably because I got so used to Java and JavaScript.

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

    Can you even learn C without learning A first?
    Assuming of course, You're all ready comfortable with assembly on your machine.

  • @matt-g-recovers
    @matt-g-recovers 3 года назад +3

    Good analogy.
    Use the right tools however learning how pointers and memory management works was invaluable insight higher JVM languages.

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

    I feel great to be here this early.

  • @InteractiveDNA
    @InteractiveDNA 3 года назад +6

    The huge benefit of learning c++ first is that you learn how a software should be built and not really on pre-defined code and automations. That’s why most high level language built applications are buggy and memory management is all over the place. Knowing the limitations is the key. Learning a higher level language first you will have a greater chance of becoming lazy programmers and will not understand how SUPER important speed is in high end designed applications that needs to never fail.

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

      what a load of crap
      you think people who use C++ don't use "pre-defined code and automations" ?
      you think they don't use libraries and frameworks built by others ?
      do you KNOW how std::map works at the very low level ? or do you just use it

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

      @@firstname4337 What world do you live in? The standard libraries are typically written in C and C++ because of speed and control. Higher level languages are like the Android OS platform, too many layers of garbage before actually something gets done. Learn how computer works and how important is the SPEED when complex applications requires data to achieve what it needs at the point in time. The fact is that most of all higher level languages are written from a lower level language because you must. All comes to SPEED and stability and you can NEVER get that on a higher level language because their libraries are written from a lower level language and you will depend in how good or bad that library was created from the beginning. Higher level languages to me are patches and eventually breaks down in time. The funny thing is that you are right now reading this on a device that the foundation is based on a lower level language. You don’t build a house from the roof to the foundation. Are you enjoying the automations done in C and C++?

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

    Hi Stefan , I wanted to ask when we have so many frameworks and languages available why not use only 1,2 because as a beginner it seems quite daunting that I'll have to learn multiple languages and stacks but don't know if I would use them when mostly majority of code in the industry is dumped and re-made irrespective of how wel coded it is . Pls share your thoughts

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

      You don't have to learn all the technologies that are out there. Start with one and use it for everything. When you hit a block you start looking around and find what can get you over the block and so on and so forth. What's important is to learn the basics, not the nitty gritty details of every framework out there.

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

      @@ingframin Thx but usually in jobs despite having sufficient skillset in certain languages and frameworks they ask a totally different combination of lang+Framework that does the same task ,it gets frustrating that time

  • @khankhattak.
    @khankhattak. 3 года назад +3

    for me it was assembly, basic, c, cpp, python .....

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

    No. Really think that C is still a great place to start because its such a tiny small language. It has less than 40ish key words to use and its strongly typed. C++ is an atrocious mess of a language that is designed by a committee.

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

    Awesome!
    New sub.

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

    i'm currently learning javascript but i will stop and learn C

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

    It is probably better that you don’t because the ambiguity of python 🐍 will be too much compared to C/c++

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

    C/C++ can be used to improve the performance of a web app

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

      @Peter Mortensen You can write the performance critical parts of your app in C/C++ then you compile them to webassembly

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

      @Peter Mortensen C++ runs on a compiler not a interpreter

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

    Computer Science isn't Science and Software Engineering isn't Engineering.

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

    I wish I had learned C before C#

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

      @Peter Mortensen because it would have given me a more complete understanding

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

      No better c++ before c#

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

      @@saidbadaoui1955 well I would prefer C first then C++ in that case :P

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

      @@mrcrackerist
      C and c++ similar syntax,
      and C++ superset of c.
      You can go directly to c++ if you want

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

      @@saidbadaoui1955 yea and that's why in my opinion C should be learned first as you get a firm grasp of the basics and learn about the differences between the two.
      I am in the process of rewriting our current application from C++ into C at work because the current code base is unmaintainable.

  • @Bleu-en2bf
    @Bleu-en2bf 3 года назад +1

    Thank you🍀

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

    It's like do I need to learn how to build a brick wall to know how to build a drywall

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

    Finally! Finally someone who broke the stereotype!

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

    If I wanted to design something along the lines of RUclips or Vimeo which language(s) would I learn?

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

      python

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

      Python, JavaScript, HTML 5, Go, Java, C++.

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

      English. You need to speak very well with the huge team you need to build a RUclips/Vimeo type website.

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

    "You have to learn first C or C++ before other languages?" ... I have never heard such a premise.

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

    I should show this to my teacher

  • @hariharan-yi8tf
    @hariharan-yi8tf 3 года назад +1

    👍

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

    This guy seems to have no clue about programming. There will be times where you will be asked to integrate systems which support different languages. This is the time you will realize the importance of learning languages like C and C++. He wants you to be a very average programmer and does not want you to push the bar higher. He is comparing programming to driving a car lol .. He calls C and C++ a tool.. lol

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

    This is exactly opposite. First you start with easy code language like python and after you know it well, you switch to better languages like c++ or javascript.

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

      Kinda what happened to me. I was learning python at first and then took a free harvard course covering multiple languages starting with C and that just confused tf out of me and wasted my time. Now I am back to square 1 learning python. Way easier.

  • @karmaandrik3lo.523
    @karmaandrik3lo.523 3 года назад +1

    thanks for wasting 5 mins of my life

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

    dandy