Advice for newer software engineers. The language you use when learning doesn’t matter as much as you might think. Once you grasp the basics of programming, the concepts -> object oriented programming, logical flow (loops, conditional statements (if/else), how memory works (stack/heap), threads (advanced topic), functions/methods etc. Then you can pick up a new language very quickly by just reading the documentation and seeing what the syntax is in that language. Ex. If you’re using JavaScript, for-loop syntax looks like: for (let i = 0; i < cars.length; i++) {} In Swift (iOS programming language): for i in 0..
As someone who did struggle for 1 year to learn, I had to come here to say: the best way to learn are books that have interactive content. Those that make you practice what they teach on еach chapter. And that's what you need as a beginner: practice instead of complex subjects and concepts. Focus on learning your first programming language and everything else will be much easier once you learn. Edit: For those asking, the books that made me learn were "Javascript In Less Than 50 Pages" and "Head First Javascript Programming".
exactly, I had the same issue, I literally had to write my own curriculum as I couldn't find anyone that could teach it for beginners. This was when I was learning C#. The problem with all these courses, they actually don't teach you anything. They just tell you, great now build this simple function, good luck, and then you're just sitting there going WTF are you on about? Instead, I spent days going through books and videos and grabbing bits and pieces, threw it all into Github, I then consulted with a Project Manager to work out the best framework to manage my learning and learned how to use GitKraken to help me oversee my code. Best experience ever. As a beginner you need to be hand fed most of the stuff at the start so you understand what the code is doing, then you can start writing your own stuff. Instead, it's in reverse, you're told to write your all your own programs and you know nothing lol.
Great vid Brad. I'm a retired University Lecturer, I taught programming for 20 years. IMO you've given a great and unbiased intro to modern programming languages. As you said, you can't cover everything. For anybody reading who wants to dig deeper, here are a few suggested considerations - Library support. This is one thing that drives the popularity of Python, and is the bedrock of C and C++. - Object Oriented or not? OO is not just one concept: every language has it's own concept of OO. - A few languages that Brad had to leave out: Pascal (mentioned), Fortran, Cobol (yes people still use it). - Other programming paradigms. Lisp and Prolog are worth learning: they teach you different ways to think. - Stability. Is the language / framework / environment owned by a corporation that can change it at any time, or is it a Standard? Getting off Brad's topic, here are some other things to consider. - Test Driven Development. Check it out, along with criticisms. - Prototyping / Agile. They are not the same. Check out criticisms. Is Agile a passing fad? - Learn about preconditions, invariants, post conditions. Read Meyer Object Oriented Software Construction. - Read Stroustrup The C++ Programming Language. You'll learn heaps, not just C++. - Learn about debugging. Write your code to be debugable, along with testable. And now a caution: I've only seen one of Brad's vids and he seems to be thorough and trustworthy. Many other programming RUclipsrs (and online tutorials) are not, I've seen plenty who just sprout ignorant opinions and wrong "facts". Tutorials are good to get you started, but don't rely on a single source. When you really want to know something, go to (as they say) the source. The official documentation, the original author, the official website. Final advice: learn multiple languages. Experiment. Write your own interpreter. Have fun :-)
One thing I think is missing in programming courses is adding new functionality into previous (home)works - which is how it works in real life jobs. Until then you can't appreciate proper coding style and software patterns and so on. Maybe even same project once with your own implementations (to know how it works) and once with maximizing standard libraries (to know how you could avoid bugs from previous project :D) and similar...
@@miroslavmikus6480 Sounds like you have attended one of my classes :-) Students would build up a significant project (2000 to 3000 lines of code) incrementally through the 13 week semester. If that sounds like a lot, well, yes it was! It was an elective subject that had high student demand because of the great skills they learned.
I learned the assembly language of the 8051 microcontroller in school and it was one of the most useful things I've ever learned regarding technology, cause it absolutely changed the way I understood everything about the way a computer works, and it's given me a huge advantage in university, no matter what programming language.
I'm a newbie programmer who just finished her first year of college. During my first year, I was introduced to 2 courses of python, 1 course of SQL and a final course of Risk V assembly. While I learned a lot in my first year, I feel like I'm behind in terms of knowledge and experience so I decided I'd do something about it this summer. Thank you for this video, I'm sure it's going to be useful.
Hands down you're the best crash course teacher I've ever had the pleasure of knowing. Just wanted to take the time to show my appreciation and admiration for everything you do for us.
Love the t-shirt Brad! Thanks for another useful video. As a self-taught beginner I'm glad I bumped into you in one of the many many rabbit holes I found myself lost in this year. You've played a huge part in helping me navigate the labyrinth of the web dev / programming scene, and taught me CSS and JS. Always great content, no fluff and to the point. Whenever my brain is ready to cram in some more, you're one of my go-tos and I keep learning thanks to you. Respect.
These types of videos are very helpful to people who are just getting into or back into software development, or people whose careers have been very siloed. Both apply to me, so thank you.
All tech -youtubers make these every year 😅 But THIS video is not one of them, it's a very neat rundown and comparison of the most used languages. Well made 🤘🏻
@Kenny Yip Coding You'll never find Brad stooping to click baiting brother. He has a pretty sold rep. Appreciate all the content you push out for us Brad!
The 1st ever program I wrote was in machine code using hexadecimal instructions and memory addresses. That was for Intel's 8086 processor :) -- part of an "electronics instrumentation" module for a Bachelor's degree in Physics, way back in 1996!
If you are a beginner and can't decide which language you should start to learn with, I tell you don't worry too much. If you understood one language, you will be able to understand another language pretty much right away. Maybe you will have to look up a few syntax rules, but you won't take more than 3-4 days to also learn another language
depends though. I would say C/C++ is dramatically different than JS/Python. Having to worry about memory management, declaring pointers, including specific libraries...it can be quite dramatic. I agree the change from dynamic to another dynamically typed language is very small, but moving from dynamic to static or vice versa takes quite a bit longer
@@fray3dendsofsanity yeah maybe a bit longer, but it's not like taking you several months to learn. I started to learn programming with Java. Eventually I was asked to write a programm in Cobol. Even though I have never seen Cobol before, I still managed to write the programm within one week. Because if you understood the fundamental concepts of programming, you can basically apply them to any programming language.
@@serae4060 I think moving from Static -> dynamic is easier than the other way around, or moving static->another static language in your case. Java is one of the more difficult to learn so it makes sense that COBOL was easy. I learned C++ originally so JS/Python seem like a breeze by comparison, but if I had started with JS and had to learn C++ after I think it would be a bit more challenging as I wouldn't be used to explicitly declaring variable types, managing memory and deleting objects etc
That's what happened in my case. I started with VB6 and dropped. Years later, I tried with python and dropped. As a self learner, "__init__()" & "self" were my main obstacles. Then 1 year after started learning VB. Net and this time, I got a grip in programming. I learned what is "__init__" function by learning the "New" sub routine in VB. Net. So I came back to python and voilà ! this time python seems English to me. Then one after another, I learned 5 more programming languages including D, Nim, Odin etc.
I am Learning programming for the last 3 years right after high school I skip college and Brad ( Traversy Media ) is the best instructor for programming, and web development. I am done he's javascript course it was amazing after this I don't have to learn every single language from scratch I just need to learn the basic syntax. after all of this now work in Flutter, Web Dev, Starting Unity, all of this because of him ThankYou Brad ❤️
If you want to learn Swift, it has evolved a lot over the years. It can compile to Linux, Windows and WebAssembly. It's used for scripts, backends, etc. The most common use case remains apps for Apple Platforms ofcourse.
So many of these languages have come such a long way, even in the last 5 years. It's remarkable. I really have to give props to the JVM team specifically. They have really done an incredible job adding features, allowing more languages to be run on the virtual machine. And the Java language developers as well have been really putting in the work since Java 8 implementing some seriously fantastic functional paradigms into the core language and really modernizing the language while being extremely considerate not to bloat the language.
Great video! You cover many important details about how languages work, and their respective levels. This video is a must watch for anyone getting into coding 💯
I have always said to beginners that unless you are developing your own software where you get to pick your stack, the best programming language for you to start out with are the one that the companies in your area are hiring you to code in. Cause what you want is to get your foot in the door. After you do it for years then it really doesn’t matter cause what matters is _can you solve problems_ ? The language then doesn’t matter as much cause you can eventually learn any other language.
Originally the purpose of C++ was "C with classes". It has only become more and more functional in newer versions, but in most of it's lifespan C++ was used with OOP in mind.
So glad this isn't a top 10. Some developers can get very high and mighty about programming languages, putting some on a pedestal and turning their nose up at others. There's no best programming language. They all have strengths and weaknesses and all have their quirks. Use which ever works well for you or your company
The reason why Ruby is so cool is that you can embed it in, lets say, a C++ project super easily, to provide a domain specific language for users to customise the behaviour of the software.
C# can also contain unsafe C code, which is where they often put code that needs to be performant. While mainly statically typed, it also supports a dynamic keyword. I use it for code that 'plugins' at runtime.
PHP was also my first language I really learned! (with Actionscript being the first language I ever used - together with what was then known as Macromedia Flash). Just sad to see that PHP gets so much hate nowadays, I think it's really come a long way in the last decade(s?) and certainly deserves better. P.S.: maybe a short introductory course to PHP 8 by the legendary Mr. Traversy himself would open a few eyes (although I do see why that wouldn't be a priority as there ARE - as outlined in this video - great alternatives out there)
I use PHP daily for my work and I hate it very much. The nail in the coffin for me is its syntax. Even clean code looks very ugly compaired to other languages. But this is just a personal bias of mine. The language is powerful, but also very ugly.
I've used assembly language, Fortran, Cobol, PL/1, Pascal, VB Script, C++, C# and several others. C# is easily the best environment. Also, there is another language between assembly code and machine code. It called micro code and defines the CPU functionality.
Sorry to see you didn't mention Elixir at all. Also a really good Python framework to use which is faster and more modern than Django and Flask is FastAPI.
@@gimlam5909 World is not ready for LISP dude. I love emacs and syntax seems annoying once you understand it, everything make sense. Ditch kotlin why not build android app in clojure.
Im studying product design ans just trying to understand how coding works without becoming a developer myself. Breakdowns like this are great! Thanks man!!
I'm searching for a programming language that fits me & it is HARD! I'm 60. It's been 20 years since I taught myself html & created a 200 page website. Geocities was still around when I started "coding". I got away from all that but now I want to build a website that features pets for adoption, has a pet care blog & also let's me sell pet care supplies as an affiliate for various vendors such as Chewy & Jeffers. It appears my goal too complicated, so I have to do it myself. I can barely afford a website & sure can't afford to pay anyone to build a multi-page, multi-functional website that will require updating the pictures & descriptions of animals every 2 to 4 weeks. From watching your video, itlooks like php is the language I need? I'm not real smart, I'm a slow learner, I suffer from CRS &my brain might be kind of cobwebby. So I want to be careful not to bite off more than I can chew & thus fail or die of old age while still trying. What do you think?
Thank you for this information, noted all of it down and it might be helpful for me to choose what to learn and aware of the other programming languages and yes learnt new things too.
Thank you, very informative. Would you possibly make a video detailing which software careers use certain languages? (For example, machine learning careers and what languages they should learn or full stack development and languages needed) that would be very helpful as well!
Wasn't expecting Rust to be easier than C++. Personally, I think Rust has a more deep learning curve than C++. And I say it again, IT'S MY PERSONAL OPINION
I bought my first computer in 1979. It was an Atari 400 and it came with an Atari Basic language cartridge. So many people use to make fun of this version of Basic, in person and in magazines, that I thought maybe I should have bought a different computer. But I learned Atari Basic anyway. It's funny now in 2023 to find out that the design of Atari Basic was a bit ahead of its time. Atari Basic would check the syntax of a line typed in and would throw an error showing were the mistake was made. At the same time it would compile the line into bytecode, including the variable names. They would be assigned a token and that 1 byte token would replace the variable in the bytecode. That's how Atari Basic variables names could be 127 characters long with every character being significant but only using 1 byte in the bytecode.
What's important to understand about assembly language is that it's a direct 1:1 with machine code. When you program in assembly you are also explicitly programming in machine code, since every opcode has a defined mnemonic. The programmer choses the required mnemonic (and operand if required) for each statement. The assembler simply looks up each opcode from each mnemonic, adding appropriate operands when present. It's a virtually instant process. Compilation is entirely different. What is very frequently overlooked when dealing with compiled languages is that feeding the same source code (in the same IDE on on the same PC) through different compilers will almost always produce different machine code. This can have a very significant bearing on executable size and execution speed. One compiler may also introduce bugs in the machine code that are not picked up till much later. It's highly recommended, particularly for C/C++ programmers, to have an expert level ability in assembly language. Only then will you be fully able to critically analyse/troubleshoot/debug any assembly produced from the compilation process. A C/C++ programmer with little/no assembly skills is handicapped to extremes - yes, they can code in C/C++ but absolutely no, their debugging will be spectacularly lacking.
Hello Brad, I am a junior full-stack javascript developer from Ukraine. And some part of my success was thanks to you! And now I need to make a migration from npm to yarn3. And I was trying to find some guidance on RUclips, and I cant. Maybe it could be interesting for someone else, and it would be interesting for you too))) I know you are best in guides creation.
Hey Brad. Excellent video as always. I noticed in the Ruby slide that you consider Rails as one of the best frameworks out there. Have you ever heard of Elixir and the phoenix framework? Elixir is a programming language that looks very similar to Ruby but it uses the Erlang Beam virtual machine. It is honestly a really cool programming language and the phoenix framework is also very nice to work with.
This is great, the one thing I think it's important to mention when talking about machine code and assembly is how different CPU architectures have completely different instruction sets. Other than that, this is great!
great video, the first programming i start learning was JAVA, i hate it because i was a beginner in this world, and installing JRE, SDK of java, find it very complicate, bad chose from me, when i found PHP that was more easy to learning
Another note about interpreted languages that he left out. Some VMs like the HotSpot JVM as well as the .NET VM will analyze the code as it runs and compile portions to native code as needed in order to keep the performance at a decent level.
Assuming type does not have to be because of dynamic typing. In languages like for example Golang, they have type inference which assumes type but is still compiled. I think java also uses "var" for type inference.
One of my favorite tricks is naming a JavaScript file with the PHP extension, .php, and then embeddeding PHP in the JavaScript file - makes for great variable assignment using values strored in a database. let myage=""; The
Could you make a video about a methodology to follow when you’re an experienced developer and you want to learn a new language/framework for freelancing? Of course you can’t charge your client for learning… so what is your strategy in that case? Do you try to build something on your own before finding some work? At what point do you feel confident enough with that new tech? Thx
Great video as always Brad. One suggestion for this video is that I wished you included something like Haskell and then quickly described the difference between OOP vs FP. As it stands now the video is a bit biased towards OOP languages.
I think you're missing the distinction between managed languages and interpreted languages. Managed languages such as Java and C# are compiled into intermediate bytecode and then execute on a virtual machine. This means they're perfectly portable to any system that has a VM for that language and supports the required features of the individual program (keyboard vs touchscreen, etc). Interpreted/scripting languages are executed from uncompiled source in real time. These days they mostly use just-in-time (JIT) compilation on a line-by-line basis, but they intentionally hold on to the line-by-line execution model because it means that scripts can be edited while their program is running. This is incredibly convenient for things like coding NPC behavior in a video game, since you can tweak and test without needing to stop, recompile, and restart. You can literally just change the script in a text editor, then alt+tab back to the game and trigger the new behavior to see how it works out. The downside is performance, of course, since each new line has to be interpreted as it's encountered, and there's no opportunity for whole-program optimization by the interpreter, whereas compiled or managed languages can do that, since all the code is known prior to runtime.
14:00 I would correct only a little thing about C#, it has in the later iteration of the language and its ecosystem transitioned to a Multi-Platform language now, it's not specifically tied to Windows for making desktop apps anymore.
Thks for your video. Have just started Kotlin. Good language but still far from typescript in terms of productivity. But it makes life easier when creating android apps
- Robotics, Video games, and Microsoft Hardware, C++ or C# - Ecommerce (Amazon & Shopify), Java. - Data analysis, internal automation, and slow response websites (consulting sites), Python. - Android apps, Kotlin. - Apple products, C or Swift. - Cool website designs, Javascript & PHP.
@@alspezial2747to learn something u should understand the territory first don't use map. Which mean start from the high language which is easy to understand like JavaScript and python then u can go to procedural language like c
Java is a fast language. Many still believe that Java is considered an interpreted slow language. Java is not a s l o w language! During run time, Java uses a process called JIT ‘just-in-time’ compilation which compiles the most frequently used interpreted class byte code (called Hotspot) into machine code at run-time. This effectively could run as fast or faster than compiled C. How? C is compiled once before run-time. But Java is compiled to machine code at run-time which could compile better smarter and faster code than C during Java’s execution e.g force the code to dynamically use the chip’s registers or force the code to run in faster memory cache during execution.
I still have to master the basics of CSS and JS but after that I plan on learning Ruby. Not sure where I'll go after that, as there are three options in the running for me, at this moment in time: Go, Python and Rust.
C is about increasing the amount of CPU agnostic code in UNIX. Rust is only simple, relatively speaking, if you do tens of thousands of lines of C++ and ignore Go standard library. C# can be accessed via Powershell.
@@Stoneface_ Not talked about as much as Python, Javascript, or Java. Although it is better quality OPP than Java, less issues debugging than Javascript, and runs faster in production than Python.
@@akin242002 no one will make an application in c# for performance critial applications, if you cannot use js/python with the argument of performance, you HAVE TO use c/c++/rust or go for web.
Advice for newer software engineers. The language you use when learning doesn’t matter as much as you might think. Once you grasp the basics of programming, the concepts -> object oriented programming, logical flow (loops, conditional statements (if/else), how memory works (stack/heap), threads (advanced topic), functions/methods etc. Then you can pick up a new language very quickly by just reading the documentation and seeing what the syntax is in that language.
Ex. If you’re using JavaScript, for-loop syntax looks like:
for (let i = 0; i < cars.length; i++) {}
In Swift (iOS programming language):
for i in 0..
As someone who did struggle for 1 year to learn, I had to come here to say: the best way to learn are books that have interactive content. Those that make you practice what they teach on еach chapter.
And that's what you need as a beginner: practice instead of complex subjects and concepts. Focus on learning your first programming language and everything else will be much easier once you learn.
Edit: For those asking, the books that made me learn were "Javascript In Less Than 50 Pages" and "Head First Javascript Programming".
Stack Overflow saved me. rotflmao
I have seen this comment on other videos about programming languages haha, nice
Basically documentation
exactly, I had the same issue, I literally had to write my own curriculum as I couldn't find anyone that could teach it for beginners. This was when I was learning C#. The problem with all these courses, they actually don't teach you anything. They just tell you, great now build this simple function, good luck, and then you're just sitting there going WTF are you on about? Instead, I spent days going through books and videos and grabbing bits and pieces, threw it all into Github, I then consulted with a Project Manager to work out the best framework to manage my learning and learned how to use GitKraken to help me oversee my code. Best experience ever.
As a beginner you need to be hand fed most of the stuff at the start so you understand what the code is doing, then you can start writing your own stuff. Instead, it's in reverse, you're told to write your all your own programs and you know nothing lol.
Disagree. And such a generic answer. Like, books? Really? Is that your tip for beginners? C'mon.
Great vid Brad. I'm a retired University Lecturer, I taught programming for 20 years. IMO you've given a great and unbiased intro to modern programming languages. As you said, you can't cover everything.
For anybody reading who wants to dig deeper, here are a few suggested considerations
- Library support. This is one thing that drives the popularity of Python, and is the bedrock of C and C++.
- Object Oriented or not? OO is not just one concept: every language has it's own concept of OO.
- A few languages that Brad had to leave out: Pascal (mentioned), Fortran, Cobol (yes people still use it).
- Other programming paradigms. Lisp and Prolog are worth learning: they teach you different ways to think.
- Stability. Is the language / framework / environment owned by a corporation that can change it at any time, or is it a Standard?
Getting off Brad's topic, here are some other things to consider.
- Test Driven Development. Check it out, along with criticisms.
- Prototyping / Agile. They are not the same. Check out criticisms. Is Agile a passing fad?
- Learn about preconditions, invariants, post conditions. Read Meyer Object Oriented Software Construction.
- Read Stroustrup The C++ Programming Language. You'll learn heaps, not just C++.
- Learn about debugging. Write your code to be debugable, along with testable.
And now a caution: I've only seen one of Brad's vids and he seems to be thorough and trustworthy. Many other programming RUclipsrs (and online tutorials) are not, I've seen plenty who just sprout ignorant opinions and wrong "facts". Tutorials are good to get you started, but don't rely on a single source. When you really want to know something, go to (as they say) the source. The official documentation, the original author, the official website.
Final advice: learn multiple languages. Experiment. Write your own interpreter. Have fun :-)
Thanks for sharing your wisdom and experience , will be useful :)
Thanks professor
One thing I think is missing in programming courses is adding new functionality into previous (home)works - which is how it works in real life jobs. Until then you can't appreciate proper coding style and software patterns and so on. Maybe even same project once with your own implementations (to know how it works) and once with maximizing standard libraries (to know how you could avoid bugs from previous project :D) and similar...
@@miroslavmikus6480 Sounds like you have attended one of my classes :-)
Students would build up a significant project (2000 to 3000 lines of code) incrementally through the 13 week semester. If that sounds like a lot, well, yes it was! It was an elective subject that had high student demand because of the great skills they learned.
@@europa818 Who is "we"?
I didn't mention Java.
I learned the assembly language of the 8051 microcontroller in school and it was one of the most useful things I've ever learned regarding technology, cause it absolutely changed the way I understood everything about the way a computer works, and it's given me a huge advantage in university, no matter what programming language.
I'm a newbie programmer who just finished her first year of college. During my first year, I was introduced to 2 courses of python, 1 course of SQL and a final course of Risk V assembly. While I learned a lot in my first year, I feel like I'm behind in terms of knowledge and experience so I decided I'd do something about it this summer. Thank you for this video, I'm sure it's going to be useful.
Congratulations Brad for being one of the favourite developers on the State of JavaScript survey 2021❤️❤️
Thanks!
Yeah!
Hands down you're the best crash course teacher I've ever had the pleasure of knowing. Just wanted to take the time to show my appreciation and admiration for everything you do for us.
Love the t-shirt Brad! Thanks for another useful video. As a self-taught beginner I'm glad I bumped into you in one of the many many rabbit holes I found myself lost in this year. You've played a huge part in helping me navigate the labyrinth of the web dev / programming scene, and taught me CSS and JS. Always great content, no fluff and to the point. Whenever my brain is ready to cram in some more, you're one of my go-tos and I keep learning thanks to you. Respect.
These types of videos are very helpful to people who are just getting into or back into software development, or people whose careers have been very siloed. Both apply to me, so thank you.
Almost thought you made one of those top programming language clickbait videos. Good thing I was wrong ! :)
Nope. I wanted it to be objective and to help people understand more about programming languages. Top 10 lists are nonsense.
@Kenny Yip Coding
I haven't seen brad do click baits, bro.
All tech -youtubers make these every year 😅 But THIS video is not one of them, it's a very neat rundown and comparison of the most used languages. Well made 🤘🏻
@Kenny Yip Coding You'll never find Brad stooping to click baiting brother. He has a pretty sold rep.
Appreciate all the content you push out for us Brad!
All of his videos are excellent. You may want to subscribe to the channel if you're looking for this type of info.
The 1st ever program I wrote was in machine code using hexadecimal instructions and memory addresses. That was for Intel's 8086 processor :) -- part of an "electronics instrumentation" module for a Bachelor's degree in Physics, way back in 1996!
You wrote in binary?!!?
@@silloo2072 The real boss 😂
No, he wrote in Hex, but that's as close to binary as it gets for people I guess.
Hex is a really raw conversion.
1=0001
2=0010
3=0011
4=0100
5=0101
6=0110
7=0111
8=1000
9=1001
a=1010
b=1011
c=1100
d=1101
e=1110
f=1111
This is literally the best guide to programming languages i've ever seen!!...thank you so so much!
If you are a beginner and can't decide which language you should start to learn with, I tell you don't worry too much. If you understood one language, you will be able to understand another language pretty much right away. Maybe you will have to look up a few syntax rules, but you won't take more than 3-4 days to also learn another language
depends though. I would say C/C++ is dramatically different than JS/Python. Having to worry about memory management, declaring pointers, including specific libraries...it can be quite dramatic. I agree the change from dynamic to another dynamically typed language is very small, but moving from dynamic to static or vice versa takes quite a bit longer
@@fray3dendsofsanity yeah maybe a bit longer, but it's not like taking you several months to learn.
I started to learn programming with Java. Eventually I was asked to write a programm in Cobol. Even though I have never seen Cobol before, I still managed to write the programm within one week. Because if you understood the fundamental concepts of programming, you can basically apply them to any programming language.
@@serae4060 I think moving from Static -> dynamic is easier than the other way around, or moving static->another static language in your case. Java is one of the more difficult to learn so it makes sense that COBOL was easy. I learned C++ originally so JS/Python seem like a breeze by comparison, but if I had started with JS and had to learn C++ after I think it would be a bit more challenging as I wouldn't be used to explicitly declaring variable types, managing memory and deleting objects etc
That's what happened in my case. I started with VB6 and dropped. Years later, I tried with python and dropped. As a self learner, "__init__()" & "self" were my main obstacles. Then 1 year after started learning VB. Net and this time, I got a grip in programming. I learned what is "__init__" function by learning the "New" sub routine in VB. Net. So I came back to python and voilà ! this time python seems English to me. Then one after another, I learned 5 more programming languages including D, Nim, Odin etc.
I never found the quality content, and well explainable video like this for programing languages. Thanks so much! Your video is very useful.
I am Learning programming for the last 3 years right after high school I skip college and Brad ( Traversy Media ) is the best instructor for programming, and web development. I am done he's javascript course it was amazing after this I don't have to learn every single language from scratch I just need to learn the basic syntax. after all of this now work in Flutter, Web Dev, Starting Unity, all of this because of him ThankYou Brad ❤️
If you want to learn Swift, it has evolved a lot over the years. It can compile to Linux, Windows and WebAssembly. It's used for scripts, backends, etc. The most common use case remains apps for Apple Platforms ofcourse.
So many of these languages have come such a long way, even in the last 5 years. It's remarkable. I really have to give props to the JVM team specifically. They have really done an incredible job adding features, allowing more languages to be run on the virtual machine.
And the Java language developers as well have been really putting in the work since Java 8 implementing some seriously fantastic functional paradigms into the core language and really modernizing the language while being extremely considerate not to bloat the language.
Thanks Brad
I got a job as a react js developer fresher just following your videos
Keep sharing front end videos
🙏❤️❤️
Great video! You cover many important details about how languages work, and their respective levels. This video is a must watch for anyone getting into coding 💯
progrminng c+++ jva
I have always said to beginners that unless you are developing your own software where you get to pick your stack, the best programming language for you to start out with are the one that the companies in your area are hiring you to code in.
Cause what you want is to get your foot in the door.
After you do it for years then it really doesn’t matter cause what matters is _can you solve problems_ ?
The language then doesn’t matter as much cause you can eventually learn any other language.
6:45 "C++ is object oriented". C++ supports OO development but a lot of C++ code is written that isn't OO.
I just realized I made it sound like it has to be OOP. Thank you
Originally the purpose of C++ was "C with classes". It has only become more and more functional in newer versions, but in most of it's lifespan C++ was used with OOP in mind.
So glad this isn't a top 10. Some developers can get very high and mighty about programming languages, putting some on a pedestal and turning their nose up at others. There's no best programming language. They all have strengths and weaknesses and all have their quirks. Use which ever works well for you or your company
I didn't see COBOL :( most people say its a dead language, buts its so powerful.
The reason why Ruby is so cool is that you can embed it in, lets say, a C++ project super easily, to provide a domain specific language for users to customise the behaviour of the software.
Like AutoLISP?
C# can also contain unsafe C code, which is where they often put code that needs to be performant. While mainly statically typed, it also supports a dynamic keyword. I use it for code that 'plugins' at runtime.
Dam
What a awesome video on Languages on The International Mother Language Day! After hearing about them, I choose C++ and Go for general purpose.
Go is great.
C++ is like having a life goal to become an astronaut. Not easy, but with time and strong determination it can be learned.
PHP was also my first language I really learned! (with Actionscript being the first language I ever used - together with what was then known as Macromedia Flash).
Just sad to see that PHP gets so much hate nowadays, I think it's really come a long way in the last decade(s?) and certainly deserves better.
P.S.: maybe a short introductory course to PHP 8 by the legendary Mr. Traversy himself would open a few eyes (although I do see why that wouldn't be a priority as there ARE - as outlined in this video - great alternatives out there)
My first true programming language was Action script 3.0 as well. I made some pretty terrible websites back then lol
I use PHP daily for my work and I hate it very much. The nail in the coffin for me is its syntax. Even clean code looks very ugly compaired to other languages. But this is just a personal bias of mine. The language is powerful, but also very ugly.
ActionScript taught me OOP. I miss Flash. If only CSS could evolve into a Flash-like system.
I've used assembly language, Fortran, Cobol, PL/1, Pascal, VB Script, C++, C# and several others. C# is easily the best environment. Also, there is another language between assembly code and machine code. It called micro code and defines the CPU functionality.
Youre a genius, hopefully I can get to your level one day
Sorry to see you didn't mention Elixir at all. Also a really good Python framework to use which is faster and more modern than Django and Flask is FastAPI.
it's on 13th
Since he didn't mention Lisp I think everything else is behind on the queue.
@@gimlam5909 World is not ready for LISP dude. I love emacs and syntax seems annoying once you understand it, everything make sense. Ditch kotlin why not build android app in clojure.
Very insightful. Thank you for this. I really needed to know this coding history and you just summarized it with precision. Awesome.
I LOVE the shirt man. I have a son that is on the spectrum, and I sometimes wish people would understand that they see the world differently
You took the words right out of my mouth. Gonna see if I can find one like it for myself.
Great shirt!
Thanks Brad this was very helpful,I have heard many people discouraging from learning PHP
Im studying product design ans just trying to understand how coding works without becoming a developer myself. Breakdowns like this are great! Thanks man!!
I'm searching for a programming language that fits me & it is HARD! I'm 60. It's been 20 years since I taught myself html & created a 200 page website. Geocities was still around when I started "coding". I got away from all that but now I want to build a website that features pets for adoption, has a pet care blog & also let's me sell pet care supplies as an affiliate for various vendors such as Chewy & Jeffers. It appears my goal too complicated, so I have to do it myself. I can barely afford a website & sure can't afford to pay anyone to build a multi-page, multi-functional website that will require updating the pictures & descriptions of animals every 2 to 4 weeks. From watching your video, itlooks like php is the language I need? I'm not real smart, I'm a slow learner, I suffer from CRS &my brain might be kind of cobwebby. So I want to be careful not to bite off more than I can chew & thus fail or die of old age while still trying. What do you think?
I can work as a freelancer. If you need one, let me know. We'll connect
Thank you for this information, noted all of it down and it might be helpful for me to choose what to learn and aware of the other programming languages and yes learnt new things too.
Thank you, very informative. Would you possibly make a video detailing which software careers use certain languages? (For example, machine learning careers and what languages they should learn or full stack development and languages needed) that would be very helpful as well!
A well paced delivery! Lots of info succinctly presented with good audio. No background music is a big plus for me.
Wasn't expecting Rust to be easier than C++.
Personally, I think Rust has a more deep learning curve than C++. And I say it again, IT'S MY PERSONAL OPINION
Started with BASIC in late 80's, and passed by a bunch of languages, now I use PHP and Python regularly.
I bought my first computer in 1979. It was an Atari 400 and it came with an Atari Basic language cartridge. So many people use to make fun of this version of Basic, in person and in magazines, that I thought maybe I should have bought a different computer. But I learned Atari Basic anyway. It's funny now in 2023 to find out that the design of Atari Basic was a bit ahead of its time. Atari Basic would check the syntax of a line typed in and would throw an error showing were the mistake was made. At the same time it would compile the line into bytecode, including the variable names. They would be assigned a token and that 1 byte token would replace the variable in the bytecode. That's how Atari Basic variables names could be 127 characters long with every character being significant but only using 1 byte in the bytecode.
As always, excellent video, Brad! :) Keep up the fantastic work!
My G. Thanks for blessing us who are outside USA and Europe to suck from your wisdom, more over for free. Thanks Traversy
great vid like always, can you make in the future some C#/NET Projects ?
What's important to understand about assembly language is that it's a direct 1:1 with machine code. When you program in assembly you are also explicitly programming in machine code, since every opcode has a defined mnemonic. The programmer choses the required mnemonic (and operand if required) for each statement. The assembler simply looks up each opcode from each mnemonic, adding appropriate operands when present. It's a virtually instant process.
Compilation is entirely different. What is very frequently overlooked when dealing with compiled languages is that feeding the same source code (in the same IDE on on the same PC) through different compilers will almost always produce different machine code. This can have a very significant bearing on executable size and execution speed. One compiler may also introduce bugs in the machine code that are not picked up till much later.
It's highly recommended, particularly for C/C++ programmers, to have an expert level ability in assembly language. Only then will you be fully able to critically analyse/troubleshoot/debug any assembly produced from the compilation process. A C/C++ programmer with little/no assembly skills is handicapped to extremes - yes, they can code in C/C++ but absolutely no, their debugging will be spectacularly lacking.
new setup looking nice bro
Hello Brad, I am a junior full-stack javascript developer from Ukraine. And some part of my success was thanks to you! And now I need to make a migration from npm to yarn3. And I was trying to find some guidance on RUclips, and I cant. Maybe it could be interesting for someone else, and it would be interesting for you too))) I know you are best in guides creation.
Are you in Ukraine now?
Today I seem to be among the first views of traversy uploaded videos. Nice one. Thumbs up
Hey Brad. Excellent video as always. I noticed in the Ruby slide that you consider Rails as one of the best frameworks out there. Have you ever heard of Elixir and the phoenix framework? Elixir is a programming language that looks very similar to Ruby but it uses the Erlang Beam virtual machine. It is honestly a really cool programming language and the phoenix framework is also very nice to work with.
Spread the Elixir gospel!
@@ianwanyeki8386 I'm doing my best. Putting comments on big dev youtube channels
Just finish your Mern tutorial last night. It was amazing thank you so much Brad
Awesome. Congrats on finishing it. It's not easy to complete a course or series.
This is a great video! I feel like this is one of the only guides that is 100% honest and factual
Oh Brad!!! You never fail to deliver. Thanks Boss. God bless you. With love from Nigeria.
This is great, the one thing I think it's important to mention when talking about machine code and assembly is how different CPU architectures have completely different instruction sets. Other than that, this is great!
Very helpful and insightful especially to those of us just starting out. Thanks man
great video,
the first programming i start learning was JAVA, i hate it because i was a beginner in this world, and installing JRE, SDK of java, find it very complicate, bad chose from me, when i found PHP that was more easy to learning
If want to learn language better start from the high language
Your videos are so helpful. Thank you!
Great info Brad. Watching your videos is always time well spent.
Another note about interpreted languages that he left out. Some VMs like the HotSpot JVM as well as the .NET VM will analyze the code as it runs and compile portions to native code as needed in order to keep the performance at a decent level.
Thank you, Brad. This is very helpful for a beginner like me.
Thank you for this amazing video and for breaking it into bits.
Great video as always - thank you for making this! But why not include Dart?
Assuming type does not have to be because of dynamic typing. In languages like for example Golang, they have type inference which assumes type but is still compiled. I think java also uses "var" for type inference.
Great video Brad! Everything was really well explained
One of my favorite tricks is naming a JavaScript file with the PHP extension, .php, and then embeddeding PHP in the JavaScript file - makes for great variable assignment using values strored in a database. let myage=""; The
Awesome topic! Great to have you share your insights on these languages and their use cases. Popcorn worthy! 🍿🥤
Definitely appreciate you talking about web assembly, recently found out about it and it seems like it could be awesome
Thanks. Very useful to show people an objective view on the different languages.
Assembly language makes ur pipeline skill on top of the world
the best video, i dont know how you ruby ru
Could you make a video about a methodology to follow when you’re an experienced developer and you want to learn a new language/framework for freelancing? Of course you can’t charge your client for learning… so what is your strategy in that case? Do you try to build something on your own before finding some work? At what point do you feel confident enough with that new tech? Thx
I love the message in your T-shirt, thanks for spreading the autism awareness. I love your contents too, it helps me a lot in my learning.
Great video as always Brad. One suggestion for this video is that I wished you included something like Haskell and then quickly described the difference between OOP vs FP. As it stands now the video is a bit biased towards OOP languages.
Brad, your videos have been so helpful to me, I have never seen you do any tutorials on Java ? Do you do Java or have any Java tutorials ?
Great explanation! Would you recommend a coding boot camp for someone wanting to start a new career in web dev, etc.? Or some other educational route?
Informational as always, thanks a lot Brad.
I think you're missing the distinction between managed languages and interpreted languages. Managed languages such as Java and C# are compiled into intermediate bytecode and then execute on a virtual machine. This means they're perfectly portable to any system that has a VM for that language and supports the required features of the individual program (keyboard vs touchscreen, etc).
Interpreted/scripting languages are executed from uncompiled source in real time. These days they mostly use just-in-time (JIT) compilation on a line-by-line basis, but they intentionally hold on to the line-by-line execution model because it means that scripts can be edited while their program is running. This is incredibly convenient for things like coding NPC behavior in a video game, since you can tweak and test without needing to stop, recompile, and restart. You can literally just change the script in a text editor, then alt+tab back to the game and trigger the new behavior to see how it works out.
The downside is performance, of course, since each new line has to be interpreted as it's encountered, and there's no opportunity for whole-program optimization by the interpreter, whereas compiled or managed languages can do that, since all the code is known prior to runtime.
I'm old-school - for me it will always be 'C-Pound'.
Thanks Brad, much appreciated!
Thanks🎉 for the breakdown 8:37
Great video Brad!Thanks a lot for what you've been doing and creating!
Thanks a lot for this video, it was really helpful and well presented!
14:00 I would correct only a little thing about C#, it has in the later iteration of the language and its ecosystem transitioned to a Multi-Platform language now, it's not specifically tied to Windows for making desktop apps anymore.
multiplatform is still a painful and neglected side of dotnet tho. maui for example doesnt support windows's biggest competitor, linux.
Thank you so much for this Video it Really helps to clear some things up!
Thks for your video. Have just started Kotlin. Good language but still far from typescript in terms of productivity. But it makes life easier when creating android apps
- Robotics, Video games, and Microsoft Hardware, C++ or C#
- Ecommerce (Amazon & Shopify), Java.
- Data analysis, internal automation, and slow response websites (consulting sites), Python.
- Android apps, Kotlin.
- Apple products, C or Swift.
- Cool website designs, Javascript & PHP.
Can you do everything with c?
@@alspezial2747 Yes, but it isn't the best idea.
@@akin242002 because it would be to time consuming?
But i think it would be good to learn it as the first language to get into programming.
@@alspezial2747to learn something u should understand the territory first don't use map. Which mean start from the high language which is easy to understand like JavaScript and python then u can go to procedural language like c
Thanks for the fantastic overview!
Great overview. Thanks so much!!
Thanks for the Guide really helped me and I found the language for myself thank you !
Man I get inspired just watching you talk 😂
Great content, tnanks a lot! Means a lot. Would like to see some devops build/deploy and automation strategies .. Thanks take care.
Very positive video. Well done!
Best content for programmers, thanks for the wonderful presentation. Neat slides 🙂
I already know all of this but it was entertaining to watch so thanks :)
Java is a fast language. Many still believe that Java is considered an interpreted slow language. Java is not a s l o w language! During run time, Java uses a process called JIT ‘just-in-time’ compilation which compiles the most frequently used interpreted class byte code (called Hotspot) into machine code at run-time. This effectively could run as fast or faster than compiled C. How? C is compiled once before run-time. But Java is compiled to machine code at run-time which could compile better smarter and faster code than C during Java’s execution e.g force the code to dynamically use the chip’s registers or force the code to run in faster memory cache during execution.
Thank you for this video , very helpful.
not sure about putting C# and Java at the same level as JS and Python though.
Because it is.
C# maybe, no way in hell Java deserves it
Hi Brad, can you share with your list of most favorite frameworks please. #3 is Jango as we already know
I can code Fortran in any language.
What is that?
@@KamiKillerzoid-cx5fm Something I could make money at if I wanted to work with old legacy code. Alas, I don't know COBOL, too.
This is how it's told in the book for school, maybe most of people skip to read them, it's usually in the basic introduction bab 1
I still have to master the basics of CSS and JS but after that I plan on learning Ruby. Not sure where I'll go after that, as there are three options in the running for me, at this moment in time: Go, Python and Rust.
C is about increasing the amount of CPU agnostic code in UNIX. Rust is only simple, relatively speaking, if you do tens of thousands of lines of C++ and ignore Go standard library. C# can be accessed via Powershell.
C# is underrated.
@@akin242002 why?
@@Stoneface_ Not talked about as much as Python, Javascript, or Java.
Although it is better quality OPP than Java, less issues debugging than Javascript, and runs faster in production than Python.
@@akin242002 no one will make an application in c# for performance critial applications, if you cannot use js/python with the argument of performance, you HAVE TO use c/c++/rust or go for web.