Mason had been a musician for five years when he taught himself to build a website for his guitar ensemble. He really enjoyed the process, and realized that coding could complement his music career. Living in San Francisco, Mason had a lot of coding education options, but chose Holberton School for its length and depth. We asked Mason how he enjoyed Holberton School’s self-learning style, how his music skills and coding overlap, and all about his new software engineering job at Docker!
What's your educational and career background before you wanted to learn to code?
I have a bachelor's and master's degree in music performance from two different music conservatories. I’d been pursuing a performance career for five years before I joined Holberton School. My day job was teaching Suzuki classical guitar performance. My evenings and weekends, and really the heart of my entire passion of music, was spent with an ensemble that I had formed– a guitar trio.
That's basically what I was doing for the five years after graduation and up until Holberton. That's also the way I was introduced to computer science because my ensemble needed a website. I'm a very DIY sort of person, so I thought, "All right, I'll build it." I think it seemed less daunting to me because my family is basically made up of software engineers and musicians. Now I fit in with everybody!
How did you teach yourself to build the ensemble website?
Why did you decide to make coding more than a hobby and go to Holberton School?
I’d been living in San Francisco since I moved here for my music education. There are a lot of bootcamps and opportunities to study computer science in a non-traditional manner here. I thought, "I enjoy this, I'm in an area where I can easily educate myself in this field, and I can get hired more easily doing this work." I was in a key location to make that happen.
I started looking into bootcamps and different educational resources I wanted to take advantage of. I considered getting a second master's degree in software development but it may have been necessary to take some other pre-requisite classes before that.
What made you choose Holberton School over other options?
I looked at more traditional bootcamps where you learn Ruby on Rails or a handful of practical technologies in a very short amount of time, like Hack Reactor and App Academy. I stopped my search at Holberton School because of its substantial curriculum and there was also no up-front tuition.
I received a very traditional classical music education, so I’ve always had a deep appreciation for fundamentals and technique. Holberton is a two-year program, and I felt like going to a shorter, 12-week bootcamp that was only focused on a handful of technologies wouldn't offer me that in-depth experience. At the same time, going back to college was going to take longer and cost way more.
So Holberton seemed to be a really wonderful balance. It’s something in my life I could manage while still pursuing music on a performance level. I gave up my guitar teaching as soon as I started Holberton, but continued performing with my ensemble.
What attracted you to the Holberton curriculum? Did it seem more in depth than other offerings?
Holberton’s curriculum focuses on applied computer science by teaching specific technologies but also puts a very heavy emphasis on theory and lower level programming. We would learn C to get a good understanding of how machines work and process code behind the scenes. Almost a third of the initial nine month period was going to be spent on traditional theory like data structures and algorithms. My own family members had really encouraged me to learn that kind of theory so I realized Holberton was a better option.
I know Holberton has a rather lengthy application process. Can you tell me what stood out in the application process?
It has four levels. The initial few levels are what you would expect, just entering information about yourself. The first request of the application process that seemed a little bit unusual, was making a one-minute video where you describe yourself and why you want to learn to code. I think a lot of people stopped at that phase in the application. You have to really want it in order to put in the time to make a video that's very representative of yourself.
One of the most interesting parts of the application was right before the interview, where you have to build a website. It was the second website I had built. They provide you with some starter resources, but you’re on your own. You don't have a teacher to give you the answers. I spent almost two weeks trying to create a website that follows the restrictions, but was creative within those bounds. That step of the process is as hard as you make it on yourself, which is a statement you can make about the entire Holberton curriculum.
Once you got to Holberton School, how many people were in your cohort and was your class diverse in terms of gender, race, and career backgrounds?
There were 32 students when we started, and 29 by the end of the initial nine-month period. The cohort was the single most diverse group of people I've ever been around, hands down. The fact that I came from different music schools, that tend to attract diverse groups of people from many countries, gives that statement even more meaning. Part of the reason for that is that the selection process didn’t really have any human engagement in it until the interview at the end. So to end up with such a broad range of genders, races, and even political belief systems, based on successful application completion time alone, is awesome.
Can you tell me about the learning experience at Holberton School? What was a typical day like?
On a typical day at Holberton, we’d always have stand-up, which is a meeting exactly like what I have at work now. The whole school was modeled after a startup – you're there working on your own, and you meet up with other people on problem-solving activities. For some projects, you might be interacting with other students to try and problem solve together. If it’s a team project, you could be doing paired programming, or discussing the design so you can divide up labor then work on your part on your own. Then you meet later to debrief. There would also be a live coding of a previous week’s project that would be done by former students or by the Holberton team, made up of the founders, Julien and Sylvain.
On top of that, you could have a variety of other events as a part of a school day, including workshops where our mentors would give a talk on a particular technology. It could be on React.js, or on a concept like regular expressions, or on an entire field of computer science like machine learning. The closest thing to a recurring class that we had at Holberton was a three-part workshop series on deep learning given by two mentors in the field.
Did you like that learning style where you're left to work through the materials with the help of your peers and not so much interaction with instructors?
Very much so, especially coming from my background practicing music. I went into music not because I loved to perform, that was something that I had to learn to appreciate, but because I love to practice, and I like the study of it. Every musician has to study on their own. There can be an instruction process where somebody shows things to you, but you've got to walk through the door yourself. You have to do the work. If you don't do your homework, you're not going to learn. So that paradigm of self-study was something I was very familiar with, appreciative, and receptive towards.
How many instructors or mentors did you have available to interact with?
The Holberton team was on site every day taking questions. But before you could ask them a question, you had to google it, and try to use the internet to answer a question. If you couldn't find it that way, then you’d ask your peer. It’s a laid out algorithm for trying to figure out an answer to any question: step one, Google it, step two, ask a peer, step three, ask a mentor, then step four, ask the Holberton team. Using research skills, knowing what keywords to Google, and being able to read through somebody's answer and understand whether it applies to you or not, are important.
We could also contact our mentors through Slack at any time. The mentors were all working professionals. You just ask the question in a channel and someone would answer– they were all very helpful. In some cases, mentors would even be too helpful, and just give you the answer, so it was better when mentors were like, "Let me help you help yourself instead of just giving you the answer." That's a huge part of the Holberton culture.
What would you say was the biggest challenge for you while you were studying at Holberton?
I still perform very regularly with my music ensemble. We are professionally managed and tour internationally. We played in England and Germany while I was attending Holberton, so the biggest challenge was keeping that in my life as I was pursuing my software education at Holberton. I feel very lucky because I have the best part of everything I've ever pursued with music which is my ensemble, and now I've got this other awesome passion in computer science. They complement each other. One can support the other without dominating it.
In what ways do you think music and coding overlap? Are there many shared skills that you noticed that helped you learn to code?
Absolutely. It’s difficult to describe. A lot of people associate coding and computer science as left-brained analytical activities, and they think of music as a very creative right-brained activity. I think both of those statements are true, but music is also a very analytical activity where, as a performer, you are taking music, which is a blueprint or a design specification, and you are implementing it. You are finding a way to bring it into reality. To do that, you need to program your body to move in a certain way. There are a lot of little problems to solve to figure that out so it can be a very analytical endeavor. Likewise, programming also uses both sides of your brain and is a much more creative activity than people give it credit for. I think that's a common misunderstanding; thinking of music and/or computer science as one-dimensional.
They are also both iterative processes. The idea that somebody sits down to learn a new piece of music and plays it perfectly the first time is silly. That's not how it works. Likewise, if you sit down to write out your entire project in code, you won’t get it right the first time. You'll iterate, make a mistake, run it, see where the problems are, look at the problem, solve it, and run it again. You keep going over and over, and repeating, just like music practice.
What was your favorite project at Holberton?
There are two projects that I love a lot, and I would not sleep so I could work on these projects. For one of them we coded a Linux shell using the C programming language, modeling the bash shell. That was wonderful. Before that, a lot of projects were to build specific functions to solve a particular problem. When we did the shell, that was one of the first times where we were writing a very large program, and as it grew you needed to refactor your code to continue to grow. That was really cool.
The second project was one of the last ones I did, where we coded a raycaster. It’s like those old-style games Doom or Wolfenstein where it's in 3D, you're moving through a map, and there are walls like a maze. I never got around to adding enemies or a way of shooting them, but I have a YouTube video I recorded to showcase it. It was a fun project. Originally it was supposed to be in C, but at that point, I knew I was joining Docker, so I learned Golang for this project because that’s one of the technologies Docker uses. Having gone through the bulk of the initial Holberton curriculum, I was able to teach myself enough Golang to complete the project in a week, then spent another week actually doing the project.
What kind of preparation or guidance did Holberton School give you for finding your first role as a developer?
In terms of the interview process, and finding interviews, Holberton was very helpful. To prepare for interviews, all the students would meet each week to work on common algorithm questions. Everybody would think about it on their own for 20 to 30 minutes, then we would go over it together. The Holberton team would sometimes participate and chime in on a different aspect of the problem and how an interviewer would want you to solve it.
Then there were organized events. An engineer from Google came in and did a live interview demo with me in front of the whole class, which was nerve-racking, but wonderful. I was very appreciative of mock interviews because performance is so different from practice. I know so many incredible musicians who never really learned how to perform. And that is a separate skill, just like interviewing. You can be a great programmer, but you don't know how to interview because you get nervous and can't represent yourself faithfully. And that sucks.
How did you find your internship and job at Docker?
The Holberton School team worked very hard to connect people to different interviews. They don't line up internships for you just blindly, but they line up interviews where you can earn an internship. So that's what happened with me. There were a few other students who also interviewed at Docker from Holberton. I got the internship and started mid-October. It was originally supposed to be a six-month internship, but they actually cut it short to hire me on full-time, which was the best reason to cut it short.
What's your role and what kind of projects are you working on?
Officially, my title is Software Engineer, I'm doing full-stack software engineering. I am on the Docker Store team. It's a relatively new offering, but it's the gateway to all of Docker’s products and from an engineering perspective, it is a very challenging project to build correctly so that it can scale appropriately. The last six weeks has had more emphasis on front-end, but I typically bounce back and forth often and my manager is always trying to help people fill out their understanding of the entire architecture. So I'm about to start a new back-end project that should take a couple of weeks.
How big is your team at Docker?
It's about eight engineers, an engineering manager, a designer, and a couple of product managers, so about 13 or 14 people. I work regularly with the engineers, then during certain meetings, the product managers will help highlight higher level descriptions of the products we're working on, then we figure out the implementation details from this new knowledge.
Can you give me a really quick overview of what Docker does?
Docker is the champion of software containers which wrap up applications into an isolated virtual environment so they may run in a more consistent, reliable, and even portable fashion. Containers are virtualized on an operating system level so, for example, you may have a hardware server which hosts three virtual machines, then within each of those virtual machines you may have 10 containers running at the same time, each serving a different web property or running another process. Anytime an application fails, you can just tear it down and put it right back up because you've got a blueprint image that is a snapshot of what the container is supposed to look like when everything is working correctly. In an era of cloud computing and distributed architectures, Docker is an incredibly useful tool.
You mentioned you had to learn Golang for this job. What kind of onboarding and training did you get when you started the job?
It was a very project-based onboarding. There are always little bugs, features, and tasks that we're tracking within our ticketing system that are very simple one or three-line fixes. For me, they curated a series of those tickets – simple little changes that they wanted to make to the app. The hardest part was learning how to navigate to the right spot through the codebase. So with enough of those, I started to get very comfortable with where things were, then I could start to create things.
The first couple of months of my internship, I was reading way more code than I was writing. Over time you start to see repeated patterns, then you don't need to spend as much time trying to understand it. I was very pleased that Docker was using so many technologies that I had already used at Holberton. That made onboarding much more achievable for me.
Holberton has another part of the course where you go back after your internship and choose a specialization. Are you planning to do that?
What advice do you have for other people considering an intensive program to learn to code?
I think it's very important in developing software that you are able to teach yourself because there is so much to learn. There's so much technology – it's moving at a rate that nobody can keep up with and you are always going to encounter things you don't know. So if you don't know how to teach yourself the things you need to learn when you encounter them, you're going to run into issues that you don't know, problems you don't know how to solve, and have a much harder time. It's very important that you're comfortable teaching yourself.