Quantcast
Channel: program happy »» Attitude
Viewing all articles
Browse latest Browse all 8

The Progressive Programmer

$
0
0

When you’re trying to lose weight and get fit, it’s relatively easy at first, especially if you’re really out of shape. You add in some exercise, make smarter food choices, and bask in the glow of the scale heading downward and your strength and stamina heading upward. It can be fun.

But it doesn’t last. Eventually, your body’s metabolism adjusts, making it harder and harder to keep losing weight. The gains at the gym stop coming so easily. Your willpower begins to wane as you stop making progress on the scale. You’ve hit the dreaded plateau. I’ve done this so many times, it’s not even funny. The good news is that it is possible to bust through a fitness plateau by trying something different – new exercises, a different level of intensity in performing the exercises, mixing up the number of calories you’re eating each day, etc.

You can hit this kind of plateau as a programmer, too. Writing software that people really enjoy using is a skill. Writing software that people enjoy using and you enjoy maintaining is an even higher-level skill. While some people catch on quickly to programming, no one is born with this kind of ability; it requires learning and progressing. Unfortunately, anytime you make progress at something that requires effort, a plateau is possible.  Considering the human tendency toward homeostasis, we can say that a plateau is likely.

Programming plateaus are more subtle than a weight loss plateau.  After all, you’re not stepping on a scale every week to measure your coding skills. Analyzing yourself is the best way you can tell if you’re plateauing: What have I learned new lately? When was the last time I tried learning a new programming language? Have I had anyone review my code recently? These are the types of questions that help you determine if you’re “leveling out.”

Our jobs can work against us in the matter of plateauing. There’s so much to do, and so little time to do it, that we often focus on just getting stuff done. On pushing out code that works, even if it’s not perfect. There’s nothing wrong with that, but it tends to push a person toward working with what’s safe and comfortable, not towards trying something new and different.

Try Something New

As I mentioned earlier, fitness plateaus can be broken by trying new exercises or doing the same exercises faster. It forces your muscles to adapt, which leads to growth. We need the same thing for our minds – if we’re just doing what we’ve always done, then we’re always going to be what we always have been. Our coding skills grow as we try and learn new things. So how do we do that?  Here’s some suggestions:

  • Learn a new language. Programming is about problem solving, but each language has nuances that lend itself to a certain style of problem solving. The idea is that when you learn a new language, don’t try to use it the way you do one of your current languages. For example, I went to Ruby after using PHP for a few years. It took a while for me to stop trying to write loops, even though Ruby has loops. Using blocks for iterating over things is the “Ruby way”, love it or hate it. But forcing myself to look at my algorithms in that slightly different way let me grow.
  • Try a new platform. The first programming that anyone actually paid me for was the backend to a few simple PHP websites. This went on for a year or so, while my real job with the company was as an IT technician. But later on, I was asked to be their programmer for a Windows project using Delphi. It was a major leap for me from going to simple scripts that spit out HTML to a full-fledged native application interfacing with Windows. But it forced me to grow. If you’re into web dev, then try some native development. If you’ve been using iOS, try developing something for Android or even Windows. The point is to try something completely different from what you already know.
  • Find a coding buddy. It’s been stated numerous times that people who work out with a friend or hire a personal trainer stick with their program longer. If you involve someone else in your progress, you’re more committed; you have an extra motivator because you don’t want to let the other person down. It’s similar with writing code – it can be done solo, but you’ll have more motivation for improving if you’re working with someone else. Earlier, I said that the best way you can tell if you’re plateauing is to ask yourself questions. But it’s not the absolute best way to determine your progress (or lack thereof). The best way to gauge progress is to get an outside opinion. If you work on a team, ask one of your team members for help in making progress. If you’re a solo developer, like I was for years, then find a coding buddy who can review your code and give honest feedback. It might be painful to hear what you need to work on, but it’ll make you better.

Reap the Rewards

Like exercising, it’s not easy to keep making progress as a developer. It’s hard. You’re going to feel sore at times. It requires effort. But if you force yourself past those obstacles and keep making progress as the years go by, there’s a lot you can look forward to. Here’s a sampling:

You’ll be more productive. As you learn new things and do the research that comes with that learning, you’ll pickup tips or tools that let you get more done in less time. The best example in my own case was learning to use Vim as my text editor. I happened to read a blog post on how one developer improved their productivity by using Vim, and I was intrigued. It was a somewhat painful learning experience, but it’s one of the most productive moves I’ve made since I started writing code.

You avoid painting yourself in a corner. “I just don’t know how kids keep up with technology these days – it changes so fast.” Have you heard that? We might smile if our parents or grandparents say that, but they have a point – things do move fast in the tech world. What you’re using today may not be what you’ll be using five years from now. Hey, in five years, it’s possible that no one will be using what you’re using today! As you strive to learn new things, you’ll have more job options, you’ll be more well-rounded as a programmer, and you’ll have more connections with people who can help you improve.

Your problem-solving skills will improve. I touched on this already, but when you try new things, you’ll find that you need to learn different ways of looking at problems. That’s important, because programming is simply being able to solve problems. Gain experience solving problems in different situations with different environments and languages, and you’ll be a better developer.

Break That Plateau

Keep writing code long enough, and you’ll reach a point where you’ll find yourself standing still, when you’re not learning (or even trying) anything new. Fight through that state of mind! Keep focusing on improving your skills, increasing your skill set, and look forward to the rewards of being a progressive programmer.

Well, I’ve said my piece.  Now it’s your turn – how do you make sure that you’re always improving as a developer?

 


Viewing all articles
Browse latest Browse all 8

Latest Images

Trending Articles





Latest Images