For the eighth episode of the DNQ Interview Series, I’d like to welcome Gabriel Morin, a self-taught programmer who’s recently released an app called Pablo! I met Gabriel in Bucharest at Impact Hub and found out about his intriguing background having moved from France to Romania and going from audio to code.
Since we are both audio trained, and I’ve always been interested in learning code, I thought it would be great to interview Gabriel to learn more about how he made the career transition and why he loves programming.
This time I did a quick video interview (below) and have transcribed it underneath (with some edits). Hope you enjoy!
Sharon: Tell us about yourself!
Gabriel: Hi I’m Gabriel Morin, and I’m a mobile developer. Before this I was making music and working in sound design. I used to work at Ubisoft doing sound design for games. And then I became a multimedia designer, where I was introduced to coding. I learned a language that was made by our company and used in our warehouse. The language was a bit more simplified so it was kind of an introduction to coding. But now I’ve completed my transformation from sound to code, by coding on Android, iOS, and other languages.
Sharon: What made you switch from sound design to programming?
Gabriel: I decided to pursue sound design (encompassing sound design, music, and other things) because I like creating. But programming actually lets you create even more, and I liked the possibilities it provides to do this. Also, I was always a little bit into coding in the past.
I chose code a bit out of frustration. Sometimes I had less work to do at my company, so during my “free time” I wanted to change or create things that I didn’t have the knowledge to. Because of this I started to learn and make stuff. The best way to learn is to have projects that you want to create. This frustration of not knowing how to build things helped drive me, and now I can do it.
Sharon: How long did it take you to pick up coding?
Gabriel: I don’t really know, because I started coding with a language that no one really uses (for my company). It was quite a basic language, like C or C++ but a much more simplified version that was made to be used in our games.
It took a few days to use the language with the help of someone who showed me everything. This was really nice in the beginning. One of the guys spent two days with me showing me the ropes, explaining the logic, and then he would let me off on my own. And every time I had questions he would answer. So this was very good for me to learn quickly. This gave me the logic and also the confidence to know that you can actually get results quite quickly if you really want to do it. When I had this confidence, I started to look into other programming languages. When you manage to do one thing, you can do another thing and start to feel everything is possible.
Sharon: So it was part of your job?
Gabriel: Kind of. Basically I did a bit less than 2 years of coding on my job. Then I spent a lot of time at home learning more classic languages. And it’s been 1 year that I’ve been really doing this on Android and iOS and a bit on the server side as well.
Sharon: You spent a year focusing on it after you got some exposure from your job?
Gabriel: Yeah, exactly.
Sharon: How long do you think it would take for a total beginner to learn how to code?
Gabriel: It depends a lot on each person because we all don’t have the same ways of thinking. For example, in my sound design role I was very mathematical in my way of making music. Everything had to be 4 bars, 8 bars, and 16 bars. People were kind of making fun of me in a nice way about being the mathematician of music, and not a person playing music with feelings. So for me, coding was maybe more natural.
I guess what’s important in picking up code is that you need to have something you want to achieve or something you want to build. And every time you are stuck with something, you have to find what’s blocking you and learn how to fix the bug. And this is how you learn all those little pieces – by wanting to create something and not by completing an exercise. Rather than go through a bunch of exercises without meaning just for the sake of learning code, it’s better to learn by building a project you want to make.
So if you have a little idea or simple project that you want to pursue, something that you choose, not something that’s imposed on you, you will learn very fast. And maybe in a few weeks or a few months you’ll get down the basics. And afterwards it’s sort of a question of being curious and building experience. The more time you spend, the more you’ll be able to get to the same conclusions faster or in a cleaner way. The code you had written 6 months, you’ll be able to write it differently today. Always learn, and always improve. And you can always create something even when you’re terrible at code. You will make it work – even if it’s not clean. You will make it better. You’ll learn, and you’ll learn!
Sharon: You kind of learn by doing something you’re passionate about, and then you build that out basically?
Gabriel: Yes, exactly.
Sharon: What languages have you learned so far?
Gabriel: I’ve looked into a lot of different languages without putting them into practice. The ones that I use the most are Java for Android, Swift on iOS. And also Javascript, a bit for the front-end development, but mostly with Node.js, which is using javascript to build a server.
I’m currently working on an app for helping people learn new languages. At first it was very simple, so I started developing it in parallel on both Android and iOS, with Java and Swift. In that way I learned how to do stuff on both phone platforms. Then I wanted to have a back-end so I learned how to build a server?
Because I really wanted to have this, I had to learn how to do it, and it was very motivating and didn’t feel like working at all.
Sharon: Do you find there are any challenges with coding? What are the pros and cons of the field?
Gabriel: The main challenge and pleasure in coding is that you learn all the time and you HAVE to learn all the time. So it’s quite strange, because in a way that’s what keeps you going – you are not bored of doing the same things all the time. However sometimes it’s also frustrating because you just want to create something, but you have to learn how first. Every day you want to build, you realize you have to constantly learn how. And when you don’t learn enough you start getting bored. When you learn too much you start getting frustrated because you don’t progress enough on your projects. But apart from this… Well the only pain is a pleasure so it’s quite okay.
Sharon: So If I wanted to learn how to program, where would I begin? Or what are the best resources for learning code?
Gabriel: Everyone will probably tell you that the best resource is Stack Overflow. It’s not a site explicitly for learning. It’s a site where you can ask questions. Basically when you’re doing something and you don’t know how to do part of it, you can type on Google “how to do ___ “, or if you have a bug, you can write your bug. And Stack Overflow will have the question and answer below if someone’s already asked about the same bug or same question. So most of the time, you don’t really learn by doing tutorials. Though if you know nothing at all, you should start with tutorials to get the basis.
Sharon: What’s your overall goal with coding?
Gabriel: I would really like to work on product management and product design. I’d want to use my coding knowledge to make projects happen. I want to really understand what are the problems from all different teams – like coding, design, and all other areas. With my previous background in design and production, and now with coding, I want to use my knowledge to become a product manager, I guess.
Sharon: For people who want to start coding, what are some characteristics that you think a coder would have?
Gabriel: I would say curiosity. Coders always want to know what is the better way of doing things. At the same time coders should have impatience to limit this curiosity side. It is very important to be curious to always find better ways to do what you do. But at the same time to be impatient so you can at some point say “stop, okay maybe there’s a better way, but I need to progress on my projects”.
My biggest takeaways from the chat with Gabriel were that 1. coding is sort of like another art. It seems that Gabriel enjoys programming even more than sound because it is another outlet for creating, and in his perspective, he can create/impact even more with code than with audio. 2. It was very encouraging to know that you can teach yourself code, but it also requires a lot of persistence and curiosity and depends on personality!
In a future episode, I would like to explore more resources for total newbies (like me) to help people get started. Stay tuned for more episodes of DNQ (every Monday)!