Mark explained that if everyone is a software engineer, then customer service can be more responsive, marketing will understand the technology being promoted, and product will understand deeply what is possible and what is not.
But what does this really mean? What is a software engineer?
Once upon a time, a software engineer was someone who coded. It was someone who you gave programming problems to, they created code, and they showed what they could do. Sometimes, there were math problems. All that has changed. Now, everything comes down to expert knowledge of algorithms and data structures. If you don't speak fluent O-notation, you may have trouble getting your next job at the technology companies in the forefront.
From my view, this blog is really an excuse to dive deep into algorithm and data structure analysis. I had previously started a math blog which to my surprise has been very well received.
I think that it makes sense for me to start a new blog focused on the mathematics of software engineering. Software engineering is rapidly changing. I don't know if in the technology company, everyone will be a software engineer. I do know that as time goes on, the professionalism and algorithmic expertise required for the engineering job will be raised to higher and higher levels.
As I did in my math blog, I will use this blog mostly as a reference for the classic works in software engineering. I will cover selections from the following works:
- Donald Knuth, The Art of Computer Programming
- Robert Sedgewick, Algorithms
- Thomas H. Cormen et al, Algorithms
- Eric Gamma et al, Design Patterns
For more recent and interesting progress in computer science, I will also cover the following works:
- Java/Spring/Open Source Projects