3 Programming Habits to Build Now
By: Amy M Haddad
You’re learning to program, and looking for some answers. What skills do you need to develop? What concepts matter most? Which resources are best?
We’re in such a rush to get up and running as programmers that we fail to ask a critical question: what habits should I build?
The answer to this question requires the big picture view. It considers the actions to take now that’ll help as you start your programming journey, and will pay dividends in the years to come.
Whether you’re a self-taught programmer, bootcamper, or student in a formal computer science program, there are three programming habits to begin immediately to make your programming journey an effective one.
1. Learn how to learn effectively
You may be surprised that I included “learning how to learn effectively” in this blog post, and as the first habit to boot. But there’s a valid reason: it’s that important.
Yes, there are a slew of concepts and technologies to learn. However, spending time learning how to learn will help you now and as you progress in your programming career. That’s because the learning never ends.
My own journey underscores the importance of learning how to learn, which was something I failed to do on my first attempt at programming.
Three months into my self-taught journey, I was at a crossroads. I was putting in a lot of effort, but I was making little progress. The problems were hard, as were the concepts. The number of technologies I needed to learn seemed to grow by the day.
I didn’t know how to learn technical topics effectively. Plus, I didn’t have a solid learning strategy in place. I felt completely overwhelmed and underprepared.
Then the unexpected happened. I listened to a podcast where Shane Parrish interviewed Barbara Oakley, an engineering professor and author. The topic was “learning how to learn.”
Listening to this podcast was a turning point for me. It’s when I decided to restart my programming journey the right way, which meant learning how to learn. I read books and watched lectures online about how to learn; I also evaluated my own learning style and the programming resources I’d used.
At the same time, I developed an overall learning strategy that included multiple streams of learning.
I did these things as I rebooted my programming journey. In round two of learning to program, I felt much more prepared: the learning began to stick and I figured out how to work through mental roadblocks.
It’s not to say that learning how to learn makes learning to program easy. Programming is still hard. But the process becomes much more effective.
Despite your current path (school, bootcamp, or self-taught), at some point you’ll have to learn a language or technology on your own, and you’ll have to come up with the best way to do so. So it’s worth taking the time to figure that out now.
That said, here are several learning resources I recommend:
- Shane Parrish’s interview with Barbara Oakley
- Make It Stick: The Science of Successful Learning by Mark A. McDaniel and Peter C. Brown
- A Mind For Numbers: How to Excel at Math and Science (Even If You Flunked Algebra) by Barbara Oakley
- The Art of Learning: An Inner Journey to Optimal Performance by Joshua Waitzkin
- Learning How to Learn: Powerful Mental Tools to Help You Master Tough Subjects by Barbara Oakley
2. Learn how to problem-solve and get good at it
When given a math problem in school I’d dive in at full-speed, which is what I did when I started to program.
No plan. No process. No stopping to think what the question was really asking. Unsurprisingly, I was spinning my wheels unnecessarily and hitting roadblocks on the simplest of problems.
But soon things began to change.
I have George Pólya’s excellent book, How to Solve It, to thank for that. His book has taught me about the problem-solving process, and how to effectively solve problems.
As a result, I’ve learned to slow down, think through problems systematically, and have a problem-solving system in place. The problem-solving process became more productive.
With a process in place, it's time to get good at solving problems. This involves solving problems, to be sure.
But less talked about is the quality of this practice. If you’re investing time to learn how to problem-solve and you’re spending time solving problems, you might as well get the most from your practice: make each problem count.
To me, that means taking a multifaceted approach to problem-solving. Instead of solving as many problems as fast as possible, try this:
- Solve challenging problems on a variety of platforms.
- Study your solutions: clearly understand what you did and why you did it.
- Get feedback and apply it.
- After you solve a problem, study the solutions of others who’ve solved the same problem.
- Add cross-training to your problem-solving practice: solve problems in different programming languages or solve math problems.
Problem-solving is fundamental to our craft, and it’s a skill that takes time to build. The problem-solving treadmill can be tempting, but in my experience quality wins any day of the week.
3. Read technical programming books
Just like money in the bank can compound over time, so does your knowledge. There’s a wealth of information out there about our field. Pick up a few technical books and make reading a habit.
Many balk at the idea of reading actual books because there’s so much free content online. There’s definitely a place for online articles and blogs. But there’s also a place for books.
Blog posts and books serve different purposes. A blog post may whet your appetite on a topic, offer a unique perspective, or give you a new idea to try. Then pick up a book to dive deep into it.
That’s because books provide depth. They give you the details of a technology or topic that a blog post simply can’t. A blog post on software design, for example, may be a few hundred or a couple of thousand words. A book on the topic can be tens of thousands of words.
I’m not suggesting that you cut out online resources. Instead, I’m suggesting that you pick up some technical programming books and devote some of your reading time toward reading books.
Learn how to write better code. Solidify your knowledge of data structures, loops, and conditionals. Find out about design and algorithms. Really understand Test-Driven Development. The list of programming topics to learn about goes on and on.
Here’s a simple way to start this habit: spend 30 minutes each day reading a technical book, and do this for a month.
As a result, your context will grow and you’ll see things differently. You’ll probably be amazed at how much you’ve learned and will find the time to continue it. Or find ways to increase to spend more time reading.
This is a powerful habit to begin today.
Getting good at anything involves having good habits and a system to help you get better. The suggestions I’ve put forward in this article are deposits for the long-term. Start the journey out right.
← back to all posts