2 ms·
If there's a bottleneck anywhere in what you're working on, that's the most likely place for you to apply CS. But it's a tricky business; there's a risk benefit
by barrkel 8y ago
If there's a bottleneck anywhere in what you're working on, that's the most likely place for you to apply CS. But it's a tricky business; there's a risk benefit trade-off.
Writing complex code to solve a gnarly problem is often the wrong path, because it's harder for coworkers to understand the code, and harder for future maintainers to keep it correct. Thus it's often better to encapsulate the hard problem in a nice interface, and possibly release it as a separate library.
That's where most of those libraries you're gluing together come from. A tough bit of code that needed writing but also encapsulation.
A tougher problem than most CS problems you'll find while writing CRUD apps is getting architecture right, so that adding new features isn't an uphill struggle and doesn't involve piles of boilerplate. Getting the aesthetics right, making the code clear so that anyone can maintain it - this requires experience and the mastery that comes from it pays off in the longer term, because you can more easily leverage other people's efforts too.
If you can't find solace in mastering software design, you're better off moving away from CRUD apps and move to a developer of tools. Tooling, whether it's compilers, OSes, databases, whatever - has more interesting and deep technical challenges. Watch out though: tooling often doesn't pay particularly well because developers enjoy making tools themselves. They'll prefer to build their own shoddy hammer 9 times out of 10, precisely because they're in the same boat as you right now: they don't feel challenged.