In the beginning there were punched cards. After that, computer programmers had to learn machine code. Assembly, low level structured programming languages…
Time passed and tools for visual programming arrived. More levels of abstraction. Object oriented languages, declarative programming…
When I was studying at University, many years ago, some teachers thought that writing code will not be needed in a near future. you will specify code requirements and “automagically”, there will be tools that will generate the perfect software for matching those requirements. So software engineers do not needed to concern very much about coding. The main point was good analysis skills and, maybe a bit of software architecture.
Working as a programmer
Then I started working in a big company, as software programmer. That was the lower level of the chain. If you wanted to progress in your career, you will need to jump from programmer to software architect, and then to analyst. Why? because coding and coders were the less important piece. They could be easily replaced and even not be needed soon.
Bullshit. Time passed and new programming languages arrived. Integrated development environment can now autogenerate a lot of skeleton code. Our profession has evolved, yes, but now coders are more empowered that never, and they will be even more important in a near future.
Why? Our industry is a very young one, and many “gurus” thought that it will evolve like other industries. More automation, less need of base workers.
From programmer to developers
False. Part of the coding work can be automated, of course. Abstraction levels can be added, but our job has a very important part of creativity. Machines cannot do that work. In many aspects, we are writers. We need to express vague client requirements into a formal language, and it is a lot of hard and creative work.
There is not (or should not) more distinction between programmers and architects, because architecture is an integrated part of the programming process. Those are obsolete terms, and now we all are ‘developers’.
Modern developers do not only need to code. They need to do a lot of abstract thinking, they need to communicate with a lot of other people (clients, managers, colleagues…). They need tor continually learn new things ant self-update their knowledge and they need not only to write code. Not even well working code. They need to write high quality code, maintain it and continually evolve it.
No more distinction between analysts, architects designers and programmers. We are developers and we need to do all of those tasks and do it well. Careers are now a matter of reaching the mastery in our profession, and modern (good) developers now need to acquire a lot of hard and soft skills. The distinction now is between mediocre, standard and master developers. It is about professionalism.
I think our profession has a good health and a brilliant future.