I’m Clark Oake. Formerly an Electrical Engineering Technologist, I am now the Software Development Team Lead at PolyUnity a Coach with Get Coding, and I recently just became a father as well!
I’ve always been a curious person, I love to see how and why things work. It’s what drew me to engineering initially, then to coding when I got laid off during Covid. Programming is an extension of that for me, directing data flow and control through code feels really satisfying to me, like working on machinery or building things. Its a practical thing and you can see the results of your work in real time
When I was asked to be a coach, it was an easy decision. Being one of the first people through Get Coding gave me some great insights into the challenges that students face and being able to help people on that journey is incredibly rewarding. To me, learning to write code is relatively easy, my job as a coach is to help people tackle big challenges with a positive outlook, see the bigger picture of what software development is, and create a space to fail safely and learn from mistakes. It’s super fun and I usually get to learn just as much from my students as they do from me!
I don’t have a Computer Science background, everything I know about code I’ve learned through Get Coding or in my work with PolyUnity. I think this gives me a more ‘down-to-Earth’ approach to code that focuses on how things work in very pragmatic terms. I also faced some pretty major challenges in my life when I went through Get Coding program so I like to think I have a very empathetic coaching-style that gives people the tools and space they need to progress at their own pace
I think AI is super cool and I can’t wait until it can write most of my code for me, however, I am also pretty stoked about how many new frameworks are coming out, I am only just getting into Next.js but there are so many backend and database frameworks out there that abstract away so much complexity and let you focus on writing the code you need instead of building environments for it to run in. No-code, low-code, and Frameworks-as-a-service are a great trend
When I started, I was very much the coach that I wanted when I was a student. Clear expectations, tons of resources / homework, and very structured lessons and feedback. This approach was resource-heavy and had mixed results with students, I have since adapted a more ‘agile’ approach with sessions broken into retrospective, hands-on instruction, and planning.
Now my sessions tend to be open-ended / tailored to the student and I can focus my energy more readily on areas the student wants support. I have found this is way more efficient and has yielded some great results (and great discussions/lessons that I otherwise wouldn’t have done)
I think the biggest motivator for most people in Get Coding is securing a job as a Developer, to that end I typically give students a more holistic vision of what that actually looks like. This can be discussing the ins and outs of full stack development, sharing stories from my work with PolyUnity, or talking about what types of roles exist for developers (as well as the different types of work that developers can do).
I find it helps a lot to let them see themselves in the role and connect with that vision as they are working through hard problems.
Communication, it all comes down to how much they can realistically achieve in a week and ensuring they aren’t feeling overwhelmed. I also spend a good bit of time helping them to ‘prune’ their projects and remove complex/unnecessary elements. They are adults and it’s up to them to deliver results, I just support them by helping say ‘no’ to things and prioritizing topics based on how much bandwidth they have week to week
So many, as a team lead I am constantly moving between managing people and working on deliverables so any time I get to refine those skills is super valuable. Being a coach gave me a tremendous confidence boost in my skills as a developer which helps a lot when working on things at work that are too uncertain to start coding.
Getting to teach the material in different ways with each student based on ther background and learning styles is also crazy valuable for my technical communication skills and really helps me connect with a non-technical audience as well!
Outside of basic computer literacy and a positive attitude, the most important skill beginners can focus on is how to find answers/resources for the problems they are facing. Whether it is an error in their program, not knowing how to ask a question, or being stuck on an algorithm, learning how to iterate through Google searches or read through documentation is probably the single biggest gap (other than experience) between beginners and seasoned developers
I would actually argue that these are the MOST important in programming, especially at a junior level. “If you want to go fast, go alone, but if you want to go far, go together”. You’re going to spend a LOT of time with your team and there will be stressful times when deadlines are approaching or things aren’t working in the codebase. The difference between these tough times making vs breaking a team all comes down to the soft skills of the people on that team.
I think it depends a lot on what type of work you plan on doing as a developer. Some devs stick with a single stack for their whole career and others change languages / frameworks almost constantly. Overall, I think anyone who is getting into coding should focus more on the fundamentals.
I also think professional experience from other industries, I think there are a ton of transferable skills that lend themselves well to understanding the basics of web development and can really “level up” a new developer fairly quickly
I always recommend that students try to use AI in their workflows, it can be a double-edged sword but so long as you understand the code it produces, I think its fair game to include in your projects. I have also recommended the ‘rubber ducky’ approach to problem solving, where you talk to an inanimate object and tell it how your program is supposed to work, then what it is or isn’t doing. It’s a great tactic for getting yourself back on track when you get stuck
One of NL’s greatest assets is the strength of its tech community, people here are so supportive and happy to see other people’s success stories. Getting involved in the community is rewarding and often a huge boost for your career as a developer. Get out there and volunteer some time to Canada Learns Code, go to meetups for local tech groups and stay connected with friends and colleagues.
These are all excellent ways to fast track your professional growth and career prospects!
Its up to coaches to reinforce good habits and identify bad habits before they become too ingrained. It can be uncomfortable to have difficult conversations sometimes but the reality is that anyone can learn to code from internet tutorials, not everyone who learns to code on the internet can become a good developer / dev team member. Its up to us as coaches to help our students get to the point in their growth that we want to hire them onto our teams.
What you are doing is hard, otherwise everyone would be doing it. Be gracious with yourself and make sure to give yourself time and space to learn. The only time you should be worried about not progressing quickly enough is if you look at code you wrote a month ago and don’t see any room for improvement.
Thinking that things are ‘simple’ and are therefore ‘easy’. Running a marathon is ‘simple’ but people still train for years to participate in them. Understand that learning new skills takes time and effort, you are retraining your brain to think like a computer, it isn’t gonna happen overnight.
For those that want to stay up-to-date, I like websites like dev.to, ui.dev, medium, etc. I am of the belief that learning is best done on the job though, I love building systems I have never built before and finding best practices for them, then figuring out how to make them work within an existing codebase.
It can be super challenging but a great way to get a deep understanding of the problem and code!
Get Coding trains people to become software developers by building real-life projects with the most in demand skills, while being coached, one-on-one, with software developers from local tech companies. Students learn on their own time, making the program accessible even to people with a full-time job, family or both.