Table of Contents: 00:00:00 Intro 00:02:55 Slides - Why learn Scala? 00:08:40 Slides - Why learn Scala now? 00:10:12 Slides - What is Scala? 00:15:28 Environment setup 00:33:42 Tour 00:40:12 Comments/Javadoc/Scaladoc (crash course starts here) 00:42:56 Keywords: val, var, def, lazy val 00:49:22 Top level definitions 00:52:23 The Uniform Access Principle 00:55:28 Types 01:04:45 Keyword: type 01:05:50 Literals and String interpolation 01:15:42 If expressions and the type hiearchy 01:23:36 Boolean opeartions and equality 01:26:32 Loops and tail recursion 01:30:41 Higher order functions and lambdas aka anonymous functions aka arrow functions 01:39:41 Pattern matching and partial functions 01:49:46 Exceptions 01:51:55 Collections and imports 02:14:36 For Comprehensions 02:21:07 Factorial (just another tail recursive example) 02:23:48 Adding/removing elements to collections and right-associative operators 02:31:08 Methods with variable argument lists aka Varargs 02:32:38 Function currying and OO classes 02:40:28 OO objects and properties 02:45:21 OO traits, inheritance and subtype polymorphism 02:46:48 Self types 02:48:28 Objects (classes) expose methods and hide data 02:52:28 Data structures (case classes) expose data and hide methods 02:58:42 Algebraic Data Types aka ADTs 03:13:00 Implicits
@mtrisi3 жыл бұрын
Seriously can't believe someone so knowledgable and organized provides all of this information for free in an extremely well-set-up format.... awesome work man
@DevInsideYou3 жыл бұрын
No pressure, but just FYI I have a patreon page :)
@ldipotet2 жыл бұрын
You're right(the content of the video is amazing), but I guess it's all related to demand. Perhaps there are a lot of scala content but not many companies doing big development projects or market demand. Try to find a good blockchain, cryptocurrency or non-fungible token(ntf) course on youtube or any other platform for free. You won't find anything. You'll need to go to an e-learning platform or training at universities.
@DevInsideYou2 жыл бұрын
Thank YOU! Scala is a niche language. Both the market is small and the amount of content as well. There is only a handful of KZbin channels related to Scala. Cheers :)
@ldipotet2 жыл бұрын
@@DevInsideYou I don't think so. I started with scala in 2015 and at that moment there were just a few places for learning scala. In that time there weren't too many frameworks or libraries. Nowaday everything has changed. I reckon sometimes it's the worst. Tons of frameworks and libs, by our own experience refactoring is a nightmare but in scala it's worse. So I decided to follow Ordesky philosophy and use only the language, perhaps specific libraries like Akka, or build tooling like sbt for build ,package and so on. Functional programming is a paradigm that can be materialized through different languages but even in that scenario what is important is what you build and just only afeter the language used for, It is just a humble opinion. Keep doing well because core is not about what It is about how and in youur case it is great.
@technicalsuranii Жыл бұрын
This guy is legendary scala- Captain America with rich experience and focused content delivery. Cheers up..
@Ali110Jay3 жыл бұрын
This is what I have been waiting for ages, brilliant work 👍🏽
@yegor.karimov Жыл бұрын
I'm watching it for 45 minutes and just wish to say that it is a truly beautiful course. I enjoy Scala's concept itself and the explanation.
@prabhakaranrajendran70593 жыл бұрын
This is very amazing video. For scala, we need these kind of simple videos & tutorials more to involve more developers to scala group. Thanks again lot.
@ElectronGuigui2 жыл бұрын
yes we should have more videos and blogs too!
@Filaxsan3 жыл бұрын
Man, you are a legend. Not only the info were super useful and understandable, but you kept going for 3h+ straight! True hero! :D Impressive job, subscribed for sure!
@DevInsideYou3 жыл бұрын
Thank you for your kind words!
@MohammadHusain2 жыл бұрын
Awesome! Not only the content but your energy to keep going for hours was super impressive!! Needless to say I learned a lot.
@wafleez0r3 жыл бұрын
This is amazing. Currently learning Scala with the coursera course, I'm going to have this as an extra resource! Really looking forward learning Scala
@MrSojek3 жыл бұрын
Do you learn anything else apart from Scala? Don't know if Scala / JS programming enough to get an entry job in IT or are they just a part of a much bigger environment.
@wafleez0r3 жыл бұрын
@@MrSojek JS is enough to get an entry job. Would consider learning Scala as a second programming language later in the future. Im telling you this because i work in the industry exclusively with JS, React, GraphQL, Redux and TypeScript. There is plenty enough to learn with JS so would recommend that one first, then scala if you are really interested into it
@DevInsideYou3 жыл бұрын
The target audience for programming crash courses is someone who already knows some other programming language (JS in this case). The purpose is not to help someone enter the industry but rather to transition between technologies. I have full blown playlists on this channel that start from absolute 0. For example checkout this one kzbin.info/aero/PLJGDHERh23x-YBJ8LmYU_IGBFflvsKfLu Cheers and happy coding! :)
@i6g7f3 жыл бұрын
even before I've watched the content (I will!), yet I vote with 1 thumb UP for the title itself ;) :) Looking forward to look inside your webcast. Thanks!!
@shreem64473 жыл бұрын
Not many instructors have a sense of humor who can grab the attention all through. Thank you for sharing 😁😇
@bigben3332 жыл бұрын
I cannot be more grateful! Thanks I am really learning from scratch after programming all my life in Python
@mariogamer862 жыл бұрын
Best video of Scala explanation, mas helps a lot my learning keep doing the great work. It's all we need and it's difficult to find such video quality thanks
@estebanmarin0023 жыл бұрын
Thank you so much for this content, it gives a clear picture of the features of the languages in a straightforward way. I mean, I should read all the Scala - Odersky manual, but this video is the cheat sheet. It will be my go-to reference when there is too much syntactic sugar laying around
@DevInsideYou3 жыл бұрын
Watch your insulin levels hahaha
@miguelluna7973 жыл бұрын
Great crash course, I was pretty rusty on scala and this was really helpful.
@rastislavsvoboda43632 жыл бұрын
very cool, thanks for sharing just some mistakes due to you were tired: @2:16:19 your chess board is not square ;-) chess rows is 1 to 8 @2:21:33 your fibonacci is factorial ;-) should be fibonacci(n-1)+fibonacci(n-2)
@DevInsideYou2 жыл бұрын
Oh snap, can you believe that this video is like 2 years old and noone told me hahaha Thanks!
@firmegabriel3 жыл бұрын
Thanks for the Environment setup tip!
@struan_mclean2 жыл бұрын
Thanks a lot for this tutorial helped out a lot!
@soporboyschannel3 жыл бұрын
Great explanation in one, thank you, man!!! Happy New Year!
@akkiaaa3 жыл бұрын
Excellent ! That’s what I wanted ! Thanks so much for these scala videos
@MarcusHammarberg2 жыл бұрын
This was quite amazing. JUST the right level for me (especially if I turned the speed down to 0.75 :)) Thanks!
@MrTelarin2 жыл бұрын
Wow, this is actually amazing video. I watched a lot of "tutorial" videos in IT sphere and this have to be one of the best. On current project I've faced Scala for first time and they're using Play and Akka frameworks, maybe you can advice some greate resource to "crashcourse" those frameworks? Or maybe there is som great book about Scala?
@DevInsideYou2 жыл бұрын
Thank you! Akka is a planet. You can't learn everything. They have great documentation though. Focus only on the "actors" part and maybe streaming (if you use it at work). Everything else is too much to learn. I also made a review of one of the books about akka here: kzbin.info/www/bejne/ipzWhoSeg9aipZI About Play!, the last time I touched it was 10 years ago (In fact akka as well). I don't know of any resources apart from their documentation. There are some older videos on this channel though: kzbin.info/aero/PLLMXbkbDbVt8tBiGc1y69BZdG8at1D7ZF Also I'm sure that you can easily find some book about play by searching for it. Btw feel free to drop by my discord server at discord.devinsideyou.com to ask questions. Cheers and happy coding! :)
@mwont2 жыл бұрын
This is better then Rocks videos. Thank you.
@yurkeetravels9322 жыл бұрын
1:51:47 I thought, that if the last thing is returned, then either compiler would complain, or the return type would come from the finally clause as `Unit`, not the 0 from `case`. Why is that?
@DevInsideYou2 жыл бұрын
Returning things from the finally block is an antipattern and IIRC Scala allowed this initially, but because people kept shooting themselves in the foot this behavior was changed - finally is now excluded from the "normal control flow" and always returns Unit even if you put something else in there like `42` for instance. The purpose of finally is to clean up resources, which usually means closing connection sockets, file descriptors etc. All of these are side effecting (unit returning) operations. I hope it makes sense and happy coding! :)
@yurkeetravels9322 жыл бұрын
@@DevInsideYou makes perfect sense, thanks for the explanation!
@jacobphillips92352 жыл бұрын
Thank you! Thank you! Thank you!
@DrProductivity Жыл бұрын
Great Tutorial, thanks for sharing!
@ostapsulyk Жыл бұрын
SIR! THIS VIDEO IS AMAZING THANK YOU SO MUCH!!!! YOU ARE A REALLY GOOD TEACHER and yes I love scala😂
@DevInsideYou Жыл бұрын
Thank you for your kind words!
@ayyubayyyub94152 жыл бұрын
Bro keep on going I love Scala.
@ayyubayyyub94152 жыл бұрын
You think your efforts are not appreciated, yes it's. There might not be a lot Scala programmers but those who do they will be here.
@DevInsideYou2 жыл бұрын
Thank you for your kind words. I really needed to hear this today!
@killerkamatis22433 жыл бұрын
Thank you sir. More power to you and your channel.
@rlcaust13 жыл бұрын
This is an amazing video, I feel like watching this I can now understand Scala
@rlcaust13 жыл бұрын
I can't get my scala formater to work at all, any tips, do I need to use a VS code extension?
@DevInsideYou3 жыл бұрын
Metals is the extension you need.
@rlcaust13 жыл бұрын
@@DevInsideYou Thanks for the quick response, have had metals installed and still didn't do anything, had to do ~scalafmt;run to get it to work. Really weird aye.
@DevInsideYou3 жыл бұрын
@@rlcaust1 Make sure these settings are enabled, especially the onSave one: "editor.formatOnPaste": true, "editor.formatOnSave": true, "editor.formatOnType": true,
@rlcaust13 жыл бұрын
@@DevInsideYou that fixed it, thanks so much!
@mitkel9992 жыл бұрын
Lovely!
@SaurabhGangamwar3 жыл бұрын
Really amazing crash course.very helpful for beginner. Before watching your video. I was feeling scala as foreign language. Thanks brother. Please suggest some project ideas with scala. That will help learning & will get practical hands-on
@DevInsideYou3 жыл бұрын
Thanks! I'm glad you liked it. I never liked building things just for learning purpose. I always felt more motivated when building something real. Even just a todo app. Most of them are not good or pricey. So build sth that you will use or at least contribute to OSS.
@ggsgetafaf11672 жыл бұрын
amazing course. thank for your effort
@MuhammadAlam-ne9cf2 жыл бұрын
thank you Scala Veteran
@cavidxalilov29682 жыл бұрын
Awesome. Thank you Vlad. Do you planning to set up course on Cats Effect? It would be perfect.
@DevInsideYou2 жыл бұрын
Maybe. Check out my tagless final playlist, it covers some cats effect stuff.
@prashlovessamosa2 жыл бұрын
Thanks for sharing
@encapsulatio3 жыл бұрын
Recommended to be played at x0.75 speed.
@xvna20363 жыл бұрын
Great to see you doing some Scala content again!! Would you still recommend the videos in the playlist you started 3y ago? It seems the approach was a bit different (I only watched 4 of them so far, which I really enjoyed).
@DevInsideYou3 жыл бұрын
Thanks! No worries, the majority of my content is always going to be about Scala. The target audience is very different for the videos from 3 years ago and this one. This one is not for beginners. It assumes familiarity with other programming languages. You are already supposed to know things like if statements/expressions, functions, recursion, loops, classes etc etc. The videos from 3 years ago are for people who are starting from absolute zero. In which group are you? Cheers and happy coding ;)
@xvna20363 жыл бұрын
@@DevInsideYou i already know a few programming languages, but none that are strictly typed so some of the longer videos might still be valuable. I’ll pick and choose :) !
@xvna20363 жыл бұрын
The time you spent explaining where the jvm sits in the stack and why one needs to stop confusing java/ jvm was actually super useful. That turned me away from this specific ecosystem for years.
@jorgemario2pac2 жыл бұрын
Great course!!!
@SuperQuwertz3 жыл бұрын
How are you placing multiple cursors like that in 55:48?
@DevInsideYou3 жыл бұрын
You mark what you need either with the mouse or if it's sth that the editor can recognize as a "word" then you can mark it with Ctrl+D (could be Cmd+D on a mac). Afterwards you keep pressing Ctrl+D and the editor will keep marking the other occurrences positioning multiple cursors at their locations. Esc removes the cursors again. You can also press Alt+F3 (only on windows) to mark all occurrences. Unfortunately I'm writing this on my phone so I can't verify the (default) key bindings for you. Cheers and happy coding! :)
@SuperQuwertz3 жыл бұрын
@@DevInsideYou Thank you very much :)
@DevInsideYou3 жыл бұрын
Forgot to mention that you can also hold Ctrl and click on any location to position an extra cursor.
@julianavar38363 жыл бұрын
Tha backquotes to give functions a string name was nuts. I wonder if it's utf8 compatible.
@DevInsideYou3 жыл бұрын
It is. Btw I should probably mention that this is not something that should be used often. Scala is a very powerful language. Whereas other languages give you a shotgun to shoot yourself in the foot, Scala gives you a tank. :)
@bharathballamudi1363 жыл бұрын
Hello Vlad, I have been referring to your videos out of curiosity for Scala. You have a ton of resources to learn Scala. I would like to know if you would consider doing live projects like in Twitch? Getting past the concepts and truly applying them into a full blown project has been a little down with me. So please let me know if you would like to consider the request. Thanks in advance.
@DevInsideYou3 жыл бұрын
Hey, I have considered streaming and I wanted to start doing it for a very long time, but as of today there are still things that prevent me from doing it and so I'm not ready yet. Furthermore even when I do start, most of the streams will be "just chatting" ones to hangout with you guys. You'll be able to ask questions as well. Creating real projects live is probably not feasible as of right now since I only have capacity for a max 3h stream once a week. This way it will take years to finish even one real project and I don't like to start things that I can't finish. I'd really like to start streaming though and hopefully I'll be able to do it soon. Check out the cake pattern and then the tagless final series. We built full blown toy projects there. Cheers and happy coding! :)
@avsaase3 жыл бұрын
Which code formatter do you use in VS Code? You quickly mentioned it a couple of times but I couldn't quite make out the name. Great crash course btw!
@DevInsideYou3 жыл бұрын
Thanks! Metals (the language server) uses scalafmt. It's here: scalameta.org/scalafmt/
@avsaase3 жыл бұрын
@@DevInsideYou Thanks! And how do you get those curly brackets to show next to line numbers? They look very handy for determining the scope of what you are typing.
@DevInsideYou3 жыл бұрын
@@avsaase I believe it's a setting of this plugin marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer-2 but a) it is no longer maintained (I still use it though) AND b) vs code recently released this feature natively but I didn't have the time to play around with it yet.
@Ali110Jay3 жыл бұрын
If you don´t mind me asking, which code color theme are you using please?
@DevInsideYou3 жыл бұрын
I don't mind. It's Spacegray Base 16 Ocean Dark marketplace.visualstudio.com/items?itemName=ionutvmi.spacegray-vscode Cheers and happy coding! :)
@marcello4258 Жыл бұрын
What’s the state of the native compiler today ?
@DevInsideYou Жыл бұрын
Multithreadding is coming. Once it arrives it will be production ready in my opinion. Twitter is probably the best place to keep track of progress twitter.com/scala_native?t=6WPrt8zd3mj72JRbQkYLqA&s=09
@mbesida3 жыл бұрын
What is a name of a color theme in Vs code that you're using? Seems like "GitHub dark" but font color of scala code differs from regular.
@DevInsideYou3 жыл бұрын
I started with the space gray theme github.com/ionutvmi/spacegray-vscode base 16 ocean dark but when I switched from Sublime Text to vs code I started to like the color palette there so I mixed it with space gray. My .dotfiles are online github.com/agilesteel/.dotfiles/blob/master/guake/.config#L92 but essentially this is the palette that I'm using today: "foreground": "#c0c5ce", "background": "#2b303b", "black": "#4c4c4c", "red": "#ff3c3c", "green": "#0dbc79", "yellow": "#e5e510", "blue": "#3b8eea", "purple": "#bc3fbc", "cyan": "#11a8cd", "white": "#e5e5e5", "brightBlack": "#666666", "brightRed": "#f14c4c", "brightGreen": "#23d18b", "brightYellow": "#f5f543", "brightBlue": "#3b8eea", "brightPurple": "#d670d6", "brightCyan": "#29b8db", "brightWhite": "#e5e5e5", "selectionBackground": "#1c1f26" I configure everything to use it: all my editors and all my terminals. Cheers and happy coding! :)
@davidflores44903 жыл бұрын
Have you used the Play framework? I want to get into it but I struggle with finding how to do stuff, and the documentation barely helps. There's a lack of play content for Scala. I already know Scala, it's just play that sometimes feels over-engineered.
@DevInsideYou3 жыл бұрын
The last time I touched Play! was in 2013. I'm not planning to make any videos related to it in the near future. Mark Lewis made a ton of videos about it. Check it out here: kzbin.info/aero/PLLMXbkbDbVt8tBiGc1y69BZdG8at1D7ZF
@tharunn72662 жыл бұрын
Hey Vlad, did you work on any Apache spark projects? I learnt a lot from Mark Lewis but still having the exposure to work on a good project would definitely help. And btw I'm not sure why this was not featured on Traversy Media. It was such a great content.
@DevInsideYou2 жыл бұрын
I've never touched apache spark. I'm not a data engineer. Maybe when I do KZbin full time some day I will have the time to check it out. The reason it wasn't featured on Traversy Media has nothing to do with the quality. I talked to Brad and he loved it, but he wasn't putting anyone else's content on his channel at that point in time apart from some people he closely worked with. It's all good though. We're still friends :)
@tharunn72662 жыл бұрын
@@DevInsideYou Got it. But since scala is widely used for data engineering domain i kinda assumed that. And yeah, i really hope it gets featured some day. Having it featured wouldve been helpful for the channel. But i know it's only a matter of time. :)
@DevInsideYou2 жыл бұрын
It's true that spark is a big part of Scala but I can't make a video about it if I know nothing about it.
@alsiyonealternate Жыл бұрын
This video was very informative and I am very grateful that you did it. But it is also very difficult to watch as you speak very quickly. Even with 0.75 playback speed, you still manage to pronounce words like 'another' or 'difference' in less than half a second. But thank you a lot.
@bartez80182 жыл бұрын
What do you guys recommend for backend? Kotlin or Scala? I will use Kotlin for android app, but what will be better on backend? It will have some rest apis, and some real time featueres
@DevInsideYou2 жыл бұрын
If it's for learning purposes use what you know less. If it's for production the answer is the infamous "it depends".
@bartez80182 жыл бұрын
@@DevInsideYou prod
@DevInsideYou2 жыл бұрын
It depends on the size of the team, their background (do they know FP?), are if they are willing to learn. Also if your backend is simple crud you might not need the power of Scala. I've seen it before...
@marcs.9027 Жыл бұрын
ab 40:00
@Bayo1063 жыл бұрын
Thank you
@sungod595 Жыл бұрын
I only know Python. Can i learn Scala from this Videos or is Java knowledge expected
@DevInsideYou Жыл бұрын
Yes you can. Python is enough.
@align2source7 ай бұрын
💚
@TannerBarcelos Жыл бұрын
I really enjoy Scala. I just don’t like how concise it can get. Makes the code unreadable if you come back to it after time. Some of the applications I’ve been working on at work use strict typing, and minimize the syntactic sugar. I think you made a good call out on always defining return types and making a new line for the return statement. It’s a fine line of how much you want to break the code down to be as short as possible but keeping it readable.
@nekenek45523 жыл бұрын
привет , Влад, как можно связаться лично ? я с enekbenek atgmail
@DevInsideYou3 жыл бұрын
discord.devinsideyou.com
@ianpineda2 жыл бұрын
I seriously wonder where do you get the energy to do a 3+ hour programming tutorial in one go
@DevInsideYou2 жыл бұрын
In my defense, when I set down to record it, I thought I would be done in under 2 hours hahaha
@ianpineda2 жыл бұрын
@@DevInsideYou Haha, I see. Just got to the end and realized it took you 5 hours. But anyway, great video, thank you very much for making it, hopefully It'll help me land a nice scala engineer job :)
@alitc3002 жыл бұрын
A very good Scala Tutorial, thanks, just may be only 2 things to mention 1. You talk too fast, I reduced the speed in KZbin :-) 2. You can also hide your video which is on the bottom right corner so that the viewer don't get distracted.
@DevInsideYou2 жыл бұрын
I'm glad you liked it. Yeah I'm trying to talk more slowly. I like the the video with me in the corner, so focus better hahaha
@AniketBhosale32 жыл бұрын
Being brutally honest, I couldn't understand a huge part in first 60 minutes. The best part I have learnt is setting up and cs install. vs code part is little hard for beginners. I couldn't understand how to compile and run. From vs and from terminal. Both comparisons should be included. I appreciate the way you explained. But in my case, demo part is like magician doing things magic tricks and kid is just watching. Still better than other available videos.
@DevInsideYou2 жыл бұрын
Hi Aniket, thank you for your constructive feedback! In fact this is the second time I'm receiving similar feedback and my reply is the same. A crash course is not exactly the same as a tutorial. Tutorials are for beginners. Crash courses are for those who transition from similar technologies (JS in this case or could be another programming language). I don't know your background, but maybe this type of video was not for you. I have a playlist (a very long one) that teaches Scala as a first programming language if you are interested: kzbin.info/aero/PLJGDHERh23x-YBJ8LmYU_IGBFflvsKfLu Cheers and happy coding! :)
@AniketBhosale32 жыл бұрын
@@DevInsideYou thanks you for sharing that playlist. More power to you and yes, please keep sharing your knowledge with us.
@physicsmadness3 жыл бұрын
the guy is definitely a veteran in scala . He knows the language pretty well and watching him feels like seeing some artist doing his stuff....however, I am not happy with the teaching style....very confusing and unsystematic....felt more like a display of his superior skills....didn't get that learner's vibe....wouldn't recommend to a beginner at all...good for someone who is already aware with scala...
@DevInsideYou3 жыл бұрын
Thank you for your kind words and I am sorry that my teaching style did not fit your needs! Feel free to ask questions here! To clarify I use the term "crash course" to imply that it is NOT an in-detail tutorial. The target audience for a crash course is someone who transitions from a similar technology (another programming language in this case). If you are a beginner I have an entire playlist that teaches Scala as a first programming language, you might want to check it out. It's here: kzbin.info/aero/PLJGDHERh23x-YBJ8LmYU_IGBFflvsKfLu Cheers and happy coding! :)
@physicsmadness3 жыл бұрын
@@DevInsideYou thanks..will definitely check this course...
@maroxesen12 жыл бұрын
0.75 speed 👌
@andriikniaziev92423 жыл бұрын
You probably have a supercomputer in your brain :)
@DevInsideYou3 жыл бұрын
I'm gonna interpret this as a good thing hahaha
@andrewvirtual2 жыл бұрын
Why use Windows at all, it is an inferior OS to Linux.
@DevInsideYou2 жыл бұрын
I'm being frequently asked about this. I'm not only a programmer. I'm also a content creator. I have 4 devices sitting on my desk right now that don't have linux drivers and some of them don't have alternatives.
@wolfgangrichter60882 жыл бұрын
Why is Scala lying to me ? def myBelovedFactorial (x:Int):Int = if (x
@DevInsideYou2 жыл бұрын
This is how most languages represent negative numbers. Try println(Int.MaxValue) and then try +1,+2,+3 etc. It just overflows into the negative range. More details here en.wikipedia.org/wiki/Two%27s_complement
@wolfgangrichter60882 жыл бұрын
@@DevInsideYou :Thank you for your answer. But shouldn't a computing environment tell me if sometihng went wrong instead of throwing a nonsensical output at me and go on with business as usual? I thought exceptions have been invented for that. But Scala and/or Java seem to prefer not to disturb their users by telling them if bad things had happened. I didn't catch or switch off any exceptions.
@DevInsideYou2 жыл бұрын
Do you have an example of a language that does it this way?
@wolfgangrichter60882 жыл бұрын
@@DevInsideYou Yes, Scala, if you use BigInt: def myBelovedFactorial (x:BigInt):BigInt = if (x