Beside competitive programming, what else should a competitive programmer, as well as computer science student, learn for getting job or profession?

There is a famous saying: never put all your eggs in one basket.
  • Competitive programming is a great sport to enroll in if you're in college, and participating in these competitions will definitely help you to learn art of problem solving.
  • You will learn skills like debugging your code at a fast rate. Knowledge about time and space complexity when you enroll in competitive programming.
  • If you are from a Tier- 1 college, competitive programming will solve 80-85% of your problem of getting an internship / job. But at the same time you also need knowledge about a few more subjects.
  • If you are from a Tier- 2 / Tier- 3 college, then you should focus on a few more subjects in computer science apart from problem solving. Since you dedicated so much of time to competitive programming. You don't want to take any risk in your interviews for some topics.
  • In general, students at each College think that competitive programmers are enough to get a job. But this is not always the case. You also need knowledge of some other computer science subjects as well.
  • Do not take this lightly, these topics is as important as competitive programming.
IMPORTANT TOPICS FOR STUDENTS TO GET A PRACTICE APART FROM DATA STRUCTURE AND ALGORITHMS.
Some of my seniors learned only these concepts, apart from the data structure and algorithms for getting placed in companies like Amazon, Adobe, Oracle and similar product-based companies.
OBJECT ORIENTED PROGRAMMING(C++)
  • Concepts of OOPS.
  • Types of Polymorphism.
  • Virtual functions - Runtime Polymorphism.
  • Inheritance - Types, Virtual class, Dreaded Diamond problem(Imp).
  • Constructor and Destructors- Virtual Destructor, Private Constructor and Destructor.
  • Smart Pointer.
  • Singleton class.
  • Friend function and friend class.
DATABASE MANAGEMENT SYSTEM
  • Sql queries.
  • Normalization - Meaning, Reason for normalizing tables, Different Normal Forms.
  • Lossless and Lossy Decomposition.
  • Different types of keys in a table - Primary, Composite, Candidate, Super Key.
  • ER model -Meaning and Components.
  • File Structure - B-trees, Indexing.
  • Concurrency issues.
OPERATING SYSTEM
  • Operating Systems and its types.
  • Process Management - Attributes, States of Process.
  • CPU Scheduling Algorithms - FCFS, SJF, SRTF, Round Robin, Priority Scheduling.
  • Process Synchronisation - Necessary Conditions, Bakery Algorithm, Producer-Consumer Problem, Dining Philosopher Problem, Read-Write Problem.
  • Mutex and Semaphores - Important.
  • Threads - Important.
  • Deadlocks - Necessary Conditions, Banker's Algorithm, Deadlock Prevention, Avoidance, Recovery, Correction.
  • Memory Management -Multi-partition, External and Internal Fragmentation, Paging, Segmentation.
  • Virtual Memory -Demand Paging, Page replacement algorithms, Thrashing.
  • File allocation - Continuous, Linked and Index File allocation.
  • Disk Scheduling Algorithms - FIFO, SCAN, C-SCAN, LOOK, C-LOOK.
COMPUTER NETWORKS
  • OSI Model - Functions of different layers.
  • TCP/IP Protocol Suite.
  • Data Link Layer - Error detection techniques, Framing.
  • Network Layer - Routing protocols, IPv4 and IPv6 - Supernetting and Subnetting.
  • Transport Layer - 3 way Handshake, TCP packet components, UDP packet components, Advantages of UDP over TCP, Applications of UDP.
Keep going. Everything you need will come to you at a perfect time.
Further reading:

Comments