Overcoming obstacles when learning to code

The Challenges of Learning to Code: A Personal Perspective by Robert Axelsen

As a software developer and founder of freeCodeCamp, I have learned that learning to code can be a daunting task for many individuals. In this talk, I will share my personal experiences and insights on the obstacles that beginners may face when starting their coding journey.

One of the first obstacles that new coders often encounter is time management. Many people, including myself, tend to underestimate the amount of time it takes to learn programming basics. We think we can put in three weeks' worth of learning and suddenly become proficient programmers. However, this is not always the case. I struggled with this misconception myself, thinking that it would take a genius-level mind and exceptional math skills to learn to program. But, as I learned through my journey, it's actually quite the opposite. The basics can be learned relatively quickly, but mastering them takes time, repetition, and practice.

Another common obstacle is managing expectations. Many people start learning to code with high hopes of becoming proficient in a short amount of time. However, this often leads to frustration and disappointment when reality sets in. It's essential to manage your expectations and understand that learning to code is a process that takes time. With dedication and persistence, you can make progress, but it's crucial to be realistic about the timeframe.

In addition to time management, beginners may also struggle with self-doubt. I remember hitting a wall after three months of starting freeCodeCamp, feeling like I was never going to be able to learn this. Doubts creep in when we're unsure if we're good enough or if we'll ever succeed as programmers. But the truth is, everyone starts somewhere, and even experienced developers had to begin their journey at some point. It's essential to remember that success stories are all around us, and there's no one who hasn't struggled with self-doubt.

To overcome these obstacles, it's crucial to develop helpful habits. This means creating routines and schedules that make learning to code a manageable part of your daily life. Forcing yourself to learn for two hours straight can be daunting, but having established habits makes it easier to get started. Furthermore, don't be afraid to experiment with different courses, books, and learning formats until you find what works best for you.

When faced with doubt or time constraints, another important thing is to question the resources we're using to learn. It's essential to supplement your current learning material with new experiences and challenges. This will help keep things fresh and prevent plateaus. I personally found that combining freeCodeCamp with other online courses, books, and learning formats helped me progress faster.

Lastly, remember that you're not alone in this journey. Everyone has faced self-doubt and uncertainty at some point. Even the most accomplished developers started from scratch once upon a time. And, yes, there are people out there who have also asked the same questions you might be facing right now. Google is your best friend when it comes to overcoming these obstacles. Don't be afraid to ask for help or search online for answers to your problems.

In conclusion, learning to code can be challenging, but with the right mindset and habits, anyone can overcome the obstacles that come their way. Remember to manage your expectations, develop helpful habits, question your resources, and don't be afraid to seek help when needed. With persistence and dedication, you'll find yourself on a path to becoming a proficient programmer.

"WEBVTTKind: captionsLanguage: enMy name is Robert Axelsen as I said, you can find me on most of things @robaxelson.I'm a software developer by day by profession. I learned to code mainly via freeCodeCampThe meetup we are at now is for freeCodeCamp.orgAnd I also organized meetups: this meetup here and also Vienna Go, Go Line meet up and Vue Jazz ViennaAnd I really love being around open-source anddeveloper geek communitySo I keep doing this because it's ultimately funIf you want to learn more about mine and Daniel's journeyGoing from learn to code and getting a first developer jobYou can go to my website and there's a link to our talk thereOkay, so let's go straight into it the first obstacle that you might meet and to preface itThese obstacles are mainly based onMy own experience and talking to peopleFellow co-students. This is by no means as of this talk an exhaustive listSo, please feel free again in the questions section to ask. We'll leave room for questions after the talkSo when you're dealing with time the time might be an issue becauseI think starting out. It's easy to think that oh, you knowI'll put like three weeks into this and I really focus andMaybe I'll learn a lot and then you realize after three months that oh god. There's so much to learn soThere's different ways that time can hit you in the faceBut I think there are some things to keep in mind to not get too overwhelmed or too impatientOne thing is to accept that learning takes time. Yes. It doesn't take too long to learn the basics of programmingThat's one thing that I struggle with on the opposite of time was that I thought it would takeboth the mind of a geniusYou knowWhat is it called, prodigy ora really really long time and math skills to learn to program, but I kepthaving to face thatMyth or misconception and I gradually learned that no, it's easier to then I thought to learn the basicsbut once you have the basics, what you really need to focus on isrepetition repetition and getting better and just doing a lot soThings will take time. But to get the basics and get up to speedIt doesn't necessarily have to takes a long time, but just manage your expectations and that learning the codeIt's not something to do on a whim and you need to be ready to commitMaybe, you know several months a half a year a yearDepending on what you want to get out of programming if you want to learn to codedefinitely think longer than two weeksIn learning to code you can also get trapped into spending too much time on stuff thatyou might realize afterwards weren't giving you as muchOr weren't as beneficial to you, so you should instead of forcing yourself toStick with the course you foundYou should rather try different courses, different books, different learning formats and see what works for youand what some of theCombinations of resources and courses and curriculum and teachers etc. might speed up things for you,so don't be afraid to experimentAgain realistic time frame. We already talked aboutIt helps to form helpful habitsso instead of sitting down and forcing yourself to learn for two hoursif you have habits in place and routines where it's not an issue, it's not a struggle to get started.It makes it easier. It's not easy to form habitsIt takes commitment in the beginning, but once it's habits, it makes it it's a habit. It's much easier just to get goingDoubt is one thing that you can be faced withI think especially when you're thinking about applying for jobs even when you've got your first job orWhen you've started study. Like I had a wall after like three four months of starting freeCodeCampI was like god dammit. Can I really do this? There's so much left to learn.I loved eating success stories for breakfast I still doThere's tons of success stories on freeCodeCamp, the Medium publication if you just google it onlineThere's so much stuff out there. Just talk to people in the audience todayAnd just remember that everyone started somewhere. So even the most, you know accomplishedDeveloper out there or even the most accomplished speaker / persona and whatever pick your programming language stageStarted somewhere some people yes started when they were almost starting to walk and were like four or five year oldsBut most people started later in lifeand there's tons of success stories of people starting when they were twenty thirty forty fiftythere was recently a great article by Quincy Larson, the founder of freeCodeCamp on just that topicEven for experienced developers. Google is your best friendSo if you're doubting how to do this, someone else probably have also asked the same questionCan I really do what I was tasked to do right now or what I chose to create. So don't be afraid to Googleall the timeIt only seems the haters, it depends a bit about on your family and your friendsI've been blessed to not have so many peopleQuestioning why I was learning to code orWhy are you learning to code and stuff like this?but I know some people have that issue and it's not easy to just ignore them if they're important part of your life,but don't give their opinions too much value andyes, you can we have again success stories tons of stories here today of people that have dealt with doubt and still have overcome andmanaged to learn to codeResources. Mentioning this it ties into some of the other things we've discussedWhen you are faced with doubt or time constraintsAlso in the beginning butWhen you are hitting a wall and feeling like Oh freeCodeCampis maybe not for me or you're doing another online course or you're reading a book and you're getting stuckDon't be afraid to question the resource that you are using to learn to code.I supplemented freeCodeCamp first with \"Eloquent JavaScript\", a bookand then gradually more with Udemy video coursesBut just don't be afraid to experiment there's tons of free resources, there's tons of cheap coursesSo the main focus on how to deal with resources is don't be afraid to test out things and switch it upbut on the other flipsideDon't get too fragmented. Like there's the shiny object syndrome of courseYou might try to buy every new fancy course and think that that's going to be the \"blue pill\"that's gonna get you from A to B in two weeks doesn't work like that, butFind something that works for you, and when you find something stick with itIt can also help to have a mentor. It's not always so easy to find.In absence of that, co-students can be in my experience really good to just meet regularly at meetupstaking initiative to meet people for coffee and some talking about code, you knowgive each other feedback and tohave thisSocial sort of pressure to when you meet someone the next time. Oh, I should have completed that JavaScript calculatorLet me just do that before I meet them tomorrowAnd pair programming is worth trying if you haven't. There's a lot of online communities where you can meet people and pair program for a session.You can also meet people in real lifePair programming is sitting together with someone else and coding on the same thing on one screen normallyJust to not bore you too much I took in a bonus point hereAn obstacle when learning to code can be vim. If you don't know what vim is, it's a code editor in the terminalIt's been around since the beginning of unix timesor not so long, but it's been around for a couple of decadesand it's infamous for being hard toExit out of so if you just open it up and you don't know how to exit out of itYou probably will not figure out and you close your terminalBut this is more of a joke than a real obstacle if you want to know how to exit vim, this is how you exit vimJust to have that includedSo you literally just doEscape to have the command sectionand then you have : q and exclamation markbut you might be normally fine without the exclamation markIt sounds simple but on the other hand, it sounds may be unnecessary when you just gonna exit somethingsoLet's get back on trackDistractions is another thing, as with anything in life, especially with the infamous Millennials and all the distractions we have these daysit's easy to sit down andYou were going to learn to code today and then two hours laterYou've been checking everything on YouTube and all the latest JavaScript news or whateverIt's a bit tricky one because again for me what helps the most isI realized the one thing I haven't put here I'll mention that but its habits again.If you manage to do stuff for the right reasons and alsoform the habits that you need to have the routine that works for youLike every morning for 20 minutesAt lunch or in the evening before you watch your favorite TV series or whateverThat you just stick with some routines and follow them.I like really the routine of just sticking with freeCodeCamp and getting the brownie points if I help people at freeCodeCamp.orgVia the chat room you get brownie points when people thank you. I just kind of kept wanting thatStatistics of my points to go up that was the motivating forceOne thing I didn't put up here is that it helps to... no, I got distracted. So I forgot what it wasso we'll get back to thatAgain to the better resources, I think that's the theme of this talk nowBut if you get distracted it might be because the course is not the best fit for youMaybe you would do better reading a book for an hour than for followingsomething video or maybeTutorials where you get to do stuff as you go along is better for you and so on and also one thingActually it is here, but just didn't realize the thing that I forgot isWork on your \"why\". So if you feellacking motivation or being distracted too easily. It might be because you're lacking motivation you need to learn to codeYou might rethink why you're learning to code and if it's really the right thing for you nowMaybe it's a better fit in a year to be honest something happenedYou're like, oh no I need to do this for other reasons, but if you don't either have the passion for programming codeThese kind of things or you have the right reason to do it, it will be harderIt's just a fact so you can still do it. You just need to figure out how to work on that for youI've been blessed that I've been loving computer since I couldwalk and tap onKeyboards, I just didn't get into programming until recentlyWe'll save the questions for after because we are filming so it's not so easy to take questions during the filmingBut just keep them if you had someGetting stuck again. We've covered this sort of and we've covered switching upone thing I want to focus on is that if you feel likeYou were committing to a course or a material and you're like, yeah, but I can't give upI'm so invested in this for whatever reason, it's fine. You can just stopTry something else and it might work you might even return to where you were because you learned something from a different perspective.I had that experience with \"Eloquent JavaScript\" reading that for several chaptersAnd I got the same things that were explained in freeCodeCamp curriculum in a different way and it was like, \"Aha!\"Now I felt more equipped to tackle the course afterwardsDebugging is a thing where it depends on what you're coding in.It depends a bit on you and how strict you are on debugging with debugging tools in the beginning or notThere are different opinions on this. But whichever way you are debugging with your language with your set of toolsIt helps getting better atFiguring out why your code is not working right nowGoogle, again as we talked about if you're doing front-end the chrome developer tools and getting better at breakpoints anddebugging having debuggeras aasVariable name or like a method that you hook into your JavaScript and it stops in the browser to give you theTo stop in time where you are debugging and those kind of things helpIf you don't know much about this, and I've had problems coding look into debuggingJust google itWhat helps for me sometimes, and there's been studies done on this, if you are coding and you feel stuck and this could beprofessionally or learning to codeit might be good with the context switch where you just force yourself to be like but I'm in the middle of thisI can make this work and then you're an hour later. I can make this work and you're like, okay stopJust take a break 10 to 15 minutesgo for a walk, do something entirely different and you might be likebut now and then you go back to it or just the fact that you had a break you go back and you look atIt with fresh eyes, it very often helpsYeah, Google againOkay, soFor one of the last points. I think it's the lastobstacle we're going over today isDeflation you might be like OhGoddamn it. I've I've been trying to learn to code for like one week three months half a year or more and you feel likeYeah, you need some motivation. You're like, maybe it's not for me or whateverIn my experience it helps to go to meetups or to socialize with others that also are learning to code.Sometimes it might help to be proactive for me and I also know DanielIt helps to look at motivational talks and documentariesI love these kind of success stories again or seeing like how this you know, seven year old kidthat was a programming prodigygot into college early and just conquered the world with his iOS apps and those kind of thingsand I'm like if he can do that, I can certainly get further in my course material, and stuff like this.Yeah, and ultimately your \"why,\" so if you're if you're kind of stuck ask yourselfWhy am I doing this and maybe I try to do some self motivationcoolJust to make this talk even more exciting. We're hiring at my company. I mentioned this before but we're still hiringa front-end / full stack developer.We're also looking for a back-endThe profile for both is a bit a little bit moreExperienced because yeah, that's the general gistHave a look or send us an email if you are interested, and if you feel you don't have enough experienceFeel free to still approach me or send an email or look at the website. It might still beWorth a look for youYeah, I worked thereI do JavaScript front-end stuff with Vue.js mainly at the momentCool, I thinkYes, I think that was itbefore we end I want to reinforce and I'llfollow this up with putting arepo in the comment sessions because I want this talk to be something that people can contribute toI realized giving this talk that there's a lot of repetitiveness and there's some stuff that I could maybe when I talking about it couldwant to add myself. If people have stuff they would like to add orFeel they can contribute with help on how to overcome obstaclesYou're free to helpWith this talk for the future. Thank you very much\n"