The day of the super-genius programmer who solved all the problems of a project are gone.
Today, a programmer likely to use a use-case, and a related set of requirements that script exactly what must be written.
Back in the day, it was a much more creative endeavor, and a programmer had much more freedom to solve a problem. The best of them knew all about computer memory structures and algorithmic tricks and approaches. Today, most of the creative work is done in requirements development.
In my own work in the past, I would mostly write algorithms completely independent of a programming environment, and then compare outputs.
I can code, but I try not to - my strength is the math and the algorithm development to model a technical problem.
The best coders that I have ever worked with (and probably because I mostly deal with technical applications) have an intimate knowledge of trigonometry, algebra, geometry, and rudimentary calculus.
Business process coding is (usually) not as challenging.
DSP programming is all about the math.
The more math a programmer understands and applies - the more money they will make, in general.
My opinions only.
In the old days, we cared about storage. There’s no need anymore. People want results in Excel. They want results on a web page. They want reports emailed to them. All we care about today is writing database queries that run quickly. The days of a batch job running for hours is over.
The Computer engineers are all writing chip applications. They are programming drones and robots. That’s all that algorithm stuff.
The Business IT types (like me) are data experts who produce spreadsheets. I double as an Accountant and Auditor when I am not playing Sysadmin in addition to coding. I have to set up my own Unix environments in VM’s (which hopefully gets replaced by Docker).
A lot of my time is spent googling how to code something. Manuals are also a thing of the past.