So you’re learning to code. Congratulations! The world of programming is as rewarding as it is challenging. What you get out of it correlates with how much work you put into it. But how do you put in that work in the most efficient way to meet your goals? Here are 5 practices that will make you a better programmer.
1. Ask Questions
One of the most common regrets programmers have when learning is not asking enough questions, especially during their time as a student. It goes without saying that nobody wants to look stupid.
But remember this: you’re here to LEARN. You’re spending tremendous amounts of time, energy, and money on your coding bootcamp/CS course, so make the most out of it! Unequivocally, questions lead to growth, so ask away.
When none of your classmates are asking questions, you may feel like you’re the only one that doesn’t know, but in my experience, it’s usually the opposite. More than once, I asked what I thought was a dumb question in lecture, then afterward, a cohort-mate told me they were glad I asked because they had the exact same question. These were nice reminders that we were all students, and we were all here to learn.
A good environment encourages questions. Your peers and your instructor or manager should be accepting and understanding. After all, they were all in your position at some point. The more good questions you ask, the better you’ll be able to contribute. Unfortunately, you might find yourself in an environment that discourages questions. If your instructor, manager, or peers actively try to make you feel dumb for asking, I would strongly consider seeking an alternative study/work space.
What about that coach that just rephrases my question and repeats it back to me? While that might not seem helpful, they are trying to avoid spoonfeeding you the answer. Their goal is to reinforce self-subsistence, a necessary value in the programming world. Whenever you can, ask yourself (or Google) your question and try to figure it out before you ask others. If that doesn’t work, try asking a more specific question until you piece the puzzle together.
Ultimately, your goal is to be resourceful. Whether that looks like asking your instructor or peers for help, or asking yourself and being self-reliant, a good programmer asks lots and lots of questions.
2. Have a Programming Group
Having a good programming group makes it natural for you to share and learn. This may look like a classroom, work space, or enthusiast Slack/Discord group. Coding with like-minded programmers has been a key part of my growth as a programmer.
For some, it’s easier now that everything is done remotely due to social-distancing, and people aren’t limited by physical distance, but others may find it more difficult to connect. Regardless, having people to bounce ideas off, absorb knowledge from, and share experiences, is crucial for maximizing your intake of coding know-how. Be sure to offer your help, and you will have that help returned. everyone knows something you don’t.
If you went to a bootcamp or university, naturally you can try to keep ties with your classmates or other alumni. Otherwise, Meetup.com is a great resource for finding all sorts of groups. You can check out codebuddies.com as well, with an emphasis on using Slack to stay connected.
3. Keep Moving Forward
While you’re learning, there will be a point where you will be bombarded with information and concepts and you will feel overwhelmed. You might feel like you’re behind and that you want to really understand something fully before you move on. While you can read documentation and run your labs over and over again, many times it’s good enough just to know that something works the way it does, and not necessarily why it works.
When you’re first learning about html forms, you don’t need to know how you’re creating a new User, just that you are. Later, once you learn about HTTP methods, you’ll understand that your form was POSTing your parameters from your MVC View to your Controller, which tells your Model to create a new User instance, and updates your View again to show the newly created User, all through the magic of ActiveRecord and routes.
On a larger scale, when you build your first React app, you can try to really get into the nitty gritty of how you’re passing state from a parent component to a child component, and maybe refactor your spaghetti code, or you can use the knowledge you gained on a new project while implementing Redux or Hooks. Either way, you’re gaining experience, but the second approach has you learning something new on top of practicing what you learned before. I find this a much more efficient approach.
4. Stay Curious
I hear a lot of similar questions in the form of “Should I learn this?” or “Is it worth learning that?” Most likely the answer is yes.
Programming is all about learning, and the more you learn, the more experience you have. You may not ever use Ruby in a production level app, but just by using the different syntax and approaches, you are practicing “learning how to learn.”
Of course, in an age where everything is an opportunity cost, you may wonder if it’s better to spend your time with one technology over the other. By all means, if you feel adding React Native or AWS to your resume is more beneficial to you than picking up Rust, go for it. But if nothing else, the extra reinforcement helps you get comfortable and fast with picking up new technologies and adapting, especially when you’re going to be learning a lot in your first job. Putting in time and practicing are directly relevant to your skill, so practice a lot!
5. Practice Big and Small
Having a few large projects is great for having exciting, meaningful pieces that you take pride in and show off your technical robustness. Timed code challenges are great for building your problem-solving skills, exposing you to self-contained, controlled puzzles. It’s often best to have a good mix of the two for maximizing your learning and improvement.
Take the way a classical musician practices. She may have a large orchestral piece that takes weeks or even months to get down, but she might warm up with scales and arpeggios, then run through a few etudes to practice specific techniques. In the same way, a programmer can expand her daily practices to cover an assortment of ways, thereby becoming more well-rounded and overall experienced.
Whatever way you go about coding, be sure to stay happy and focused. Use these tips wisely, and keep your goals in sight. Happy coding!