Please subscribe to the Learnetto Podcast in iTunes and rate us to help us reach more people.
Our guest on the fourth episode of the Learnetto podcast is Cindy Potvin, a Montreal-based software developer. Cindy started blogging about her experience of Android and web application development in October 2013 at blog.cindypotvin.com. Since then, her blog grew to include series "Learning as a Software Developer" and "Play and Learn as a Software Developer." Titles of the series summarise Cindy's goals well - she wants readers of her blog to enjoy their learning journey to becoming better developers. 

Cindy Potvin's avatar on her blog and twitter

Hrishi Mittal (HM): Hi Cindy, how are you doing?

Cindy Potvin (CP): I’m doing great, thanks.

HM: It’s great to have you on the show, thanks for agreeing to speak with me.

CP: It’s my pleasure.

HM: Just for our listeners, would you like to introduce yourself?

CP: I’m Cindy Potvin and I’m working as a product owner at GIRO, where we do software for public transport organisations. 

HM: And where are you based?

CP: I’m based in Montreal.

HM: Ok! So, tell me a bit about your background, especially about your blog and how you became a programmer.

CP: Well, I first learned to program in high school. We had a VB6 class. I liked it enough to continue at college in and university and electrical engineering but with a strong computer specialisation. Every internship I did, I ended up doing web application and I’m still a web application developer and I do some Android and C++ desktop application.

HM: Oh, wow so you do all of them! What kind of languages do you use for web applications?

CP: It’s a Speed.net NVC with C#.

HM: That’s interesting because most of the people I deal with, they’re more towards open source, Ruby and Python. I know a few .net developers but generally fewer than the others, so that’s interesting to hear!  

CP: Well working with big organisations so they already are standardised on Windows so it’s easier for them!

HM: Yeah and I feel like there is a bit of a bias against in the open source world and I’m not sure if it’s fair to be biased against it. Because from what I’ve heard C# is a pretty good language, so yeah, it’ll be interesting to hear more about that. So how long have you been a professional programmer?

CP: I’ve been working for 6 years at the same organisation.

HM: Ok, cool. Tell me about your blog; when did you start that and why did you start it?

CP: I started maybe 2 years ago with a technical article. I wanted to improve my written English and my writing in general, and it’s gone beyond that since then. I’ve been enjoying sharing my thoughts and meeting new people. 

HM: Yeah, it’s a very interesting blog. Did you start off just writing about what you were learning?

CP: Yeah, I wrote an article about Android when I was starting out. It was a technical problem, then I got interested in soft skills.

HM: Because a lot of people have blogs that are very heavily detailed with how to do things in Android, or any other platform or language, but what’s interesting about your blog is that you talk about the soft skills of how one learns programming and other things that go with that. So, when did you start writing more about the soft skills?

CP: Well, I started doing this more at the start of last year and more this summer. Then I moved on from the more general soft skill to education and learning. That struck a nerve because many developers have to learn new things regularly; many people have those same problems and need to stay up-to-date. 

HM: Yeah! So that part of the blog was well-received, so that must’ve encouraged you to write more on that topic.

CP: Yeah, I always think I’m going to stop but then I get a few more ideas and it goes on and on.

HM: Yeah, it’s very interesting. One particular I noticed in particular is called "Learning as a Software Developer." Tell me about that series.

Cindy blogs about how developers learn and grow

CP: It was because when you are at school, it’s easy, you just follow your course. But once you’re out in the world, you have to figure out where you are going because the possibilities are endless. There are always new languages and frameworks, and I wanted to put out my thoughts as to how you could make a choice about what you’re going to learn and plan it out.

When you are at school, it’s easy, you just follow your course. But once you’re out in the world, you have to figure out where you are going because the possibilities are endless. There are always new languages and frameworks, and I wanted to put out my thoughts as to how you could make a choice about what you’re going to learn and plan it out.

HM: And how many posts are in that blog series?

CP: 4 or 5 I think.

HM: Is that an ongoing series, are you writing more?

CP: Well, it was a self-contained service, but I’ve been writing more about that subject. I started a new series - more about playing and learning - so it does tie into that more playful side.

HM: So talking more specifically about your own experience learning to program. Tell me about the some of the challenges you faced whilst learning.

CP: Well, when I started out learning, it was just starting out so a bit of Googling if you were lucky, but the information was a lot harder to come by if you wanted to fix problems. There was a lot less open source and libraries but right now there are many more choices if you are stuck, it’s a lot easier than a few big books. 

HM: I guess people who are learning for the first time now are having a very different experience to the one we had.

CP: We had PHP3/4 and HTML4; it was a challenge just to know the right thing to do and the right practices. 

HM: So, did you use a lot of books? Is that how you learned?

CP: Well, I bought some books and had to study them in school to really get started correctly. There were no online courses then! 

HM: So, you said you started learning in school? What kind of things did they teach you in school?

CP: The very first thing I did was, like I said, in VB6. They had games which we could do.

HM: Ok, that must’ve been pretty fun.

CP: Yeah, it’s a good way to start for young people. It’s always fun to see it visually and to stay moving. It’s bit like when you’re doing hardware and seeing the light flashing and stuff moving, it's more exciting.

HM: Definitely. I did a bit of programming when I was at school in India and we were just taught really boring stuff. I was always interested in computers but that wasn’t fun.

CP: When we started in college, errors and memory, it’s all very dry.

HM: Yeah, yeah, it can be quite tyrannical. It’s useful stuff you realise later, but at the time, you don’t see any application for it so it can seem quite dry and boring. Specifically with your blog, have you faced any challenges or interesting opportunities? What has been your experience?

CP: With my blog, I had a chance to speak at a conference. I went to droidcon in Montreal. That was a big challenge because I’m not that much at ease with speaking in front of the public. I used an article that I had wrote about Android storage to apply to the conference. With the blog itself, it’s learning how to write and how to put down ideas clearly. Because you can’t skip steps, otherwise you’ll fool someone else, it’s more work than it looks like.

HM: Oh yeah, I know, we’re trying to publish things every week on the Learnetto podcast and it’s a lot of work. Like you said, it looks easy from the outside but it’s not that easy to consistently write good things. 

CP: With technical things, you can’t just go and write it in one, you have to validate, check the examples and what you’re writing is good; a lot of word checking.

With technical things, you can’t just go and write it in one, you have to validate, check the examples and what you’re writing is good
HM: So, at the moment is most of your writing soft skill, or do you still write some technical stuff?

CP: I don’t write a lot of technical stuff right now, because I don’t have time to do a lot of technical stuff. I have a job, I do more management but I don’t write a lot of code right now, so I have less occasion to address technical problems. 

HM: What was the last new thing you learned in programming?

CP: Bootstrap with Coursera. It’s a good one, I’m used to writing CSS by hand.

HM: Bootstrap is nice; I’ve used it a lot. It must be a bit of a contrast to how you’ve learned things before?

CP: Yeah, because I’m not working with fast prototyping at work; it’s often large, long projects, so I want to learn more about the startup way of seeing things. It’s as much about how to think about it, than the language itself that’s interesting. 

HM: So, are you working on a project as you learn Bootstrap?

CP: Right now, I’m just going through the course, but I have a few projects in mind.

HM: Because you could apply it to your blog, couldn’t you?

CP: I could - I’m thinking of reworking my team at some point, so it’s a possibility. 

HM: But are you enjoying working again though?

CP: Yeah. I’ll always want to have a few new things that I’m working on to learn. If anything it’s slowed down, because right now I’m focused on learning about writing and blogging and teaching, but I want to pick it up more. 

HM: I’m curious to know more about your thoughts on learning to program and other skills online; what are your thoughts about online education?

CP: I think it’s pretty exciting. As much as for a student there are many good courses and new points and way of seeing things. For teachers, there are so many platforms right now that offer a good experience and allow you to get students so I think we are going to see a lot of good things in the next few years.

HM: Have you considered teaching a course yourself?

CP: Well I’m working on a book based on my series we spoke about earlier, on "Learning as a Software Developer." It’s not going to be a huge book but maybe I’ll do some kind of course after this on soft skills or something non-technical. But I want to keep teaching!

Cindy's book on storing data in Android applications, available at https://leanpub.com/androidstorage

HM: That would actually make a very unique book and course because it’s not a topic people cover. Do you have any advice or tips for people who are either beginning to learn to code or are interested to learn to code but don’t know where to start?

CP: Well at some point you just have to pick one place because it’s so big and you will learn more and have a better idea of where to go. You can’t guess everything just by looking at it. And don’t overwhelm yourself because there are tonnes of things to learn but you don’t need to learn them all at once. 

HM: Sure! One problem people face now is that there is so much stuff out there and they get overwhelmed like you said and they don’t know where to even start.

CP: Yeah, it’s gotten so much more complex. The web when I started out was just HTML with no CSS and now there’s all those libraries which do very nice things but add to the things you need to learn before starting. 

HM: Would you like to talk about some of the themes that you touch in your series: "Learning as a Software Developer" and the new series that you mentioned?

CP: Well with the previous series - "Learning as a Software Developer" - it was about more finding your way as a software developer because like you said it’s pretty overwhelming if you’re following the popular blogs and current news - it’s endless and I’m wanted to help bring some clarity to this. The new series is more about finding the fun of learning and programming again and finding strategic tools to have a good learning experience and not just dry and boring.

HM: So what are some good tools people can use to make learning programming fun?

CP: One that is very popular, and I agree with this, is... Kids like Arduino on Raspberry Pi. It’s always fun to see real-life feedback. Things that will allow you to see quick results; if you want to do, for example, ASP.NET or Ruby... Or just trying to set up everything, it can be a grind, so using virtual machines that are already set up or easy to draw on that allow you to get started quick and think, and have fun. It’s a good way for beginners to get into it, too, and you can worry about the set-up and infrastructure later.

HM: Yeah sure. Some of the things, the set-up itself is so complex.

CP: I tried to do Ruby on Rails in Windows! I tore everything out and tried on Linux again. It’s not a fun experience if you’re just looking to try it out. 

HM: Actually, for Ruby on Rails there is a good program that just installs it for you on Windows.

CP: But it didn’t work exactly as planned because if it assumes some things that are not always true on the Windows platform! 

HM: That’s one hidden reality of life of a programmer that people don’t realise, all the time you spend just setting things up and getting them so you can start doing things. 

CP: To get the first word!

HM: Yep - to the first step. So, you’ve worked on a lot of different platforms from desktop, Windows, Linux, to web-end mobile as well. Which ones do you enjoy most? What differences do you see in terms of learning?

CP: I’m a web developer at heart, I started with this and stayed doing it, and I love it, but I think Android is a good one for a developer (mobile Android), because the language is smaller and more self-contained. If you stick with the Android SDK, then you don’t have many browsers or languages to take into account. It’s just Java and XMLs for the layout. 

HM: So, you think learning native Android development with Java? 

CP: It’s more self contained than the web that does tonnes of front-end and back-end languages and frameworks you can use. I’ve not done a tonne of iOS but I understand it’s similar. If you go with Swift, you follow the next part on rather than going in all different directions. 

HM: I would imagine that iOS is more self-contained than Android, because Android has so many devices you need to cater to. 

CP: But iOS is more of an investment if you’re not all set-up!

HM: Sure, if you’re not already sending loads of money to Apple, then yes, it is a big investment to get started! Ok, on the website, if you had to start learning today, where would you start? What would you learn first?

CP: I would start with HTML and CSS for sure, and JavaScript. I think Node would be a good starting point because you can use the same language for the back-end and front-end. I do not have a lot of experience with it but I like this concept. If you go any further with it, you have to be good on the back-end, and JavaScript, and making them communicate... So it's always more friction. 
    
HM: Ok great, I think that’s all the questions I had prepared for you. If you have any other advice or tips for our listeners, please go ahead and tell us. 

CP: Well, I’d say, don’t be afraid and just dive in. It’s worth it in the end and don’t be afraid - you’re not going to break your computer.

I’d say, don’t be afraid and just dive in. It’s worth it in the end and don’t be afraid - you’re not going to break your computer.
HM: That’s a good one! Cindy, can you tell them where they can follow you and your work?

CP: Well, I can be followed on my blog at blog.cindypotvin.com and I also have a newsletter "5 Hacks to Learn New Skills" if you want to hear more about learning.

HM: Great, thanks for talking to me today!

CP: Thank you for having me!

Please subscribe to the Learnetto Podcast in iTunes and rate us to help us reach more people.