4 ms·
This may be colored by me being self-taught, but aside from interviews, why algorithms? Seems to me that the best way to test your well-rounded skills as a pro
by FLGMwt 10y ago
This may be colored by me being self-taught, but aside from interviews, why algorithms?
Seems to me that the best way to test your well-rounded skills as a programmer is to build and launch a product. Even if you don't aim to be an entrepreneur, the holes you find while taking an idea from inception to launch are much bigger holes than you'd find building this tree vs that tree.
- linuss 10y agoThe goal of the list is to find projects that will increase your understanding and skills as a programmer. This is a purposefully vague description, and I do believe that implementing basic algorithms and data structures can help you in your day to day work. I would never advocate doing such things in production work in languages that provide these tools for you, but it is helpful to realize why your high-level implementation should use a hash-map/dictionary instead of a list.
- fishnchips 10y agoDepending on your area of work algorithms' value can range from useless to invaluable. The same applies to every topic. But I usually ask a very simple algo question during an interview to figure out general cognitive ability of the candidate.
- framebit 10y agoBuilding fundamental data structures and implementing classic algorithms is a phenomenal way to learn about unit testing. How else are you going to make sure your doubly-linked list is doing the right thing? It's much more difficult to learn about unit testing when you have the complications of a project stack: databases, front ends, etc. The fundamental data structures are self contained and their behavior down to the last detail (the spec) is fully described. That's an ideal way to learn about writing good unit tests.
- collyw 10y agoUnit testing is not the be all and end all of writing an application.
- paulmooreparks 10y agoI'm also self-taught, and that's exactly why I found it important to focus on algorithms. Along with data structures, they're the fundamental elements of software development. (Data structures are the bricks, and algorithms are the mortar, so to speak.)