|Postcard from Software Development (4)|
It's surprising where conversations lead you. Recently, someone asked what it takes to be a software developer. They seemed concerned that maths played a big part, and didn't have a lot of confidence in that area. And I remembered being asked the same thing before.
Well, here's the truth of it.
No, you don't have to be good at maths to write good software, there's a completely different skill set involved. You need to know enough about the syntax and the semantics of the language you're going to use. Initially, Google is your friend, but eventually you're going to need to remember how to construct simple things like for/while loops, if/else conditionals and so on. But, use the language often enough and that kind of thing is going to stay with you.
Semantics are a different thing. They are about how the language requires you to manipulate and store data. Nearly all languages have a dictionary, or hash structure, but Perl defines it through use whereas Python needs you to clearly state that a variable is a dictionary. Then there's the system-level tools that the standard libraries provide for you. That kind of thing. Again, use it often enough and it becomes easy.
But the real "meat" in the job is visualising a problem in a way that helps you solve it with software. There are plenty of tools to help of course, ranging from a couple of sheets of A4 covered in diagrams, through MS Visio to top of the range enterprise architecture packages. Most software developers don't do full end-to-end design, but all of us have to be able to do the small, local design. What, exactly, do I need to do with the fields I've just read from the database?
Because in the end, the tools only help, they don't write software.
Well, they don't in 2017, maybe in a decade I won't be able to say that!