code-for-a-living January 11, 2020

Hello World: Want to be a developer? Learn how to learn

Over the past five years, I’ve had the opportunity to teach coding to veterans who have varying degrees of education and experience. As such, newbies from all walks of life trying to get their eureka moment would always ask me, “How do I learn how to code?” The first hurdle to learning how to code…
Avatar for Jerome Hardaway
Web Developer

Over the past five years, I’ve had the opportunity to teach coding to veterans who have varying degrees of education and experience. As such, newbies from all walks of life trying to get their eureka moment would always ask me, “How do I learn how to code?” The first hurdle to learning how to code is learning how to learn. 

Learning how to learn is a subject where a lot of time and research has been devoted to. People spend thousands of dollars a year trying to figure out the optimum way to quickly learn, retain and apply knowledge to make them smarter or more employeable.

Learning itself is a habit like cooking, running, or budgeting, it will get rusty and it will be harder when you try to use it again. With our veterans, I tend to use our Fundamentals block of instruction to build this core habit that will help them beyond the cohort into the next job. These are the tactics and tips I use to grow in the subjects that matter to me.

Make time

You know the difference between those who go to the gym on January 1st and actually reach their fitness goals versus the rest of us who quit in the first two weeks? They dedicate a block of time to their goal regularly, and it’s usually the same time everyday. We all make excuses, and I’ve heard every reason in the book. 

I have what I call the Round Rule: I have a boxing timer on my phone. I know that I can do anything for three minutes, so the same time everyday, I start it and focus on doing something personal growth related for one round, wait until the timer goes off, and if I have time, I let it start again. For beginners, I recommend going three rounds and adding a round every two weeks, with the goal of getting to twelve. That’s starting out with twelve minutes of time dedicated to your goal and ending up with forty-eight minutes dedicated to learning how to code everyday. Try to make it during the time that you have the least amount of commitments. When I was younger, it was in the morning when the kids were asleep. Now that they are older and love Fortnite, my evenings are peaceful so long as I keep the V-Bucks flowing, so that is my time to learn. Try it out and remember, twelve minutes of learning is better than none.

Make a plan

It’s easier to get where you’re going if you have a plan to get there and this is a perfect way to practice of the Round Rule. During each session the first week, take that time to make a list of small tasks for you to complete. Since I deal with newbies, I center your initial plan around learning keyboard shortcuts, command line, git, text editor and Markdown. I usually set this up on Trello where I have three lanes: Ready To Start, Doing, and Done. This format helps them practice Kanban as well. 

Ready To Start are all my tasks that I need to do but I haven’t started yet. When is this lane I ensure that I am doing discovery on all the possible needs and resources to start the task. I then move it to Doing, which is the execution phase of the project.Once completed move it to DONE  and add after action documentations and notes.

When I say small tasks, I mean small. Tiny wins lead to sweeping victories and making the tasks digestible will help you not get discouraged and stay on the path towards your goal. Don’t say you will learn keyboard shortcuts, say you will learn how to open the apps  from the keyboard via shortcuts, then how to switch between apps via shortcuts, etc.That way you don’t get overwhelmed.

Make a commitment to finish any resource you start

Many times, I encounter people who are what I like to call “Resource Jumpers.” They have a million Udemy courses because there was a sale, all of Wes Bos’s courses due to another sale, or have twenty O’Reilly books but haven’t finished any of them. Don’t be that person. 

Bouncing from resource to resource is going to make you feel busy, but in reality, you’re just wasting your time. People are horrible multitaskers. Even if you think you are one of the few who are good at it, chances are if you would focus on one thing and complete it, you would be more efficient and have a deeper learning experience. You will also feel a sense of pride for completing something. Being one of the few people in your network to have completed Eloquent Javascript will definitely boost your confidence and motivate you to complete more courses.

Document your learning: Write it down

If there are concepts that are tough for you, going old school and whipping out a pad and pencil will assist you in breaking it down as well as retaining what you are trying to learn. I feel like this is the secret sauce of any educational journey. 

I’ve recently had to do this over the course of 2019 as I was deep diving into our projects’ accessibility issues. Not only did I need to learn accessibility well enough to do my job, I needed to become good enough to make sure I wasn’t making the same mistake in the knowledge transfer to the veterans we teach. So I went to the store and bought a composition book and wrote Accessibility on it. From then on, every ticket I fixed and every course I did, I wrote what I learned in that notebook so that I had a quick reference if it came up again but also to retain this information better.

Create an accountability network

Learning new things can be difficult, but doing it alone can be even worse. Motivation and discipline can only take you so far and if you’re like me, you sometimes need an extra push to get there. Build an accountability network that will regularly check in and ask you about your progress. They don’t have to understand what you’re doing or even be on the same journey as you, but knowing that you have people who are going to check in on you can be that mental kick in the rear to get you going on days you just don’t feel like learning anything. You can even use social media like Twitter for virtual accountability partners. The #100DaysOfCode hashtag is a great way to document small wins everyday and to receive positive reinforcement to keep going and make it a habit. 

An easy way to handle accountability is to treat it like a stand up, much like the Health And Wellness Checks we had to do in the military. Make it short and make it focused on what your goals and what’s blocking you. Your network should be asking you what are you working on, how is the task going, are there any blockers, and do you need help.

If you’re a negative reinforcement person like me, I’ve found that what works for me is giving away money. Telling my kids that I will give them $100 each if I don’t finish something by a certain date is super motivating for me. They’re already expensive, and I don’t want to lose anymore money to them, especially if it’s because I failed in my goal to grow.

Find a mentor

You don’t know what you don’t know, so it’s best to find someone who does. A mentor in the discipline that interests you can literally halve the amount of time it takes for you to reach your goal and is much easier to acquire than you think. Most people who are good mentor material are literally looking for someone to do a knowledge transfer with as a way to give back. They are just looking for people that they feel that the time they will pour into that person will be a good investment. 

This is where having a plan, knowing your goals, and doing your research goes really far in convincing someone to mentor you. I remember when I approached Billy Hollis to be my mentor last year. It started with a DM on Twitter to ask for lunch to discuss mentorship opportunities. I knew that Billy was passionate about speaking, teaching, UX, and business, which were all the things I wanted to perfect and focus on myself. Over lunch, I presented my goals, plan of attack, data, and what I had accomplished over the past four years. Afterwards, we agreed on a plan to to meet and keep me growing in those places, which has really made me a better leader. Now, you don’t have to go as far as I did, but just putting thought into your ask goes a long way with a lot of people.

Wrapping up

With everything I have shared, the most important thing to do if you’re new to programming is to execute. After reading this post immediately download the boxing timer app, set it to three rounds and start planning out what you’re going to do and how you’re going to do it. I always stress to our veterans that the American Dream of Life, Liberty, and the Pursuit of Happiness means that there are numerous people over the course of history who have sacrificed their lives. They didn’t do that so you could not be the greatest version of you, but it comes at a price, so stop streaming The Mandalorian and get to work.

Tags: ,
Podcast logo The Stack Overflow Podcast is a weekly conversation about working in software development, learning to code, and the art and culture of computer programming.