Pathfinding Visualizer Tutorial (software engineering project)

Поделиться
HTML-код
  • Опубликовано: 12 авг 2024
  • This video is a tutorial of my Pathfinding Visualizer project, which visualizes Dijkstra's algorithm. This is a great software engineering project to add to your resume.
    This tutorial's GitHub repo: github.com/clementmihailescu/...
    Original Pathfinding Visualizer's GitHub repo: github.com/clementmihailescu/...
    Video where I talk about my software engineering projects, including the original Pathfinding Visualizer: • The Projects That Got ...
    Timestamps for this video:
    0:00 - Introduction
    1:02 - How this tutorial is done (i.e., what tools we're using)
    2:18 - The scope of this tutorial (i.e., what we're building exactly)
    4:27 - The challenge of this tutorial
    5:21 - Very important information
    6:08 - Tutorial
    47:08 - Summary of tutorial
    54:04 - Conclusion
    Prepping for coding interviews? Practice with 77 video explanations of popular interview questions and a full-fledged coding workspace on AlgoExpert: www.algoexpert.io (use "clem" promo code for a discount!)
  • НаукаНаука

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

  • @clem
    @clem  4 года назад +230

    I didn’t have time to add a magic trick at the beginning of this video, but don’t worry-my charming personality and Pathfinding skills will make up for it.
    Here are timestamps and useful links for the tutorial:
    0:00 - Introduction
    1:02 - How this tutorial is done (i.e., what tools we're using)
    2:18 - The scope of this tutorial (i.e., what we're building exactly)
    4:27 - The challenge of this tutorial
    5:21 - *Very* important information
    6:08 - *Tutorial*
    47:08 - Summary of tutorial
    54:04 - Conclusion
    This tutorial's GitHub repo: github.com/clementmihailescu/Pathfinding-Visualizer-Tutorial
    Original Pathfinding Visualizer's GitHub repo: github.com/clementmihailescu/Pathfinding-Visualizer
    Video where I talk about my software engineering projects, including the original Pathfinding Visualizer: ruclips.net/video/n4t_-NjY_Sg/видео.html

    • @luiscardenas206
      @luiscardenas206 4 года назад +4

      Ever since I saw your first video, I haven't missed one video since that day.

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

      Can you teach us machine learning so we can make ai learn to play minecraft

    • @bootlesscoder5755
      @bootlesscoder5755 4 года назад +1

      Hi Clement..do you have any idea how we can do this for office floor map (.pdf)? i was thinking we have to recreate the entire floor map in html and do the path pathfinding. what do you think?

    • @YeslynCasasola
      @YeslynCasasola 4 года назад

      Hello, Clement, thank you for taking the time to make this video! I was wondering if you could share the name of the IDE you're using. Pretty pretty please!

    • @UnwrapTheExperience
      @UnwrapTheExperience 4 года назад +1

      @@YeslynCasasola Its visual studio. :)

  • @nickmaxwellambient6615
    @nickmaxwellambient6615 4 года назад +224

    I've never seen a developer do a video like this where the focus is on thought process and refinement rather than step-by-step implementation on a granular level. Feels like I learned more from this. I love this approach, thank you so much for the time and effort you put into this channel!

    • @xenoaurora
      @xenoaurora 4 года назад +4

      Yeah i was going to say it wasnt what i expected when i saw tutorial in the title. But seeing an actual devs mindset to overcoming portions of the project ended up being extremely insightful.

  • @sakfa1
    @sakfa1 4 года назад +34

    I think the biggest lesson from this tutorial, one that should be especially important for junior devs with impostor syndrom is: look, even experienced, world-class developer needed 6 hours to develop merely a prototype of a small project and that's when copy-pasting half of stuff from ready product! It would easily take 100 hours to implement the remaining features from scratch (other algorithms, top menu, block the UI when animating, optimize a bit, add weights, make everything pretty, etc.). There's no escape from hard work and most of jaw-dropping projects you see on the Internet come just from that. Also: appearance matters A LOT. Do not skip UI/UX for any projects if you intend to use them in your resume/portfolio. I.e. in this one 10 hours spent on nice UI paid off way more than implementing 3 extra algorithms could ever do.

  • @bradysnuggs3807
    @bradysnuggs3807 4 года назад +435

    “I’m so bad at CSS. I can never remember how to put shit next to each other.”
    Me every other day. ✌️

    • @clem
      @clem  4 года назад +29

      😂

    • @dev__adi
      @dev__adi 4 года назад +18

      @@clem this was me before CSS flexbox got to the scene

    • @dharmang
      @dharmang 4 года назад +9

      @@dev__adi and i learned css grids which are even better than flexbox

    • @zephenex4203
      @zephenex4203 4 года назад +4

      @@dharmang neither one is better, it depends purily on the situation

    • @TheTariqibnziyad
      @TheTariqibnziyad 4 года назад +4

      @@dev__adi Grid Layout be like : hold my beer.

  • @Sapphiamur
    @Sapphiamur 4 года назад +39

    Thank you so much, Clement!!! Exactly what I needed to learn to start visualizing things like algos/sorts :)).

  • @shreyaspadhye7337
    @shreyaspadhye7337 4 года назад +9

    This was great! I really admire how Clement doesn't edit / hide his mistakes. That's why he's more relatable. Also, it gives you an idea how to tackle problems while coding. Like when he reads the Dijkstras algorithm on Wikipedia and codes it himself rather than figuring it out from existing code because that's a pain! Ps: Always keep your code well documented

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

    @Clèment Mihailescu, you are the reason I went to coding bootcamp and now I can't wait to try and build my own pathfinding application with your help. You are the man!

  • @dallaskelley2760
    @dallaskelley2760 4 года назад +1

    I actually really liked this project and wanted to start doing more visuals on my own projects. It's really cool that you did this because I was picking apart your deployment build and it was hell.

  • @algocademy
    @algocademy 4 года назад +6

    This is an incredible tutorial! Definitely will use this with my students to help them visualise better Dijkstra's Algorithm.

  • @SheldonHull
    @SheldonHull 2 года назад +7

    I think this project is the only demo project I remember clearly and have come back to for fun multiple times. Makes me jealous as a backend engineer as not quite as many options to make a terminal maze solver that looks so slick.
    Best maze page UI I've come across. Well done.

    • @dumbdavinchi3638
      @dumbdavinchi3638 4 месяца назад

      You can always start small, the most annoying part of frontend is probably css but there are plenty of Ui libraries to simplify that, If you have decent understanding of http and fetch requests than learning frontend shouldn't take more then a few months

  • @SiddiqNx
    @SiddiqNx 4 года назад +6

    This was really interesting to watch! Personally I like this style. It's brave of you to acknowledge you don't know something. It's an important path to success.

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

    Good to see the project built from scratch. You are so real !! You make me feel it is common even for a google engineer to forget things ...Great stuff !! Thank you

  • @atift5465
    @atift5465 4 года назад +468

    The fact that you built this with only 3 months of experience is absurd

    • @bakrianoo
      @bakrianoo 4 года назад +4

      Actually I do not know what do you mean by saying "absurd"? Does it good or bad?. But it seems that you got a big love reaction. So it's so good 😁

    • @ajricherson1099
      @ajricherson1099 4 года назад +47

      @@bakrianoo obviously it's good man

    • @BUZZYBG
      @BUZZYBG 4 года назад +48

      Impossible in 3 months with 0 programming knowledge, let's just face it

    • @winnerwinnerporkbellydinner
      @winnerwinnerporkbellydinner 4 года назад +33

      To be fair, he does have a maths background. But still, it is incredible

    • @yaumingchang5360
      @yaumingchang5360 4 года назад +8

      Wait what do you mean by only 3 months of experience. Surely he has been programming for more than 3 months lol

  • @thomascreel6522
    @thomascreel6522 4 года назад

    My mans is a hard worker, keeps me motivated to do this last push senior year in computer engineering. Studying for the interview the last month and looking to add unique things to my resume so I'm not unemployed come graduating at the end of Spring. Thanks!

  • @atilacorreia
    @atilacorreia 3 года назад +13

    Nice project. The extension of it is to make it with multiple agents trying to find the shortest path. You can increase the grid size, multithread the agents, time slice them, etc. You definitely gonna need that MinHeap optimization you mentioned.

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

    I love all the effort you put on your videos. Thank you very much Clément

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

    this was actually a really good video. seeing you go through this process and even look back on ur own code on how u would improve it was super personable

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

    I don't usually comment on yt, but man u deserved this comment, like, and a sub for posting this!!! Much appreciation from Serbia/ Novi Sad !!

  • @guilhermecampos1238
    @guilhermecampos1238 4 года назад +1

    Thanks for the content Clément, your videos are absolutely amazing!

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

    Eventhough JS is not my favorite programming language, I think this video is one of the best videos this guy has ever posted to this channel. It is really amazing

  • @AadityaMohapatra
    @AadityaMohapatra 4 года назад +1

    i learn so much everytime i watch any of your videos man. god bless, hope you do well!

  • @helenpewther3670
    @helenpewther3670 4 года назад +1

    This is exactly the kind of tutorial I was looking for tonight! Thank you :)

  • @halash_gowda5127
    @halash_gowda5127 4 года назад

    Dude ,can't thank you enough for these videos and also please make another video on APIs, server architecture of your Algoexpert. Yeah you will be remembered for what you are doing. Take a bow.

  • @mohamedh.394
    @mohamedh.394 4 года назад

    YESSS! I've been waiting for this! Thanks man.

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

    Thank you for the time you spent in making this video, your projects inspired me to keep up with my selfstudy in software engineer.

  • @ethandavidson3395
    @ethandavidson3395 4 года назад +145

    I thought the video was pretty good. It is good to show that even an ex-Google engineer struggles with CSS and stuff. Good shit, mate.

    • @greenie62
      @greenie62 4 года назад +17

      Saw a cheeky quote the other day
      "HTML, where you can do it wrong but get it right, CSS, where you do it right but it comes out wrong"
      It does kinda seem, and is nice to know, unless you're specifically a CSS specialist, you tend to grumble at the procedure. lol

    • @clem
      @clem  4 года назад +16

      Ethan Davidson All non-wizard engineers do!

    • @davidn7026
      @davidn7026 4 года назад +4

      @@greenie62 JS, where you can do it right and wrong at the same time. #JSchrodingersCode

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

    I just started to learn Javascript and start to learn algorithms in Python. And I want to study vanilla JavaScript first, and you have the original repo.. My man you are awesome !!!

  • @gabrielpulga6916
    @gabrielpulga6916 4 года назад +6

    As someone that's just now starting out in the field, this is mind boggling. I literally can not comprehend how he managed to do all of this from scratch the first time. Seriously. What the hell.

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

      Rome wasn't built in a day. You tackle problem by problem, suddenly you have a whole app.

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

    Clem, you are an amazing person. giving all this knowledge to random people is a wonderful act of humility. I really hope you find a way to keep accomplishing all your dreams.
    shoutout from Porto Alegre, south of Brazil (hoping to be accepted on AppAcademy soon!)

    • @clem
      @clem  4 года назад

      Rodrigo Mallmann Thank you for the kind words, Rodrigo, and best of luck with App Academy!

  • @adarsh5870
    @adarsh5870 4 года назад +1

    Sir
    I made this using the Unfolding Maps library for Java and it was really fun, and I recently got hired as a Software Engineer at UnitedHealth Group, and they asked about this project in detail, I always knew the algorithms from Cormen but visualization was a new challenge.
    Thanks

  • @nathanesau1
    @nathanesau1 4 года назад +1

    Good idea to speed up through the coding and explain a few things as you go along. For instance, when you try to implement the algorithm (sped up). Then, after you figure it out, explain what you tried and what you ended up doing. Very well done!

  • @kaz372
    @kaz372 4 года назад +1

    Great tuto on a great subject, thumbs up mate that's heavily motivating!!

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

    For fresher's / new graduates it's quite insightful and resourceful.

  • @MicheleTurchiarelli
    @MicheleTurchiarelli 4 года назад

    I love this kind of tutorials... about engineering projects... like button smashed!

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

    Just one word
    *AMAZING!*
    I watched the entire video you are a real genius!

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

    Fantastic video , looking forward for more exciting and informative videos in coming times। Thank you ।

  • @akshhay
    @akshhay 4 года назад

    You are a legend❤️💯💯
    I just love your tutorials and these tutorials help me allot

  • @chiragsainii
    @chiragsainii 4 года назад +1

    This is a super great project. After this i will try to build it again on my own, Great work sir.

  • @clarkkellog2629
    @clarkkellog2629 4 года назад +4

    Tryna land the internship and I wanted to give this project a try, thank you for this video

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

      Did it work? How long did you take to make it and master the syntax? I have an interview too, I am so tensed!

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

    I didn't start the video already, but im commenting because Im sure that will be amazing, keep the good work!

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

    you truly are a genius, great job man, i will definitely check out more of your content

  • @clockwerkz
    @clockwerkz 4 года назад +4

    Excellent vid! I think I'm going to pull the trigger on the algo expert course. :D

  • @AlonsoG-dl7sj
    @AlonsoG-dl7sj 11 месяцев назад

    Hi Clement was very funny when you realize that you code works ([29:09])! Thank you for all your content, is really amazing to have people like you to learn more

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

    thanks for this it was an awesome vid I think it would also be cool to see you go line by line through a project that you have already built rebuilding it in a more full tutorial format so it is easy for everyone to follow every line

  • @SoftwareJournal
    @SoftwareJournal 4 года назад

    Great video man! I'm a visual learner, so this helps me a lot.

  • @reaperforever8478
    @reaperforever8478 4 года назад

    Underrated , should be highly appreciated

  • @chadhasid
    @chadhasid 4 года назад

    You are a genius. Keep up the good work. Thanks for posting this.

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

    Love this tutorial. It just feels so real!

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

    Thankyou so much for your efforts. You are helping people in a great way!

  • @sathvikrijo
    @sathvikrijo 4 года назад +15

    Impressed by your pathfinding visualizer on my first glance (after seeing Google Resume Video). So I too made up my mind to create such a one, but instead in web I started developing as a Java application. UI done right, but I didn't started coding the algorithm part, don't know how to start implementing the algorithm, you again helped me with this video. Thanks a lot man.💪 You keep inspiring me🎉

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

      Can I ask how you did the UI on Java? Did you implement libraries for the visuals? Sorry I'm somewhat new to this so I don't know.

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

      @@anonofDeath I created using Java swing and Jframe. You can google it by searching Java swing, it is used to create window based applications.

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

      @@sathvikrijo ok thank you!

  • @diveshanand853
    @diveshanand853 4 года назад +1

    Thank you so much for such tutorial, you have done Great work Sir

  • @skyebrownh
    @skyebrownh 4 года назад +13

    I love the transparency of this video. Clément banging his head against a wall trying to figure out his old code and fix bugs was hilarious.

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

    Everyone applying to a CS job is gonna have pathfinding visualizer on their resume because of this video

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

    Thank you so much for posting this! ✨

  • @jamalahmedmaaz
    @jamalahmedmaaz 4 года назад +1

    Finally, thanks @Clément Mihailescu.

  • @matrixRule127
    @matrixRule127 4 года назад

    Thank Clement! Great video.

  • @shivshankar-bh3un
    @shivshankar-bh3un 4 года назад +1

    Enjoyed watching this.

  • @Adam-cn5ib
    @Adam-cn5ib 4 года назад +1

    so nice of u to put an hour of your day to us plebs :3

  • @thatdeaddude3212
    @thatdeaddude3212 4 года назад

    This is amazing! Thank you so much!

  • @tjalferes
    @tjalferes 4 года назад

    you're a good teacher, thank you

  • @sandil7742
    @sandil7742 4 года назад

    Thanks for the video, great project !!

  • @LD-gp5hm
    @LD-gp5hm 4 года назад

    love it! so informative &helpful!

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

    This is... a super video, im not sure about other people, but for me... That video motivates me a lot! Thank You !

  • @MonteLogic
    @MonteLogic 4 года назад

    Clem man, you're making me up my game? This app, 3 months into writing code. Good god!

  • @panchomoretti7946
    @panchomoretti7946 4 года назад +1

    Great video. I love this kind of content!! :)

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

    Can't wait to try it!

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

    0:45 Just few seconds in the very first video I'm watching of yours and you are undoubtedly the cooooooooooooooooooooooolest youtuber ! My word for it

  • @trivikrambhat9101
    @trivikrambhat9101 4 года назад

    This video makes it clear that even ex-googlers write really bad code at first. And that is FINE! That feeling is so empowering.

  • @thanhhuynguyen1342
    @thanhhuynguyen1342 4 года назад

    Thank you very much! That's very helpful for my project!

  • @ivanlorenzo04
    @ivanlorenzo04 4 года назад +54

    17:40 yepp that's me in this entire project

  • @SARCASMOOO
    @SARCASMOOO 4 года назад +1

    You could use react memoization or you can check if the state has changed for a cell. If it doesn’t change you can prevent the render.

  • @jacobmtucker
    @jacobmtucker 4 года назад +1

    Thank you so so much for this!!

  • @albertcollell6304
    @albertcollell6304 4 года назад +15

    As a Junior Software Developer this video helped me with my IMPOSTOR SYNDROME! Thanks Clement!

  • @liepa44
    @liepa44 4 года назад +172

    Wouldn't call this a tutorial, but it's cool seeing the process nonetheless.

    • @clem
      @clem  4 года назад +65

      Yeah, I realize this ended up being a little bit more of a rebuilding-the-pathfinding-visualizer kind of thing, but I think that it turned out being more entertaining than a pure tutorial, all the while still giving you what you need to build it yourself, especially with the link to the tutorial's GitHub repo.

    • @YoloMonstaaa
      @YoloMonstaaa 4 года назад +28

      He just copy pasted his old code and made it worse, this ain't a tutorial at all 🤦

    • @BigKing17
      @BigKing17 4 года назад +35

      @@YoloMonstaaa You make it seem like 99.9% of programmers don't recycle bits of code for some point or the other.

    • @thecodeimplementation3417
      @thecodeimplementation3417 4 года назад +5

      +r viens - It's great just hearing the thought process sometimes. I have a pathfinding visualizer tutorial series which is more detailed though.

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

      I'd say that this video is even better than a tutorial. It shows what software development is really like.

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

    Thank you so much!! Your truly a public servent. I aspire to be like you.

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

    *Clément Mihailescu deserves millions of subscribers*

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

    Love it thanks Clem!

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

    Thank you so much Clement!

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

    Awesome dude, do more of this real coding

  • @OverLordOfDa3rdWorld
    @OverLordOfDa3rdWorld 4 года назад +1

    omg yes finally thank you oh great one!

  • @carloslfu
    @carloslfu 4 года назад

    Great content! Thanks for sharing :)

  • @HIMANSHUSHARMA-eh5wv
    @HIMANSHUSHARMA-eh5wv 4 года назад

    Awesome video, need more such videos😀

  • @sumitkrips2018
    @sumitkrips2018 4 года назад

    Thank you very much man. Love it

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

    Wow looks amazing

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

    thank u so much for uplaoding this tutorial

  • @kenkiarie
    @kenkiarie 4 года назад

    This is super cool man!

  • @nirmalkotiyal4323
    @nirmalkotiyal4323 4 года назад

    This is the bread and butter of RUclips

  • @sagarrajput7172
    @sagarrajput7172 4 года назад

    you are smart and kind. thank you.

  • @thehardyboiz1
    @thehardyboiz1 4 года назад +5

    I wonder if the performance issue can be fixed by doing the grid visualization with the canvas API. It would be harder though cause you would lose the perks that react gives to every component for idetification purposes.
    Anyways, this was an awesome video, i hope you can find more time to do videos like these. Keep it up!

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

    You're a wizard harry.

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

    i don't think i really understood, but the video is good source to reference from, great work dude

  • @pranjalpandey1514
    @pranjalpandey1514 4 года назад

    You are a gem brother!

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

    Hey Clement, I just started watching your channel and it's fantastic, thank you so much for sharing your knowledge. Just one thing on this video, the music playing at around the 12-minute mark is so psychedelic, do you mind providing a link?

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

    Probably the most real tutorial I've seen in RUclips

  • @adetunjisamuel3839
    @adetunjisamuel3839 4 года назад

    Finally,thanks clement

  • @petrspac5024
    @petrspac5024 4 года назад

    Epic video, Good job!!

  • @leovaris8738
    @leovaris8738 4 года назад

    This is a really good project to make as a beginner im 15 and made an a* visualizer with about 2months of knowledge

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

    Thanks dude...I just wanna give you a hug.

    • @clem
      @clem  4 года назад

      🤗 (I think that's the hug emoji)

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

    Your videos are extremely, extremely, extremely, extremely....cool.

  • @ivailotenevv
    @ivailotenevv 4 года назад +1

    Make more videos like this(using code to build up something). It`s helpful i think, for most of us :))