|
|
|
|
|
by bkirkby
1033 days ago
|
|
Ten years into my self-taught software engineer career I ran across a statement "if you aren't seeing problems in your work that can be solved by graphs (or any advanced algorithms really), then you are likely avoiding those problems." I thought he may be right, picked up an algorithm book and started a "coding club" at the company I was working at where we'd meet and go over the details of a specific algorithm. I became a better programmer for it. |
|
I hear a lot of time from developers "I never use those fancy algorithms!" or "I've never needed any math beyond HS algebra!" but I find that very often it's precisely because programmers aren't familiar with those solutions that they don't see the areas they can be applied to.
One of the biggest insights from my after-self-taught CS degree was that one class in particular stands out as a the dividing line between feeling knowledgable and not: Compilers.
To anyone wanting to improve their CS background: If you can't get back to school full time, try to audit a course on compilers (this is one area where having a structured course really helps). Pretty much all aspects of Computer Science are touched on in that one area: algorithms, data structures, graph theory, theory of computation etc. Plus it's just a lot of challenging programming to be done.
But once you see a high level program that you wrote compiled to assembly by a compiler that your wrote every piece of, you really feel like you understand both CS and software.