Should you Learn C++ in 2018?

Поділитися
Вставка
  • Опубліковано 12 лис 2017
  • Learn web development fast: shop.killervideostore.com/
    Article: www.killersites.com/blog/2017...
    Learn Python and OOP: www.killervideostore.com/vide...
    C++ is the engine building programming language that you use when you need super high performance.
    These days, in the age ultra fast CPU's and mature development platforms, its' use will probably continue over time ... especially since Swift runs nearly as fast as C++ at run-time ...and without all the C++ hassles.
    Join a community of nerds: www.killersites.com/community/
    Learn Python 3 fast: www.killervideostore.com/python/
    My Instagram: stefanmisch...
    Thanks!
    Stef

КОМЕНТАРІ • 2,6 тис.

  • @patlecat
    @patlecat 4 роки тому +195

    Spoiler Alert: Answer is YES, and even in 2020 you should! You're welcome :D

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

      thank you. I was wondering the same thing in 2021. lol

    • @Pain-95
      @Pain-95 2 роки тому +3

      Thank you. I wanna learn becuz of vid games

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

      @@Pain-95 C++ is interesting if you need your game needs to be performant, you can make little indie games with other simpler language like Undertale if it's what you're going for.

    • @Pain-95
      @Pain-95 2 роки тому

      @@bubble8760 I have learned a lot still don’t understand a lot I already made a lot of small games but all I wanted to make a game like nfs,gta,cod. I am working on my own game engine its time consuming man I wish I could make one like unreal engine man its impossible. Its breaking my spirit day by day if only it was as easy as playing call of duty.

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

      C++ is most reliable language. It has very minimal job opportunities, yet C++ is the BEST.

  • @QLTD
    @QLTD 6 років тому +2240

    I decided to learn C++ 4 or 5 years ago, but unfortunately I didn't start yet, I need to reorganize my time

    • @StefanMischook
      @StefanMischook  6 років тому +132

      LOL! Eventually you will get it done!

    • @MrFathead
      @MrFathead 6 років тому +63

      I don't know why but that comment made me actually lol.

    • @N3G4T3
      @N3G4T3 6 років тому +29

      The struggles with finding the time to learn such a wide ranged language are real.

    • @user-zx4lm7wy2s
      @user-zx4lm7wy2s 6 років тому +9

      It is a better language now, then it was 5 years ago.
      If you are experienced in programming, use this book for learning about c++:www.amazon.com/Tour-C-Depth/dp/0321958314.
      It's short and effective.

    • @usynnstradler
      @usynnstradler 6 років тому +9

      dont waste your time, learn C# mate

  • @leereyno
    @leereyno 6 років тому +85

    I must be getting old. When I was starting out, C was the main language for most development, along with Pascal. C++ was the new hotness. Java didn't exist yet. So when I encounter people talking about learning C or C++ my first thought is "How come you don't know these already?" Of course these are people who get taught Java in school instead.
    But as Stefan says, the languages you should master depend on what kind of development you want to do. System level stuff requires C for example. Web development doesn't benefit from C since no one is using CGI anymore. Of course the conceptual overlap across most languages is pretty high. A loop is a loop is a loop. Anyone who truly masters one language will go into the study of any other language knowing 80% of what they need to know already.

    • @davem.8681
      @davem.8681 5 років тому

      Lee Renolds Like you I was a c programmer when c++ first came out. Now, there is a tendency to bundle the two languages; c is advertised as c++ or c/c++ .

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

      You don't need to know c or c++ to learn other languages. There are modern languages like rust that are getting pretty close to c++ performance. Also there quite a few scripting languages that get the job done without knowing c or c++. Just because it was the hotness in the 70s doesn't mean still is.

  • @TeriyakiTakeout
    @TeriyakiTakeout 3 роки тому +19

    Saving your time, C and C++ are both very valid languages to write in, and something everyone should learn. It shows you a deeper level of what is going on with memory management. It’s similar to learning how to draw a fully realistic human being before learning how to draw simpler or more stylistic artistic pieces. It’s important to learn and know how to use. After learning C++ I learned how to program in Java in less than a week. It was so easy by comparison. Just my opinion, but please do learn c++ and see what it will show you, and how much control it gives you.

  • @karkius
    @karkius 6 років тому +693

    Video starts and finishes at 2:22

    • @brancaleone8895
      @brancaleone8895 6 років тому +42

      HERO

    • @FlavourlessLife
      @FlavourlessLife 6 років тому +3

      Cheers matey.

    • @emadsinner7473
      @emadsinner7473 6 років тому +2

      thank you.

    • @iamsummergay
      @iamsummergay 6 років тому +3

      Please, type the text what he did said at this moment. I'm little sick right now and can't hear :(

    • @karkius
      @karkius 6 років тому +29

      "C++ is still viable... I think most blah blah blah." So the answer to the question in the title is "yes, if you need to do c-plus-plusy stuff i.e. performance".

  • @DannyHodge95
    @DannyHodge95 6 років тому +373

    Stefan, I haven't watched your videos in years, and just got this recommended to me, and it hit me in the feels a little bit. I remember watching your HTML and CSS videos like 7/8 years ago when i was 14ish, teaching myself how to make basic websites, and now i'm in my third year of uni studying computer science. I may not be doing much web development anymore, but you helped push me in this direction, so I just wanted to thank you.

    • @StefanMischook
      @StefanMischook  6 років тому +71

      Appreciate the message Danny. This is the most rewarding part of my work. And btw, keep up the good work!!

    • @drippy.mcflip
      @drippy.mcflip 6 років тому +22

      This made me smile

    • @jgayle2081
      @jgayle2081 6 років тому +1

      Cool bro......am great at web dev and app dev amma start uni soon 2018 but i had to find myself first and coding help me alot....i expressed alot through codes even if i just imagine it.

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

      literally in the exact same position as you now but im in second year of computer science, i did never finish your guides but i sure enjoyed learning to build websties with html

    • @StefanMischook
      @StefanMischook  6 місяців тому +1

      @DannyHodge95 Are you still writing code?

  • @SK-iv4ml
    @SK-iv4ml 6 років тому +1113

    Q: Should you Learn C++ in 2018?
    A: No, you shouldn't learn Ruby in 2018

    • @counterfeit1148
      @counterfeit1148 6 років тому +11

      Yasser Linux Joke???

    • @Godtierlee
      @Godtierlee 6 років тому +91

      He was joking cause the video started to tangent and that was the only definitive statement compared to the title.

    • @pawekozaczenko7250
      @pawekozaczenko7250 6 років тому +2

      Pretty sure Go or Node will eliminate Ruby in Web and hope that Scala will compete with Python in field like Machine Learning

    • @user3248
      @user3248 6 років тому

      That's irrelevant

    • @NuevoVR
      @NuevoVR 6 років тому +19

      You should learn HTML and Batch so you can be the top pro leet haxor coder

  • @silviumihai0
    @silviumihai0 6 років тому +492

    i clicked on your video because you look like my uncle

  • @SamTheSciencerAtheist
    @SamTheSciencerAtheist 6 років тому +432

    I'm a hard-core C++ dev, and let me say that the thing I liked most in your video is the statement, said raughly "everything is good at something". Tons of beginners come to me and ask me the naive question "what's the best programming language", and I tell them "what do you want to do with it?" and they're surprised that I don't have a single universal answer. No, C++ is not the best for everything. You definitely can do everything with it, but only if you have an infinite amount of money.

    • @Darth_Bateman
      @Darth_Bateman 6 років тому +35

      I'm Batman.

    • @nickallbritton3796
      @nickallbritton3796 6 років тому

      Sam The Quantum Atheist been there too lol

    • @computethis7128
      @computethis7128 6 років тому

      What is the best for developing most form of games? I started learning c++ but I'm wondering if I should have learnt js instead. I am already really familiar with python but that is no good for games

    • @chbrules
      @chbrules 6 років тому +7

      C is the best for everything.

    • @krombopulos_michael
      @krombopulos_michael 6 років тому +2

      Yeah but if you're a complete newb you probably don't know what you want to do yet.

  • @classicmail8239
    @classicmail8239 4 роки тому +13

    Here for "is it worth learning C++ in 2020" video

  • @CP200S
    @CP200S 6 років тому +23

    #include
    int main(void){
    std::cout

  • @JasonCoulls
    @JasonCoulls 6 років тому +75

    I agree with a lot of what you're saying, and my two cents is this; Two points that are important... 1) If you know C++, then you'll often have gained the prerequisite knowledge to tackle other languages, which is something that doesn't always go the other way... 2) Portability. Write something in C++ and you can compile it on Windows, iOS, Android, etc.

    • @garetclaborn
      @garetclaborn 6 років тому +3

      yup
      but there's always lisp, too ;]

    • @frtard
      @frtard 6 років тому +6

      I never really thought calling the _language_ itself portable made much sense. Really, any language could be used on any machine with the same expressive power, it's more about the libraries. The libraries of existing code is where the incompatibilities arise.

    • @garetclaborn
      @garetclaborn 6 років тому +2

      frtard not really, systems languages like C/C++ are portable because you can target machine code of most systems. you can't do this with, eg, a language like python

    • @BosonCollider
      @BosonCollider 6 років тому

      C is portable. C++ isn't. Writing a non-optimizing C compiler from scratch is relatively easy. Writing a standards-compliant C++ compiler for a new architecture requires hundreds of thousands of man-hours, because C++ has a ridiculously long and difficult standard to implement. Making a new backend for an existing compiler like GCC or LLVM is only viable for architectures that fit well with the compiler's backend IR, and if you can do an LLVM backend, you can run almost any other language on there as well since LLVM is not C++ specific.

    • @garetclaborn
      @garetclaborn 6 років тому

      ignoring that writing a C++ compiler is actually quite trivial and that writing a "standards compliant" C99 compiler is not, C++ is absolutely portable. portability has nothing to do with (perceived) complexity.

  • @tyfooods
    @tyfooods 6 років тому +57

    Beautiful analogy with the sprinter (Python) vs. long-distance runner (C++)

    • @StefanMischook
      @StefanMischook  6 років тому +4

      Thanks!

    • @fury3600
      @fury3600 6 років тому +12

      more like skriptkiddie (pyphhhon) vs professional (c++)

    • @nathansmith3608
      @nathansmith3608 6 років тому +5

      Edward more like you sound like an immature kid trying out his grandpa's favourite insults when you generalize about interpreted languages & sorry, but that asinine spelling trying to be clever & convince php & python is just horrendous. you could've at least gone with 🐍PythonBee🐝💎 if you had to try & make that joke, imho...

    • @asm1286
      @asm1286 6 років тому

      Well, actually you will never get pro if you are unable to deal with C++.

    • @asm1286
      @asm1286 6 років тому

      Make your own CPU software rasterizer for your own OS and 3D engine? You're a beginner, man. A beginner. I have students of 12 years old who don't mind to learn C++.

  • @thought2007
    @thought2007 6 років тому +224

    C++ gives you low level and high level. Basically it combines benefits of C and assembly with benefits of supposedly higher level languages like C# and Java. With C++ you can program in the same manner as in those languages, but not to a virtual machine, to an actual machine.

    • @nickallbritton3796
      @nickallbritton3796 6 років тому +4

      thought2007 well said. I see it like that too

    • @petermuller7079
      @petermuller7079 6 років тому +15

      I agree completely.
      .. and i am sick of hearing that '...C++ is for low level programming ...' because - as a multi paradigm language - it support's A LOT of different approaches.
      Not to forget: It serves as a pioneer for a lot of features for other languages. Esp. Java benefits in many ways from developments in C++. Take the 'lambda functions' or 'templates' or .... - decade old features of C++ that are adopted by Java later.
      What i miss in this discussions about programming languages: The Runtime Environment! In many cases THAT's the key feature for a decision what language to use. Java (as a language) isn't superior to C++ - but a lot of Environments (J2EE, JavaScript, ....) come with direct integration of Java-Code - and THAT's making the Java the perfect match for applications targeted by that environments.
      Java would have been dead on arrival without the wide support of the JVM (written in C/C++ ;-) ).
      NO: C++ is not ' the perfect language' or 'the one fits all'-tool. But it is worth learning to widen ones horizont.

    • @minciNashu
      @minciNashu 6 років тому +15

      lambdas were introduced in C++ 11, it's not a decade old feature. and java's lambdas are probably inspired by C# 3.0 (2007). just saying. i program C++ commercially, i find the out-of-the-box experience lackluster when it comes to high level stuff. it really needs a bunch of 3rd party libraries to do something useful.

    • @BosonCollider
      @BosonCollider 6 років тому +4

      C++ lambdas are both really recent, and less useful than they would be in a language with garbage collection, since lacking GC limits your ability to make lexical closures. It's way too easy to accidentally make a lambda with a dangling reference in it.
      C++ is DEFINITELY NOT a pioneer language, it has always been ridiculously conservative. It never pioneered a single important feature. It has however stayed extremely verbose for decades because it wouldn't adopt core useful features, but did adopt tons of features that solved problems that were only problems to C++ developers.

    • @petermuller7079
      @petermuller7079 6 років тому +5

      @decades: I used a hyperbole. But what about templates -> generics? RAII -> try-with-resources? implicit conversion/autoboxing? ...
      A lot of those features were long and well established in C++ before half-heartedly adpoted in Java.
      @3rd-party: Try programming pure core Java without any additions and you are similarly 'lacklustered' - despite oracle trying to 'borg' everything in their sight (leading an abundance of duplicities like StringBuilder/StringBuffer).
      @"ridiculously conservative": C++: (89, 98, 05(TR1), 11) Java: (98, 00, 02, 06, 11, 14) - aside from the 'fast-fixing early years' of Java (98-02) not so different. And it's not that Java8 created a whole new programming world over Java7....
      Also I don't see any mistake in concentrating on fewer bigger releases rather than flushing out a new version every month ;-)
      Nice talk about why it's important to learn different concepts:
      ua-cam.com/video/oB8jN68KGcU/v-deo.html
      Both languages still suck major balls regarding time/date ... ;-)
      BTW. I also programm C++ commercially (and Java too - both on varying platforms) for 20 years now.....

  • @renoraksi8462
    @renoraksi8462 6 років тому +339

    pfft I program using binary in Chinese

    • @StefanMischook
      @StefanMischook  6 років тому +32

      LOL!

    • @AcheronLupus1
      @AcheronLupus1 6 років тому +24

      Binary Chinese?
      Sounds like a language I should study.
      It's like a quantum computer's machine code, except instead of having 1, 0, and 1 and 0, you have over 9000 characters.

    • @jamesrussell2936
      @jamesrussell2936 6 років тому +2

      Dang! C++ is nothing compared to that!

    • @yufanxu8151
      @yufanxu8151 6 років тому +1

      lol wtf

    • @jsc3417
      @jsc3417 6 років тому +2

      pfff, i program using wooden sticks, smashed stones and leaf.

  • @chrisklecker
    @chrisklecker 5 років тому +148

    C++ is the Rocket Scientist of programming languages
    Java is the IKEA of programming languages
    Python is the Amazon of programming languages: Just order the library and it works out of the box.
    :D

    • @cryora
      @cryora 5 років тому +4

      That is unless you want to run a program that was written with an old version of Python and hasn't been updated, then you have to downgrade all of your packages to older versions just to make it work.

    • @CameronCobb
      @CameronCobb 5 років тому +1

      cryora that’s true but pretty rare in my experience. Plus Python 2.7 will be phased out very soon so it would be a less occurring problem

    • @mortenrobinson
      @mortenrobinson 5 років тому +17

      Python is good for teaching programmers some very bad programming habits.

    • @CameronCobb
      @CameronCobb 5 років тому +1

      @@mortenrobinson Like what?

    • @chrisklecker
      @chrisklecker 5 років тому

      @@mortenrobinson Er? Not sure what that means.

  • @tear728
    @tear728 6 років тому +425

    I think C++ is good to learn because it teaches you more about how the computer works. You work more closely to the hardware and understand better what is going on. I also think it is worthwhile to learn Assembly because you are working *directly* with the CPU and memory. Most college curriculums will have at least one course in each.
    However, I don't think you have to be an expert at all in them unless your job demands it. But it wouldn't hurt to be somewhat familiar with them and get a glimpse on whats happening under the hood.

    • @fordfiveohh
      @fordfiveohh 6 років тому +2

      tear728 I kinda think that nobody should program that doesn't understand how it works . You don't need c++ to get that. Maybe a+ training .

    • @michaelkaliber
      @michaelkaliber 6 років тому +5

      and again its going to require more "uber nerdy maths" like stefan said which is not for everyone

    • @llothar68
      @llothar68 6 років тому +11

      A good IT'ler should now how a computer works down to the electronic band structure of the semiconductors. At least he should have heared about it. But from CPU architecture on everything is necessary. Knowing about caching technology is so important today for highspeed programming.

    • @outsidethebox262
      @outsidethebox262 6 років тому +26

      Your comment reminds me what my assembly class professor stated on his first day: I'm teaching you this to get you to know about computers and how they work, but if you ever get a job that requires you to program this daily.... just quit as soon as possible.... C++ is more bearable...

    • @tear728
      @tear728 6 років тому +6

      Thomas Victorian If your a complete beginner at code, don't start with assembly. Even starting with c++ can be very difficult for people. Id say for complete beginners start with python or JavaScript.

  • @YoKaze
    @YoKaze 6 років тому +1208

    Nicolas Cage?

  • @jaulloa21
    @jaulloa21 6 років тому +57

    I’ve been learning c++ like for the past two days And let me tell you my brain and the computer are one.

    • @Metamor-phosis
      @Metamor-phosis 3 роки тому

      So where did your c++ journey take you, IF you want to share it with the community?

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

      EZCode lol. I jumped the gun by saying that. No, not far. I don’t utilize that tool. although, it’s very interesting. For me coding is our projections and calculations to produce an outcome. Which is odd, as the outcomes can be many. Knowing which ones and how to execute it; Isn’t coding per say but an emotional one.

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

      Circuit Carbon why? Are you struggling

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

      @@jaulloa21 Nice pic thou,Conor throwing the Dolly

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

      Silver XSai aww thanks brother. you like dolly’s?

  • @meatbagcollector
    @meatbagcollector 6 років тому +11

    Best, outro, period.

  • @prezadent1
    @prezadent1 6 років тому +148

    1:44 A wild coffee cup appears.

    • @juandesalgado
      @juandesalgado 6 років тому +13

      Subliminar Java code detected.

    • @danielkatz5925
      @danielkatz5925 6 років тому +1

      prezadent1 It uses decoffein! Its super effective!

    • @56ur4
      @56ur4 6 років тому

      ahahaha this got me laughing for some reason

    • @Sas_HeatherC
      @Sas_HeatherC 5 років тому

      hahahahha

  • @TheSeyed
    @TheSeyed 5 років тому +14

    You should know C++ because of its knowledge gain. You will be an Expert programmer if you know C++ and a C++ programmer is ready to migrate into many language.

  • @sandzz
    @sandzz 6 років тому +64

    math is important for game development folks

    • @SkyenNovaA
      @SkyenNovaA 5 років тому +7

      maths is important for programming in general. Even simple Fizz Buzz applications.

    • @reiantaank3314
      @reiantaank3314 5 років тому +9

      Maths is important for life

    • @pavelpopov9114
      @pavelpopov9114 4 роки тому +1

      each maths lesson kills a normie

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

      Physics are important for games

    • @nobytes2
      @nobytes2 4 роки тому +3

      not extremely important, unless you are building an engine. Everyday game dev, is not super necessary.

  • @taur611
    @taur611 6 років тому +8

    I wish I had someone like this guy teaching me in my early college years ...I probably would've stuck with computer science.

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

      If your interest in a subject could be lost due to a bad teacher, the subject probably wasnt your bag anyway tbh. You'd have done it outside of college if it was, found the fun in it, continued at it

  • @purpleice2343
    @purpleice2343 6 років тому +43

    The actual question is whether one should learn programming or just a programming language, not "should you learn X programming language" though.
    It's good to be able to work with any language thrown at you, that is, be able to adapt when needed, most differences between languages are just semantics anyway.

    • @StefanMischook
      @StefanMischook  6 років тому +12

      "... most differences between languages are just semantics anyway" Exactly!

    • @BlackJar72
      @BlackJar72 6 років тому +1

      This is why I don't really like the currently popular terms "coding" and "coder." When here someone talking "learning to code" it seems like a lowered bar, it sounds like learning to write technically correct code in some language -- and I can't help thinking, "Great, you can code, but do you really know how to program, to actually solve problems with code?" I know its just a semantic fad, and people are necessarily meaning it that way, but its why I prefer terms like "programmer" or "developer."

    • @purpleice2343
      @purpleice2343 6 років тому +2

      I laugh at everyone who says that they are a "coder", because programming is coding + actually thinking about it beforehand, which in general is problem solving. And I just don't like that word in general, that's all, I don't know why it even exists.

    • @darioreyes9023
      @darioreyes9023 6 років тому +1

      Well, grasping the capabilities and quirks of a language takes its time, so I'd say 'should I learn X' is a fair question. It's true that if you've been coding for a while you can probably handle writing stuff in foreign languages if you're familiar with the paradigm. However, you'll probably be googling, reading SO, docs and stealing code, like, every two seconds. Actually learning and being comfortable what you're working with takes a little more than that.

    • @purpleice2343
      @purpleice2343 6 років тому

      Started learning Lua because I can, writing my own code, syntax is easy to understand and I can already write almost anything using OOP approach (just mentioning it here because it's not as obvious as typical procedural programming is as Lua doesn't really have such thing as objects) in it since day on.
      Yes I am googling, and I'm not that comfortable yet, can't write it blindfolded, but I'm not sure why you have to put "stealing code, like, every two seconds", programming is problem solving, not code writing, which language you write your logic in doesn't fucking matter, what matters is which language is best suited for solving your problem. If you can't do that then you aren't a programmer but a skid, because that's who "steals code, like, every two seconds", nobody ever does that but skids. The only way I "copy" code in any way is by using 3rd party libraries.
      As for quirks of language, you don't need to know all of them to write something in X language, also you'll figure them out naturally as you use it, so that's not a problem.

  • @hattrickster33
    @hattrickster33 5 років тому +56

    I once had a nightmare where I found out I would need to use C for the rest of my life because C++ no longer existed.

  • @aboxx1982
    @aboxx1982 5 років тому +13

    I'm a 3rd year computer engineering student dealing with threading in C++. It's about as fun as eating glass.

    • @AlFredo-sx2yy
      @AlFredo-sx2yy 2 роки тому

      If you dont enjoy that, perhaps you should consider a career change. Not because you dont enjoy it, but because you dont seem to be good at what you do.

  • @JamesHoughton
    @JamesHoughton 6 років тому +244

    I have a problem with people calling C++ a low-level language. You can call Assembly or C low-level, but C++ is not C and it is not low-level. The C++ standard contains many high-level abstractions of things ranging from data structures to atomic variables to threads and asynchrony. You're given much more control in C++ than in other languages (especially with later standards like C++14 and 17) so you can maximize speed and efficiency. What sets C++ apart from high-level interpreted languages is its ability to stay fast, and what sets it apart from other high-level compiled languages is the fact that its abstractions can be efficiently deconstructed by compiler writers such that compilers can produce fast machine code. This is why nearly all performant code is written in C++ (disregarding embedded systems); this is why companies like Google and Facebook use C++ every day; this is why machine learning libraries that Python bindings are developed for are written in C++.
    C++ is fucking everywhere because it is a high-level language that, with practice, can be used to produce code that runs with unparalleled efficiency.

    • @clippotronics522
      @clippotronics522 6 років тому +7

      No, like u already said: C is lowlevel: BUT: C++ is C and C is not C++! ~> C++ is lowlevel too!

    • @JamesHoughton
      @JamesHoughton 6 років тому +23

      C and C++ are not similar languages at all, and if you think that they are then you do not have enough experience with either language. C++ being a superset of C is technically /almost/ true, but pragmatically it is not true at all. C++ among those who actually write it is NOT an extension of C; it is its own language, completely divorced from C.

    • @clippotronics522
      @clippotronics522 6 років тому +4

      +James Houghton no! everything you can do in C, is possible in C++. There are no issues at all. What would be the Sense to call it c++ if this wouldnt be the point

    • @JamesHoughton
      @JamesHoughton 6 років тому +17

      That is false. I have run into problems where something works with a C compiler but does not with a C++ compiler (using void* casting; C++ has stricter type checking). Read up before you comment PLEASE: en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B
      This isn't even the point, though. If you think C++ should be thought of as a superset of C, disregarding all the high-level abstractions that are used in GOOD C++ code, then you don't know how to write good C++ code. Saying that C and C++ must be similar because they happened to be very similar in the 1980s when C++ was just C with classes is a profoundly misguided statement. C++ has come a long way since then and continues to evolve very quickly.

    • @HeyyItsCameron
      @HeyyItsCameron 6 років тому +4

      honestly i prefer unity engine tbh xddddddddddddd

  • @imadudin2489
    @imadudin2489 6 років тому +434

    i hear from someone that in AI python is use to make the prototype and c++ is use to execute it because of it speed.

    • @StefanMischook
      @StefanMischook  6 років тому +96

      They work hand-in-hand.

    • @imadudin2489
      @imadudin2489 6 років тому +19

      I'm learning c++ now and i interested with AI.
      Can you explain the career of c++ developer? Actually, i started learn c++ because of it speed and it famous in competitive programming, i don't know about c++ developer career path.
      Thank you.

    • @SamTheSciencerAtheist
      @SamTheSciencerAtheist 6 років тому +78

      Actually this is true generally for everything in Python. Python libraries depend heavily on something called "ctypes", which is basically a gate to low-level shared libraries. The philosophy of making Python very fast simply uses operations coded with C++ (or C), interfaced with C to Python using ctypes. A very good example of this paradigm is nothing but the very famous numpy! Basically all the matrix operations in numpy are made C (probably C++, too), and are facilitated through Intel MKL (math kernel library). It would be utterly stupid to do matrix multiplication, for example, in Python. It'll be super slow. So basically what numpy does is take the data from python, send it to C, which uses MKL to do the math, and retrieves the result for you. Of course, granularity matters here. Doing this for 2x2 matrices is not efficient. But doing this for 20x20 matrices makes a big gain.

    • @Danielle_1234
      @Danielle_1234 6 років тому +38

      + Keep moving forward
      > Can you explain the career of c++ developer? Actually, i started learn c++ because of it speed and it famous in competitive programming, i don't know about c++ developer career path. Thank you.
      Learn the basics (this is list is applicable for most programming languages): output/print, variables (int, double, string), basic math (2+2, sqrt, ...), input, if statements, loops, functions, references (and reference collapsing rules), global variables (and why they're bad), classes.
      After that basic theory:
      - abstraction. The more you understand abstraction the better you will understand functions, math, calc, logic and proofs, programming, of course C++. Abstraction is the the butterfly effect towards learning OOP
      - divide and conquer. Without this it is difficult to solve most programming problems. It is how to take a difficult or large problem and breaking it into a ton of tiny pieces. Each piece is easy to solve on its own.
      That is the 101 of C++. Once you know it, you can write just about anything. It will not necessarily be good, or easy, but it will be possible.
      The 102 begins computer science, specifically data structures: arrays, string internals, linked lists, trees, maps, hash tables. With that the bigO notation of these structures, so you know which is fastest where. Once you get experienced enough with the hardware (It comes with experience and studying x86_64 assembly.) you'll be able to invent your own new data structures. Creating your own data types, for all intents and purposes, is the heart of C++.
      For 103 learning templates, more stl data types like tuple, optional, and so on. Then constructors (copy constructor, assignment constructor, destructor, ... idioms like the rule of 1,3,5), then shared_ptr, and possibly pointers themselves, then ownership semantics with move symantics, then unique_ptr. Then after that stl algorithms.
      I'm probably forgetting something.. but that's basically it. Oh and RAII, and operator overloading.
      After that, C++ idioms, then C++ edge cases, then programming patterns.

    • @cherubin7th
      @cherubin7th 6 років тому +6

      Or use Julia to do both at once :)

  • @creationsmaxo
    @creationsmaxo 6 років тому +9

    I started to learn programming through C-Sharp (C#) on Unity (Game engine) a couple of years back. My curiosity in game engine pushed my brain to learn more about. (I tried reading lot of books and nothing was really working from that side). Unity's C# isn't like the usual C# stuff as there are special library that only works in Unity (unless you build them back outside of it). Still, it was a good entry-level experience. Then I started to get curious about Javascript can be used and, in Unity, I learned to translate C# into Javascript from the game engine point of view. Then, as I was, back then, a graphic designer for like 6-years and worked on web design (visual side of it) with web programmers, I did have a few idea of the web's structure when it comes to the basics (HTML & CSS) and I trans-positioned my knowledge from Unity's Javascripts to the Web's Javascript. Different things sure, but the structure remains constant. Recently, I started to learn a variant of the HLSL language (shader language) and started to make my own 3D and 2D shaders.
    In the end, as it's so well explained in this video, the language you should learn is the language that's actually used in what you want to work with. I'm more of a Math-type of guy with a clean structure. Always have been. This is why I prefer C# and C++ to Java and Javascript. While they requires a bit more works and controls, their sets of rules are clearer and easier to follow (for me). It's all about their programmatic logic.

    • @marcusotter
      @marcusotter 6 років тому

      Interesting! I've been working with C# in Unity for about 1.5 years and now and feel like I want to move on to C++ and Python, to create applications outside of unity. How did you go from Unity C# to C++ coding? Any books, online resources, general advice?

    • @creationsmaxo
      @creationsmaxo 6 років тому +2

      I went to the local library and took a look at most of the books that had anything to do with C++. Once you're able to use C# such as what's in Unity, you should already be able to understand about 70% of what's explained in C++ for beginners and about 30% of what's in the intermediary level books. The remaining 30% & 70% are mostly things that are more oriented to standalone sides that comes with the C++. C-Sharp such as in Unity is heavily dependents toward the engine's core and how the engine is made to process things while C++ requires a bit more though about primary processes.
      One thing I have learned about C++ is that even old books that explains things like how they were back in Windows 98 or even 95 are still valid today when it comes to starting to learn C++. While some information are archaic, you only got to "store" in your brain the information that means something to you.
      For the newer books, they are mostly useful when it comes to optimization and memory management... because we all have experienced that there's quite a difference between building a game software for Windows 95 or 98 and building a game on Windows 8 or 10 one way or the other.
      For example, older C++ book will consider minifloat as 8bits float values while some newer book will also consider 16bits floats as minifloats (which has been standardized in 2008). I do suggest to avoid chapters in books that make uses of... floppy disk and diskettes. Not that they aren't fun to read... it's just that it doesn't work the exact same way with USB drives and hard-drives. Hahaha. I learned that the hard way.

    • @marcusotter
      @marcusotter 6 років тому

      Thank you very very much! :)

    • @user-vn4li8dv5d
      @user-vn4li8dv5d 6 років тому

      it not going to be 100% correct but i can say c# = c + .net library. i was able to write c# code on unity when i only know c XD

    • @maty1a
      @maty1a 6 років тому

      I made 3D game in Unity. Now I am switching to Unreal Engine 4 which uses C++. It runs faster. Has better graphics. Have tons of console commands while debugging. You can see FPS and drawcall in realtime. And then there are blueprints which works like Unity playmaker but they are build in engine itself so they are more powerful and can call your C++ classes. In fact you dont even have to write a single line in C++ and make game like GTA. If I ever use Unity again it will be only for android games.

  • @phee3D
    @phee3D 5 років тому +4

    i really enjoy c++, its the first language i learnt when i was 16. It to this day (i'm 19 now) helps me in learning everything, basically i can learn any new language i want now because c++ taught me all the concepts. All i had to do to learn javascript was learn the syntax (which isn't as different as i thought it would be from c++) and some other things that javascript offers, same with any other language i learnt. I definitely recommend c++ in 2019

  • @786sado786
    @786sado786 6 років тому +2

    UA-cam recommendation brought me here and just listening tells me, you're damn competent.
    Deserved like. Do a "nerdy" podcast, dude I'd be listening 24/7 pros discussing code.

    • @StefanMischook
      @StefanMischook  6 років тому +1

      Thanks! Started my Need2Nerd podcast: www.killersites.com/blog/category/need2nerd/. It's on itunes too: itunes.apple.com/ca/podcast/need2nerd/id1415321034

  • @magicsmoke6000
    @magicsmoke6000 6 років тому +4

    Great insights and I loved the ending.
    "I even forgot the point of this video" :D

  • @freeman37
    @freeman37 6 років тому +284

    I'm an embedded systems student so I'm going even more ancient.. ANSI C :)

    • @StefanMischook
      @StefanMischook  6 років тому +34

      LOL. Going to nerd to grow a white beard.

    • @yllatusmuna
      @yllatusmuna 6 років тому +74

      ANSI C is too high level. I prefer assembler.

    • @freeman37
      @freeman37 6 років тому +10

      Heard Gandalf loves his magic pointers :)

    • @angrysocialjusticewarrior
      @angrysocialjusticewarrior 6 років тому +139

      ANSI C is still not low enough. If you really want to get into the bone-marrow of the hardware... the true soul of the CPU, then you have to program in raw Chinese.

    • @bluehornet6752
      @bluehornet6752 6 років тому +8

      It's highly doubtful that you write enough Assembly code to get better at it than the C compiler will generate. And Assembly is *certainly* not as readable a C code is, so you're apt to make far more mistakes than if you were a competent C developer.

  • @GoFartherPodcast
    @GoFartherPodcast 6 років тому +2

    Dude, you are keeping me working at learning to code; SERIOUSLY
    Thanks!

  • @rahulmathew8713
    @rahulmathew8713 5 років тому +2

    The main problem c++, most of the textbook functions are for 16bit but real production code requires 32 bit functions.

  • @HolgerKPedersen
    @HolgerKPedersen 6 років тому +3

    Interesting thought, indeed! I completely agree with you on the choice of language. Always, use the language which suits your needs! :)

  • @MrAmansucks
    @MrAmansucks 5 років тому +8

    Well I'm a c++ programmer and my take on it is - "I didn't back up then, I can't back up now"

  • @streamingtv6506
    @streamingtv6506 5 років тому

    As a conceptual learner, I really appreciate how you never fail to place your lessons in the larger context. I'm in a bootcamp, but bought your videos anyway because your approach really helps me understand the big picture, that I feel I don't have because I wasn't a CS major in college.

  • @sergejpetrov208
    @sergejpetrov208 5 років тому +129

    YES, I save you 7 minutes of your time, go learn something about pointers better

    • @jamesfamily1151
      @jamesfamily1151 5 років тому

      Сергей Петров ckntmmenene
      Q Beene was sneaky a

    • @CarlosGonzalezRubio
      @CarlosGonzalezRubio 5 років тому

      Smart Pointers...

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

      They are just a variable that store the memory address of another variable.

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

      @@vectork3 Really dude? that's all?

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

      @@vybhavchaturvedi399 In VERY basic term, yes

  • @17jflor
    @17jflor 6 років тому +7

    I wouldn't question the credibility of your experience having purchases your book on web design..great book!

  • @masiguru9982
    @masiguru9982 6 років тому +96

    If you are a good programmer, you can write code in any language. That does not mean you know all languages, it just means you have the talent to quickly adapt to the new language. They are all basically the same, it is the application in the particular language that is different. IF THEN ELSE logic is the same, no matter the language. Use the language that best fits the project.

    • @plre2030
      @plre2030 6 років тому +3

      As a devops engineer, so much this. So many times I had to dive into a random software's source code just to understand what's going on, it's not even funny.

    • @badjumpcuts6599
      @badjumpcuts6599 6 років тому +25

      Languages in the same family are similar, but you can't exactly jump from C to LISP or Prolog in a day like you could with Python.
      Which is why you should learn one from all families, because there's a lot to take away.

    • @Roboprogs
      @Roboprogs 6 років тому +2

      @BadJumpCuts - I want to believe you, but "The Industry" wants no part of functional programming (alas). "Worse is Better", and all :-(
      I wish the industry chowder-heads would stop trying to turn Javascript into yet another clone of the degenerate Simula-67 corruption that is C++ (and by extension, Java). I can dream of something sort of like Scheme, I guess, but industry doesn't seem to be moving that direction. Maybe in 20 years when a bunch of people retire.

    • @fury3600
      @fury3600 6 років тому

      it depends, synthax can be completely different. there is the proper way to learn, c, c++, java, asm, sql and so on. or learn pypffffhhon and get your skriptkiddie diploma earn 900k a year without completing highschool

    • @badjumpcuts6599
      @badjumpcuts6599 6 років тому

      Roboprogs By "a lot to take away," I meant that learning features from other languages will change how you program. Heck, just seeing what Idris can do has made me much more considerate of types and function structure.

  • @tronwai
    @tronwai 5 років тому +1

    Bringing Maserati as a first example of a race (sic) car and then following that analogy, perfectly predicted the outcome of your attempt to judge about C++.

  • @vorpal22
    @vorpal22 5 років тому +1

    Up until a few months ago, the last time I had used C++ was around 2004... so when I decided to pick it back up and had to learn C++11, C++14, and C++17, there was a lot to study. I have to say that the additions really make C++ much more bearable and even fun to program in... and template metaprogramming (which was discovered by accident in C++ and has been shown to be Turing complete) is a serious challenge that bends the mind. I'm loving it to the point where I wouldn't mind leaving my current job (functional Scala) and pursuing a position in C++.

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

      I don't do much TMP, but as I understand it, isn't it fully functional?

    • @vorpal22
      @vorpal22 4 роки тому +1

      @@IamusTheFox That's a good question, and I'm not fully sure of the answer. Many programming languages now claim to be functional (e.g. Java), where they just have some functional features. Whether C++ TMP can be used in a purely functional way is a question I'll leave to those who know functional programming better than I do. I enjoy using many functional features, but pure functional programming is something I find tedious and dislike.
      I wouldn't take on a job where I was forced to do fully functional programming in C++ TMP.

  • @testtest3649
    @testtest3649 6 років тому +3

    completely agree with you

  • @ClaneEso
    @ClaneEso 5 років тому +7

    people wanting to start coding c++ are procrastinating by watching this video.

  • @bkboggy
    @bkboggy 6 років тому +1

    You are right about choosing what you want to do and choosing tools which help you achieve that.

  • @Brandon-je7ct
    @Brandon-je7ct 6 років тому +1

    Thanks for the video!
    Very helpful!

  • @cu806
    @cu806 5 років тому +15

    Php only used for web development

    • @danmanta4292
      @danmanta4292 5 років тому

      Php i know that is used for online intergration and some changes to the web. I know that you create a game in js(javascript) and of you want to make it online you are compiling him with php where the php make s the database

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

      Donald Abbott awesome. I do you have some sample code? What was the security model for the application? Just trying to learn how these apps are coded.

  • @phrtao
    @phrtao 6 років тому +5

    I hear what you are saying - I also spent 20 years in software development and once you have worked in more than few languages you can use any language. After a switch in language it always takes a few hours to get adjusted to the syntax and peculiarities of the development environment. It's called transferable skills.

  • @davecamp9130
    @davecamp9130 6 років тому +2

    I totally agree. The language is a tool to get the job done. If there are better tools for your task then by all means you should be using them. You wouldn't use a sledgehammer to paint a picture.

  • @nju415
    @nju415 5 років тому

    In addition to the technical information you delivered in all your videos, which are very good for me as developer by the way. Your videos are weirdly soothing and satisfying to watch after a long day of work. It's like listening to veterans telling stories about what happened on the battlefield.

  • @celconicuzn
    @celconicuzn 6 років тому +8

    This video clearly explains the concept that the developer needs to choose their own path. It was my experience while learning in college that struggling with C++ made learning most other programming languages a breeze.
    If I had to give someone a cookie cutter answer, it would be that you should have a high, medium and low level language under your belt. As of the time of writing I would say that Python, Java and C++ are the most worthwhile of those categories.
    Python will increase your speed to write code dramatically. You will be able to solve algorithmic challenges and attack a problem with sooner success.
    C++ will give you the ultimate power to write very efficient and powerful code, but can be much more time consuming and frustrating.
    Java falls somewhere between the two as a high level language with many characteristics of a low level architecture. Java is fantastic for building GUI applications and doing network programming.
    If you want to write a small program that has a limited lifespan that only solves a task today.. Write it in Python. If you want to write code that will be used for years later, do it in C++.
    Good luck.

    • @garetclaborn
      @garetclaborn 6 років тому

      languages are not like dating, there are real differences that matter. people just get political about it then everyone acts like it's a wash to stop arguing.

  • @aodfr
    @aodfr 6 років тому +11

    Being a hobbyist game developer and graphics programmer C++ is the way to go because I have all most total control of how memory is used (both sys and with the introduction of Vulkan, Metal, and D3D12 vram). If your writing a business app use something like Python, Java, Ruby, C#, etc. If you want to create a high speed real time simulation that requires a ton of optimizations to pretty much any aspect of the project, c++ is the winner. I could use Rust or good old C for this but. C++ has so many libraries for this purpose plus has several ways to code up a solution (procedural, Object Orient, Generic). My issue is C is simple, I can do C programming in C++. As for Rust, its to new and doesn't have a big ecosystem just yet.

    • @IExSet
      @IExSet 5 років тому

      Why write games in C++ today ???? Most of people just use ENGINES.

    • @clank2269
      @clank2269 5 років тому

      @@IExSet yea unity and C# is perfect in my opinion

    • @mehmetakyuz5290
      @mehmetakyuz5290 5 років тому

      It depends on game. AAA games might not be that suitable to make in Unity. @@clank2269

  • @JackBond1234
    @JackBond1234 6 років тому +1

    As a web developer primarily, the more I work with Javascript, the more I love it. For some applications, it has some limitations, but for the web, it is so powerful. In fact, I'd say the most powerful features it has are not well understood, and can't be used to their fullest without years of study/practice because there's nothing quite like them in most other languages. In that sense, the experience of learning Javascript never gets old, because you're constantly finding ways of doing things, and even architecting your code that completely expand the world of what Javascript can do.

  • @josuezamora8814
    @josuezamora8814 5 років тому

    Thanks for taking the time to share your experience with the different programming languages, very helpful for guys like me walking the first steps in programming. Greetings from Costa Rica.

  • @elModo7
    @elModo7 6 років тому +3

    なるほど。。。 わかりました!

  • @RemiBusseuil
    @RemiBusseuil 6 років тому +3

    For the embedded community C++ is the advanced langage! we are only used to C and assembler :)

  • @SHAHZAIB-sr7hn
    @SHAHZAIB-sr7hn 5 років тому +1

    I Respect you sir Awesome info gonna go with c++ huge beast

  • @Retrocool74
    @Retrocool74 6 років тому +1

    funny, because the ad before this played was about learning C++

  • @zoug2529
    @zoug2529 4 роки тому +8

    The video starts at 1:20
    you're welcome.

  • @normanp.chesterton7397
    @normanp.chesterton7397 5 років тому +19

    You are missing a huge chunk of knowledge as a programmer if you have not fully immersed yourself into a programming paradigm that is close to the hardware and one that is close to the OS. You can probably earn money all your life by only staying on levels of abstraction above that, but I would feel like I am seriously lacking an area of insight that is essential to programming computers. I am not sure if it has to be C++ in order to sharpen those skills, but it is simply such an established and complex language that I would definitely recommend people learn it. It's not just about whether you need it, but also if it benefits your skill set. If you really had nothing much to learn from C++, you probably won't be spending much time on learning it. And if it provides more of an obstacle than you had assumed, maybe that is a valid indication of what it is teaching you. There are certainly things that are complex just for complexity's sake, and many more recent programming languages have done away with complexities such as multiple inheritance, but I just cannot imagine my development as a software engineer without having had C++ on my road map. If I imagined my view on the programming world without it, it would feel as if it would leave a huge hole in my understanding of compilers, programming, and computers.
    To build on your analogy with race cars, sure you don't need to test the 10th race car if you have driven 9 others. But C++ is such a genre defining language, it would be more akin to being a gamer into FPS and never having played such genre defining games like Doom - even if you have played countless other FPS games.
    C++ seems like such an important language to me, it would leave a huge gap in my knowledge. There are so many old source code bases that I have learned a tremendous amount from that I would not have been able to comprehend without my C++ experience. Do you absolutely need in 2018? No ... but there are a lot of things that you can do without in life that are hugely beneficial.
    I don't know your particular situation, I trust that you are not just talking out of your rear, but anyone reading this, if you learn C++ well, I can promise you that you won't regret it. If you do, feel free to shame me in the comment section, but I would find that hard to believe.
    What did strike a nerve, though, is C++ struggling to keep up with some more recent programming paradigms that seem a rather awkward fit in an already very complex language. C++ might be the most complex language to parse, compile, and to implement I believe, but I would have to get back to you on specific metrics for that claim. If you are writing software that is on a level of abstraction above that of the OS or hardware, do take the video author's advice and stick with something more high level. And there are languages that stay reasonably high level that let you break through to lower levels of abstraction where needed, such as C# with its P/Invoke, so there isn't really anything that you could do native that you can't do with C# on Windows at least. I am not sure off the top of my head how P/Invoke works on Linux, if at all.
    If you want to do the plumbing of a UI, for example, quickly, without wasting your or your company's time, do not be ashamed to use as many GUI tools as you can get your hands on. There are people who think it is a display of some kind of elitism to live a life as Spartan as imaginable, because they think it's somehow evidence of their programming prowess, such as the smug look some people get on their face for mentioning at every opportunity that VIM is their favorite editor. Absolutely use the tools that get the job done quickest, easiest, and cleanly, both now and in the future, in terms of maintainability. Languages such as Python are great for that, and ecosystems such as node.js/NPM have gained amazing popularity. It's really exciting to see how much is out there, how quickly you can put modules together and so forth. Whereas we might have had a software crisis in earlier days, we might now have a software explosion. I am very, very happy about that and I am glad to see how many young people nowadays know how to program. I am absolutely unafraid of competition and I welcome any changes that make software better, as well as easier and faster to write. The future is bright for software development - if you know C++ or not.

    • @vladimirmisin1876
      @vladimirmisin1876 5 років тому +1

      oss!

    • @b3zaleel
      @b3zaleel 5 років тому +2

      You seem to like writing essays don't you?

    • @phlippkick
      @phlippkick 5 років тому

      I really like your thoughts about C++ and programming at all. It's more consistent with my understanding of writings code. Really enjoyed to read that.

  • @nicobako573
    @nicobako573 6 років тому +1

    Wonderful description! Each language has its pros and cons. The goal of programming is to solve a problem, and no language is good at solving every problem. When deciding which language to learn, pick the language that is best suited for a problem that you are passionate about.

  • @rudyardkipling4517
    @rudyardkipling4517 6 років тому +2

    well said, I use 11 languages myself c++ is one of them but I always choose my languages according with what I am doing

  • @NikolaTesla_369
    @NikolaTesla_369 5 років тому +15

    After he said Maserati...
    At 0:55 his voice sounded like an Exhaust of a sports car..🤣

  • @davidporterrealestate
    @davidporterrealestate 6 років тому +15

    I'm learning C++ now and taking an ML class. It is so much math. I like UI too so I may go the Qt, OpenGL route. I saw a cool job working for Boston Dynamics doing UI. That would be my dream job. Maybe in 3 years or so.

    • @nickboyadjian367
      @nickboyadjian367 6 років тому

      do you live in boston?

    • @davidporterrealestate
      @davidporterrealestate 6 років тому +1

      I go there a couple times a year but don't live there

    • @MusixPro4u
      @MusixPro4u 6 років тому +1

      Do you really think that position (or one like it) would be open for 3+ years until you feel ready?

    • @fury3600
      @fury3600 6 років тому

      math? math where?

  • @scott5087
    @scott5087 4 роки тому +1

    My first language I ever learned was C++, I’m excited to learn new ones soon!

  • @2Sor2Fig
    @2Sor2Fig Рік тому +1

    The analogy about sprinting and long distance is so apt. Over the past 2 years I've had to learn Java so I could develop Android apps, and the biggest change was getting used to the dev environment. I have to mentally leave Python mode and switch to Java mode. Now I've recently been doing it all over again for C so I can take advantage of the JNI. If I can be fluent in 2 languages and proficient in one, I'll be happy.

  • @Michael-hs8gs
    @Michael-hs8gs 5 років тому +4

    Is it just me or does this guy sound like Godfather if you're reading this dude your voice 10/10 👌👌👌

  • @sflxn
    @sflxn 6 років тому +13

    Been writing software for over 25 years, most of that time using C++. I've also produced commercial software in various other languages too. You are spot on. I stopped using C++ 2 years ago. I hope to never touch C++ again. Dealing with lib and header file management. There are much more productive languages out there today for various different tasks. A lot of new productive languages such as Golang allows you to focus on the design and architecture instead of code janitoring. I love C++ but these new languages are so much more productive. I will never go back.

    • @Roboprogs
      @Roboprogs 6 років тому

      I remember first working on C++ back in 1990 after using Borland's Object-Pascal the year before and thinking "Welcome to Hell" (let's start with demo programs that took 60 times longer to compile, then move into operator overloading and all the unchecked pointer insanity). I don't know any 21st century C++, I stopped following it after reading Scott Meyers' "Effective C++" book in the mid-to-late 90s and realizing it was mostly of the form "Don't let C++ screw you *this* way, or *that* way, or ..."
      Either 21st century C++ still has all the same old crap (and so much more!), or, it's not backwards compatible, and should be called something else.

    • @KevinUchihaOG
      @KevinUchihaOG 6 років тому +2

      @kurt its just a personal preference. Yeah sure, header file management is not a big deal. But it just feels unnecessary work for someone that is used to a more higer level language. Garbage collection too. It just feels like you spend alot of time in c++ doing stuff that other languages do for you. I like to prototype my games really fast and work my way from there. If i make games in c++ alot more planning is needed and it will take longer time for me to have a playable demo.
      Now i understand that c++ is faster and more versitale. But i see no point in using c++ if im going to make a indie game. It just makes it more time consuming and the game will probably have more bugs. Now AAA game titles for sure should be done in c++. But for small developers there really is no need to go c++.

    • @sflxn
      @sflxn 6 років тому +5

      Really hate responding to trolls, but I think my response will resonate with you when you gain more experience. If you've been doing C/C++ as long as I have, it starts to get old. It's still the language I am most fond of, but for me, it's time to move on. In tech, if you don't evolve, you get left behind or lose competitiveness. The choice to leave C/C++ was a personal choice to evolve. Some of us older developers know we must keep up with the times and compete with everyone else in the industry on the terms of where the industry is now and not where it was when we started. I know I'm being cryptic, but read that last sentence carefully as my reasons are completely encapsulated there. I'm going to cap it off with a lesson I learned over 20 years ago.
      I worked with a guy who had been a mainframe developer doing fortran and cobol. We were on a distributed systems project involving DCOM. He had a rough time, and he told me as such. It was a very cautionary tale. Cobol had it's time. C had it's time. Java had it's time. Now the tech landscape has shifted, and some of the other languages like Go, Rust, Swift, and Python are just better suited for the changing landscape. If all you're doing is writing drivers or embedded systems and never plan to do other software, then by all means, stay with C and never change. Just hope C and embedded systems don't go the way of Cobol and mainframes. For me, I will never want to stay narrowly focused and not evolve.

    • @thenerdguy123
      @thenerdguy123 6 років тому +7

      Kurt Angerdinger "Python isnt any solution at all. "... tell that to Google, IBM, and NASA. Much of their stack is based on it. It is used incredibly heavily in the data science and AI world due to its flexibility.
      It is funny you diss BASIC. You do realize that is what launched Microsoft into the mainstream, right? But yeah, I guess that didn't actually happen because all the smart engineers avoided BASIC... right? :/
      There are no "beginners only" languages - there are only "beginners" who debate about what language is the best. Experienced devs will spend their time choosing a language that works the best given a very specific situation. Like in Algebra, there may be multiple correct solutions.
      Yes C++ is powerful and is a personal favorite, but would it be wise to use it to build the backend of a blogging system? Heck no, it would take 10x longer than if you used PHP, Java, or Ruby. Just like it would be silly to use PHP to build a game. Each language has its place - good developers will learn when to use each one.
      As far as why apps today are slower and buggier - if you worked in the industry for any decent period of time you would know why it seems that way - there's a few reasons... I'll lay out two of them.
      1) In the good old days engineers would spend a year or two on a single version of software with a ton of QA/QC. In today's fast-paced highly iterative world of new versions every few weeks/monthly - sacrifices such as reliability, security, and execution speed are being made to gain an advantage over competing software and services. This is a huge issue in the industry as a whole.
      2) Additionally, software does a heck of a lot more these days than back in the 80s and 90s... so of course it will be more error prone. The KISS approach works with software... always has, always will.

    • @manit77
      @manit77 5 років тому

      Kurt Angerdinger use the right tool for the right job. C++ is the screw driver while c# is an electric drill.

  • @zxretrosoft
    @zxretrosoft 6 років тому +1

    Thank you very much! I agree, absolutely! ;-)

  • @cristianscript5649
    @cristianscript5649 6 років тому

    Heeelp I did a script with pandas and it shows me this error once I run the .exe .. Missing required dependemcies [ " Numpy " ]. Heeeeeeeeeeeeeeeeeeeelp I have no heck of idea what to hell do. I am using python 3.6

  • @sesamtoast9431
    @sesamtoast9431 6 років тому +259

    With c++ u can do everything!!
    Blender, really popular games, whole programming languages were written with c++/c/c# !!

    • @StefanMischook
      @StefanMischook  6 років тому +25

      True

    • @bixense
      @bixense 6 років тому +69

      Blender is written in Python.

    • @mmarcus897
      @mmarcus897 6 років тому +181

      You put in the same category C# with C and C++. You understood nothing.

    • @sesamtoast9431
      @sesamtoast9431 6 років тому +13

      m marcus
      Lol with C#/C/C++ I meant that you can do anything with the C languages, not just with C++. And there are games that are programmed with both (C++/C#)
      I think u understood nothing :)

    • @mmarcus897
      @mmarcus897 6 років тому +70

      Did you ever code, beyond hello world?
      C and C++ are system language that give you control over memory layout and small details that other languages don't. C# is like Java, you only use the heap and rely on the garbage collector to manage the memory. They are NOT interchangeable, they are different in what they do and how they feel/make you reason about problems.
      Though in some games C# is used, it will never be used in critical parts (like graphic/physics engine), maybe for scripting purposes.

  • @dimitarvel1441
    @dimitarvel1441 5 років тому +3

    Yeah, I really wanna get into AI but I'm horrible at math, I average B- right now (3rd year of highschool) and I am probably going to drop to C by the end of the year.
    I have been doing web development for over 4 years, I only got good at it this time last year - around the time I picked up PHP, but now I'm looking to learn Django and pair it with Vue or react, I'm not even going to try for angular...

  • @TheZiZaZo
    @TheZiZaZo 6 років тому +1

    Your analogies and comparisons are great !

  • @hcplsmf
    @hcplsmf 5 років тому +1

    Thank you for this info!! Very nice of you to share!! Also, totally random, but I think burgundy or royal blue would look lovely on you. :)

  • @jonsnow9246
    @jonsnow9246 6 років тому +5

    Summary : YES!

  • @trwappers
    @trwappers 5 років тому +31

    Euhm this is wrong. C++ is not low-level at all. C++ is a language to add many high level concepts to C. You can be far more succinct in C++ than you can be in your other examples, like PHP or Java. And the BIG C++ philosophy is "high level, without the cost" (cost at runtime), and that is the great strength, and the great weakness.
    C++ lets you be high level, at (as close as possible to) zero cost. The reason for the pitfalls is that very behavior. Because of having zero cost abstractions C++ does not stop you from doing dangerous things. There's no bounds checking, it will just crash or use uninitialized memory (because if it works correctly it's way more efficient, and presumably you know what you're doing). There's no one protecting you from using objects you've freed (because if you do it correctly, not checking is way faster). There's no one protecting you from overflowing your ints (they'll just increase and suddenly be negative), there's no one protecting you from using too small float values (meaning a loop that doesn't look all that infinite can suddenly be infinite).
    When you ask C++ to allocate 10 bytes of memory, it allocates 18 bytes (usually). (it prepends the actual allocation with the size of the allocation, which on 64 bit computers, is 8 bytes). To be fair, for class instances there'll be another 8 bytes pointer to virtual method table. Now that sounds like a lot, but Python ? 47, and then add the 8 that have the same meaning as in C++. I don't know about PHP, but it'll be similar. Java ? 26 bytes. That's because Java needs all sorts of information to do those safety checks, and Python needs even more.
    Java gets killed on memory performance because all sub-data are pointers to external classes. So "class Vector { Point base; Point dir; }; class Point { int x, int y }", in Java takes up 16 + 16 + 16 + 8 + 8 + 16 + 8 + 8 or 96 bytes. In C++ the same data takes up 24 bytes. I'm not sure about Python, but it's going to be over 100. This also kills cache performance, which matters even more than the raw difference in speed between languages (using memory is ~100 times slower than using cache. So because a C++ program can store close to 3 times more data in the cache compared to a Java program, and something like 10 times more than a Python program. This means a C++ can chug through close to 3x more data than a Java program in the same amount of time). (and yes, you can create totally unrealistic java using absurdly large amounts of variables that doesn't have the slowdown. In any realistic program you will see this slowdown)
    But if you very quickly want to write a very fast webserver, that is certainly possible in C++. And the thing is, where your python server handles 100 users, php will for the same code allow 1000 users per server. Java, for the same code ? 50000. And C++ ? 1000000 users. No problem.
    This is why eventually all successfull software gets rewritten in C++. Because in the long term runtime costs exceed all other costs.

    • @IExSet
      @IExSet 5 років тому

      If u want really fast webserver (web service), better take Erlang, because C++ will not work for 1000000 users LOL!!!

    • @bestd2136
      @bestd2136 5 років тому

      Ben D
      1 second ago
      C++ original name is "C with classes". That's what make C++ a low-level language as well. You can do with C++ anything you can do with C! :-)

    • @TheTechGlobe
      @TheTechGlobe 5 років тому

      TLDR lmaooooo

    • @atrius4665
      @atrius4665 5 років тому

      But the language still has those low level features and can make use of them if it needs to. The fact that the possibility is there and that to really learning the language, you will have to understand them, makes it low level.
      Now, whether or not these things are commonly used is a different issue, but it has no bearing on what the language (dis)allows you to do.

  • @resofactor
    @resofactor 4 роки тому +1

    I'm mainly interested in learning C++ to code modules for the Synthedit platform,
    and eventually make my own VSTs.

  • @friendlycs
    @friendlycs 6 років тому +1

    Amazing Video!

  • @shreyampandey4549
    @shreyampandey4549 6 років тому +5

    His voice is so calm that I slept.

  • @1998goodboy
    @1998goodboy 6 років тому +52

    you pissed off so many people when you said PHP

    • @StefanMischook
      @StefanMischook  6 років тому +1

      LOL! I am language agnostic. You learn that with experience.

    • @1998goodboy
      @1998goodboy 6 років тому +1

      yea ofc, I'm not saying that I'm pissed off, just saying that were are people that will xD

    • @fury3600
      @fury3600 6 років тому +9

      php is the shit, how much crack have you been smokin

    • @1998goodboy
      @1998goodboy 6 років тому +4

      Edward there it is!

    • @peteabc1
      @peteabc1 6 років тому +2

      People using PHP are already pissed of because of it's "features"..

  • @TimmacTR
    @TimmacTR 6 років тому +1

    Around 4:00 you start listing what each language is better suited for. Can you please elaborate on that? Which languages in your opinion are best suited for which tasks? Thanks.

  • @ahmmed4398
    @ahmmed4398 5 років тому

    hello mr.stefan
    i decided to learn programming about 4 moths , i started with python for its simplicity and the fields it works with
    but i feel lost as i cannot decide what track should i choose to work in or how can i finish learning python , can you help me with this?

  • @Celula002
    @Celula002 5 років тому +5

    I am learning c++ and I really like it.

    • @garetclaborn
      @garetclaborn 5 років тому

      IT REALLY LIKES YOU TOO WHY DONT U MARRY IT
      ooooooooooooooh buuuurn

    • @vlad3223
      @vlad3223 5 років тому +2

      @@garetclaborn that hurt me mentally

    • @garetclaborn
      @garetclaborn 5 років тому

      ​@@vlad3223 so would you say that you're...
      ....FEELING THE BURRRRN!!?¿
      ;]

    • @vlad3223
      @vlad3223 5 років тому

      @@garetclaborn no it burnt me mentally

    • @garetclaborn
      @garetclaborn 5 років тому

      mwahahahaha!

  • @johnnyboy90528
    @johnnyboy90528 6 років тому +33

    Doctor Octavious? Is that you?

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

    Thank you, man! I love good advices.

  • @usvplaylist8758
    @usvplaylist8758 6 років тому

    I skipped c++ when i study my java courses years ago but was unable to use it at work. Now I wanna relearn all my lost languages such as java, should i pick up c++?

  • @przemekwielgosz421
    @przemekwielgosz421 6 років тому +8

    damn it mate I got you mistaken with Stefan Molynuex lol

    • @StefanMischook
      @StefanMischook  6 років тому

      LOL

    • @taifuhime
      @taifuhime 6 років тому +2

      Przemek Wielgosz don't insult the man

    • @przemekwielgosz421
      @przemekwielgosz421 6 років тому +1

      Tired dyslectic in a dark room sees a recommended video from Stefan M, the thumbnail is kind of weird, the video is different from the usual philosophical content but since Molynuex did his fair share of programming back in the day, why not, it could be interesting.

    • @StefanMischook
      @StefanMischook  6 років тому +2

      I am not completely bald though. ;)

  • @franciscogaxiola9450
    @franciscogaxiola9450 6 років тому +8

    So easy answer for every dilemma in life, Do you need it for your job/goals? Yes, Not yet and possible never? No. That irrational feeling that you need to know every alternative tool for a single task is so frustrating, useless and stupid. Learn as you need, the only exception I find is when you want to apply for your dream job and need to master something new. Again, master as enough as needed, otherwise you will experience something called "anxiety", plain translated to "unsatisfied life".

  • @dineshrout2527
    @dineshrout2527 5 років тому

    You just burned🔥🔥 from starting sir..thanks for the info too.

  • @davidprock904
    @davidprock904 5 років тому +1

    What language would be best for making a revolutionary file compression program.
    Involving godly insane amount of nested loops.. this is a real number.. summing up the total nested loops... to process ONE BYTE will require a total loop count of 65,536 .... I can make it less but that’s the max. When I’m done with this I’ll be fitting blue ray movie on a floppy. I started learning C++ for this, am I on the correct path?

    • @YakobtoshiNakamoto
      @YakobtoshiNakamoto 5 років тому

      Ask Pied Piper. I hear they are doing well. Or are you a Hooli insider???

  • @vincent741
    @vincent741 5 років тому +12

    you should learn c/c++, it's where all the fun is

    • @aboxx1982
      @aboxx1982 5 років тому +4

      By fun you mean late nights going over mountains of code to find a missing semicolon then yes it is fun.

    • @uzefulvideos3440
      @uzefulvideos3440 5 років тому +1

      Fun?!
      If you want to have fun, use Crystal, Ruby or Python.

  • @Sas_HeatherC
    @Sas_HeatherC 5 років тому +4

    dag nabbit, my trig and math theory teacher was right. i do need math after school! well crap on a map

  • @QuestionTheTruth
    @QuestionTheTruth 5 років тому

    If I want to create Android applications, what language would then be the most stable and fast read?

  • @johnyzaguirre358
    @johnyzaguirre358 6 років тому

    Great video! Also your camera is amazing. Great positioning and lens selection.

  • @MatthewSextonUSMC
    @MatthewSextonUSMC 6 років тому +59

    My school is switching from java and C to C++

    • @StefanMischook
      @StefanMischook  6 років тому +21

      Really? Wow. That genuinely surprises me.

    • @user-os3ml4uu6i
      @user-os3ml4uu6i 6 років тому +1

      We did C++ for GCSE (14-16 years old first set of public exams) and now we're doing Java for A-Level (16-18 years old second set of public exams). Not sure if there's a specific reason.

    • @fury3600
      @fury3600 6 років тому +1

      why not both..

    • @RockDavid
      @RockDavid 6 років тому +1

      Thats odd, Java is the best way to learn as it is so big on range. At UoW where Microsoft supports we learned via Java than took side classes in C based languages.

    • @RockDavid
      @RockDavid 6 років тому

      Can be confusing and time wasting. Programming has one thing in common regardless of language, concept and theory. If you learn Java theory and classes - 100% of other languages will have the same idea just differnt syntax for say.
      Java is a great base point to start learning.

  • @bruhaspati560
    @bruhaspati560 5 років тому +3

    It's an exotic language.

  • @user-wd3sp7oy9l
    @user-wd3sp7oy9l 4 роки тому

    Which language you remand first to learn I wanna build android apps and game
    Please some one who has good knowledge with programing