Faked My Way Through a CS Degree — How Do I Recover Fast?
Posted by Flat_Finger_8594@reddit | programming | View on Reddit | 19 comments
Hi Reddit,
I’m in a pretty stressful situation and could really use some advice.
I’m currently in New Zealand on a work visa, and if I don’t secure a job in my field before it expires, I may have to leave the country. I have about 1 year and 10 months left, so time is limited.
The problem is—I graduated with a degree in Software Engineering, but I don’t actually have solid coding skills. Throughout my degree, I relied heavily on AI tools to complete assignments and tests. Instead of properly learning, I took shortcuts and didn’t build the foundation I should have. Looking back, I basically wasted that opportunity.
Now it’s catching up to me. I haven’t applied for internships or jobs because I’m honestly scared of interviews—I don’t feel confident in my knowledge, and I’m worried I’ll get exposed and rejected.
But I’m ready to change that. I’m fully committed to learning now, no matter how hard it gets—even if it means long hours and sacrificing sleep. I just don’t know where to start or how to realistically catch up on everything I missed (programming languages, APIs, backend, etc.) in a short time.
If anyone has been in a similar situation or has advice on how to quickly build real skills and become job-ready, I’d really appreciate your guidance.
Thanks in advance.
lelanthran@reddit
You can cover more than half the leetcode questions by mastering trees.
Build a tree, write it out in JSON/XML/etc, parse it back in, turn it into a binary tree, invert it, re-sort it, do search via predicate, collection via predicate, turn it into red-black tree, turn it into a b-tree, create indices, etc.
Why? Because more than half the questions involve thinking recursively in trees - "give us a flood-fill algorithm for this MxN matrix", etc...
Just being tree-native (as in, thinking in recursive trees) solves most academic problems - everything from sorting a list of numbers to finding optimal chess solutions, etc.
Flat_Finger_8594@reddit (OP)
definitely would give this a try, kinda confused but i'll figure it out, thankssss
lelanthran@reddit
Just a note; I updated my comment, not sure if you saw the updates.
Flat_Finger_8594@reddit (OP)
Thanks for letting me know, i got one question where can i learn about trees and practice the concept you told me, any links books or wherever i can learn on them
lelanthran@reddit
Not needed, use the list of tasks I gave, write a program for each one. As you run into problems you will need to look it up and then you can get a decent explanation of that specific problem.
For example, representation of a JSON type tree in a datastructure - you wil start with the structure, then parse actual JSON text into a tree of those structures. At any of those points, if you run into trouble, you can look it up.
For example, you should already know how to define a datatype to represent a single JSON field - you need a field in your structure for the name, a field to contain the type of the value (object, array, number, string, bool, null) and the value itself (either a union or sum type, depending on the language you are using).
That stores one field, recursively if the field type is of object, and that is enough. Then you can do searching, serialisation, sorting, etc on that in-RAM structure.
lelanthran@reddit
Good luck.
mtranda@reddit
In the real world we rarely actually use most of the algorithms we learned in school (or the "clever" gotchas in leetcode). Hell, I've only had to write recursive code about three times in my 20 year carreer.
Most of the time it's a matter of taking data from one place, processing it and moving it to another.
And you're looking for your first job, so that would be a junior position. I don't have high expectations from a junior. All that purely theoretical CS stuff they learned in school won't really matter. I want to see their structured thinking. Can they think in terms of objects when approaching a solution? Can they reuse code by means of functions?
CS doesn't teach you all the flavours of ORM frameworks or Dependency Injection frameworks. In fact, I don't even know whether these things are taught nowadays, as it's more of an engineering topic rather than a CS one (and I graduated decades ago). But I can assure you you'll be using those way more than whatever sorting algorithm you had to use during an exam.
So just start applying and see who you vibe with, because you'll be learning for the rest of your life anyway. Good luck.
ExF-Altrue@reddit
There is no shortcut. Ultimately, you have to put in the work. So put in the work! Build things!
Preferably something you could, for instance, showcase in a portfolio of sorts, so that you also strengthen your credentials for when you apply for a job.
Also.. Why the f is there a video on top of your post?
Flat_Finger_8594@reddit (OP)
thanks for your advise means a lot, video is because i couldnt hit post unless i attached a link so i ended up attaching that video link from youtube, mb
ExF-Altrue@reddit
Haha wow that is indeed a weird rule.
chocolate_asshole@reddit
honestly same boat, cheated my way through, now grinding leetcode and personal projects daily. market right now though, horrible
lelanthran@reddit
See my comment above - you might be wasting your time with personal projects.
Flat_Finger_8594@reddit (OP)
Damn so Im not the only one facing this situation. How far have you catch up so far. i havent tried leetcode yet, how is it?
Svellere@reddit
You learn fastest by doing. Ideally, build something that interests you. If you can't find anything, then pick literally anything. If you're at a total loss, do Project Euler problems in the language(s) you want to gain expertise in.
You can also always go back to your old curriculum and actually do it. It doesn't really matter if you can't grade it, just do the assignment and ensure you get the expected output. If you can't access your old curriculum for whatever reason, plenty of universities have open curriculum.
But really, I don't think the curriculum matters that much. Just build something you want to build, and don't use LLMs to do it. If you get lost, use Google, ignore the AI overview, and go to stack overflow, and try to really understand the answer.
I would say that you could try to understand the answer the LLM gives you as well, but I honestly think that'll be too much of a crutch for you at this point, and you should save that for much later in the process when you're feeling more confident in your abilities.
I wouldn't put yourself on a strict timeline, but you should be able to feel semi-confident within 2-6 months assuming you're doing a bit every day. If you're building something you are interested in, then the process will be quicker. You may not know the name of every single pattern, or the names of different architectures, but you should gain an inherent understanding of architectural design and good code vs bad code over time.
If it's a project you really enjoy writing, you'll write it once, and it'll be crap. You'll want to re-do it better this time, and you'll do it again, and it'll probably still be crap, but better. The third time rewriting it, you'll probably do it pretty decently.
The most important aspect to learning is failing, and not meeting expectations, whether they're your own or other people's. So go do something, suck at it, and try again with what you learned. You'll get there.
Flat_Finger_8594@reddit (OP)
Thanks a lot for the advise, Im looking forward to gain knowledge with books and bootcamps im done with LLMs atm. But i do use it i will use it as a learning tool this time
Greedy-Hair-5621@reddit
I had the same issue. Not exactly the same but coding with ai made me feel like I have no idea what was going on so I started doing some random shit and eventually I got bored and overwhelmed. What worked for me to be confident in software engineering in general was since I already took classes of most of the concepts, I just focused on specific parts like language basics, OOP and etc. I still can't solve a leetcode properly but you have to start from somewhere and the first step might be the hardest one because in your mind there is a lot to learn and not enough time but at the same time you already know the concepts and you are familiar with most of the things. So I think after studying the basics (code-along or whatever you want to do) just start a project. A really stupid, useless one maybe but just do it for the fun. I also had some improvements by just simply reading complex functions from GitHub and trying to implement some of the things to my projects.
Flat_Finger_8594@reddit (OP)
Thanks, i'll have a look on Traversy Media as well, thanks againnnn
SimiKusoni@reddit
In a short time? You won't. That's probably not a realistic expectation.
In a long time? Places like boot.dev or leetcode might help.
Dazzling_Music_2411@reddit
Well, he did say he's got 13 months.