translations
“I never am really satisfied that I understand anything; because, understand it well as I may, my comprehension can only be an infinitesimal fraction of all I want to understand about the many connections and relations which occur to me, how the matter in question was first thought of or arrived at…” - Ada Lovelace
Software development comes down to just one thing: solving problems. The main question I have been thinking about is how to solve problems efficiently. I decided to create this repository to produce a content guide that allows us to learn how to solve problems in a better way.
We develop a thinking framework for problem solving using algorithms when we have a good view of the fundamentals of computer science.
My intention with this is to be able to learn and create study plans. Not a single path will be presented, but several. What suits you best! 😉
- Study Plan
- Algorithms
- Data Structures
- Problem Solving Techniques
- Concepts
- Tests
- Security
- Learn even more
- Books
- Code Challenges Platforms
- Human Development
This is relative to each individual. There is no rule about how you should study. It is possible to find different methods and study routines.
Leonardo da Vinci for example followed a cycle based on working 4 hours and sleeping 20 minutes.
Find the best approach for you.
When thinking about incorporating the right methods for you, consider the following recommendations:
-
Getting enough sleep
-
Drink water
-
Practice physical exercise
Build a discipline. Don't depend on your motivation, it's unstable.
Learn from the great masters. Richard Feynman left us as a legacy of his excellent: Feynman technique. This method consists of remembering what you have studied using concepts of elaboration and association.
The Feynman Technique Can Help You Remember Everything You Read
-
- Linear
- Binary
-
- Selection
- Insertion
- Merge
- Quick
- Heap
- Bubble
- Counting
- Array
- Linked List
- Stack
- Queu
- Hash Table
- Graph
- Tree
- Divide & Conquer
- Dynamic Programming
- Design Patterns
- Object Oriented Programming
- Functional Programming
- Big O Notation
- Abstraction
- Recursion
- Parallelism
- Concurrency
- Test Driven Development(TDD)
- Mocking
- Hashing
- Asymmetric cryptography
- String Matching and Parsing
- Backtracking
- Introduction to Algorithms
- Grokking Algorithms
- Cracking the Coding Interview
- HackerRank
- Coderbyte
- Project Euler
- Codewars
- TopCoder
- LeetCode
- CodeChef
- Communication
- Writing
- Transparency
- Empathy
- Collaboration
- Flexibility
- Resilience
- Ethic
Love the people. ❤️