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 you start your programming journey and pay dividends in the years to come.
Whether you’re a self-taught programmer, boot camper, or student in a formal computer science program, there are three programming habits to begin immediately to make your programming journey an effective one.
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 is a slew of concepts and technologies to learn. However, spending time learning how to learn will help you now and 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. When I decided to restart my programming journey the right way, it meant learning how to learn. I read books and watched lectures online about learning; 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, boot camp, 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:
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 solve problems effectively.
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:
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.
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. For example, a blog post on software design, maybe 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. 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 reading a technical book each day 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 outright.
Originally published on https://amymhaddad.com/3-programming-habits-to-build-now.