Colleen is a military spouse, mother of three, and taught herself how to code over a number of years. She learned to code and became a freelance developer with little time, little money, and a lot of patience. She tells us how she did it, and how you can do it too.
[00:00:01.05] SY: (Music) Welcome to the CodeNewbie podcast, where we talk to people on their coding journey in hopes of helping you on yours. I'm your host Saron, and today we're talking about learning to code. (Music). We've all heard the story of quitting your job, spending three months learning to code, immediately getting a six figure salary. If that's what happened to you, that's awesome. But for the rest of us, it's a bit more complicated.
[00:00:33.05] CS: My name is Colleen Schnettler, and I'm a freelance Ruby on Rails developer.
[00:00:36.24] SY: She's a military spouse, mother of three, and taught herself how to code over a few years. She tells us how she did it, and how you can do it too. After this.
[00:00:48.02] CS: Digital Ocean is the easiest way to deploy, manage, and scale your application. Everything about it was built with simplicity at the forefront. Setting, deploying, even building. Their support is amazing - they've got hundreds of detailed documents, tutorials, webinars, and community managers, so if it's your first time deploying an app, they've got great tools and community to make it nice and easy. Try Digital Ocean for free, by going to do.co/codenewbie and get a hundred dollars of infrastructure credit. Link is in your shownotes.
[00:01:26.19] So I'm so excited to talk to you, because you submitted a talk to CodeLand, and you are speaking at CodeLand so people get to also meet you in real life after hearing this episode, and your abstract was so fascinating because we have a lot of people in our community who are learning to code and are in very different situations, different lives, and you actually were a former corporate systems engineer and then you became a military spouse, stay at home mom of three, and while you were doing that you ended up teaching yourself how to code and now you're back to being an engineer.
[00:02:01.06] CS: Yes!
[00:02:03.12] SY: That's all so very exciting. So let's start with the former corporate systems engineer part. What is that, what is a corporate systems engineer?
[00:02:08.18] CS: Well I started as an electrical engineer, but largely due to our geographic location, because of the military, I started working for a defense contractor, where I did more systems integration. So as a systems integrator, I was really the liaison between the people who made the hardware and the people who made the software.
[00:02:28.21] SY: Ok, that sounds hard. That sounds like you need to know a lot of things and put them together.
[00:02:34.22] CS: Yes, I guess so.
[00:02:39.13] SY: So how long did you do that for?
[00:02:40.05] CS: I did that for seven years.
[00:02:43.22] SY: That's a decent amount of time.
[00:02:44.24] CS: Absolutely - two different companies, same general job.
[00:02:46.21] SY: And what made you decide to no longer be a corporate systems engineer?
[00:02:52.14] CS: Well there were a few reasons - one was because of my children, and another was because I didn't really like it.
[00:03:02.16] SY: Oh ok, that's fair.
[00:03:02.16] CS: On paper, it was an amazing job and I would recommend it to people. Great hours, fair pay. But I didn't make anything - I didn't create anything. And part of the reason I became an engineer was because I wanted to create something, and in this job I was really just managing requirements and Excel spreadsheets and that kind of thing.
[00:03:25.14] SY: Ok, so you left and when you left, were you trying or hoping to get into a different career, or were you deciding to put the career thing on hold for a little bit?
[00:03:34.26] CS: Well I've always dreamed of having the flexibility you hear about. People in software careers have. So it's always been in the back of my mind, and I've always wanted to work for myself. Just it sounds so exciting, the freedom of that.
[00:03:51.01] SY: So when you left you said, ok, I'm going to go freelance in something else?
[00:03:55.18] CS: Well, when I left, I did have the goal of working for myself, but I never knew how I could make that goal a reality. And I loved the stories of people who just set off and started these companies, but that just wasn't going to fit into the life that you had, and so because of that, I casually started to learn to code years ago, in 2011, because I knew that was an achievable goal down the line.
[00:04:24.17] SY: Interesting, so you said going off and and starting a company wasn't a thing that fit into your life. Why not?
[00:04:33.05] CS: Well, because of the military, I can't pick where we live. We move every 24 to 36 months, and -
[00:04:40.06] SY: Oh wow.
[00:04:40.17] CS: Yeah. And because of my kids. So I think when I was twenty, I could've done that. But now in my mid-thirties, I just don't have that flexibility anymore, which is fine, life changes, and your priorities change. I was just trying to find something that fit into my life.
[00:04:59.02] SY: Yeah. So you started learning to code seven years ago, now - what did you first start with? What was the first thing you tried?
[00:05:08.25] CS: Objective C.
[00:05:08.25] SY: Ooh, how was that?
[00:05:10.10] CS: Hard.
[00:05:11.18] SY: I was going to say - that's a big one to start with.
[00:05:12.17] CS: Yeah. Well, I'm sure I read some story about how someone wrote an iOS app and made a million dollars.
[00:05:20.11] SY: I wonder how often that happens nowadays - I feel like that was really big back then, and now it's - I don't hear those stories quite as often.
[00:05:26.10] CS: I wrote an iOS app, and I made $63.
[00:05:30.29] SY: Ok, it's more than I paid off an iOS app! What did your iOS app do?
[00:05:36.24] CS: It was a baby scrapbook app, so it let you track your baby's first moments and save pictures.
[00:05:42.20] SY: Oh, that's cute! Oh, that's awesome. So how did you make money - an app purchase thing, or did you sell the app?
[00:05:48.11] CS: I sold it for a while and didn't get much traction there, so then I tried to switch to in-app purchases, by buying physical postcards.
[00:05:57.09] SY: Oh, interesting, yeah.
[00:05:58.15] CS: I thought it was clever, but no one else did, apparently.
[00:06:01.09] SY: Oh, man! So was that your first app, then?
[00:06:05.23] CS: Yes, it absolutely was.
[00:06:08.01] SY: That's actually - that's actually really impressive. The fact that you learned Objective C as the first language and made an app that you actually made money from, so I think that's pretty awesome.
[00:06:15.28] CS: Thank you.
[00:06:17.13] SY: How long did it take you from starting to learn to actually deploying a working app?
[00:06:24.17] CS: Oh, a long time. A long time. Maybe eight months?
[00:06:29.27] SY: That's not that bad!
[00:06:34.12] CS: It feels like a long time.
[00:06:34.22] SY: Oh, I'm sure. I feel like when you're stuck on any feature, no matter how small or how big, any amount of time feels like forever. That's actually pretty good - I feel like eight months, from zero to a hundred is pretty impressive. What was that like on a day to day basis, you have to move around, you have the three young kids, and you're learning this thing that eventually became a real app - what was that life like?
[00:07:00.11] CS: Well, I was still working. I only had one child at the time when I was still working, and I actually had more time when I was working than when I was home with my kid.
[00:07:11.05] SY: Really?
[00:07:12.19] CS: Oh yeah, because you have lunch breaks, I could actually get an hour in every day during the workday when I was working, and then at home in the evenings at the time. And then when I left that job a couple years later and continued to try and learn to program, it became a little bit harder - a lot harder, actually - to find the time.
[00:07:31.10] SY: Interesting. So how did you find time to learn after you left that job?
[00:07:39.01] CS: I tried a few things. I tried the get up at five AM.
[00:07:42.24] SY: Ah, how did that work?
[00:07:43.18] CS: Not well.
[00:07:46.10] SY: Me too.
[00:07:46.21] CS: Some people can do that, but I cannot do that. I work in the evenings, mostly, eight to ten, I'm a member of a gym, and they have free childcare.
[00:07:56.18] SY: Oh, nice.
[00:07:57.03] CS: I take my baby to the gym childcare, and instead of working out, I work on my laptop.
[00:08:01.17] SY: That's amazing! That is awesome. Wow that's a really great lifehack!
[00:08:02.19] CS: Yes, it took me a while to figure that one out. And then someone else suggested it to me, another mother that I knew, and I was like yes, that's amazing.
[00:08:16.02] SY: Wow, that's so smart. So what did you do after the iOS app, did you stick with the iOS thing, or did you switch gears?
[00:08:22.20] CS: I didn't - so I love programming, I have found through this process that I love it, I love the problem-solving aspect, I really feel like I'm in my zone when I'm coding, but I also need to make money, and I found that with iOS I had had this thought that I'll make some apps and then I can start freelancing, but at the time, this was before Upwork, it was still eLance, people were offering two hundred dollars for an iOS app, and the amount of time and effort - there was no way it was worth my time.
[00:08:52.27] SY: Yeah, I was wondering that. I was thinking, that feels really low for the amount of work that takes.
[00:08:58.05] CS: Yeah, it's a lot of work. So I found that it didn't convert well to a freelancing career, which was kind of my goal all along - as I mentioned, I wanted to work for myself, I wanted flexible hours. I had this dream of being able to take the summers off when my kids were out of school. And so I found that that didn't convert - it had been a really painful process, I was tired, so I just took some time off from learning to program at all. And then I started web dev more seriously about two years ago, and I started with Ruby on Rails - I think because I heard it on a podcast somewhere.
[00:09:33.17] SY: And how did you like it?
[00:09:34.13] CS: I love it. It's great. I loved it quickly, and so that's what I pursued.
[00:09:40.11] SY: So what was the hardest part of starting again and starting a new language, a new framework, the second time?
[00:09:48.25] CS: Yeah, well, you feel a little - I hate to use the word demoralized, because I had put so much time and effort already into Objective C, and then Swift came out, and that was really what decided it. Swift came out, and I, so I had the choice to either learn Swift or pick something else up, so I decided to pick up web development because I figured, everyone needs a website. Not everyone needs an iOS app, but everyone needs web. So I started learning Ruby on Rails, and it was hard, because the resources are so distracting, and I thought it would be easy for me, because I have a technical background, so I thought I was just going to whip it out, and that was not the case at all. And as soon as you get so far into one of these programs, Google knows you're learning to code, so you see all the ads for all the other programs, so you go halfway through Treehouse or Skillcrush or Coursera or whatever it is, and you're starting to feel a little frustrated, you're starting to get a little lost, and this ad pops up and you're like oh, if I just do that one it'll be easy. So I had a hard time staying focused, especially when it starts to get hard.
[00:11:03.25] SY: Yeah, absolutely. And I see that all the time - I see a lot of people bounce around, they'll do the first couple lessons in this first resource, and they'll go to the other one, and it's really hard, especially when you see the latest and greatest video tutorial come out and you're like, ah, maybe this is the one for me. It can be hard.
[00:11:20.17] CS: Exactly.
[00:11:21.26] SY: How did you end up dealing with that?
[00:11:23.16] CS: Well, I did them all. I don't know that I did them all - I did several of the popular learning platforms. They give you this false sense of security, too, that you think you know what you're doing, so for me the big jump was getting involved in open source and for me, that was a game-changer, to go from one of these hold-your-hand learning platforms to this is how we learn it -
[00:11:49.21] SY: In real life.
[00:11:50.00] CS: Yeah, on a big project in real life, and you realize you have no idea what you're doing.
[00:11:55.18] SY: Yeah, and that's always been my frustration, too, when I was learning to code - even now when I think of picking up a new skill or trying to learn something new, the examples are just so perfect. There's no other code base to worry about, there's no large, scary repo you have to dig through - there's no mean maintainer you have to deal with - it's just this pristine, very simple examples that make you feel you know what you're doing, and then you apply it to your own code and you're like nope, that didn't work.
[00:12:23.28] CS: Exactly.
[00:12:25.15] SY: Yeah, yeah, absolutely. So what was that first open source experience you had - what was that like?
[00:12:30.00] CS: Just by happenstance, I think it was on - someone has a GitHub list of friendly to open source projects. And this organization is called Operation Code and it's actually an organization trying to get veterans and their spouses in technical careers. And so I started going in, saying hello, picking up some easy issues, then I tried to pick up something that I had no idea how to do and that was get data from Meetup's API -
[00:12:59.13] SY: Oh my god, Meetup's AP is a nightmare.
[00:13:01.02] CS: Right?
[00:13:04.03] SY: Sorry if you work at Meetup and you're listening to this, but seriously your API is a nightmare.
[00:13:04.17] CS: So I jumped on that because I wanted something challenging. As I mentioned, I had taken all these courses, I felt like I knew what I was doing. I was ready to do something. And I got into that and I was just so overwhelmed, I thought there was no way I was going to complete that. And I got lucky in that I DM'd one of the project maintainers, and I said hey I'm working on this and I have no idea what I'm doing. And he has been a phenomenal mentor to me and he was like hey, it's ok, let's do some pair programming, let's figure it out. And that really is the turning point for me, how I went from just learning to getting involved in bigger projects and getting some competence.
[00:13:46.21] SY: Yeah, that's so awesome, it's always great when you can find a mentor or just a person who can answer some questions and give you some guidance and point you in the right direction. That's really great. So when you were learning Ruby on Rails, we talked about how being a mom, obviously, limits your schedule a bit, how did the military spouse part play in, did that affect your learning, either for better or for worse?
[00:14:15.05] CS: Well for better, because of this organization, as I mentioned. That anyone can get involved in, you don't have to be affiliated with the military to contribute. For worse it's challenging because my husband is gone a lot, and so the childcare and everything else falls squarely on my shoulders. And some people can bend their life around learning to code - they can get up at four AM or they can do these things because they know it's going to be for a short period of time and their family can take that sacrifice on in order for them to change careers. But we are not in a position where I can bend my life around wanting to learn to code, I have to bend learning to code around my existing life.
[00:14:59.27] SY: So what did it look like for learning to code to bend around your life? How did your life end up shaping your learning to code journey?
[00:15:10.08] CS: Well I think a lot of the challenges I face have to do with just time management. That was a big thing - how and when can I fit this into what's already going on. But I also think I've approached this as a lifestyle change, as opposed to something I'm going to knock out in six months. Because I've been doing this on and off for six years now, like I knew that I had more patience and I know it's going to take a long time.
[00:15:37.15] SY: I love that. I love the shift from this is a thing with a checklist, and I'm just going to check all the things off the list. To no, it's a change in my lifestyle, in my routine. I think it's a much healthier way to approach it. It's funny, earlier today I was working on a feature for the CodeNewbie website, and I thought I did an awesome job, everything was working great, and then I hit some really nasty bugs that I apparently completely missed when I was testing it, and I got so upset and so disappointed, and I had to remind myself, I said, coding isn't a thing that you just check off. This is a process - the process is, you make something, you put it out there, you think it works, it never does, you come back, you do it again. And when you can accept that that is just the story, just the journey that it is and you're not really done done, I think it's healthier for you. How are your kids taking mom being a coder - are they old enough to know what's going on, or do they see that you're making apps and building things?
[00:16:42.02] CS: So I don't know that they really understand that I'm building things. This sounds really cheesy, but I'm trying to teach them, use it as a lesson, because I work. All the time. Anytime I can. I think about it all the time. If I'm reading about it, I'm reading about code. So I kind of have tried to teach them - hey, this is something Mommy wants for her career, and so she's going to work every day during quiet time, you can go play with your legos, and Mommy's going to work, because this is an important goal, and the only way to get there is to commit time to it, every day, for a long time. So hopefully that rubs off as a life lesson?
[00:17:19.29] SY: Yeah!
[00:17:20.10] CS: I don't know. We'll see.
[00:17:21.22] SY: Coming up - we talk about how fear, and the need to be a perfectionist, affected her journey. She also has some great fill in the blanks. After this.
Digital Ocean provides the easiest cloud platform to deploy, manage, and scale applications of any size. They remove infrastructure friction and provide predictability so you can spend more time building what you love. Try Digital Ocean for free by going to Do.co/codenewbie, and get one hundred dollars of infrastructure credit. Link is in your show notes.
[00:17:55.28] So what have been the big take-aways, the big lessons for you as you look back on especially the last few years, as you learned to code and develop these skills. What are some big takeaways for you?
[00:18:07.16] CS: A big takeaway for me is you don't have to be perfect before you start putting things out there. I don't know if you've seen Reshma Saujani's, I think it's a TED talk on we need to teach our girls to be brave, not perfect.
[00:18:27.14] SY: I've heard of it, but I haven't watched it yet.
[00:18:28.27] CS: It's pretty good. I'm someone who's always tried to be perfect in everything I do, I and I think that has impeded my journey, because I think especially with coding, like you just said about your website, you just gotta do it, and sometimes it's going to be a disaster, and sometimes it's going to be beautiful, and what is then really hard for me but the most important thing I have done, is I have started attending all these meet-ups, and meeting people in real life, putting myself out there has been terrifying, but so rewarding. So I think I've actually grown a lot as a person through this process.
[00:19:07.21] SY: Yeah, I have a talk that I do called punch your feelings in the face, which -
[00:19:15.04] CS: I've got to go look that up.
[00:19:15.21] SY: You do, it's one of my favorite talks to give, I love that talk, but the idea is that I think that we put too much value on our feelings. I think that we optimize for them, we protect them, we nurse them more than we should - at least when it comes to career and learning to code. And we avoid doing the big, scary things because we assume that big and scary means that we should run away. Which is very logical and makes perfect sense. And a lot of times we have to say, yes it is scary, yes it is uncomfortable, but that is an indication of how valuable it's going to be, and how wonderful it's going to be, if it does work out. And so using that connection for something more productive, instead of using that as a cue to run away.
[00:20:02.00] CS: Yeah, absolutely. And I have found that with what I'm doing now - I'm terrified. All the time, I'm like, I should call my old boss and get that comfortable cubicle job back. It was easy, right, but it didn't challenge me at all. And what I'm doing now is terrifying but it's exciting.
[00:20:20.16] SY: Yeah, what has been the scariest part for you? Has there been a moment or a thing that happened when you were most uncomfortable?
[00:20:28.15] CS: Oh, so many. So many. I think the scariest part was my very first client -
[00:20:36.21] SY: Paid client?
[00:20:37.04] CS: Paid client, that I was just going to screw up miserably, and I was really worried about that. Because I was learning as I was doing it.
[00:20:49.08] SY: Did they know that you were learning while you were doing?
[00:20:50.29] CS: I don't know.
[00:20:54.09] SY: Did they know that they were your first client?
[00:20:57.24] CS: No.
[00:20:59.12] SY: That's awesome. So how did that project end up going?
[00:21:03.19] CS: It went fine, it went fine. I wouldn't say it was spectacular, but I think it went well. I think they were pleased.
[00:21:09.22] SY: Ok, so they have no idea that was your first one.
[00:21:11.26] CS: Until they hear this.
[00:21:14.12] SY: (laughs) Good for you, that is awesome. How did you end up finding your first client?
[00:21:21.01] CS: On Twitter.
[00:21:23.29] SY: Oh, nice. How did that happen, you just tweeted and said I'm available and I'm amazing?
[00:21:28.16] CS: I should have, I should have. No, actually, I responded to some job I saw on Twitter, and that's how it started. And since then, and from then it's been word of mouth, getting new clients.
[00:21:43.04] SY: Well then you couldn't have done too bad of a job, if they said nice things about you.
[00:21:46.03] CS: That's what I think.
[00:21:47.09] SY: Yeah, that's awesome. So if you could do one thing differently in your learn to code journey, what would it be?
[00:21:54.29] CS: I would've stayed focused earlier.
[00:21:59.21] SY: Yeah.
[00:22:01.25] CS: Just committed to one language - especially, that's the other thing, you start Rails and then you hear, oh, people don't do Rails anymore, now everyone's doing Node js, or you have to learn React - it's so challenging in the beginning. I would've stayed focused, I would not have switched platforms as frequently. I think I've tried five different platforms at least. So I wouldn't have switched platforms - they're all fine, they're all pretty much the same, I think. So yeah, that's it.
[00:22:29.10] SY: Yeah, and I think also, when we think we're being focused in reality we are not. So even if you had said, I'm going to do nothing but Ruby on Rails and you stuck with it, if you had switched resources a million times, your focused in terms of your language and your framework, but you're not focused in terms of your path and your actual learning process. So I think that's one thing, also, to keep an eye on when we say that we're focused and we're dedicated - it's not just the decision of what to learn, how to learn it is also part of that. So what advice do you have for people who might be in a similar situation, either they are raising a family learning to code, they have a full-time job learning to code, or maybe they're a military spouse and learning to code? What advice do you have for them?
[00:23:15.27] CS: Consistency is the most important thing. Because as I mentioned earlier, if you are in a situation where you have a job, a family, other priorities, you have to fit this into your life, and so I actually found the hashtag a hundred days of code very helpful, because I pretended like I had followers - I had like three, and I pretended that people cared, and that really motivated me. That's really, that was six months ago I started doing that, that really motivated me to commit to working a little bit every day.
[00:23:47.02] SY: Oh, I love that. Yeah, the hundred days of code thing has been really helpful to a lot of folks. I see that hashtag all the time, and I see people reach that hundred days and go yes, I did it, I made it, I'm going to do it again, I'm going to do my two hundred days of code. So yeah, that's a really great one. I want to give you credit, also, for starting again as well. You know, I think that when we start something and it doesn't work out for whatever reason it's hard to go back, like you mentioned feeling demoralized when you pushed back to eight years when you first started, and I actually think that part is really brave and I think it's really awesome of you to say I tried it, it didn't work, that's ok, I'm going to dust myself off and try it again. I think the again part is really key.
[00:24:33.05] CS: Well, thank you.
[00:24:34.05] SY: Yeah. Next let's move on to some fill in the blanks - are you ready?
[00:24:37.02] CS: Yes.
[00:24:37.10] SY: Number one - worst advice I've ever received is?
[00:24:39.22] CS: That I don't think like a programmer.
[00:24:43.07] SY: Ooh, who told you that and what does that even mean?
[00:24:45.21] CS: I don't know what it means. I had a TA my freshman year of college, it was an intro to C class, and after some assignment I turned in, he told me that.
[00:25:00.27] SY: Wow. I don't understand why teachers say things like that.
[00:25:05.11] CS: I don't either, and if I remember, it wasn't malicious, it was probably joking, because it probably twenty lines longer than it needed to be or something. But I was eighteen years old - what did I know?
[00:25:18.23] SY: That's not something you say. Well I'm glad that it didn't discourage you and you were an engineer anyway.
[00:25:25.01] CS: Yes.
[00:25:26.18] SY: Number two - my first coding project was about?
[00:25:28.01] CS: The baby's first scrapbook app that I mentioned earlier.
[00:25:32.05] SY: I love that idea. Very cute.
[00:25:34.25] CS: Thanks.
[00:25:35.11] SY: Number three - one thing I wished I knew when I first started to code is?
[00:25:38.22] CS: Everybody sees your Git commit messages. I did not know that. And so I think when that first open source project, I had commit messages like I don't know if this is going to work or I'm not quite sure what's happening here - oh my gosh, I was so embarrassed.
[00:25:55.22] SY: That is amazing. I love that so much because I'm pretty sure I've seen, I think there are Tumblrs dedicated to the best commit messages and they're all collections of things like that, and I don't know if those people also didn't know or just didn't care, but it's things like "oh my god, this is broken!", it's the worst, most revealing commitments. So yeah. Well, I'm glad you know that now - hopefully there wasn't anything too embarrassing in there. Ok so my early coding days, thankfully I don't have any of the stuff on GitHub, I should probably check that, but early on when I did those little practice exercises and stuff and they would say choose a variable name, I always called my variables butt. I don't know why, I don't know why, I just thought it was the funniest thing because I'm twelve. I thought it was the funniest thing, and I'm this grown, adult professional woman - and I swear to God, every coding exercise you looked at was like, butt equals blah blah blah, just butt everywhere. So I'm really happy I never put that on GitHub. Yeah, I understand. Well, thank you so much Colleen for being on the show and sharing your learning to code story. You want to say goodbye?
[00:27:14.07] CS: Goodbye, and thank you!
[00:27:16.13] SY: And that's the end of the episode. Let me know what you think. Tweet me @CodeNewbies, or send me an email, email@example.com. If you're in D.C. or Philly check out our local CodeNewbie meetup groups, we've got community coding sessions and awesome events each month, so if you're looking for real-life human coding interaction, look us up on meetup.com. For more info on the podcast, check out www.codenewbie.org/podcast, and join us for our weekly Twitter chats. We've got our Wednesday chats at 9 PM EST and our weekly coding check-in every Sunday at 2 PM EST. Thanks for listening, see you next week. (Music).
Thank you to these sponsors for supporting the show!