How to Become a Better DeveloperActionable steps to better yourself and your careerChris GregoriBlockedUnblockFollowFollowingJun 17Photo by Elijah Hail via UnsplashDisclaimer: Please keep in mind that these are my opinions.
I’ve been programming professionally for 6 years, I do not claim to be an expert or even exceptional at what I do but I can say with some certainty that I have definitely improved over time.
In this article, I’m going to outline some of the things I think will help that I do or have done.
With that out of the way, let us begin.
Follow the right people on Twitter and use it diligentlyTwitter gets a bad reputation for being full of toxic personalities and memes but if you take the time to cull the bad eggs and focus on following good content, you’ll soon find it to be a treasure trove of technical insights.
It’s not just about reading content, Twitter is a social network, get involved with the community and your fellow developers.
You’ll pick up tips, learn about new technologies and might even laugh along the way.
Here are some of my favorite developer accounts to learn from:Ali SpittelKen WheelerKent C DoddsSarah DrasnerTJ HollowaychukEmma WedekindJosh ComeauMonica DinculescuMatteo CollinaCreate your reusable code arsenalWhen you write useful components, add them to your reusable arsenal using tools like Bit (GitHub).
This way, when working on a new app or project, you don’t just come with knowledge, you come with a useful Lego box of code.
Share reusable code components as a team · BitEasily share reusable components between projects and applications to build faster as a team.
Collaborate to develop…bit.
devCarry your reusable components to build anything, anywhere.
Don’t take everyone's word as gospelI’m not saying you should question everything you hear or you should start arguments with developers on social media.
I’m just saying you should question things if they don’t sound right to you.
If you hear something that contradicts what you were taught or have experienced and even if its from someone you consider better/more experienced than you are, bring it up and maybe the person on the other end (or some of the many reading the tweet thread) will learn something; if you’re wrong then you’ll learn something and be better off for it.
Listen to music without lyrics while you workI’ve usually worked in open plan offices, the collaboration and instant feedback it provides is great.
It’s also a more social and lively environment most of the time.
Despite the benefits though, it can get noisy; developers pairing, colleagues talking about Love Island, things falling over, impromptu team meetings etc.
Invest in a good comfortable pair of noise canceling headphones and find something to work to.
I’ve recently taken to listening to video game music (perfect as it’s literally designed to be ambient background noise to allow players to focus on other tasks) and I genuinely feel like I focus more with that than when I use to listen to something I would mentally sing along to.
Here’s a link to the Spotify playlist I’ve been using lately if you’re interested:This is obviously a very subjective point, some people can only work in silence so if it works for you, find a quiet environment or use those headphones to simply block out noise.
Work on side projectsI’ve been building side projects for years now and whilst they usually don’t make me any additional income, they help me learn new things all the time.
New languages, frameworks, problem spaces you wouldn’t necessarily tackle, it’s all useful.
You might pick up a new skill you can apply at work, or it may give you something to talk about in your next job interview.
It may even give you an avenue to that ever elusive passive income.
It can be a big time investment but the best part about it is that it’s all done on your own terms.
No requirements, managers, product owners, or users to rush you into making features, you can do this entirely at your leisure and take the thing you’re working on in any direction you like at whatever pace works for you.
Some of the small projects I’ve worked on that have taught me things and solidified my skills include:Uniqitty – A real-time cat name lookup tool in Vue and FirebaseRopinion – A tool to classify the happiness of a given subreddits community on any given day in React and GolangSeagull Trainer – A kegel trainer application for iOS written in React NativeGo-get-im – A Golang CLI tool for downloading imgur albums from Reddit usersTake a breakContrary to my last point, don’t always feel like you need to be working; software is hard, don’t let people tell you otherwise.
When you do it all the time you get burnt out even if you don’t notice.
Stop what you’re doing, take a break, get a drink, go to sleep, do something easy or fun and forget all about it.
When you next come to it you’ll be refreshed and able to approach the problem with a fresh perspective.
I frequently work on issues, get stuck for hours only to solve it within 5 minutes of coming back to it after a break.
You also shouldn’t feel like you need to be learning and improving all the time despite what your online peers may seem to be doing.
Sometimes in software you think that stopping for a week will render you useless and out of touch with the latest JS framework – it won’t.
Your brain needs a break, feel good about giving it one.
Ignore Imposter SyndromeOne of the most common thoughts to plague the minds of engineers (and dozens of other professions) is imposter syndrome; the idea that you don’t deserve to be where you are and aren’t good enough to do what you do.
You do and you are.
It’s an extremely difficult feeling to quell (and I can’t say I’m very good at it myself) but something I’ve found that helps is to list some of your recent achievements relating to your job.
What feature did you recently implement?.How many people are using it?.Who’s life did you make easier and how often do you do that?.All the time, that’s how often.
Also remember that if you’re employed as a software engineer, people have hired you.
They’ve interviewed you, set you through your paces and deemed you worthy enough to pay you for your time, that’s not easy and you did that.
Is it more likely that you’re fooling everyone involved in that process or that you actually might deserve to be there?Probably the latter.
Learn something different (language, system, application type)Relating back to the point about side projects and learning new things; make sure that you step out of your comfort zone from time to time.
It’s a great thing to specialize in your area but consider tackling something you don’t normally get exposed to.
Are you a front end engineer?.Implement an API or try a brand new framework.
Are you a backend engineer?.Write some fancy CSS to light up your name in Hollywood lights.
Mobile engineer?.Write a CLI tool in a functional language.
It doesn’t matter what it is as long as its a little different every now and then and it’ll open up a whole new paradigm of things you can apply your skills to.
Have you ever used a functional language?.Tried out Rust yet?.Why not swap out React for Vue for a bit and see how you like it?.Hell, write a compiler and see how much you learn.
Finally, share your workIf you create something, shout about it.
Don’t be shy.
Get feedback, ask for help, contribute to open source, find out what you can do to help it and other projects and developers.
It’s all part of the learning experience.
Use Twitter, Hacker News, Reddit, Facebook, LinkedIn, shout about what you do and be proud of it.
Bit is a great platform to share the great code you write, so others on your team or the community can find and use it.
That’s very helpful.
Developers are very privileged to be blessed with an industry that rewards the time you put in.
Use it and help as many people as you can, and try and have some fun with it.
And if you don’t have the spare time to devote to it, don’t stress about it, doing your job will see you improve regardless.
Keep going, you got this.
Enjoyed my ramblings?.Follow me on twitter & dev.
to to hear more of my development tales or keep up with my side projects on my personal site.
ioHow to Share React UI Components between Projects and AppsA simple guide to help you organize, share and sync React components between your team’s apps.
io.. More details