Errol Hassall

View Original

Ask questions

Kids always ask questions, about everything and anything. “How do lights work?, “Why do I have to go to school” and the big ones “What is that dog doing to that other dog?” Questions make up such a huge part of who we are. They allow us to wonder, think, and grow. They are what’s improving us just a little bit each day, questions are something that we ask a million of when we are young, but over time we ask less and less. Why do we ask so little questions as we get older? I partly put the blame on the school system, it’s rigidity and lack of creativity discourages questions, rather it encourages following formulas and not questioning anything. Furthermore, social constructs in schools discourage questions for fear of looking stupid and everyone having a good old laugh at your expense. The further we go with traditional schooling the less you question things. By the time you enter the workforce you’re so unused to asking questions that you just don’t. Couple that with the internal pressure that you should know this already, or that it might be a silly question, makes most people reluctant to ask anything. Your boss could be talking about the concept; model, view (MVC), controller typically used when talking about web applications. You might have no clue what they’re talking about, so you just nod your head in acceptance. Then it comes time for you to actually do some work, so you sit there frantically googling things just so you can understand what MVC is. Now you have to actually build the thing, so you sit there shitting yourself. This whole situation could have been avoided if you had asked a few questions, they could have sat down explained what MVC is, explained some core concepts, shown you some examples. Yet you sat there, to afraid to ask questions for fear of looking dumb, well now you fear is going to come true because your boss thinks you're an idiot because you’ve sat there for the past hour not doing anything. Ask questions, it’s less scary than you think and you will learn a thing or too.

 

When I was in university trying to workout IP addresses for a networking subject, I just sat there, didn’t ask any questions, I was to afraid to ask any questions because everyone around me seemed to already know what they were doing. So when it came became my  turn to write on the board the next IP address in the range I didn’t know what it was, I sort of just stood there like with the classic hand to chin thinking position trying to play it cool, when internally I was yelling “FUCKKKKKK”. After a little bit I just gave up and said I don’t know, “What is the next IP address?” instead of everyone laughing, the tutor went through the next one step by step on how to work it out. I might have looked like a bit of an idiot, but I did learn something. It’s the same when your working, you can pretend like you know what everyone is talking about in meetings, or you could just say “I don’t know, can you explain it to me”. Asking for questions is very important, because you won’t know everything, you never will. The thing that helped me overcome a fear to ask questions is the notion that everyone knows different things. Now this might seem obvious but it really helps, let me explain. You’ve gone through your life, everything you have done has lead to this moment, every experience has taught you something. On the opposite side your colleague has had a completely different life, every experience they have had has lead them to where they are now. You might both be software engineers with 5 years of experience who both went to Harvard, but you know stuff they don’t and they know stuff you don’t. I can promise you that stuff you take for granted, things that you know to be “common knowledge” is not common, we all learn bits and pieces. You might ask some really obvious question to someone else and then that same person will ask a question that you think is really obvious. We all have these gaps in our knowledge for some reason or another, we have to overcome our fear of asking questions, no matter how obvious they might seem.

 

One thing that I put an emphasis on when I first started was asking questions. No matter how stupid I thought they were or if someone was explaining something that everyone else just knew, I was just going to ask. Just say “I have no idea what you’re talking about, can you please explain it to me”. I’ve also been really lucky to have some very experienced developers on the team of my first project. I’ve been able to ask everything and anything, even to many questions (Sorry Jeff). Yet in the six months that I’ve been on this project I’ve learnt 10 times more than I did during the three years of uni. Having someone to work with, ask anything that comes to my head has meant that my skills have skyrocketed. I’ve gone from not knowing a single thing about Elixir, functional programming and GraphQL to being quite competent, I could easily be put on another Elixir project from scratch and create a lot of it, there would be many areas that I couldn’t do but I could quite confidently do 60% of the current project from scratch by myself. That’s not something I ever thought would have been possible six months ago. Back in a time where I couldn’t even read the syntax properly.

It helps tremendously to be able to run into a roadblock, google some things, mess around for a bit and still not solve it, to then talk to a senior developer about my problem. Instead of wasting days of time trying to solve it by myself, I can talk to someone with a lot more experience who can point me in the direction or give me just enough help that i can solve it. Yet sometimes they do just give me the answer, but on one condition and that is: I have to understand what the solution is. So the senior dev will sit with me either via Slack or in person going through the solution piece by piece, breaking down the problem, explaining in great detail why you have to do this and that and how this and that actually work. By the end of the conversation, not only do I have a solution, but I have an understanding of why that is the solution, which I can use for the next time I encounter this problem.

There will be times when I finish my work, create a PR and someone will ask “why have you done it this way?”. I will then respond back with “Is there a better way?”, because as a young dev I have learnt that 90% of the time there is a better way to do it. The first solution is usually the worst and if it’s written by a newbie then it’s definitely going to be the worst solution. However, asking how you can improve it, asking if there is a better way, will not only improve the code base, but it will improve your skills as well.

 

If you want to be the best software engineer you can, you never stop asking questions. Much like Plato or Aristotle of the ancient era, you must never stop asking questions. Questioning things is important, understanding things is important, learning is important and if you ever stop learning your career will stagnate. You will stagnate, how could you not, if you're not growing, you're stagnating, if your not stagnating your declining. The biggest companies get to where they are through constantly improving, then so many of them throw it away because they take their foot of the accelerator. One of the reasons Jeff Bezos is so successful with Amazon is because he constantly pushed the company to be better, he questioned different industries, asking “how could we do it better?”, he also constantly asked how they as a company could improve. This constant growth has propelled him to be the richest man in the world and Amazon as the second biggest market cap in the world. If you want to improve each and every day, ask as many questions as possible and remember that everyone has something to teach.