Start Coding from 1st Year
When I began studying computer science, I was very confused during my first days at university. I wondered what my aim should be, what I would do after graduation, what technology I should focus on, who the tech giants were, and whether I should learn a programming language to get a job at these companies.
There was a lot to learn. I also questioned how much impact university GPA had on working in big companies and what mistakes I should avoid. These questions were constantly swirling in my head.

Upon university admission, many people feel a kind of depression from not being able to get into their preferred university or subject. But for the next four years after admission, you have to set aside all the sadness, set your goals, and move forward.
First of all, you need to get an idea of what kind of skills tech companies want:
- Good CGPA
- Data structures and algorithms
- Projects
- Four computer science fundamental subjects (computer networks, operating systems, DBMS, OOPs)
- Aptitude
- Communication skills
We must decide which sector we want to work in or which topics we are interested in. A common question everyone has while learning programming, which I also experienced, is deciding whether to learn one programming language or more. My personal opinion is that you should learn any one programming language very well and practice data structures and algorithms using this language. This will strengthen your fundamentals. If you can learn any one programming language, it will not take much time to master another.
You should have a strong idea and knowledge of which language is best for any specific field. Here’s a breakdown of some programming languages that are particularly well-suited for specific fields or sectors:
Web Development
- JavaScript: Front-end development, dynamic websites, single-page applications.
- HTML/CSS: Structuring and styling web pages.
- PHP: Server-side scripting, web applications.
- Ruby on Rails: Web applications, rapid prototyping.
- TypeScript: Large-scale JavaScript applications, adding static types.
Data Science and Machine Learning
- Python: Data analysis, machine learning, artificial intelligence, scientific computing (libraries: NumPy, pandas, scikit-learn, TensorFlow, PyTorch).
- R: Statistical analysis, data visualization (packages: ggplot2, dplyr).
Mobile Development
- Swift: iOS and macOS applications.
- Objective-C: Legacy iOS/macOS applications.
- Kotlin: Android applications.
- Java: Android applications.
Game Development
- C++: Game engines (Unreal Engine), high-performance games.
- C#: Game development with Unity.
- JavaScript: Browser-based games.
- Python: Prototyping, simple games (Pygame).
Systems Programming
- C: Operating systems, embedded systems, high-performance applications.
- C++: System/software applications, performance-critical software.
- Rust: System programming with a focus on safety and concurrency.
Embedded Systems
- C: Microcontrollers, real-time systems.
- Assembly: Low-level programming, hardware control.
- Python: MicroPython for microcontrollers.
Enterprise Applications
- Java: Large-scale enterprise applications, web applications, server-side development.
- C#: Enterprise applications on the .NET framework.
- SQL: Database management, querying.
Network Programming and Cybersecurity
- Python: Network scripting, cybersecurity tools, penetration testing (libraries: Scapy, Requests).
- Go: High-performance network services, concurrent programming.
- C: Low-level network programming, protocol implementation.
Artificial Intelligence and Robotics
- Python: Machine learning, deep learning (libraries: TensorFlow, Keras, PyTorch).
- C++: Real-time performance in robotics, ROS (Robot Operating System).
Blockchain Development
- Solidity: Smart contracts on Ethereum.
- Go: Hyperledger Fabric, blockchain infrastructure.
- Rust: Secure blockchain development (Polkadot, Solana).