The latest episode of the .NET Rocks podcast is an interview with Robert Martin. In the interview, Robert Martin gives his view of why there will always be programmers. Here’s my summary/paraphrase of his argument.
Systems are full of details, and somebody has to manage those details. That’s what programmers do. Maybe some day, for example, we will draw diagrams instead of typing lines of text in order to specify computer systems. Fine, but then those diagrams will have lots of detail, and we will need professionals who can manage that complexity. Call them programmers.
Carl Franklin, one of the hosts, added that part of a programmer’s responsibility is to know what needs to happen when things go wrong, which is part of managing the details of a system.
The essential challenge of programming is managing complexity. Those who think the difficulty is primarily translating ideas into computer language syntax line-by-line haven’t written large programs. Writing small programs is challenging, and not many people can do it. But far fewer people can write large programs.
To write a big program, you just break it into lots of small programs, right? Well, that’s true a sense, in the same sense that writing a book is merely a matter of writing chapters, which is merely a matter of writing paragraphs etc. But writing books is hard because the pieces have to hang together in a coherent whole. If part of a book doesn’t quite fit with the whole, the result is aesthetically disappointing. If a part of a program doesn’t quite fit in, it’s called a crash. Paper doesn’t abort, but programs do.
Just like English is still made of sentences, words and characters, I think that programming will always be made of functions and variables. Of course, as you point out, there are higher levels of programming, and lower ones, but it will be awfully hard to get away from Mathematics (variables, functions…). Mathematics works unreasonably well.
Writing programs requires understanding a language. In my mind, mathematics is a type of language and, as Daniel said, many programs require mathematics as well as knowing the computer language.
It’s one of my cliches – knowing a programming language doesn’t make you a great programmer any more than knowing English makes you Hemingway. What programmers do is get a computer to solve a problem someone has. The more complex, larger scale the problem, the better programmer you need to be.
Uncle Bob nailed it with that quote, and any worries I’ve ever had of my job one day disappearing have dissipated.
I am a Medicine Faculty student at Turkey. My job in future is becoming an MD,obvioius.
But I want to be a programmer,in the meantime.
I know what an algorithm is, And I can solve complex problems.
I know programming languages.
Can I be a programmer also?
When I went to medicine faculty,all of my dreams are vanished.