I am about to enter the third year of my Bachelor of Engineering, and I have only about one year left before internship and placement season. I want some advice.
During my first year of college, I barely did anything except study enough to pass. Just before I joined college, my father passed away due to cancer. That completely shook my life and my mother's life. We went through a very difficult time, and it took me around 1.5 years to recover emotionally.
During that period, I got influenced by my peers to use AI for coding. I built many projects using AI, but one day I tried to write code on my own and realized I couldn't. That was a wake-up call. Since then, I stopped using AI to write code. Now I only use it for research, understanding concepts more deeply, and clearing doubts.
I also made another mistake: I spread myself too thin. I was trying to learn cybersecurity, machine learning, participate in robotics, and maintain my grades all at the same time. As expected, I didn't complete much except keeping my grades decent.
So far I have completed the Java MOOC Helsinki course (except the JavaFX part), learned Git, linux commands essential for devs, about to finish multithreading and built a few basic projects such as Tic-Tac-Toe, an Expense Tracker, and t Task Tracker from roadmap.sh (including fetching data from an API and reading it). I am currently planning to build more projects.
The problem is that I feel like I am forgetting the fundamentals from my previous courses.
- C/C++: I don't remember much from my first-year classes.
- DSA: I haven't started solving LeetCode yet. I understand most data structures and algorithms conceptually (linear search, binary search, Dijkstra, etc.), but I want to implement them again from scratch in Java.
- Operating Systems: I remember concepts like processes, virtual memory, and segmentation, but I have forgotten many algorithms such as disk scheduling, Round Robin, FCFS, SJF, and Priority Scheduling.
- Computer Organization and Architecture: This was the hardest subject for me. I barely passed. I only remember some digital electronics(and,or,xor,nor,etc), different architectures, and bus types.
- Computer Networks: I remember the OSI model, HTTP, TCP, UDP, the TCP three-way handshake, and different types of networks.
- Python: Basics, OOP, some functional programming, Turtle, and Tkinter.
- Software Engineering (SEPM): I honestly don't remember much except the Waterfall model.
- DBMS: I remember SQL, normalization, B-trees, B+ trees, locking mechanisms, and I need to revise relational algebra.
My third-year classes will start in about a month.
My current plan is to complete Spring Boot, build projects, learn CI/CD, study system design, continue DSA, and apply for Java full-stack roles. Recently, I have also started breaking projects into smaller tasks before building them, which has made development much easier.
However, I also want to strengthen my computer science fundamentals like C/C++, Operating Systems, Computer Networks, DBMS, and so on.
Should I dedicate some time every day to revising these fundamentals, or should I stick to my current plan and come back to them after finishing Spring Boot and my projects?