Getting started with Python Programming for interviews 👶
Hello there! It seems that you have raised the same question that I had a few years ago. It seems like it's been a long time since I started competitive programming. Here's a connection to my Hackerrank profile (I'm 5 starred in Python), which I think qualifies me to answer your question just a smidgeon.
Keshav Rathi - keshavanilrathi1 | HackerRank
Yet, I will share my insights on how to start up with Python from scratch, hoping it would be of some help to you.
Python is a great language, to begin with. It is dynamically typed, has fast development times, and endless libraries.
- The majority of responses to this question begin with heavy topics and skip over the language's simple syntax and feel. Logic is all in programming. Logic is similar to a fork in that once you learn how to use it, you can use it to eat thousands of different dishes by subtly altering how you use it each time. The main course is syntax. If you're unsure about the reasoning, I'd recommend clarifying it.
- Now comes the basic syntax. I referred to quite a few websites when I wandering for resources that were beginner-friendly. I personally found Codeacademy to be the most convenient and utilitarian website to serve the purpose. It teaches you the syntax right from the basics and even goes on to some conditional statements.
- Now is the time to practice some questions in order to brush up on the fundamentals and strengthen your foundations. I highly advise you to use Hackerrank or HackerEarth to solve Python problems. Continue solving until the problems become too complex or the knowledge base is exhausted.
- It's now time to move on to the next step. It is critical to complete the theoretical portion before beginning to practise questions. For more information on iterations, simple data structures, basic searching and sorting algorithms, exception handling, functional programming, file handling, and other topics, see Yashwant Kanetkar's book Let us Python. This section is almost fully covered.
- Now that you have all your fundamentals cleared, you can again head to Hackerrank or Hackerearth for solving the rest of the questions under Problem Solving and/or Python.
- Also, you can head for a few beginner level projects to try out the skills you have acquired. Some of the projects I suggest are- tic tac toe, bingo, calculator, to-do lists, etc.
- Now, if your thirst for solving more problems is yet not quenched, you can solve as many remaining problems on the mentioned websites as you wish. Having completed all of this, you will be proficient enough for high school exams and maybe even for some interviews in college.(I'm not sure whether colleges have started encorporating Python in their courses, they prefer sticking to C/C++/Java, will come back to that later)
- If you want to dig deeper into the world of programming and algorithms, mostly applicable in college exams, interviews and competitive programming, you will have to enlighten yourself with the knowledge of advanced data structures such as linked lists, stacks, heaps, binary trees, segment trees, etc. Your knowledge should also encompass topics such as combinatorics, number theory, permutation and combination, Euclidean geometry, time and space complexity, Bit manipulation, dynamic programming (very important), Game theory, probability, matrices, etc. and you should be well versed with algorithms such as tree and graph traversals(BFS, DFS, etc.), string algorithms (rabin karp, Knuth-Morris-Prath, etc.), Segment tree algorithms, minimum spanning trees Fenwick trees, Diffie-Hellman key exchange, Hashing, Shortest path algorithms(Dijkstra, Floyd-Warshall, etc.), etc. and some miscellaneous advanced topics such as square root decomposition, Bitmasking, etc. I would strongly suggest a book that goes by the name CLRS-Introduction to Algorithms for this purpose.
- Knowing all of this tough is an easy nut to crack when compared to applying it when and where necessary. You now have an open ocean in front of you. You can head anywhere be it Hackerrank, Hackerearth or better, give your competitive programming journey a kickstart by heading to Codechef, Codeforces, Topcoder, etc., the leading sites for competitive programming. You could have also started participating on these sites without prior knowledge of these algorithms, but knowing these will ensure you will make to the top tiers pretty quick. There are various monthly, fortnightly, weekly and even hourly contests that will surely be of great help in your run to be a pro. However, I would still strongly suggest you to go with C++ as your preferred language as all data structures and algorithms do not find their application in Python. Also, C++ has a very powerful tool known as STL that will make your life a lot easier. Plus, Python is a dynamically typed and interpreted language, so the development speeds are blazing fast but the running times of programs in Python are the slowest. Time is money. Choose your friend wisely. Also, many companies do not even allow Python in their interviews.
- Having encompassing all of DS Algo, you can pick up graphics in python with the help of libraries such as pygame, tkinter, etc. Now, you'll be proficient enough to mak high end games and projects such as but not limited to replicas of jet pack joyride, temple run, candy crush, etc. and softwares such as management systems, booking systems, traffic control systems, etc.
- By this time you would have atleast 5/6 stars on codechef and would be an expert/candidate master on Codeforces. If you still aren't satisfied, you can find a professional mentor and head on to highly advanced topics, with some being Python preferred/exclusive such as machine learning (used in artificial intelligence, natural language processing, neural networks, etc.), web development, data science, quantum computing, etc. and maybe get a PhD in Python.
If all of this still doesn't quench your thirst(considering the fact that you might be rank 1 on codechef and/or international grandmaster on Codeforces), maybe start a new company, build ultra humanoid autonomous robots, fly yourself to Mars, laugh off Elon Musk or rather, just blow up your computer and you will have attained eternal salvation. Sorry for my absolutely rubbish sense of humour. LOL. Hope it helps. Keep learning. Cheers!
Important links:
CodeChef | Competitive Programming | Participate & Learn | CodeChef
Python Courses & Tutorials | Codecademy
HackerEarth | Helping 5M+ developers level up and 1000+ recruiters hire top tech talent.
| Design & Build High-Quality Software with On-Demand Talent

Comments
Post a Comment