Being a programmer can a fun and rewarding career. Particularly in the later stages when your experience has grown and you have more freedom as to how and what you're going to be building. And while fun at first, it can get difficult and frustrating fairly quickly. Learning about jQuery is great. But building a mobile friendly custom inventory management system in MVC using 3rd party POS logic isn't.
So keeping those skills sharp is a must, both for your employer and for your sanity. The easier that you can calculate the logic the smoother and funner your job will be. On my journey, the following have been incredibly helpful in helping me become the best programmer than I can muster and hopefully it does the same for you.
See what others are doing
And by that, I don't mean look at the current social media apps. Most of them tend to do the same thing as normally they follow what the market is calling for. If AR picture apps are in, then every app will be doing the same. But I mean more along the lines of see what other programmers are building. The hobby programmer will always be tinkering with more interesting ideas than any that you will find sitting behind a chair for hours at a time.
I personally spend time on sites like CodePen to see what the community is up to. And each and every time I am blown away at the creativity and complexity that other programmers have developed. Things like the following:
Yeah. That's Homer Simpson. In CSS.
Do not repeat yourself
I repeat. Do not repeat yourself. At least, don't repeat yourself forever. A common occurrence with programmers is that they get really good at whatever they do repeatedly, and so a few things can happen. They'll either copy and paste more and more frequently or they'll write new code very similarly to past code, because it works, so why not. The problem is, they're not learning anything new. They're not questioning if what they wrote can be improved upon or if it's even 100% right in the first place.
A practice I do all the time is to take any code, and I mean any code, that I've written more than once and add it to a central code library which I maintain. So you're not just copy and pasting code really. You're generalizing your code. Which is much more difficult than it sounds. It forces you to rethink the way you built something and to make it more and more granular so that it an be applied in more places.
The following are functions that are currently sitting in my library, and which get used constantly.
public string LogError(error);
public string GetData(sql);
public string GetPageSource(url);
public string GetStringBetween(string, start, end);
The best part of course is that it follows the black box model. So any improvements that come down the road will not effect any of the code that relies on these functions.
always be improving ... - ThatSoftwareDude
Revisit your old projects
There is no better wake up call to a programmer than to see something that they programmed 365 days prior. Or even 6 months ago. If you're constantly coding, then you are constantly getting better at it. You just don't notice it. So going back a few months to see some of your loops is a good way to see your progress.
This also works in reverse. There have been many a time when I've gone back to review old projects just to wonder at how on Earth I could have made something so complex.
Meet other programmers
At your level or close preferably. You'll either have a fantastic time discussing projects and ideas, or you'll end in a screaming match about which new framework is the future of technology. Either way, you're getting exposed to code on a different level.
And it's not as hard as it seems to meet other like minded programmers. A quick trip to Meet Me and a quick search for code leads me to more than a few weekly meetups with other coders. All free and all have coffee. And surprisingly many of them are kept to small numbers for those socially awkward coders out there.
Stop insulting new technology
This one is tough. Because every programmer is going to get to this stage at some point. And getting out takes time. It is true, that newer technology is worse. By its nature. It's brand new. Of course it's worse than previous tech. But it will be improved upon. And it will be the future at some point. And because you insulted it so much, you will never use it.
For me this occurred with Bootstrap. When it came out everyone talked about its amazingness. But I steered clear, due to the fact that you were essentially locking yourself into a system that was out of your hands. Until recently, when our company needed to create a brand new portal for a partnership that we were working on. Well, it was time to give Bootstrap a second chance. And how amazing the experience was. I won't go too deep into how it went, at least not in this post, but it went well, and in incredible time.
Build more stuff
Just keep building things. It doesn't matter how trivial you think it is. If it's an idea you had, just build it. This trivial idea will stick around. And will help you later on with another idea. And then another. Until you're building a billion dollar empire and you have no idea how you got there. So build it, share it, delete it. Whatever you have to do. But just built newer and newer stuff.
Becoming a great programmer unfortunately (or fortunately) isn't something that you will do in a week. And no amount of online courses will assist you in this. Code syntax is incredibly easy once you get a few rules memorized. But creating something is the challenge. Starting with a blank sheet and then typing your first code bracket can be terrifying to many, and so they put it off. But it's the only way to strengthen your coding muscle. So follow some of these guidelines, or don't, or share your own in the comments down below to help others out there who want to become better at this thing that we call code.