The biggest reason to learn rust is The Book. It's and incredibly comprehensive resource that does a great job teaching Rust and programming in general from the ground up, from control flow to multihreading, traits and generics, pattern matching and beyond. It teaches you what to expect in a programming language and what tools you have available. Most importantly, it's officially provided, so newcomers can avoid digging through fan made tutorials.
@@carmelid they are playing the victim card at the momentfrom the response that they gave, it doesn't look like they are backing down, they seem to be doubling down.
I think Rust is definitely a language that can be learned first, but it will take some strong dedication to learning to stick with it. When I first started programming, learning the basics of programming in an easier language like Python made learning C/C++ much more digestible. I tried to start with C++, but it just didn't make any sense at first so it took taking a step back to learn the basics in an easier language before I could understand the more advanced stuff. The same idea would probably apply to many people who have never programmed before. Complex languages with a lot of features are often more confusing than helpful when actually trying to learn things.
I was the opposite. Started with Python, didn't understand much of what was happening. Started college and was forced to learn C++. It made programming make sense for me, especially the variables and pass-by-reference vs. pass-by-value. I guess our brains are wired different. With that said, I got a job doing Python backend in my 2nd year. But I have made $0 from C++. Only started learning the Rust book recently.
In fact I began with rust. It took time, it was frustrating, but know I understand each concept of this wonderful language. And because this community isn't elitist, and content creator like you help a lot beginners like I am to understand all this world. So thank you and keep going.!
Rust is also great if you want to build reliable backends and APIs that don't throw errors all the time, and you need to make the code as correct as possible IMO
rust is difficult, but awesome official books and friendly community make learning much easier. And i think in rust all the features are strongly connected together, so the overall understanding of the language comes sooner
my adventure in rust has started 4 months ago when i decided to check more info about this language. My primary language was c++, so years of experiance in c++ helped me a lot in learning so much about rust quickly enough, and now i am already using rust in my company. For me, i have no more reasons to start any project in c++ when i have rust, and even it seems like i already have better knowlage of rust than c++. I want to write a moddable minecraft-like game and make it optimized, so i think rust is perfect for this goal.
How has Rust been treating you on the game dev front? Also, you using an engine? Or a library? Asking because I am looking at learning for this purpose. From scratch w/ SDL2 or Macroquad to start. I want to build my own level editors/ Engines (Even if they are game specific) from scratch to really grasp everything that is going on.
@ugib8377 Rust't performance is the main reason, but also the comfort of buildding really huge and complicated systems. I share with you the desire to have a complete picture of what is happening in the program. So.... What I actually want to build is going to have implemented from scratch rendering engine (I've worked with vulkan a bit), also I have a lot of ideas of my own UI engine after React experience. And, finally, game engine. probably it's gonna be ECS based, but i need to consider more different practical scenarios to find the best arcitecture Currently I have a big interest towards VR/AR direction, and I didn't start the project yet. But soon I will have more time to work on the project and exploration..
If rust was my first programming language, I would have just quit learning any further. I wouldn't be doing a computer science degree if I started with rust, most people (but not all) need to start with something more approachable and easy, then they can ease into something a little more technical like rust or c++. That being said, people who have managed to have c++ or rust as their first programming language, and did not quit, find it easier to learn other programming languages because those 2 languages teach you a lot about coding and computers. So if you are willing to go through some difficulty and frustration, with the idea that it will make things easier in the long term, maybe rust is a good language to start with, but for people who just want to learn a programming language without having the urge to give up, maybe an easier language would be best.
I started my journey into programming in the mid 80's with assembly and Pascal and it was so painful and boring i gave up until the late 90's when I found PHP. That was the first language that was fun and made sense. Shortly after that I found C# which also completely clicked. I also tried Perl, C/C++ and Python back then and didn't really get into them. I can guarantee if Rust existed back then and I tried it as a first language I would have quit and found something else. That being said, nowadays I'm doing a lot of F# and Rust and also did some work in Elixir. (oh plus everything from Angular to Svelte...) Nice video.
If you arent familiar with pointers and references etc, i highly recommend learning the basics of c first. I tried to learn rust first and i didn't have any idea what i was doing until i gave up and learnt c.
Yes!! I chose Rust programming as my first programming language instead of taking up Python programming. Because, it is very fun and gives as real programmer experience... I love it while programming 💕. I don't know, how about others?? 🤔
My first language was technically ruby I think, but I eventually pivoted to python and forgot all my ruby knowledge, I use python for creating graphs (seaborn/matplotlib), making animations (manim) and making general purpose programs. I know it's fun to look down at people who use python all the time but it genuinely is such a smooth and easy experience working with python, all my code is very readable and I can even show it to non-programmers.
I would say python is real programming. I started with JS/Python. That's what I'd recommend to most people as a first language. I'm now getting into Rust because I like the philosophy behind it. It's still difficult, but I'm getting the hang of it, and I already have a solid foundation with Python, JavaScript, C, and C#. It is awesome you started with Rust, however - it is my favourite language
Good ! The only thing i have against it is that there are almost no entry-level jobs in rust. And given that you'll be doing systems programming with it mostly, the entry-level job prospects are even more grim there. How do people overcome this?
Not counting HTML when frames were cool, Rust is my first foray into coding. Your video give me a bit of confidence that this could be the right fit for me.
Last year i started out playing with html, CSS, js, then i learned Php, tried frameworks like Laravel, but I couldnt find a language that i really liked and felt mine. I tried out Java, and C++ Reading the C++ Primer, then I found out Rust, and i read The Book ( paper v, PDF) and for the First Time I felt like i was actually understandung what i was coding. Now It has been 6 months or so that I am on Rust ❤
I will answer you too, may I? I am working in company where my opinion matters, so I just started to rewrite API in Rust, also I am Ruby anc C developer and sysadmin. So no problem. We are starting one our project with friends, just like a hobby (mobile app with Rust backend), I hope will be out soon.
I wonder if my experience learning Rust would have been harder if I didn't already have experience with C and Assembly. Some low level concepts in Rust aren't very clear to someone who has never been exposed to the bare metal, I guess.
This video is super poigniant not just in answering if Rust should be learned first, but how any programming language should be evaluated to be learned first. As much as I love Rust, I share the opinion that Rust is rarely the language you should start with. I would actually go further and urge people to not start with it on the basis of the fact that you don't actually appreciate what it is until you experience the problems and flaws of other languages. If you start your programming career with Rust, it'll only go downhill from there. The only step you'll appreciate from any/all other languages you would learn next is the ability to write incorrect code rapidly and however you want it. But after that, the new doors other programming languages might be introducing you to are either worse approaches (less efficient) or at best just another expressive approach. In most cases where Rust seems like the recommendation for a first language, I would actually steer someone towards C or C++. People say those langauges are hard, or harder than Rust, but I disagree. Writing those langauges at a competently professional level is hard. Professional C and C++ is difficult to understand builds, linkage, syntax, memory safety patterns through various implementations, etc. But a beginner can write C or C++ and skip all of that complexity and more easily write code and watch it run something quicker than Rust. Will it be correct faster? No, but that is a part of development: working with a program that is syntactically correct and compiled but is still wrong and fixing it from there. Essentially Rust will be more frustrating for a beginner to get code that even compiles, and stiffle learning a debugger because once they do get it to compile, it probably worked. This is why I think C or C++ are actually better for an absolute beginner -- they'll round out as software engineer faster rather than being too dogmatic about how to get things done.
Imo the syntax of rust and rust concepts such as borrows and interior mutability are a bit difficult for beginners to grasp. I believe that the first language for beginners should be python, and then have them move to rust once they have understood the basic concepts.
I would've agreed with you a few month ago, but i recently tried C (just C, not C++) and it's so dead simple in its design I'm surprised not much people recommend it as first language. It literally confronts you with all the necessary concepts in CS and makes you build your data structures instead of relying on third party. The only problems I see in C is that it is not type and memory safe, which leads to frequent off by one errors, linking is annoying, and, I think this one is most important, many MANY old and bad features that stuck around because of backwards compatibility, which makes it hard to learn current good practices without a teacher. Having no generics, methods, closures, smart pointers or GC, etc. has really made me appreciate and understand purpose of many features other languages have, and focus on how memory and computers work instead of artificial abstractions. And also I used goto for the first time in my life lol.
Yeah I feel the same way, I pretty much exclusively use python (or other similar languages) for personal work, with the occasional JS or java. I have been slowly learning rust but the trademark policy proposal has made me put a pause on that because I don't want to feel like I am "supporting" the rust foundation per se after the nonsense they decided to put up.
I'm considering using rust as a first *serious* programming language for my kids. I emphasise "serious" because I think it's worth starting with something really simple to learn the basics of control flow and variables. I really think I benefitted from starting with learning BASIC on a spectrum64
Basics of control flow and variables is important. For that reason, I think that Scratch or a similar toy language should be the first that anyone learns (adult or child), because it is good at illustrating the basics of control flow, variables, loops etc. Once that framework is in the student's head, then it would make sense to go to an easy to learn proper language such as JavaScript or Python, where the student can create something useful, get some wins, and perhaps get a job, all without being bothered by memory management, data types, or hard to understand compiler errors. Those languages also have a REPL which makes them easier for quick prototyping. I would not recommend that anyone attempt to learn Rust unless they are already confident in another easier language. I know that 40 years ago C was used as a teaching language on many courses, but at the time their where few alternatives. Now we have better tools, so can give students an easier learning curve.
one difficulty is the old habits, coming from a different background, and having to deal with "new" concepts and idioms, I had quite a hard time to "unlearn" previous way of thinking and solving problems. One might want to rebuild stuff done in other languages in the same way, and that can be frustrating, there is no bijection between Rust and [other language] (but that would also be the case for many programming languages, I guess going from Python to Erlang might be tricky as well)
Spent a couple months learning python. At the point where I can hack together some useful stuff. Shifted focus to rust and yeah, even with only a few months under my belt. I found myself wondering "How the heck does this all even work" after Pythons garbage collection and dynamic typing abstracted a lot of the nitty gritty away... I've been cycling between Video tutorials, the book, rust by example, and discussing fundamental topics with GPT to try to wrap my head around it. It's a slog, but I've been making progress!
I started to learn Rust around a year ago. I am devops and software developer for more than 22 years. I prefer low level and backend business the most. But I also played a little bit with frontend. My first language was C followed by C++ and then I programmed for significant time in Perl, Ruby, Swift, Lua and Python (which I personally dislike the most:)). But I think Rust is a future and it solves most of the problems from the other solutions. It is modern answer to all the problems for many years. I am rewriting a lots of software to Rust these days. Everytime I wrote something complex with Python I felt I am fighting it but with no reason. When I started Rust coding I felt I am fighting it for a good reason and then it fades out and now the way you wrote is instrument not the blocking thing. Yes Rust is harder to learn, especially after long years of experience you are used to concepts, that are similar in most languages and Rust are changing them. But I love Rust and Ferris :D. This channel helps me a lot to understand Rust. And yes , The Book, I have never seen language with such a great and fun documentation.
As someone currently self teaching JS, and building, i am interested in rust but i don't want to get lost in the weeds. So gonna continue on the path until i have a good understanding and then run through the rust book
Back in the day (30 years ago) we could choose between Pascal (not practical for real world tasks) or C/C++ :-) There was also Cobol, Basic or Fortran :-(. My tips for beginners: learn about relational design and SQL first. The best investment ever. And SQL is relatively easy. Then as advised: if you are not sure to go to system development, I would recommend a modern, hybrid language like C#, Java or Python. JS is not a good choice. Start with TypeScript right away. Rust is definitely the better choice over C++. But MANY jobs are still for C++ and that will not change that fast. But hey: today you have this AI assistance and the web. So, you can make it. I HAD to read Strostroup "C++ - the bible". 1000 pages !
Yees that book for C and C++ from Brian Stroustrup (or how was his name) my everyday thing for a few years :) And I installed compiler by floppy 3,5" downloaded in local library and installed on my system. What a days back then :)
Rust was my first programming language even before I clicked on this video. 🗿 Was it hard at first? - Yes. Was it worth it? - Completely Yes. I installed Archlinux from 0 when I bought my lew laptop 1 year ago. I don't go easy ways 🗿
Installing arch linux is not a big deal though. I bet you just followed the steps on some tutorial/guide and that's all. Do you really think that was any hard? It's quite the contrary, once you initially set up the arch, it is the *easiest* os/distro out there.
@@twothreeoneoneseventwoonefour5 Totallu agree with you. I don't think it's that hard as maybe some people think. And yes I did follow tutorial and archwiki to get all stuff working. Still using the same setup now. The only thing that's changes is build scripts and programs. Actual hotkeys and stuff setup and DONE.
@@rotteegher39I think what most people are “afraid” of with arch is that software tend to break. But I honestly didn’t have any problems with that. Back ups are a must though in case shit hits the fan.
I just say no. Rust makes you keep track of a lot of things whilst programming and it's not something someone who's learning to crawl should do. Learn Python first it will savs you a lot of time, and you need that beginner dopamine hit to keep you going.
Rust is also a good choice when writing program languages. I belief on of the main goals for Rust was that you had to be able to write the Rust compiler in Rust itself.
Most of these arguments seem to miss the point of a first language. It's foundational. If you are already looking at a programming job you are not just learning your first language.
I think we're underestimating the elegant compiler errors feature of rust which is huge help for beginners and not only. In javascript unless you've got smart IDE, you're waiting for the bad at runtime, which is time consuming, and with C++ let's say, the errors say what's wrong, but 0 chance for tips on fixing trivial errors. Also with rust, you've got mostly pretty defined toolset, meanwhile with JS you've got soo many choices, e.g. you choose node js or deno js? Etc. etc. Well, ultimetly, you'll have to learn the evil anyway, either said JS for web or as a low level programer the C++ to interopt with it from time to time. Also at the end the difficulty curve varies from the course taken, but than again: rust book althought not intended, should be rather a very smooth experience from what I've saw when trying to introduce dudes into it.
My first programming language is Bash, and second would be Rust. For sure. Though I thought my first programming language would be Dart, but Bash is easy* and Rust is amazing.
@@junwu22 I don't know where this comment came from, but this fiasco is going to jeopardize the work of the devs of the crates and content creators. And also politicize something like a programming language. I'm still gonna learn Rust, but this leaves me with a bad taste in my mouth.
Why the hate on Golang? I've never understood the fight between these two communities... They're different languages with different goals in mind. I don't even consider them competitors.
I don't know. I do not like these fights. Also Python community was still attacking Ruby (my world), maybe lots of people are competitive, so they want to do this. I am not competitive and dislike it. I simply like the language or not, but every language has its purpose.
No, in fact, if self defense is something you believe in, you shouldn’t touch the language at all. The Rust Development team doesn’t believe in self defense.
3:08 JavaScript may seem like an easy language on the surface but dig deeper and you will find hell...tons of WTFs and tons of extraneous features (the latest ECMAScript specification is over 800 pages long!).
no it shouldn't, rust is still difficult for beginners even the friendly community trying to make it easier, still necessary to grasp all the fundamental knowledges by learning other programming languages like C/Python/Golang
I would learn Blockly before Rust, it gives you a feeling for basic control flow. I would not learn C++ or assembly before rust, unless the environment required it. After learning Blockly, I would learn a strictly typed language (at least if you want to go beyond scripting). If you study computer science, then I recommend that you learn Rust immediately after learning Blockly. If you need to do a job on an existing project, then learn whichever language is already used.
Why are we referring to Rust as a low-level language? In my view it is a very precise language compared to more sloppy and imprecise languages. In my view it is a right-level (not low or high) programming language with all the advantages of a low level and high level languages without the disadvantages.
You shouldn't learn Rust as a first language as you cannot apreciate its benefits, which make up its complexity. It's really fun to get into rust when you get rid of the pain, you experience in other languages.
FINALLY! Thank you for this intelligent, egoless, and well-thought-through perspective on learning Rust as a first language. BTW, I would add another group of people to those who should learn Rust as a first language: people who know they want to build web apps in WASM, not JS. Rather than learn a language just to throw it away so then can then learn Rust, they are better off starting with Rust putting all that learning into their target language. Otherwise, it's like expecting people who are going to live in Spain to learn Portuguese first so they can learn the concepts, then throw it away and learn Spanish so they can use it long term.
My two cents, I think learning C and then Rust is a great path. C is a pretty simple language, with a clean syntax. Once you start building a more complex applications you can see the difficulties of managing memory. Then when you're comfortable in C you can move to Rust. And you will have a greater appreciation and understanding of the problems Rust solves. And you are probably ready to learn its slightly more complex feature set. ( this is just what from my personal experience )
Im sorry did i just hear you say that building operating systems, databasesm robotics and blockchains is a good place to learn programming for the first time? 😂 Honestly if someone came to me with that request i would send them to a JavaScript or Minecraft coding course first. No one should ever learn programming starting at complex algorithms and distributed systems.
Too much talking and dragging it out instead of just getting to the point. *It's simple: Yes* You don't have any other frame of reference, expectations, bad habits, or whatever, so it'll be just as "natural" as any other option.
📝Get your *FREE Rust cheat sheet* :
www.letsgetrusty.com/cheatsheet
Disclaimer: the Chi Shi™ is not affiliated with The Rust Foundation nor endorsed by it or its affiliates
The biggest reason to learn rust is The Book. It's and incredibly comprehensive resource that does a great job teaching Rust and programming in general from the ground up, from control flow to multihreading, traits and generics, pattern matching and beyond. It teaches you what to expect in a programming language and what tools you have available. Most importantly, it's officially provided, so newcomers can avoid digging through fan made tutorials.
Hope that the trademark thing will not harm your work
That trademark thing is a mess, he can always switch to Zig😁😁😁😁
It’s just a request for comments, it’ll never be accepted given the enormous backlash from the community
@@carmelid they are playing the victim card at the momentfrom the response that they gave, it doesn't look like they are backing down, they seem to be doubling down.
@@carmelid hope so! Although, they published their feedback yesterday, and it didn't sound like they're ready to reconsider much
@@dj-maxus where i can follow the official thread about trademarks?
we are waiting for the trademark video
I think Rust is definitely a language that can be learned first, but it will take some strong dedication to learning to stick with it. When I first started programming, learning the basics of programming in an easier language like Python made learning C/C++ much more digestible. I tried to start with C++, but it just didn't make any sense at first so it took taking a step back to learn the basics in an easier language before I could understand the more advanced stuff. The same idea would probably apply to many people who have never programmed before. Complex languages with a lot of features are often more confusing than helpful when actually trying to learn things.
I was the opposite. Started with Python, didn't understand much of what was happening.
Started college and was forced to learn C++. It made programming make sense for me, especially the variables and pass-by-reference vs. pass-by-value. I guess our brains are wired different.
With that said, I got a job doing Python backend in my 2nd year. But I have made $0 from C++. Only started learning the Rust book recently.
Well you guys together are not helpful at all..ha
In fact I began with rust. It took time, it was frustrating, but know I understand each concept of this wonderful language.
And because this community isn't elitist, and content creator like you help a lot beginners like I am to understand all this world. So thank you and keep going.!
You learnt rust as your first language?
I need to ask some questions can I get your insta or linkdin
If you want to get hired as a software engineer - have 5-10 years of experience in software engineering
Pro tip.
Rust is also great if you want to build reliable backends and APIs that don't throw errors all the time, and you need to make the code as correct as possible IMO
rust is difficult, but awesome official books and friendly community make learning much easier. And i think in rust all the features are strongly connected together, so the overall understanding of the language comes sooner
my adventure in rust has started 4 months ago when i decided to check more info about this language. My primary language was c++, so years of experiance in c++ helped me a lot in learning so much about rust quickly enough, and now i am already using rust in my company. For me, i have no more reasons to start any project in c++ when i have rust, and even it seems like i already have better knowlage of rust than c++. I want to write a moddable minecraft-like game and make it optimized, so i think rust is perfect for this goal.
How has Rust been treating you on the game dev front? Also, you using an engine? Or a library?
Asking because I am looking at learning for this purpose. From scratch w/ SDL2 or Macroquad to start. I want to build my own level editors/ Engines (Even if they are game specific) from scratch to really grasp everything that is going on.
@ugib8377 Rust't performance is the main reason, but also the comfort of buildding really huge and complicated systems. I share with you the desire to have a complete picture of what is happening in the program.
So.... What I actually want to build is going to have implemented from scratch rendering engine (I've worked with vulkan a bit), also I have a lot of ideas of my own UI engine after React experience. And, finally, game engine. probably it's gonna be ECS based, but i need to consider more different practical scenarios to find the best arcitecture
Currently I have a big interest towards VR/AR direction, and I didn't start the project yet. But soon I will have more time to work on the project and exploration..
4:24 Go is quite a nice language. Very small, simple and easy to learn. Very fast to compile. Very fast to execute. Excellent at concurrency.
If rust was my first programming language, I would have just quit learning any further. I wouldn't be doing a computer science degree if I started with rust, most people (but not all) need to start with something more approachable and easy, then they can ease into something a little more technical like rust or c++. That being said, people who have managed to have c++ or rust as their first programming language, and did not quit, find it easier to learn other programming languages because those 2 languages teach you a lot about coding and computers.
So if you are willing to go through some difficulty and frustration, with the idea that it will make things easier in the long term, maybe rust is a good language to start with, but for people who just want to learn a programming language without having the urge to give up, maybe an easier language would be best.
I started my journey into programming in the mid 80's with assembly and Pascal and it was so painful and boring i gave up until the late 90's when I found PHP. That was the first language that was fun and made sense. Shortly after that I found C# which also completely clicked. I also tried Perl, C/C++ and Python back then and didn't really get into them. I can guarantee if Rust existed back then and I tried it as a first language I would have quit and found something else. That being said, nowadays I'm doing a lot of F# and Rust and also did some work in Elixir. (oh plus everything from Angular to Svelte...) Nice video.
I like your channel because it makes learning Rust a bit less tormenting. Keep up the good content!
If you arent familiar with pointers and references etc, i highly recommend learning the basics of c first. I tried to learn rust first and i didn't have any idea what i was doing until i gave up and learnt c.
Yes!! I chose Rust programming as my first programming language instead of taking up Python programming. Because, it is very fun and gives as real programmer experience... I love it while programming 💕. I don't know, how about others?? 🤔
People who learn rust first. 99.99% of them give up. You are a really rare goated chad
My first language was technically ruby I think, but I eventually pivoted to python and forgot all my ruby knowledge, I use python for creating graphs (seaborn/matplotlib), making animations (manim) and making general purpose programs. I know it's fun to look down at people who use python all the time but it genuinely is such a smooth and easy experience working with python, all my code is very readable and I can even show it to non-programmers.
@@tmahad5447 Yes!! That depends on different people.
I would say python is real programming. I started with JS/Python. That's what I'd recommend to most people as a first language. I'm now getting into Rust because I like the philosophy behind it. It's still difficult, but I'm getting the hang of it, and I already have a solid foundation with Python, JavaScript, C, and C#.
It is awesome you started with Rust, however - it is my favourite language
Good ! The only thing i have against it is that there are almost no entry-level jobs in rust. And given that you'll be doing systems programming with it mostly, the entry-level job prospects are even more grim there. How do people overcome this?
Not counting HTML when frames were cool, Rust is my first foray into coding. Your video give me a bit of confidence that this could be the right fit for me.
Last year i started out playing with html, CSS, js, then i learned Php, tried frameworks like Laravel, but I couldnt find a language that i really liked and felt mine. I tried out Java, and C++ Reading the C++ Primer, then I found out Rust, and i read The Book ( paper v, PDF) and for the First Time I felt like i was actually understandung what i was coding. Now It has been 6 months or so that I am on Rust ❤
How do you deal with the fact that there are no entry level jobs in rust?
@@muhammadali-um2rd Im working on my own project. I'm young so i have time i guess
I will answer you too, may I? I am working in company where my opinion matters, so I just started to rewrite API in Rust, also I am Ruby anc C developer and sysadmin. So no problem. We are starting one our project with friends, just like a hobby (mobile app with Rust backend), I hope will be out soon.
I wonder if my experience learning Rust would have been harder if I didn't already have experience with C and Assembly. Some low level concepts in Rust aren't very clear to someone who has never been exposed to the bare metal, I guess.
If you want learn Rust as your first programming language, then make sure to get your free cheatsheet first.
of course!! :D
This video is super poigniant not just in answering if Rust should be learned first, but how any programming language should be evaluated to be learned first. As much as I love Rust, I share the opinion that Rust is rarely the language you should start with. I would actually go further and urge people to not start with it on the basis of the fact that you don't actually appreciate what it is until you experience the problems and flaws of other languages. If you start your programming career with Rust, it'll only go downhill from there. The only step you'll appreciate from any/all other languages you would learn next is the ability to write incorrect code rapidly and however you want it. But after that, the new doors other programming languages might be introducing you to are either worse approaches (less efficient) or at best just another expressive approach.
In most cases where Rust seems like the recommendation for a first language, I would actually steer someone towards C or C++. People say those langauges are hard, or harder than Rust, but I disagree. Writing those langauges at a competently professional level is hard. Professional C and C++ is difficult to understand builds, linkage, syntax, memory safety patterns through various implementations, etc. But a beginner can write C or C++ and skip all of that complexity and more easily write code and watch it run something quicker than Rust. Will it be correct faster? No, but that is a part of development: working with a program that is syntactically correct and compiled but is still wrong and fixing it from there. Essentially Rust will be more frustrating for a beginner to get code that even compiles, and stiffle learning a debugger because once they do get it to compile, it probably worked. This is why I think C or C++ are actually better for an absolute beginner -- they'll round out as software engineer faster rather than being too dogmatic about how to get things done.
Imo the syntax of rust and rust concepts such as borrows and interior mutability are a bit difficult for beginners to grasp. I believe that the first language for beginners should be python, and then have them move to rust once they have understood the basic concepts.
I would've agreed with you a few month ago, but i recently tried C (just C, not C++) and it's so dead simple in its design I'm surprised not much people recommend it as first language. It literally confronts you with all the necessary concepts in CS and makes you build your data structures instead of relying on third party.
The only problems I see in C is that it is not type and memory safe, which leads to frequent off by one errors, linking is annoying, and, I think this one is most important, many MANY old and bad features that stuck around because of backwards compatibility, which makes it hard to learn current good practices without a teacher.
Having no generics, methods, closures, smart pointers or GC, etc. has really made me appreciate and understand purpose of many features other languages have, and focus on how memory and computers work instead of artificial abstractions. And also I used goto for the first time in my life lol.
Yeah I feel the same way, I pretty much exclusively use python (or other similar languages) for personal work, with the occasional JS or java. I have been slowly learning rust but the trademark policy proposal has made me put a pause on that because I don't want to feel like I am "supporting" the rust foundation per se after the nonsense they decided to put up.
I'm considering using rust as a first *serious* programming language for my kids.
I emphasise "serious" because I think it's worth starting with something really simple to learn the basics of control flow and variables. I really think I benefitted from starting with learning BASIC on a spectrum64
Basics of control flow and variables is important. For that reason, I think that Scratch or a similar toy language should be the first that anyone learns (adult or child), because it is good at illustrating the basics of control flow, variables, loops etc.
Once that framework is in the student's head, then it would make sense to go to an easy to learn proper language such as JavaScript or Python, where the student can create something useful, get some wins, and perhaps get a job, all without being bothered by memory management, data types, or hard to understand compiler errors. Those languages also have a REPL which makes them easier for quick prototyping.
I would not recommend that anyone attempt to learn Rust unless they are already confident in another easier language. I know that 40 years ago C was used as a teaching language on many courses, but at the time their where few alternatives. Now we have better tools, so can give students an easier learning curve.
one difficulty is the old habits, coming from a different background, and having to deal with "new" concepts and idioms, I had quite a hard time to "unlearn" previous way of thinking and solving problems. One might want to rebuild stuff done in other languages in the same way, and that can be frustrating, there is no bijection between Rust and [other language] (but that would also be the case for many programming languages, I guess going from Python to Erlang might be tricky as well)
Yes totally agree, it was my biggest pain (and sometimes still is) for me, after 22 years of development in different languages.
Spent a couple months learning python. At the point where I can hack together some useful stuff. Shifted focus to rust and yeah, even with only a few months under my belt. I found myself wondering "How the heck does this all even work" after Pythons garbage collection and dynamic typing abstracted a lot of the nitty gritty away...
I've been cycling between Video tutorials, the book, rust by example, and discussing fundamental topics with GPT to try to wrap my head around it. It's a slog, but I've been making progress!
I started to learn Rust around a year ago. I am devops and software developer for more than 22 years. I prefer low level and backend business the most. But I also played a little bit with frontend. My first language was C followed by C++ and then I programmed for significant time in Perl, Ruby, Swift, Lua and Python (which I personally dislike the most:)). But I think Rust is a future and it solves most of the problems from the other solutions. It is modern answer to all the problems for many years. I am rewriting a lots of software to Rust these days. Everytime I wrote something complex with Python I felt I am fighting it but with no reason. When I started Rust coding I felt I am fighting it for a good reason and then it fades out and now the way you wrote is instrument not the blocking thing. Yes Rust is harder to learn, especially after long years of experience you are used to concepts, that are similar in most languages and Rust are changing them. But I love Rust and Ferris :D. This channel helps me a lot to understand Rust. And yes , The Book, I have never seen language with such a great and fun documentation.
As someone currently self teaching JS, and building, i am interested in rust but i don't want to get lost in the weeds. So gonna continue on the path until i have a good understanding and then run through the rust book
Back in the day (30 years ago) we could choose between Pascal (not practical for real world tasks) or C/C++ :-) There was also Cobol, Basic or Fortran :-(. My tips for beginners: learn about relational design and SQL first. The best investment ever. And SQL is relatively easy. Then as advised: if you are not sure to go to system development, I would recommend a modern, hybrid language like C#, Java or Python. JS is not a good choice. Start with TypeScript right away. Rust is definitely the better choice over C++. But MANY jobs are still for C++ and that will not change that fast. But hey: today you have this AI assistance and the web. So, you can make it. I HAD to read Strostroup "C++ - the bible". 1000 pages !
Yees that book for C and C++ from Brian Stroustrup (or how was his name) my everyday thing for a few years :) And I installed compiler by floppy 3,5" downloaded in local library and installed on my system. What a days back then :)
I've been watching Rust videos for 2 years without actually learning the language.
Btw, so excited for version 1.69 coming out.
I’m waiting for 1.420
Rust was my first programming language even before I clicked on this video. 🗿
Was it hard at first? - Yes.
Was it worth it? - Completely Yes. I installed Archlinux from 0 when I bought my lew laptop 1 year ago. I don't go easy ways 🗿
Installing arch linux is not a big deal though. I bet you just followed the steps on some tutorial/guide and that's all. Do you really think that was any hard?
It's quite the contrary, once you initially set up the arch, it is the *easiest* os/distro out there.
@@twothreeoneoneseventwoonefour5 Totallu agree with you. I don't think it's that hard as maybe some people think.
And yes I did follow tutorial and archwiki to get all stuff working.
Still using the same setup now. The only thing that's changes is build scripts and programs. Actual hotkeys and stuff setup and DONE.
@@rotteegher39I think what most people are “afraid” of with arch is that software tend to break. But I honestly didn’t have any problems with that. Back ups are a must though in case shit hits the fan.
I grew up on Linux. A few years I ran my own distro, everything built from source :D.
I just say no. Rust makes you keep track of a lot of things whilst programming and it's not something someone who's learning to crawl should do. Learn Python first it will savs you a lot of time, and you need that beginner dopamine hit to keep you going.
Rust is also a good choice when writing program languages. I belief on of the main goals for Rust was that you had to be able to write the Rust compiler in Rust itself.
I started with C and C++. Just dive in and know your gonna bang your head against a wall. You won’t have to unlearn things you did before😊
Love your channel and your approach to explain. Keep it up!
Most of these arguments seem to miss the point of a first language. It's foundational.
If you are already looking at a programming job you are not just learning your first language.
I think we're underestimating the elegant compiler errors feature of rust which is huge help for beginners and not only. In javascript unless you've got smart IDE, you're waiting for the bad at runtime, which is time consuming, and with C++ let's say, the errors say what's wrong, but 0 chance for tips on fixing trivial errors. Also with rust, you've got mostly pretty defined toolset, meanwhile with JS you've got soo many choices, e.g. you choose node js or deno js? Etc. etc. Well, ultimetly, you'll have to learn the evil anyway, either said JS for web or as a low level programer the C++ to interopt with it from time to time. Also at the end the difficulty curve varies from the course taken, but than again: rust book althought not intended, should be rather a very smooth experience from what I've saw when trying to introduce dudes into it.
This is absolutely true. The compiler is a pretty good teacher in rust. I've been enjoying it.
Django is my preferred backend . There might be limitations but I haven’t encountered any for my use case
My first programming language is Bash, and second would be Rust. For sure. Though I thought my first programming language would be Dart, but Bash is easy* and Rust is amazing.
After the Rust foundation trademark fiasco, I don't know if it's really worth to keep learning Rust. );
lol, you are with Rust just because of the hype, yeah, it's really `not worthy`
@@junwu22 I don't know where this comment came from, but this fiasco is going to jeopardize the work of the devs of the crates and content creators. And also politicize something like a programming language. I'm still gonna learn Rust, but this leaves me with a bad taste in my mouth.
I'll try to do a game jam with Bevy and Rust. Tbf it's not my first language, and I don't actually remember which one was first.
so do you have to change your channel name?
Why the hate on Golang? I've never understood the fight between these two communities... They're different languages with different goals in mind. I don't even consider them competitors.
I don't know. I do not like these fights. Also Python community was still attacking Ruby (my world), maybe lots of people are competitive, so they want to do this. I am not competitive and dislike it. I simply like the language or not, but every language has its purpose.
No, in fact, if self defense is something you believe in, you shouldn’t touch the language at all.
The Rust Development team doesn’t believe in self defense.
considering their new trademark thing, I would avoid touching rust till they fix it
Could you make a video about embeded development?
yeah rust has some genuinely amazing embedded development stuff
so if you were doing rust as first language what type projects would you recommend
really great video!
Rust will soon enough be a viable option for native desktop apps with the work System76 is putting into Iced.
The was a really good answer.
its not bad actually, but it think C should be a better start.
3:08 JavaScript may seem like an easy language on the surface but dig deeper and you will find hell...tons of WTFs and tons of extraneous features (the latest ECMAScript specification is over 800 pages long!).
thank you 👍
you changed rust logo's color 😮😮😮
The first language obviously should be Haskell, but Rust is a solid second choice.
going bad, can't execute the code "hello world" xD
i will figure it out when i'm not dying of sickness
It was my 2nd
Let's get rustyyyy 🤙🤙🤙
no it shouldn't, rust is still difficult for beginners even the friendly community trying to make it easier, still necessary to grasp all the fundamental knowledges by learning other programming languages like C/Python/Golang
My opinion:
Short answer: No, go for the easy first.
Optimization brought me here
Unless you want to be a web dev just learn C as your first language.
I would learn Blockly before Rust, it gives you a feeling for basic control flow.
I would not learn C++ or assembly before rust, unless the environment required it.
After learning Blockly, I would learn a strictly typed language (at least if you want to go beyond scripting).
If you study computer science, then I recommend that you learn Rust immediately after learning Blockly.
If you need to do a job on an existing project, then learn whichever language is already used.
Why are we referring to Rust as a low-level language?
In my view it is a very precise language compared to more sloppy and imprecise languages.
In my view it is a right-level (not low or high) programming language with all the advantages of a low level and high level languages without the disadvantages.
For sure rust is a good first language because it can be fullstack.
You shouldn't learn Rust as a first language as you cannot apreciate its benefits, which make up its complexity. It's really fun to get into rust when you get rid of the pain, you experience in other languages.
FINALLY! Thank you for this intelligent, egoless, and well-thought-through perspective on learning Rust as a first language.
BTW, I would add another group of people to those who should learn Rust as a first language: people who know they want to build web apps in WASM, not JS. Rather than learn a language just to throw it away so then can then learn Rust, they are better off starting with Rust putting all that learning into their target language.
Otherwise, it's like expecting people who are going to live in Spain to learn Portuguese first so they can learn the concepts, then throw it away and learn Spanish so they can use it long term.
My two cents, I think learning C and then Rust is a great path. C is a pretty simple language, with a clean syntax.
Once you start building a more complex applications you can see the difficulties of managing memory.
Then when you're comfortable in C you can move to Rust. And you will have a greater appreciation and understanding of the problems Rust solves. And you are probably ready to learn its slightly more complex feature set.
( this is just what from my personal experience )
Im sorry did i just hear you say that building operating systems, databasesm robotics and blockchains is a good place to learn programming for the first time? 😂 Honestly if someone came to me with that request i would send them to a JavaScript or Minecraft coding course first. No one should ever learn programming starting at complex algorithms and distributed systems.
I will assume this is official R*st material from the R*st Foundation since it had no disclaimer 😂
Too much talking and dragging it out instead of just getting to the point. *It's simple: Yes*
You don't have any other frame of reference, expectations, bad habits, or whatever, so it'll be just as "natural" as any other option.
Going to some meetup would be good... but i live in Russia.
I don't but I am a huge social phobia person and only imagination of hackathon or meetup scares me.
5:42 well this aged poorly
Hola
Driving a Ferrari is not for everyone! 😀
No
Yes, nobody should ever use python for any reason
nope choose crablang instead
Chad memes belong on the redpill bubble. Don't go that way!
Yes.
NO!!!!
Yeah, go ahead and learn ®*©™ as your first programming language!
if only you want to be cult followers
Rust = headache 😵
Will you change name or will you apply?