Become a Competitive Programmer, Full Guide.

In today’s age where technology is covering almost all the sectors of society, its head that is programming has become one of the most prominent fields. As the sector expands so does the competition in it. Becoming a competitive programmer is accessible through technology itself. Remember “Competitors are not your enemies, they are the people who keep reminding you of your own shortcomings.” Here in this article, I’m providing a few important links and guides in an indexed manner that you can find useful in your journey of being a competitive programmer.

developer, competitive programmer, technology

Pick a language

Software development has seen transformation unlike any other domain out there. Obviously, this resulted in the evolution of the programming language. C, C++, & Java are the three languages that have defined the programming paradise and undoubtedly own great value in the market.

C++ is a general-purpose programming language designed by Bjarne Stroustrup as an extension of the C programming language.

Java is also a general-purpose programming language that is class-based, object-based, and designed to have as few dependencies as possible.

C programming language is considered the mother of all programming languages. It is a general-purpose procedural computing language, support and structured programming, lexical variable scope, and recursion.

Learn

The following points need to be learned.

  1. Understand Syntax and Basics
  2. Loops and Statements
  3. Scope and Functions
  4. How Code Works
  5. Understand the concept of Time and Space complexity
  6. Make small programs to understand better.
See also  General Data Protection Regulation (GDPR)

Data structures

Beginner

Following in the list of topics that you need to cover in the beginner stage:

  1. Array
  2. Linked list
  3. Stack
  4. Queue
  5. Tree

Intermediate

The topics that you have to work upon at the intermediate stage are following:

  1. Heap
  2. Prioirty Queue
  3. Huffman Tree
  4. union find
  5. Tries
  6. Hash Table
  7. Tree map

Proficient

After you reach the proficient stage following topics will then become your friends:

  1. Segment tree
  2. Binary indexed tree
  3. Suffix array
  4. Sparse Table
  5. LCA
  6. Range tree

Expert

Finally when you are at the expert stage you have to step ahead to grasp the topics hereunder:

  1. Suffix Automaton
  2. Suffix Tree
  3. Heavy light Decomposition
  4. Treap
  5. Aho-Corasick
  6. K-d Tree
  7. Link-Cut Tree
  8. Splay Tree
  9. Palindromic Tree
  10. Rope
  11. Dancing links
  12. Radix Tree
  13. Dynamic Suffix array

Algorithms

The foundation of computer science is based on the study of algorithms. An algorithm is a sequence of clear and precise step-by-step instructions for solving the problem in a finite amount of time.

Introduction

Algorithm will be introduced to you under the following contents:

  1. Computer Algo
  2. Big O Notation
  3. Recurrence Basis
  4. Divide & conquer
  5. time Complexity Function
  6. Pseudocode Basics

Graphs

Secondly what you have to learn in Graphs are:

  1. Graph
  2. Basic Terminolotgy
  3. Directed Graphs
  4. Representation
  5. Depth-first Search
  6. Weighted Graph
  7. Floyd-Warshall Algo
  8. Topological sort
  9. Connectivity of Graph
  10. Spanning Tree
  11. Prim’s & Kruskal Algo

Search Algo

Following are the three types of algorithms that you have to study:

  1. Linear Search Algo
  2. Binary Search
  3. Jump Search

String Algo

topics and types

  1. String Basics
  2. Searching Tech
  3. Hamming Dist.
  4. Suffix tree
  5. String Hashing
  6. Rabin-Karp Algo

Sorting Algo

types of sort

  1. Insertion Sort
  2. Merge Sort
  3. Bubble Sort
  4. Counting Sort
  5. Quick Sort
  6. Selection Sort
See also  Best Sites To Learn Python

Dynamic Programming

  1. Basics
  2. Edit Distance
  3. Edit Distance Alignment

Hashing

  1. Hash Table
  2. Collisions

Trees

  1. Tree
  2. Binary Heap
  3. Binary Search Tree
  4. Tree Traversals

Linear Structure

  1. Singly Linked List
  2. Doubly linked List
  3. Fixed-Sized Array
  4. Dynamic Array

Resources

Youtube

Obviously, the best and most popular way preferred for free learning is youtube. This will help you a lot in becoming a competitive programmer So here is the list of YouTubers classified as per their teaching language in both English and Hindi. You may go for whosoever content you like the most and find it convenient for understanding.

youtube icon, logo youtube, social media

In English

  1. Neso Academy
  2. Tushar Roy
  3. Simple Snippets
  4. Abdul Bari
  5. Frescopecamp
  6. CS Dojo

In Hindi

  1. Code with Harry
  2. Apna College
  3. Anuj Bhaiya
  4. Education 4u
  5. Easy Tuts4u

Reading

Additionally, for those who prefer reading over watching videos, the following are some websites and books that you may refer to as per your convenience and choice.

kindle, ereader, tablet

Websites

  1. Geeks for Geeks
  2. W3schools
  3. Javatpoint
  4. Tutorialspoint
  5. Programiz

Books

  1. C Programming Absolute Beginner
  2. C++ : The Complpete Reference
  3. Java-The Complete Reference
  4. Head First Java
  5. Introduction to Algorithms
  6. Algoruthm for interviews
  7. Data Structures And Algorithms Made Easy.

Practice websites

Practice makes a man perfect. How can one become a competitive programmer without practicing their learnings? Following is the list of some most popular and most used websites for practicing their coding skills. Moreover, These are also technical hiring sites that focus on competitive programming challenges. It’s for both consumers and businesses. So here you can have a perfect assessment of your developing skills.

  1. HackerRank
  2. HackerEarth
  3. Excercism
  4. SPOJ
  5. Programmr
  6. TopCoder
  7. CodeForces
  8. CodeWars
  9. CodeChef
  10. CodeGym
See also  Diploma in Microsoft Windows 11 Operating System

Tips

  1. Understand topics properly,
  2. Besides that Build Logics and
  3. Understand the code on paper while practicing
  4. Moreover, don’t simply copy the code and try to understand its working.

For similar helpful content do follow my Instagram page @codehub.py and also join our telegram channel. There you’ll find more such information classified in simple posts and also don’t forget to have a look at other similar articles like How to earn money as a programmer? at inprogrammer.

Leave a Comment

Your email address will not be published.

Ads Blocker Image Powered by Code Help Pro
Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Refresh