How to Break Down Software Problems (First Principles & JavaScript)

In this course, @Radu teaches his problem-solving techniques by using a challenging vision-based positioning system problem from his "Decode the Drawings" competition as a case study: https://youtu.be/bZ8uSzZv0ew?si=HJzT4YIEj2z_3GiK.

You will learn to break down a complex problem into smaller, manageable sub-problems, how to prioritize them, and how to work on interconnected issues independently.

The core goal is to develop a powerful thought process—building a solution from first principles, using simple reasoning and foundational math. We'll explore several approaches, starting by hand and then automating the steps with simple, powerful algorithms.

This course is perfect for beginners looking to sharpen their skills! All algorithms are implemented from scratch and explained step-by-step using simple language and visuals. We use JavaScript for ease of use and visualization, but you can follow along in any language.

The course is also offered by Karelia University of Applied Sciences: https://ella.eduplan.fi/karelia/computational-problem-solving/682722ead4168f741689894f
You can still register before the end of October (2025).

💻 Radu's Discord: https://discord.com/invite/gJFcF5XVn9

⭐ Radu's videos mentioned in the course ⭐
Pythagorean Theorem: https://youtu.be/iqSlzYXdFzw?si=PEA6nGBb1yMYs6aj
Euclidean Distance: https://youtu.be/3rPwfmrCwVw?si=OudD3sqvBA5zRR5H
Circle Equation: https://youtu.be/1sJDuUSawRQ?si=3ckcZFhd4OVaoGrp
Trigonometry Lesson: https://youtu.be/xK3vKWMFVgw?si=qO9casbZNGhZINwu
Vectors Lesson: https://youtu.be/nzyOCd9FcCA?si=5e88Ylw17aJaSnVw
Roundness Measure: https://youtu.be/MdhM0kZjtD4?si=MkFjzstfZpaNEtdl
Draw the Portal Game Tutorial: https://youtu.be/0SxiyLk2IMM?si=liWS6a9V16x7kTwr
Why the Circle Encloses the Largest Area: https://youtu.be/CFBa2ezTQJQ?si=yHNiioLm6G_Utx1w

⭐ Desmos Demo Pages ⭐
Circle Equation: https://www.desmos.com/3d/nvdcrvqjqh
Surface: https://www.desmos.com/3d/kz11vijtd2

⭐ Tools Radu Uses ⭐
VS Code editor: https://code.visualstudio.com
Google Chrome: https://www.google.com/chrome

⭐ Other Links ⭐
@Veritasium Analog Computers: https://youtu.be/GVsUOuSjvcg?si=3f7moC1oEyS_Iu23
@Veritasium Strandbeests: https://youtu.be/IFaAjR_RRJs?si=9gQR46C94yVfla-6
@Mark Rober SAT GUS: https://youtu.be/6KcV1C1Ui5s?si=mElaYau4aPdcxG0F
@Stand-up Maths Pi on the Moon: https://youtu.be/nGtVej1Qx5Y?si=kQOYVjZq6gPqZ0Hf
@3Blue1Brown Interview with Terence Tao: https://youtu.be/YdOXS_9_P4U?si=SGGiHU8hGihMRyYA
Radu's Strandbeest live streams: https://www.youtube.com/playlist?list=PLB0Tybl0UNfZ5LmYT_Mht1_mocUqniAJg
Karelia ICT Video: https://youtu.be/p70TFyDUGlA?si=tGCERtFi3ndDtuSp
Lahari's Webpage: https://cs.uef.fi/~lahari
Lahari's Paper on Local Search and TSP: https://www.mdpi.com/2076-3417/9/19/3985
Pasi's Webpage: https://cs.uef.fi/pages/franti
Pasi's Video on Clustering: https://youtu.be/b04OS6kCrRk?si=YAfaE5J0nPsZ7NPo
Pasi's Paper on Random Swap Clustering: https://link.springer.com/content/pdf/10.1186/s40537-018-0122-y.pdf
Brilliant: https://brilliant.org
ThreeJS: https://threejs.org
Include ThreeJS in the script tag like this: https://cdn.jsdelivr.net/npm/three@0.110.0/build/three.min.js

⭐ Radu's Other Courses ⭐
Self-driving Car Course: https://www.youtube.com/playlist?list=PLB0Tybl0UNfYoJE7ZwsBQoDIG4YN9ptyY
No Black Box Machine Learning Course: https://www.youtube.com/playlist?list=PLB0Tybl0UNfYe9aJXfWw-Dw_4VnFrqRC4

⭐ Videos with Leonard :-) ⭐
Code Battle Tutorials: https://youtu.be/h24ircatoHI?si=-k-DzndoWQvSAJSm
Pair Programming: https://youtu.be/Omp5_6M2QH4?si=hDvJquTTEXdtigpt
Coding Interview: https://youtu.be/I4YP8sAErK0?si=DGzrvdwdKEoYHlJ-

💻 COMPETITION WINNERS' SOLUTIONS 💻
Ayo SUS: https://github.com/MNA4/decode-the-drawings
James: https://github.com/epipolarity/Decode-Drawings-V5
Bas: https://github.com/basboot/decode_drawings
Yusuf: https://github.com/Iyusuf40/decode-the-drawing
Dmytro: https://drive.google.com/file/d/1t7O341qnWKdkDHelYxmw5B7aXkbVosWN/view
Miniontoby: https://github.com/Miniontoby/RadusDecodeTheDrawingsChallenge

☕Buy Radu a Coffee?☕
https://www.buymeacoffee.com/radum

❤️ Try interactive JavaScript courses we love, right in your browser: https://scrimba.com/freeCodeCamp-JavaScript (Made possible by a grant from our friends at Scrimba)

⭐Timestamps⭐
0:00:00 What it's all about
0:04:21 Chapter 1: Introduction
0:13:46 Chapter 2: Automation
1:12:28 Chapter 3: Simulation
1:39:53 Chapter 4: Distortion
2:22:06 Chapter 5: Rotation
2:42:26 Chapter 6: Optimization
3:12:40 Chapter 7: Triangulation
3:54:13 Chapter 8: Conclusion

🎉 Thanks to our Champion and Sponsor supporters:
👾 Drake Milly
👾 Ulises Moralez
👾 Goddard Tan
👾 David MG
👾 Matthew Springman
👾 Claudio
👾 Oscar R.
👾 jedi-or-sith
👾 Nattira Maneerat
👾 Justin Hual

--

Learn to code for free and get a developer job: https://www.freecodecamp.org

Read hundreds of articles on programming: https://freecodecamp.org/news Receive SMS online on sms24.me

TubeReader video aggregator is a website that collects and organizes online videos from the YouTube source. Video aggregation is done for different purposes, and TubeReader take different approaches to achieve their purpose.

Our try to collect videos of high quality or interest for visitors to view; the collection may be made by editors or may be based on community votes.

Another method is to base the collection on those videos most viewed, either at the aggregator site or at various popular video hosting sites.

TubeReader site exists to allow users to collect their own sets of videos, for personal use as well as for browsing and viewing by others; TubeReader can develop online communities around video sharing.

Our site allow users to create a personalized video playlist, for personal use as well as for browsing and viewing by others.

@YouTubeReaderBot allows you to subscribe to Youtube channels.

By using @YouTubeReaderBot Bot you agree with YouTube Terms of Service.

Use the @YouTubeReaderBot telegram bot to be the first to be notified when new videos are released on your favorite channels.

Look for new videos or channels and share them with your friends.

You can start using our bot from this video, subscribe now to How to Break Down Software Problems (First Principles & JavaScript)

What is YouTube?

YouTube is a free video sharing website that makes it easy to watch online videos. You can even create and upload your own videos to share with others. Originally created in 2005, YouTube is now one of the most popular sites on the Web, with visitors watching around 6 billion hours of video every month.