To succeed as a carpenter, you need to have the right tools at your disposal. To succeed as a software engineer, you need to have the right algorithms and data structures.