The Academic Team is crucial to the success of Codesmith residents. Our Engineering Fellows, Mentors, Instructors, and Lead Instructors provide the technical guidance and support needed to guide our residents to meaningful careers in technology.
Meet Katrina Villanueva, the Lead Engineering Instructor for the Central Time Remote Immersive. Katrina offers up some of her tips to prepare for Codesmith, what resources she uses to stay up to date in the tech industry, and why she loves teaching here at Codesmith.
Teaching is unique at Codesmith, I think in large part due to the community. The community is just so safe and supportive, and there are so many resources – not just in documentation and all of that, but also in mentorship. My lead instructor became my mentor. And, I'm absolutely grateful for that because that has shaped me into the instructor that I am.
Also, I think what is unique is that given the nature of Codesmith as an educational institution, a lot of residents come into Codesmith really wanting to change their lives. The people that come here have found a passion for engineering, and they're also wanting to redirect and pivot the direction of their lives. They come from very different backgrounds. The diversity is incredible, [people come] from all walks of life and all places around the world. And there's something so special about that because the learning extends beyond the technical and engineering practices. It also challenges folks to really be open as humans.
Typically, we have a Lead Engineering Instructor. Then, under the lead, there is the Engineering Instructor. Then, under the instructor, there are Engineering Mentors. And those are the core instructors. Those are the folks that will be leading a lot of the core material and lectures.
Then from there, we also have about nine fellows per program. These fellows are the ones doing the important work on the ground – meeting with residents and giving them Academic Progress Checkpoints to understand where they are in the program technically. The fellows are really the ones getting to interact. However, as a lead, I definitely am able to extend myself. My door is always open. I always get DMs for clarification purposes or just general questions, which I love. And, even though I'm not necessarily having as much one on one time, we still have office hours where we check in with residents. I have meetings with residents all the time – if they're needing extra feedback on their technical abilities or if they need extra help with navigating impostor syndrome. I am a woman, and so I find that I also am able to have a lot of really important conversations with a lot of the female engineers in the community. Having that direct contact with residents is absolutely essential to me. Even with lectures – I know that it's not necessarily one on one time – but I pride myself in being very observant of the residents to see how they're doing and how they're feeling. I'm able to plan things around that based on our interactions in lectures as well.
If I had to choose one thing for residents to take away from being in Codesmith, I would say just knowing that they can do it. I know that sounds kind of cheesy, but at the end of the day, they have come in and they are here for a reason. We talk a lot about this in the imposter syndrome lecture – it's no fluke, people who are in the program are here for a reason. There's a lot of questioning like, “I'm not sure if I understand this material,” “how can I move forward?” Or, “I don't know if I'm contributing enough.” But, at the end of the day, once they go through the entire program, people always say, “I can't believe we got through that together.” And now they're going into the job search. The one takeaway is never to lose sight of the fact that they have what it takes as long as they put in the work, as long as they have the positivity and passion for engineering. And, really trust the process that they're enough and even more than enough, and that they will be successful in this industry.
Codesmith has a lot of really amazing resources. So, for those folks that want to get into the program or who have been admitted and want to prep more, we already have the resources that are going to both bolster the chances for entry and also for success in the program.
CSX is one of the most formidable resources that we have out there. The challenges that we have there are carefully curated to highlight the specific concepts that will build that foundation for JavaScript. So CSX, for sure.
We have free workshops – Intro to Javascript workshops and JavaScript the Hard Parts workshops. And, these are all free and available to anyone and everyone. I think that's really powerful because in these lectures, you also get a feel for the instruction style at Codesmith. That means really delving under the hood. That means that we also employ a lot of interaction with our attendees. We also test their technical communication and we give them a safe space to practice their technical communication in these workshops. So really, really important.
Pair Programming is another workshop that we offer that is also free. Pair programming is great because it is one of the biggest spaces to learn because you're seeing a different approach from a different person and are able to grow from that. There are also opportunities if you are the more experienced engineer to help another person and mentor another person, which also expands yourself in a very different way, in a non-technical way. So, pair programming is really, really essential. In fact, in the residency you pair program all the time. Every unit and every new challenge that you do, you’re pair programming. So, it is really important to be comfortable with that.
An extension of that, especially if you're preparing for technical interviews, mock interviews are a great way to also prep. Having somebody do a mock interview for you is really, really important. You learn from each other that way. And, putting yourself in the interviewer's shoes is also really helpful because then you understand that the interviewer is always rooting for you.
The last thing I would say is really extend yourself to be part of the community. Alongside CSX, there is CSX Slack. I always encourage folks, even though you're still learning and even though you're still trying to get into the program, or maybe you've already been accepted, really look through the Slack. And, see if there's anything that you can respond to, that you can provide guidance for. It just reinforces your own knowledge to be able to help somebody else understand the concept. So, be an active part of the community.
I would start with books. Eloquent JavaScript is a pretty classic resource that can walk you through the fundamentals. So, that's definitely high on the list. There is a book called You Don't Know JavaScript by Kyle Simpson. I haven't read it myself, but as far as I know, it's pretty much like six books in one book. What I like about it is that there's also conversations about some of the concepts that we test for. So, for example, closure or object oriented programming or asynchronicity in code. So again, I haven't read it but would love to, I think it could be a good complement to what we're looking for in the interview process.
Also, helping yourself with algorithms and exercising that algorithmic muscle. So, some tools would be Edabit, Codewars, and Leetcode for more advanced challenges. And then, podcasts are also great. There is one called JavaUnscripted, which is actually a podcast that was created by Codesmith graduates. First of all, that's a really, really cool product of some of our graduates, so really awesome. But, the podcast really focuses on their journey, what they've experienced growing in this industry, and best practices. I think that would be really good to listen to. I know that they've also talked about impostor syndrome, which can be very helpful, for example. So, really good podcast.
Another podcast that my mentor turned me on to is Syntax. It's by Wes Bos and Scott Tolinski. They're full stack engineers. And, they just dive into a lot of engineering concepts, best practices, and trends in the industry. For example, when Wordle was big, they had the creator come on and talk about it. So some really, really good learning experiences there.
Another resource would be educative.io, especially for those who have already gone through the program. They have a lot of resources for more complex technical interviews, like system design interviews.
Really leaning on other people. I know that sounds strange. But, at the end of the day, it really is all about reaching out to folks to be like, “hey, can you provide code review?” If that's not something that's being offered. Or, leaning on your colleagues for pair programming, and also extending that help through mentorship. So, providing help to junior engineers is really important.
And the reason I say this is it's such a team effort. And, you learn the more you lean on other people. It's a hard industry – you hit blocks, you make mistakes, and you're asked to do and create things that you've never done before. So to also have that emotional and mental support from somebody else who understands what you're going through by way of another software engineer, I think is really, really important.
We invited the Svelte creator, Rich Harris, to speak to one of our cohorts. And, he also said something about how he would recommend finding a buddy as you move through this process. So, having somebody to bounce ideas off of in a technical sense, and also having somebody to support you in the more emotional mental capacity is really important.