Software Engineer’s JD — Part II
Haven’t read first part of this story? Read here.
Sarah: My goodness. I never thought like that before.
Me: But I guess, you can visualize yourself as a problem solver now.
Sarah: Yeah :)
Me: One more question, which tools will you use to solve problems?
Sarah: I think I know it correctly, the programming language like Ruby, Swift, Java, IDEs, Git etc. and of course, my programming skills.
Me: You are right from a perspective, at least with last part of your answer i.e. programming skills. But I think, we can simplify it more.
Look, if you develop an application that orders food and it does not allow you to cancel or reschedule your order or change your delivery address, will it be a good software.
Sarah: Obviously, not.
Me: Here you are. So a good software is one, that handles all cases of a scenario. Right?
Me: And the discipline of knowledge, that helps you to think or find all possible situations, of a particular scenario or use case is Logic.
Remember Logic Gates, you used to list down all possible inputs and outputs, when you connect two or more circuits in a particular way.
It’s just like that. When you devise a solution to a business problem, you need to handle all possible cases of a particular scenario. Think about a Login form, that simply fails to login, when a wrong password is input, without informing user what’s wrong with it. That’s because the software engineer, who conceived a login process, did not think about the situation, that someone can input a wrong password too.
So, the single tool, that you need to solve a problem is Logic. Programming languages like Ruby, Python and frameworks like Rails, Django are just a matter of representation, how we input logic to computer, to get output as a solution to our problem.
Sarah: Well, I am planning to build my brain muscles now. I think, I can think devise solution of a problem at an abstract level, free of syntax. Syntax is something, you can always refer. If you have modeled all possible situations of a scenario, all you have to do is tell the computer to automate it, in any syntax.
Me: Great, let’s start our business then. I hope you’ll be a good addition to our problem solving club.