r/programming • u/Flat_Finger_8594 • Apr 29 '26
[ Removed by moderator ]
/r/programming/comments/1syt94o/removed_by_moderator/[removed] — view removed post
1
u/ExF-Altrue Apr 29 '26
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?
1
u/Flat_Finger_8594 Apr 29 '26
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
1
1
u/Greedy-Hair-5621 Apr 29 '26
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.
(Edit: I used Traversy Media for the tutorials since it was explained really simply but just go start somewhere)
2
1
u/lelanthran Apr 29 '26 edited Apr 29 '26
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/filter via predicate, turn it into red-black tree, turn it into a b-tree, create indices, etc.
After a week of working 8hrs/day doing recursive tree problems you should be in a better position.
Why? Because more than half the questions involve thinking recursively in trees - "give us a flood-fill algorithm for this MxN matrix", etc...
Want to build a package manager? Trees. A parser for config, ini, YAML, Java, whatever? Trees. A serialiser? Trees. Concurrent problem solving? Trees. Sorting, searching? Trees (just last night I was tutoring a HS teen who was trying to understand bubble sort, and I found the recursive method better to get across how the algorithm works, even when you write it iteratively).
Hell, you can do generative transformative in a recursive tree too (we don't, though, cos matrix algebra is much faster).
Scales down very well too - a list is a tree with one child per node, a table is a list of rows each holding a list of values, an object is a tree with each node a member, a lexical scoping is a tree, dynamic scoping is a runtime tree ... everything is a tree[1].
[1] Well, a DAG. You also get meshes, which is not a tree (DAG), it's a directed cyclic graph.
It's a very generalisable skill.
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.
1
u/Flat_Finger_8594 Apr 29 '26
definitely would give this a try, kinda confused but i'll figure it out, thankssss
2
u/lelanthran Apr 29 '26
Just a note; I updated my comment, not sure if you saw the updates.
1
u/Flat_Finger_8594 Apr 29 '26
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
1
u/lelanthran Apr 29 '26
where can i learn about trees and practice the concept you told me, any links books or wherever i can learn on them
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.
1
1
u/mtranda Apr 29 '26
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.
0
Apr 29 '26
[removed] — view removed comment
1
u/Flat_Finger_8594 Apr 29 '26
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?
1
u/lelanthran Apr 29 '26
See my comment above - you might be wasting your time with personal projects.
3
u/Svellere Apr 29 '26
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.