The Stack Overflow Podcast

Forming new habits with 100 Days of Code

Episode Summary

This week we sit down with Alex Kallaway, creator of 100 Days of Code. A self-taught programmer, Alex was working full time a few years back, but feeling frustrated that he wasn't using or learning modern web languages like Javascript or React. He kept promising himself he would learn on his off-time, but failing to follow through. Finally, he came up with a system to hold himself accountable. That idea, a public promise under the hashtag #100DaysOfCode, has become a movement and a community, with thousands of other coders joining in to pledge their commitment to self-directed learning.

Episode Notes

You can learn all about 100 Days of Code on their website.

Alex also published a newsletter about habit forming and self-improvement. You can learn more about that and subscribe here.

If you want to follow Alex on Twitter, you can find him here.

This week's Lifeboat badge goes to Chris, who helped a user understand why ComponentDidCatch was not working in their react-native app.

Episode Transcription

Alex Kallaway You will find yourself after seven days of coding every day that something comes up, some family issue, or you have to go somewhere, you are out of the city for the day and don't beat yourself up for that. Just continue. And as long as you make that decision to continue, you're good, like nothing can stop a person who keeps coming back.




Ben Popper Hello everybody! Welcome to the Stack Overflow Podcast, just finished paying my taxes and man, that feels so good every year. Right, Sara?


Sara Chipps Oh, it's the best.


BP Citizenship and democracy in action. How are you doing today?


SC Amazing. Good. It's a beautiful day here in Brooklyn.


BP Alright, Paul, are you in Brooklyn? 


PF I am. And I haven't looked outside yet, but I'm going to assume it's a beautiful day. 


BP That's perfect. Don't look outside and just assume that. I think that's the right way to operate these days. We have a special guest with us today, Alex Kallaway, and he is one of the a #100DaysOfCode. And we wanted to have, and chat a little bit about what that is, how it got started and how people can get involved. So Alex, welcome. 


AK Thank you for inviting me. 


BP Tell me a little bit about what  #100DaysOfCode is, where did it come from and what role did you play in getting this going?


AK Right. So I think around 2016, I was working at my first tech job. I'm a self-taught developer and I found myself working with the technologies that I didn't particularly enjoy. And I still didn't have enough, I wanted to work with web technology, and at the time I didn't have enough experience with it. If I were to continue, I couldn't find another job with a set of technologies that was used at the company at the time. So I found myself needing to kind of on my own time to make progress on like learning more JavaScript and learning more React and all of those frameworks. Unfortunately, I couldn't find enough motivation to do it after work. Every day, I would say to myself, okay, I'll do it today after work, I would come back and there's, you know, you need to cook dinner. You need to eat. You need to...


BP Same. No, you don't have to explain it to me. I know what you mean. [Ben & Alex laugh]


PF It's okay that you needed to eat, right. 


AK So, and that went on for awhile. I would maybe code for a couple of days in the week and then kind of get off momentum. And I was pretty frustrated. So I, as I think a lot of people do, I complain to my wife a lot. And once we were sitting at this like Thai restaurant, uh, I remember to this day and I was again complaining about this situation. Like how can I get myself to do it consistently to actually invest time into learning every day, while keeping a full time job? And we came up with this challenge. So I said to her, what if I commit publicly like on Twitter or somewhere else to code consistently for at least an hour every day and maybe do it for like three months, 90 days. And she, she told me that 90 days doesn't sound too good. She was like, how about you do it for a hundred days? Cause it sounds better. It's like a round number.


BP Yes. She should work in marketing. I agree. Hundred days is this better. [Alex laughs]


AK And that day I came back home and I wrote this little kind of a pledge online. I previously wrote a couple of articles on freeCodeCamp at the time. And this little pledge was maybe like four or 500 words. And I submitted it to the freeCodeCamp publication on Medium. And I didn't expect it to get the traction it did, but, and I think it's because Quincy, Quincy Larson, the founder of freeCodeCamp. He modified the message a bit. I said in the article that I'm committing to it and he changed it to be like, how about you join me? So he kind of invited other people to join. And that started the whole thing where I created a repo for them to fork. And so they could keep their progress while at the same time, maybe learning a bit more of Git, but as another way to keep themselves accountable and also to engage with the community, I also encouraged them to tweet their progress every day on Twitter. And that's how it came out, like how it came to be. The rules that went into the #100DaysOfCode, I took them from some other materials, books and articles I read about habits before, because I've always had this problem with sticking to things like making your bed, going for a run every day, things like that, where you do it for maybe two weeks, but then you kind of fall off the wagon and that kept happening to me. So that's why I think I have a huge interest in habits and habit formation because I'm so bad at them.


PF I once read an article about an astronaut and it was one of the, it was the third guy in the moon landing, the one who didn't land. And I can't remember, Mike Collins! And there's this part where he's like, you know, I knew I needed to quit smoking. So I quit smoking. That was it. [Ben laughs] And he was like, Ohhhh, that's how you become an astronaut. You're the guy who can go like, you know what? I need to develop a new habit. And then you just developed a new habit. Literally everyone besides astronauts, it's so hard. So, [yeah] so here, you know, you have community, you have people with hashtags, you have social media. What, what are some of the tasks that people accomplish in those hundred days?


AK Tasks differ. And this also was a bit different in the beginning because originally I created this challenge kind of for myself, the idea was that I didn't want to follow tutorials and you know, kind of go into that spiral of beginner resource after beginner resource and instead I wanted to make projects so I could learn from real stuff. And it was good for people who were at that level. But I think it kind of alienated some of the people that were just beginners, like they didn't know how to start a project. They didn't know what language to choose. So in that point with follow up articles and website, I've tried to make it more approachable for people. So let's say you want to start coding and you have no idea what to do. Then we will recommend you to go with a freeCodeCamp or Code Academy and start your journey from JavaScript, for example. If you have a certain level of skill and you want to switch, maybe like learn another framework or learn another language, then you would plan your a #100DaysOfCode in that way. So like we call them rounds where you would commit to one round of hundred days of code and you would pick a subject or pick your plan of what you're going to do. And it could be anything. So it could be tutorials these days just base it on your level of experience. And if you notice that you are at the level where you could do them, but there's like fear and you have creative blocks that stop you from doing it, then like I would recommend to commit kind of in over your head a bit like to get in over your head with the challenge, because when you commit publicly, you're kind of forced to do it. That's another power.


SC It's really nice that the spirit of community is built around this project. I see people talking about a #100DaysOfCode and they're very excited about their commitments. How do you experience that community? Is it mostly over Twitter or do you do check ins with anyone? How does that work?


AK We have a Slack and Discord channels as well, but mostly it's through Twitter I would say. I am considering, and that's when you talk about future things coming up, I'm considering doing a weekly, #100DaysOfCode chats with people on Twitter. So it's more focused as opposed to just, you know, right now, if you go to the #100DaysOfCode timeline, it's people posting their updates, it's brands promoting their stuff, or like their new resources and it's all mixed and mingled. Right. And what I would like to do is to keep certain, like have certain discussions with a limited frame of time. And I'm thinking of doing #100DaysOfCode chats hashtag for that. So stay tuned. That's coming soon. Just to, you know, engage, like you said, engage the community and make people come together.


BP Yeah. So you said that in a, in a previous timeline before you started this, you were working a job where you were a coder, but not working with the sort of technologies you wanted. Are you still doing a full time job and a #100DaysOfCode or is #100DaysOfCode now, your full time thing?


AK Oh, definitely not. I don't make any money with the #100DaysOfCode. I wish I was smart enough to do that. Maybe in the future, there will be some programs that I could, you know, initiate that would be both beneficial for people and for me, but currently no I'm working full time at It's a Toronto startup. You could say it's like Uber, but for home maintenance, where if you have something broken in your house and you want an electrician, but you don't want to go through like yellow pages and stuff, you could go to app, book a job and from the pool of the preapproved professionals, somebody will come in and fix it for you. So I'm very excited about working in this place. And I like, I think #100DaysOfCode helped me to switch from where I was to a much more exciting place. And I'm definitely grateful for that. 


BP Alex, one thing you said that I thought was interesting was that you are a self taught coder and that you had gotten that first job, but then once you got a job, you didn't have time to teach yourself new things. So can you tell us a little about when you taught yourself at the beginning? Like how did you learn, uh, up to the point where you're able to get hired? 


AK Right. So that was quite a journey too. I was always interested in like HTML, but I didn't know much about JavaScript at the time. And I was working in marketing, digital marketing at that point, I think 2014, 15. And I was doing some things like updating websites and doing some, a little HTML and CSS here and there, but I definitely felt the pool of, I wanted to learn more and I had no idea how to go about it. And what's worse is when you have friends who are software developers, I had one such friend and he, whenever I would ask him, should I maybe try to learn it? He would always say, no, no, no, don't get into it. It's like too much. So in the first, maybe six months of learning, I didn't even tell him, even though he's my best friend, just to protect this little initiative and I've started with some books, cause I actually didn't know what to do. I knew about Code Academy. And I picked up this book called beginning JavaScript and just like kept reading it. And for the first five to six months, I think my learning wasn't going too fast. I was kind of stuck in this tutorial hell where I couldn't move past learning about JavaScript, syntax and couldn't program anything, I couldn't do like solve a little problem. And that's where I found out about freeCodeCamp. And it was a very niche website at the time. It was just maybe a couple of months when it was out, maybe a bit more. And actually when I found it was by accident, I was looking for there's another similar project called the The Audit Project, sorry, mixing my gods. And I was wondering if their curriculum was to the level of attending a boot camp at the time I couldn't attend the bootcamp because I was international student. Couldn't just, you know, leave my job and bootcamp, wasn't an option for me at the time. So I was worried. And then when I typed out the audit project versus bootcamp to write it in a Google and freeCodeCamp came up and that's how I found out about it. And then it kind of went through the whole thing, not the whole thing, but as far as it could making this little projects and solving the little problems it had and I was so happy. And it also said, if there is no freeCodeCamp chapter in your city or a group in Facebook, you can create one. So I created one and then people just started joining up, joining in. And that was very interesting for the first time I found people who were also teaching themselves to code and it's such a diverse group of people. It was very interesting. And we started doing this events every two weeks and then every week where we would meet up and talk about code and help each other learn. And through that, I think it definitely sped up my learning and maybe eight months after I was able to find this, that first job.


PF Help us understand what makes for a good hundred days challenge? If I was to start one, where do I, and what are some realistic goals that I can make?


PF So I would say a realistic goal if you're already working, working as a developer would be to explore a new technology or explore a new language, or maybe get better at the language you currently are working with by making a plan of specific sections or specific topics you want to learn more about find those resources, kind of pin them into this like little plan and go through it. But if you are a beginner, I would say started with freeCodeCamp or Code Academy or any of those beginner friendly websites on Udemy actually you can find so many really good, gigantic courses that take you from knowing absolutely nothing about development to a different level level, where you can code for a bit. And I would say that's enough, don't over commit yourself to it just a hundred days. And just, if you think about it, it's just a hundred hours. And another thing that people don't get right about #100DaysOfCode often is that they are very strict to themselves. They are very like harsh when they judge their own progress and they look at other people, maybe like getting more retweets and they think, Oh, what am I doing wrong? And they think about, Oh, if I miss a day after 50 days of doing it, I miss one day and they just quit because they think, Oh, they failed the challenge. And that's, that's not the case in the updated rules everywhere, I'm trying to like spread the word that even if you miss a week, you can come back and start from the day you were on, as long as you keep coding. So the point is to get to a level where you consistently make progress. And that's how, like you said, with smoking, I think I've read the statistics somewhere that people on average try to quit smoking seven to eight times before they actually quit for good. And I think that's the same with any habit for most of the people except for, um, uh, astronauts.


BP Very cool. All right. Last question, before we let you go and I have to ask, I think it's, it's a legally mandated on the podcast during your learning at the beginning, when you were moving from marketing to code or as you're doing #100DaysOfCode, what's your experience been like with, with Stack Overflow? Like have you asked and answered questions? Do you just end up then when you're Googling? 


AK Oh, I use it every day. [Alex laughs] I've actually not asked questions, but it's mostly because everything I Google is there. I have a bit of a qualm with DuckDuckGo search engine. I wanted to use it for some time, but it wasn't good enough at finding those obscure Stack Overflow flow questions that Google is good at. So I had to switch it just because of that. Everything else was good. So definitely there's such a goldmine of knowledge there, and I'm glad that this resource exists for developers. Like another point I want to like recognize that I've been watching Stack Overflow emails and their community changing maybe in the last two years or so. I've seen major steps taken in, making it more friendly, making it more approachable to people and make it more like a community. So definitely kudos to you guys, to the team and everybody who's working on it. Without Stack Overflow, I don't think there would be like, I don't think there would be as many developers as they are now. Maybe 20% of the most determined. 


SC That's great.


BP Very cool. Well, Alex, thank you so much for coming on. If people want to find you online or get involved with a #100DaysOfCode, what would you, where can they find you and how would you suggest they get started?


AK Right. So the best way to find me is on Twitter it's Kallaway. And instead of L's it's 11 so K A 1 1 A W A Y. And the best resource to learn about hundreds of code and to get all of the resources. I mentioned like Slack and all of those links is and a little mention they want to make for the people who are interested in habit formation. I run this newsletter about self-improvement in habit formation called Do The Opposite, and you can find it in my Twitter as well. I have a link there, biweekly I send it out and it's mostly focused on how can you shape your life into a better one?


SC That's great, Alex.


BP Well, thanks so much for coming on. We'll share some links in the show notes to your Twitter, the website and your newsletter. So we appreciate your time and uh, yeah, maybe I'll I'll join you. I've been doing a little bit of freeCodeCamp with Sara, back when we were at the office. So I've got to get restarted.


AK Thank you. That'd be awesome.




BP Alright. So this week's lifeboat is: ''component did catch, does not work.'' And that goes to Chris and the person says: ''why doesn't component did catch not work in my react native app component did catch, does not handle errors.'' And then a user named Chris came on and he let him know. It only works for catching some errors thrown by the components children. Oh, well, I can relate to that. [Paul laughs] So we'll put it in the show notes and perhaps there's something you can learn here, but shout out to Chris for that lifeboat asked two years and eight months ago.


PF Good lifeboatin'. 


BP Good lifeboatin' y'all. Alright. I am Ben Popper, director of content here at Stack Overflow. You can find me on Twitter @BenPopper. 


SC I'm Sarah Chipps, the director of community here at Stack Overflow. And you can find me at @SaraJo on GitHub.


PF I'm Paul Ford friend of Stack Overflow, cofounder of a company called Postlight. You can find me at @ftrain on Twitter. Alright, let's get back to work. 


SC Yeah let's do it.


BP Have a great day. Talk to you soon.


PF Bye!