I've been a developer for over fifteen years and I've loved almost every minute of it. I can't imagine doing anything different but there are moments when I think back to starting out and how different the development landscape was, especially when it comes to learning how to code.
So a lot of my early career felt like fumbling around for me, picking up everything I could from senior developers, hoping that they knew what they were doing, reading as many books as a I could and practicing my craft.
It's fair to say there were quite a few things I wish I'd known a lot earlier in my career that could have helped me progress faster or just develop both my coding skills, as well as my more complimentary skills, such as dealing with people or learning how to learn.
Hopefully, with this article I can distill what I've learned to date and share some things to watch out for and take on board to help you with your career as a frontend developer.
(Pssst -- If you like this article, come find me on Twitter where I post regular helpful content every day)
This very blog you're reading now (whether it's on my own website or my Dev or Hashnode accounts) has grown quite popular and that's great. But I really wish I'd started much earlier and written more frequently.
Honestly, blogging is such a great way to cement what you've learned as you're learning it. You absolutely do not have to be a developer with X years in the business, nor do you have to be an expert.
All you need is a curios mind and to think about writing for your past self: write the article you wish you'd had on the subject.
As a bonus, if you fix something particularly tricky, you'll be able to refer back to your own article to help you solve it in the future!
My friend Catlin Pit has a couple of recommended articles on blogging too:
- Should you start a blog as a developer
- How to start a blog - a common question after 'what do I write about?'
This seems obvious, but in my experience it's really not. A lot of developers, especially those early on in their careers are easily intimidated by more experienced devs or just those that have been around longer, and this can prevent them from speaking up.
But you know what? That's how you learn: you ask questions, you get answers (and, back to the previous point, you now have content for a blog article!).
Never be afraid of asking questions, especially if you're stuck on something. There are no stupid questions, but I'm not going to lie, you will at some point come across arrogant or unhelpful people who will make you feel otherwise. My advice, ignore them and find more open and helpful people.
If you love what you do and are fortunate enough to get to do that regularly, especially as a full time career then you've hit the jackpot.
However, I see a lot of people stuck in places and in roles that they just don't have the passion or drive for. I'm well aware that not everyone is fortunate enough to be able to pick and choose, but as developers we have long held a valuable position in the job market where there are more jobs than there are developers.
But this is really about having a truthful discussion with your inner dev and being both honest about what you really enjoy doing/not doing, and realistic about how to start a role doing this.
For example, if you really really really don't like PHP, then take care when interviewing or seeking out roles in development agencies where WordPress is heavily featured.
This advice is especially true for those seeking, perhaps, their first development roles. Be honest and candid about what's right for you and (if you're able to), don't just jump at the first opportunity that comes your way.
The more you can discover what direction you want to travel, the better aligned you'll be down the line in your career.
With all of the above said, please don't put pressure on yourself to decide too early. Sometimes you have to experience what you don't want to know what is right for you.
I was supremely fortunate to have worked with some amazing developers back when I started. They were experienced, knowledgable, helpful and humble and really took me under their wing. I'll never be able to thank them enough.
Therefore, I'd highly recommend getting yourself a mentor to help with your development journey.
This is different from a teacher or tutor (although there is overlap at the edges of the roles): a mentor is a guiding light to help give you focus and direction, to answer questions and point you along the right path for your particular journey.
Following on from the last point, you too can be a mentor and again, you don't have to have coded for decades or be an absolute expert.
Think about where you are on your journey and how far you've come. Even if you're 6-8 months into learning to code, there are people only 1-2 weeks into theirs; these are the people you can definitely help out.
That said, if you are quite experienced, then all the more reason to help someone else who's just starting out.
Become the guide you wish you'd had when you started
It's rewarding beyond measure, and a win win situation: someone getting started is helped and guided, and you learn so much in the process, believe me.
I'm from Yorkshire in the UK and there's a saying in this North East part of the world: Shy bairns get nowt.
In essence we're really saying that 'you get nothing by keeping quiet'.
It's easy to look at seemingly successful developers and popular Twitter personas and assume that everyone has lucky breaks and opportunity just falls from the sky.
To be honest, this does happen to a small number of people, but most of the successful people you'll know are a combination of trying (a lot), keeping their eyes open for opportunities and only a little sprinkle of luck.
Most of the time it's about asking for what you want. Now I'm not suggesting you just go kicking your boss' door in a demanding a raise, but in all seriousness, if you think you deserve a pay rise, prove it and then ask for it!
Want to switch up your career? Ask about training programs at your current workplace. Want to talk to someone on LinkedIn about their career? Ask them.
The worst that will happen is you get a 'no'. In which case, time to move on and try something else.
This is a big one for me. It's very easy as a human to skew towards the negative. Even if you've just launched five features on a product used by millions, I would bet that it's that single tiny error that happened that you'll be thinking about, right?!
I keep a notebook of little victories and compliments I've received and look through them from time to time, especially when the imposter syndrome kicks in from time to time.
It's not about ego or vanity, but it's about celebrating your victories and remembering how far you've come.
The world of deveopment is HUGE. I mean seriously almost infinite. Between languages, frameworks, patterns, platforms, frontend, backend, the list goes on.
When you're starting out there can be an overwhelming urge to have to know everything all at once. But I'm here to tell you that you don't need to know everything and, in reality, you can't or won't ever know it all q-- the landscape is just too vast.
Just because someone is a senior developer or an architect or principle, or has been programming for 100's of years, does not automatically make them the all knowing beasts you think they may be.
I'll let you into a secret: I've been developing in a fullstack fashion for over fifteen years and I still have to look up some of the most trivial snippets of code; I still miss semicolons out of things and I still make mistakes.
Sure, I know a lot about a lot, but there's oceans of knowledge I haven't even sailed upon. Just because people have been around the block doesn't directly equate to an infallible, all-knowing knowledge. Neither does it mean they're always automatically right or know better.
The point I'm driving at here is that just because you're less experienced or starting out doesn't mean your ideas are less valuable or that you have less to contribute.
It's also why adopting a life long approach to learning is so important as a developer.
Another thing to bear in mind is that some people get caught up in a title race and it's easy to think that becoming a 'principle developer' or 'lead architect' is the end goal. Yes, titles and recognition are nice and there's money and rewards that come with more senior titles, but they don't always reflect the abilities of the holder nor
I'm not saying that it's not OK to have 'become a lead developer' as a goal, but don't set your standards by the titles that you, or others, hold. It's your attitude, actions, and what you contribute to the development community that will ultimately shape your legacy.
It really is who you know not always what you know.
I wish I'd spent more time making connections with other developers, recruiters, leaders, and makers on social media, in real life. I think I've made up for it over the years, but had I started sooner, who knows what doors it could have opened up.
Make yourself a Twitter profile and register on LinkedIn. These are both excellent platforms for connecting with your fellow devs and growing your network. It's not about a popularity contest, but it'll help you with a number of areas in your career:
- Finding a new job.
- Starting a freelance business.
- Launching a product or service.
- Selling content, ebooks, courses, and more.
- Make new friends.
- Helping other to learn.
- Contributing to open source.
And it doesn't have to involve hours and hours of work, but just regular little interactions with people, making connections, being helpful and honest, being yourself. Over time, your network will grow and you'll get as much out of it as you give.
As with all life, you're going to come across people who, for whatever reason, just aren't great. There's a lot of gatekeeping in a lot of industries, but it's especially rife in the tech world.
You can avoid a lot of it by just not engaging, and I'd strongly suggest that you do avoid as much as possible. I come across a lot of developers who have been put off before they've even started because of trolls, haters, negative attitudes, condescension, and don't get me started on how women in tech can be treated.
Development is one of those few things in life that's truly open for everyone. It's about your mental attitude and looking at problems, breaking them down, solving for others. Everything else is just tools, time, practice and approach.
I don't like CSS-in-JS, but you know what, it's a valid approach and if it helps some people build something awesome for others then that's OK by me.
Sure, there's better ways of doing things and some tried and tested approaches that work smoother than others, but a lot of development is opinions, nothing more.
So don't let others tell you you can't or let them intimidate you of course. Similarly, don't shame people when they share something of theirs.
I love recruiters. Well, some, recruiters. In fact, I owe a lot of my success to the good ones.
If you want to get your foot in the doors of places you might not ordinarily be able to, get in touch with some recruiters and share with them your career aspirations. This is an essential part of networking for me.
It's increasingly important as a junior developer starting out to grow a connection base that includes at least a handful of trusted recruiters that take a genuine interest in you. They good ones will put the work in, take the time to get to know you and your skills and really talk you up to their clients (the employers).
Don't be put off by the chancers, the glorified mobile phone salesmen, and the ones that don't have your interests at heart.
I have an article on fighting imposter syndrome as a developer which is worth a read, but there's bound to be a few points in your career where you'll feel down, feel a little worthless like your contributions don't matter, and wonder what the hell you're doing with your career.
That's OK. That's normal and it's more common than you think. In fact, it's very common in high-functioning, intelligent people. That feeling of not belonging, where you're simply blagging it and faking it and people will eventually find you out.
This is where little tips like talking about it helps, as does keeping that accomplishments journal we talked about earlier. Believe me, everyone suffers from it here and there and I'm no exception.
Just remember that you can combat it and you should push ahead with your goals regardless.
I have a few other articles and helpful recourses if you're looking for a leg up in your development career or to get started as a developer: