this post was submitted on 04 May 2024
111 points (99.1% liked)
Asklemmy
43984 readers
710 users here now
A loosely moderated place to ask open-ended questions
Search asklemmy ๐
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- [email protected]: a community for finding communities
~Icon~ ~by~ ~@Double_[email protected]~
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
What worked best for me was taking notes on some common algorithms and patterns. Dynamic programming is a really common domain of algorithms that you'll find in coding questions, but you'll need to know a bit of everything. Major graphing algorithms like Kruskals and Dijkstra's, BFS/DFS and maybe the Bellman-Ford algorithm etc etc etc.
But most importantly as you take notes on what each of these concepts or algorithms are - write in your own words how to choose them from the list of possible solutions.
Here's a sample of notes I wrote on backtracking algorithms:
The point of all of this is to get it into your head how to choose which algorithm, then you work on the speed with leetcode practice. So my regimen when I was searching for a job was to take an hour a day to study an old concept or learn a new one and then run some leetcode questions. This worked much better than unguided random grinding.
The other issue with coding questions is defining the parameters and other communications skills. That's a bit trickier - but ultimately Programming is a collaborative field. The stereotype of the aloof genius programmer who doesn't talk to anyone is noxious: those kinds of people destroy programming teams. The best programmers are collaborative and have good communication skills. They know when to ask questions and when to interpret ambiguity on their own.
That's the harder part to get if you don't have it (it took me more than a decade) but it makes a massive difference in the results.
Good luck and God speed.
Thanks! Good tips!