More than you think, if you stop spending energy on regret and pick a narrow goal. With six to twelve months left you can build solid fundamentals in one stack, finish one strong project, possibly land an internship and graduate with a real job search already running. The key is focus, not intensity.
What people tell me
I spent my first two or three years at university just passing courses. I did not build projects, did not do internships and did not really learn to code beyond assignments. Now graduation is getting close and I feel panic. I see what others have done and I regret every semester I wasted. I do not know whether it is too late to become employable, or what is even possible with the time I have left.
A composite of the messages behind this question, with personal details left out.
Key takeaways
- Regret costs energy you need for the next months. Acknowledge it once and move on.
- With six to twelve months you can become employable for entry-level roles in one area.
- Pick one direction and one stack, then finish one strong project and one smaller one.
- Start applying before graduation, even while your profile is still improving.
- Steady hours every week will beat panicked bursts.
Stop paying the regret tax
I hear this often, and the regret in these messages is real. But notice what it does: it makes you replay the past instead of planning the next month. Every evening spent feeling bad about second year is an evening not spent building. Acknowledge it honestly, once. Yes, you could have started earlier. Now the only useful question is what you do with the time you have.
What is realistic with the time left
| Time until graduation | Realistic goal |
|---|---|
| 3 to 6 months | Solid basics in one stack, one working deployed project, active applications by graduation |
| 6 to 9 months | The above, plus a second project and a real shot at an internship or part-time role |
| 9 to 12 months | A credible entry-level profile, one strong project, one internship attempt, fundamentals practised for technical rounds |
This assumes around twelve to fifteen hours a week on top of your courses. That is demanding but sustainable. More than that usually leads to burnout by month two.
Narrow the goal first
The biggest risk when you feel behind is trying to catch up on everything at once: web, mobile, AI, cloud, DSA, certificates. That spreads you thin and you finish nothing. Pick one direction for your first job, most often web or backend development because they have the most entry-level openings, and ignore the rest for now.
A plan for the next six months
- Month 1: fundamentals in your stack. Learn the language properly, Git, how HTTP works and basic SQL. Build small exercises every day.
- Months 2 to 3: the main project. Something real that solves a problem for someone you know. Deploy it, write a clear README and add tests for the core logic.
- Month 4: a second, smaller project that shows a different skill, and a steady problem-solving habit of four or five problems a week.
- Month 5: profiles and applications. Clean CV, GitHub and LinkedIn. Start applying and messaging people.
- Month 6: keep going. Improve the projects based on feedback, practise explaining them and keep applications steady.
Use your final year project
If you have not started your final year project yet, it is your biggest opportunity. Choose a topic in your target area, with a current stack, and treat it as your main portfolio piece. You were going to spend the hours anyway. The Sefism FYP ideas library has options you can adapt.
Apply before you feel ready
You will not feel ready. Almost nobody does. Start applying to internships and junior roles as soon as your main project works, even if it is not polished. Applications take weeks to turn into conversations, so starting early means you are practising while you still have time to improve.
Look at the company directory and internships for places that hire at entry level.
How to talk about the early years
If someone asks what you did in your first years, be honest and brief: "I focused on getting through my courses and started building seriously in my final year. Since then I have built X and Y." Most interviewers care much more about what you can do now and how quickly you learn than about when you started.
Protect your energy
Panic makes people work in bursts: twelve hours one day, nothing for a week. Set a fixed routine instead, for example two hours on weekday evenings and four hours on each weekend day. Track what you finish each week. Seeing a list of completed things is one of the best cures for the feeling of being behind.
An example week
Here is what the routine can look like during a normal semester week with around fourteen hours of your own work:
| Day | Time | Focus |
|---|---|---|
| Monday | 2 hours | Next feature of the main project |
| Tuesday | 1.5 hours | Problem solving, two problems |
| Wednesday | 2 hours | Main project, then commit and deploy |
| Thursday | Rest or coursework | |
| Friday | 1.5 hours | Learning a concept the project needs |
| Saturday | 4 hours | Main project, bigger feature |
| Sunday | 3 hours | Applications, outreach and weekly review |
The rest day matters. People trying to make up for lost years often skip rest and burn out within a month, which costs far more than one evening a week.
A self-check against panic
Once a week, ask yourself: Did I work my planned hours? Did I finish something? Is my main project closer to being usable? If all three answers are yes, you are on track, whatever your feelings say. If they are no, adjust the plan for next week rather than adding guilt to it.
If you are still stuck
Read How do I stay consistent when learning to code?, then From CSE graduate to your first software engineering job and What to do when you are stuck learning to code. If you want someone to look at your specific situation, join Sefism and, as a member, book a 1:1 session.
Was this answer helpful?
Read next
- From CSE Graduate to Your First Software Engineering JobJob, timing and learning are one loop that traps graduates. How to run learning, applications and interview practice in parallel, what to stop learning, how junior technical interviews are structured, how to practise patterns and speak your thinking aloud, plus a twelve week plan and a reflection template.
- What to Do When You Are Stuck Learning to CodeThere has never been more good material for learning to program and the failure rate has not improved, which tells you the bottleneck is not access to explanation. It is that watching someone else solve a problem feels exactly like learning and is not. Sixteen heuristics for the first year, mostly about what to do at the point where you are stuck.
- How to Start Your Career as a Software EngineerA practical route into the first software engineering job: pick one language and stop shopping, build things too big for a tutorial, learn the five fundamentals you cannot skip, get your code in front of a human, and apply earlier than you feel ready. Includes a twelve month shape to work to and an honest read on what the current entry level market has changed.
Your situation is not quite this one?
Members get written answers to their own questions, a roadmap built for them and feedback on their projects. Early access is open to X and Instagram followers and university students. Prefer to talk? A free call works too.