English
Roadmap Software Engineering
Algorithms and Data Structs
- Most Recommended Book
- YouTube
- Sites
- Code Training
- KhanAcademy
- Recursion 💀
- Data Structs Visualization
- Work Hard, Have Fun & Make Things 😄 ❤️ 👶
- Big O
- A beginner's guide to Big O notation
- A coffee-break introduction to time complexity of algorithms
- O(1) Constant Time
- Best Case Possible
- If an algorithm has a constant time, it means that it always takes the same amount time to produce the output.
- Example: array.pop()
- Logarithms O(log n)
- Linear time O(n)
- Preferible in most of times
- If an algorithm has a linear time, it means that the running time of an algorithm grows as the input size grows.
- Example: array.forEach() sum all values
- Linear Logarithms O(n log n)
- Acceptable
x = n while ( x > 0 ) { y = x while ( y > 0 ) { y = y / 2 } x = x - 1 }
- Example: classic merge sort -> divide-to-conquer
- Quadratic time O(n²) 💀
- Nice To Avoid
- The running time of an algorithm is directly proportional to the square of the size of the input.
- Example: sum of matrizes
for (var outer = 0; outer < elements.Count; outer++){ for (var inner = 0; inner < elements.Count; inner++){ ... } }
- Exponential Time O(2^n) 💀 💀
- Worst Case Possible, always try to avoid
- Denotes an algorithm whose growth doubles with each additon to the input data set. The growth curve of an O(2N) function is exponential - starting off very shallow, then rising meteorically
- Example: recursive calculation of Fibonacci numbers
int Fibonacci(int number){ if (number <= 1) return number; return Fibonacci(number - 2) + Fibonacci(number - 1); }
Unix
- Linux
- Sites
- Apps
- YoTube
- Tools
- Operation System
- FreeBSD
Windows
- Sites
- Tools
Security
- Sites
- YouTube
- Courses
- DAT Protocol
- Database
- Tools
- Operation Systems
- Virtual Machines for Pentest
- Transport Layer Security/Secure Sockets Layer
- Softwares
Functional Programming
Open Source
- Sites
- Software
Online Courses
- Udemy - Courses I'm enrolled
- Coursera - Learning How to Learn: Powerful Mental Tools to Help You Master Tough Subjects
Blogs
- Medium - A LOT
- Quora - A LOT
- Akita on Rails - A LOT
- Reddit - A LOT
- Rafael Falcon
- Hacker News
- Stalt
- JornadaPeloConhecimento
- Joel Spolsky OnSoftware
- WaitButWhy
- ThinkWithGoogle
- Hacks Mozilla
- Willian Justen
- Felipe Fialho
- Luiz Tools
- Henrique Bastos
- RockSeat
- Umbler Blog
- InfoQ
- WBruno
- Nateliason
- RamonSilva
- O Futuro Das Coisas
- Filipe Deschamps
- BugginhoAcademy
- Gabs Ferreira
- Jaydson Gomes
- Phil Calcado
- VidaDeSuporte
- TiagoGouvea
- VidaDeProgramador
- ProfissionaisTI
Nice Articles
- O que é propósito de vida
- The Invented History of 'The Factory Model of Education'
- The Humble Programmer by Edsger W. Dijkstra
- Teach Yourself Programming in Ten Years - Peter Norvig
- Getting Real - the smarter, faster, easy way to build a sucesfull web application - BaseCamp
- Educação Clássica e Homeschooling
- Principles for Success - Ray Dalio
- The Twelve Factor App
- Write Code Every Day - John Resig
- Why Good Programmers Are Lazy and Dumb
- The Feynman Technique: The Best Way to Learn Anything - Easy to Understand | Hard To Master
- WaitButWhy - The Cook and the Chef: Musk’s Secret Sauce - Easy to Understand | Hard to Master
- Rob Pike's 5 Rules of Programming
- The Ten Commandments of Egoless Programming
- What makes a good programmer?
- Self-Education: Teach Yourself Anything with the Sandbox Method
Communities
- BrazilJS
- FrontEnd Br
- Training Center
- BackEnd Br
- Comunidades Web
- NodeJS Brasil - Facebook
- Dev Translate
- CodamosClub
- HashNode
- Mulheres na Computação
- Dev Newsletters
Podcasts
- Technology & Arts & Games & Science
- Portuguese
- English
- CodeNewbie
- ShopTalk Show
- Learn To Code With Me
- DeveloperTea
- Indie Hackers Podcast
- FreeCodeCamp
- This Developers Life
- CodingBlocks
- Changelog
- FZDPodcast
- Programming Throwdown
- Software Engineering Radio
- GeekSpeak
- DevChat.TV
- JavaScript Jabber
- FullStack Radio
- Twit.TV
- This Week In Tech
- Security Now
- Floss Weekly
- The Knowledge Project
- Entrepreneurship & Others
YouTube #StopWatchingTV
- Technology
- Curso em Video
- Fábrica de Noobs
- COD3R CURSOS
- CodigoFonte TV
- BrasilJS
- EstudoNauta
- FreeCodeCamp
- Papo Binário
- Baboo
- CodellabCode
- CanalTech
- William Oliveira
- UNIVESPTV
- Engenharia Reversa
- DevNaEstrada
- RocketSeat
- Bóson Treinamentos
- ProgramadorBR
- Laboratório da Júlia
- Rodrigo Souza
- SoftBlue
- CS50
- Computherpile
- A história da Tecnologia - TecMundo
- Mayuko
- Computer Science - CrashCourse
- Tecnologias do Futuro - The Enemy
- Talks
- Science
- Self Development
- Philosophy
- Others
"I am always ready to learn although I do not always like being taught."
- Winston Churchill