INTRODUCTION TO PROBLEM-SOLVING WHAT IS PROBLEM-SOLVING? EX: Given a knockout tournament with 16 teams. How many matches will be played until we can declare a winner? EX: Calculate the sum of integers from one to n. That is calculate 1+2+3+4+....+n WHY PROBLEM-SOLVING? First of All It is fun! Develops the way of thinking in real life (known as smart) Required skill for Software job interviews CV! Remember not to expect a job with a problem solver title, But you will need the skill in many aspects of the job General Roadmap to Problem-Solving 1-Programming Language C++ vs Python Why Python? Easy (High level language) Language is not the primary task If you start with a complex language you might quit It's used in A lot of fields. (EX: AI) Shorter codes when compared with C++. Hence less time to write the code Why C++? It teaches you the basics of programming in a good way since it's considered a low-level language. Faster than python. you have more control in C++. You will not need the speed of C++ in your journey of being a good problem solver. But you will need its speed to be an expert problem solver. There is no correct answer about which language is better to learn as your first programming language. It depends on your target. Remember you can always learn both and decide for yourself. 2-Start solving problems Codeforces (My number one recommendation) Hackerank (needs VPN) Leet code (based on interviews) Remember in solving problems it is important to read tutorials for problems that you could not solve and even for the problems that you solved! You are not getting better if you can solve all problems you encounter. 3-Reading Competitive Programmer’s Handbook In the start of the journey try to solve A lot of problems and learn by reading their tutorials. When you feel that most of the problems you are not solving are because lack of information start reading the handbook. It is always helpful to discuss the problem with someone that solved the problem and understand how they think and how they solved it. try and get into a community of problem solvers. Feel Free to contact me with any problem you encounter, If I can't discuss the problem with you at least I will get you involved in a community that will. Email: AmroAdil420@gmail.com WhatsApp: +249922228139 Any Questions? THANK YOU