Note to Self — Stop Taking Shortcuts
In programming, and life for that matter, shortcuts seem great. They often provide quick and easy solutions, but they lack substance, and generally make things worse in the long run. It's so easy as a developer to reach for low hanging fruit. You can usually find code that's close enough to what you are trying to accomplish and simply copy and paste your way through until things just work, but we're not learning that way. We're doing ourselves a disservice. Inevitably our spaghetti code unravels, and we're left with a mess that's nearly impossible to clean up.
The Learning Process
Be Willing to Learn
I laugh at myself when I reminisce about my college years. At that time I thought my decision of what to major in would be so life-altering. Although I took a few computer science classes in college, my degree was in finance. I mean, I'm thrilled I finished and got a degree, but I so rarely use that specific knowledge.
My desire to become a web designer and eventually a developer manifested itself after I got into the 'real world'. Which meant I ventured into this industry with an embarrassingly low starting point. Like many other people I've talked to I did my best to teach myself web development through a fine mix of Google searching and trial and error. Which meant stumbling my way through getting code to work by browsing tutorials, grabbing code, and otherwise editing until things worked well enough for my specific project. That's ok, but it can lead to bad habits. Habits that are difficult to break.
The problem isn't necessarily results. It's growth. You'll plateau if your only goal is to simply get things to 'work'. There's a time and a place to meet a deadline, but there needs to be room for learning. Give yourself a chance to improve. When you grab some code and it just works. Stop. Take the time to figure out why.
Keep On, Keeping On
It seems counterproductive, but the shortest path to becoming a better developer is taking the time to learn why things work in the first place. Every time I've actually done that, it's been rewarding. I constantly need to remind myself to take time for the learning process. Hence this post! I'm by no means great at this, but I'm working on it.