Socrates earned himself quite a reputation over his lifetime. As far as we know through the writing of other philosophers (he wasn’t big on documentation). he waltzed around unkempt, unwashed, barefooted, and argumentative. In fact, he was so argumentative that his method still survives today. Because of how much Socrates cared about enlightening his fellow Athenians through systematically dismantling their beliefs, we have “Socratic debate,” a method of questioning that aims to draw out underlying truth through probing questions. He regularly galivanted about town asking people how they defined abstract concepts like justice and truth and why they believed in those definitions.
Starting as an intern at Barracuda, long before I knew anything about Socrates, my mentor used a version of these techniques on me. Whenever I had no idea what to do or I was staring at red text on my screen for a little too long my knee-jerk reaction was to turn and tell him “Hey, I think this is broken.” Not a very effective strategy. However, in his enduring patience, he would launch into a line of questioning that never offered any answers, only more questions.
- What did you expect to happen?
- Why did you expect that?
- How close did you come to that expectation?
- Where do you think you should go from here?
Learning how to work through a problem
Often when we are just starting out on problems we don’t know where to start. We may not even know what questions to ask, and we might not believe we have answers to those questions. We may think we know the answer but upon further examination might realize a mistake. The ability to work through a problem is paramount in software development and bestowing that ability upon someone is no easy task.
It takes extra time and patience to walk a new developer through a new system or process but through this method of questioning, I was able to glean how my mentor would troubleshoot a problem. Through that, I started to develop my own framework. It can be easier to rush and give an answer when you have deadlines and your own work to do. However, passing on your experience, ability to identify meaningful questions, and refined reasoning skills are extremely valuable.
As with all things a good balance is required. Taken to the extreme this method can be pretty frustrating. After all, Socrates didn’t end up making a lot of friends with it.
Christopher Sawtelle has been working on big data and machine learning for several years, and he is currently a Software Engineering Manager for Barracuda Central Intelligence. He and his team explore and execute cutting edge ideas in big data, machine learning, and artificial intelligence. Christopher holds a Bachelor of Science in Electrical Engineering from San Jose State University.