Written by Harry Roberts on CSS Wizardry.
Table of Contents
- Disclaimers
- The problem with these kinds of question
- The ‘deep’ stuff
- Focus on the right thing
- Don’t rush it
- Don’t have a plan
- Don’t set a single goal
- Keep agile
- Keep caring
- Keep karma on your side
- Don’t assume that someone on the internet knows best
- The practical stuff
- Learn on someone else’s time
- Get involved
- Have a blog
- Broaden your horizons
- You make your own opportunities
- Step out of comfort zones
- Attend meetups and conferences
- Stay humble
- Be good at your job
- Enjoy yourself
- You don’t have to do any of the above
- In summary
I receive a lot of email from younger/junior developers asking me for advice on
how to get into the industry, how to make a name for themselves, and how to make
it as a professional front-end developer.
After a long, long talk about this with my close friend Bryan
James, I have decided, in a similar vein to
Anna Debenham, to publish the most common answers as
a blog post. This post was also, in part, inspired by someone saying to me
recently:
…I might have to interrogate you as to your secret, I would love to travel
[for work] but struggle to findthoseclients.
The secret is, there is no secret. It’s all just a lot of continued, hard work.
Disclaimers
This post is long, and what follows are my personal views and, although it is
what I would advise, it’s not necessarily firm recommendation: apply your own
context, feelings, needs, and wants. I do not want to be held responsible for
any horror stories!
It’s also important that I emphasise that I’m not trying to be preachy or
righteous; people do reach out to me very frequently for this kind of advice,
and I answer as best I can. I haven’t put myself on this podium—I don’t think
I’m the best person to be giving life advice to strangers—but enough people get
in touch with me that clearly other people think I might know a thing or two.
Finally, if you disagree with anything, this is one of the few times I really
won’t care. These are my own opinions and advice; to disagree with me would be
like asking me my favourite colour and then telling me I’m wrong when I answer
blue
.
The problem with these kinds of question
One of the hardest things about answering a question like How did you get to
is that the person asking it assumes that I had a plan;
where you got to?
that I sat down and mapped out x, y, and z in
the knowledge that it would get me where I wanted, and that anyone else could
follow the same steps to the same results.
If there was a replicable, failsafe plan to success and acclaim as a web
developer, well, I could probably make a lot more money selling that than I can
make selling my time (although it would be far less enjoyable). It would also
mean that this post would be more likely to appear on Buzzfeed: This One
Weird Trick to Becoming a Successful Web Developer: Graduates Hate Him.
So, right off the bat, know that there wasn’t and isn’t a plan, or a correct
path to take, and most of the advice offered is collated retrospectively,
after things had happened. Also know that some of this would count as advice I
would like to be able to give my younger self, given the chance.
The ‘deep’ stuff
There are some larger, more overarching things that I would advise people do;
these aren’t really things you can action right away, or even measure, but they
are just general things I’d recommend you do throughout your career.
Focus on the right thing
A lot of the emails I get mention my ‘achievements’, asking how to get well
known, or how to get x clients, or how to get where you got
.
to
Straight away, it’s probably important to properly focus on what you want. If
you’re after fame and fortune, I’d tell you not to bother becoming a web
developer. If you’re wanting critical acclaim in order to work with a certain
type of client, you’ll probably be working very hard for a very long time. If
you just want to get your head down and do good work for anyone, whoever they
may be, you’re still going to have to be very conscientious.
Decide what you’re looking for (this can always change) and point your efforts
at that. To quote a previous article of mine: Make it
count.
Don’t rush it
Seriously, don’t wish your life away. I’m 24 and I frequently have mini
freak-outs about just how much more life I have left in front of me. You may be
excitable, and you may want to do everything as soon as possible, but I’ve
certainly found that as I’ve worked longer and longer, and matured as a
developer, that there is no need to rush things.
I started out wanting to do everything right now, trying to run before I could
crawl. I’m now six (yep, just six) years into being a professional, full time
developer, and I’ve come to realise just how long six years is. I’m also acutely
aware of just how many more chunks of six years I have left in front of me: it’s
safe to slow things down a little.
Don’t have a plan
I don’t think you can really plan something as long term as your career. With
something that can change so much and so frequently—and often for reasons well
outside of your control—it is probably best not to try and have a rigid roadmap,
timescale, or plan at all.
Sure, have some loose ideas of things you might want to do: I want to work in
, but you will keep changing your mind, and
a bigger agency for a bit; I’d like to work in a more creative environment; I
want to work for myself one day
your priorities will change as well. Tying yourself to a plan will probably just
blindside you.
I’ve found that I’ve largely freestyled my career based around what I’m good at,
where I am, and what I want to do at any given time. I don’t want to be rooted
in an industry that is still finding its feet.
Don’t set a single goal
Rather than aiming yourself at one end goal, intersperse your career with much
smaller ones. The problem with big goals is that:
- they can consume you, leaving you blinkered and obsessed;
- they can become unattainable, if circumstances change, or something out of
your control prevents you getting there; - they can let you down, if you achieve a goal only to be left unfulfilled
or unimpressed by it; - which means they can be anti-climactic.
Of course, that’s not to say don’t have any goals at all, just be sure to set
smaller, more frequent ones. These will be attained more easily and more
frequently, meaning you’ll feel like you’re making more progress. A small goal
every two years is better than a big one every ten.
I’ve always tried to avoid big, monolithic goals purely because I know how much
can (and will) change it all. I never once even thought about working in a
large, product-based company, never
mind thought about the fact I might enjoy that. It just so happens that working
in such a place came about almost by chance, and it completely changed what I
wanted out of my career. I didn’t have any other plans or goals that would get
in the way of me pursuing this new interest.
A lot of changes in my career have come about almost serendipitously, meaning
that a lot of it has just been changing things up as opportunities presented
themselves (you just have to make sure you take them).
I’ve never once set my sights on an end goal, I’ve always just set my sights on
the next thing, and it’s important to always have a next thing…
The next thing
Try and avoid complacency; the best way to stay driven is to always have a next
thing to be working on. Got your new job? Great! Now look at promotions. Working
for yourself? Sweet! Now work out how to make your business model more
efficient.
Keep agile
Carrying on from the previous two points, make sure you can accommodate change.
Plans will change, jobs will come and go, and opportunities will arise at times
that aren’t necessarily convenient or predictable: being able to take advantage
of these will be a real boon.
It’s not particularly easy to give any actionable points for keeping agile, but
being able to interrupt, postpone, or even cancel current parts of your life in
order to take advantage of better opportunities is always advisable. Perhaps
don’t sign a year-long contract with a company; maybe it’s best not to buy a
house when you’re tempted by the idea of working abroad. Opportunities will
present themselves at any time, and it’s nice to be able to take them.
This is also just a generally great habit to get into as a developer as
well—I’ve basically just described the differences between Waterfall and Agile
methodologies. The ability to accommodate change is a great quality for a web
developer.
Keep caring
Typically, as long as you care, and are genuinely interested and invested in
what you’re doing, it won’t matter where your goals take you, or where you
fancy taking yourself: you’ll probably find that everything just sorts itself
out. I didn’t have a plan, I didn’t go to university, I don’t have an ultimate
goal, I just care a lot about what I do. This attitude has served me well, and
has kept me driven and self motivated.
Keep karma on your side
I don’t believe in fate, or karma in the traditional sense, but I do think that
people will always remember when you helped them out, or when you did them a
favour. It’s a good idea to keep people on side for you later on, but it’s also
important to recognise when others do favours for you. Be as helpful as you can
as often as you can, and go out of your way to leave good impressions on people.
Interestingly enough, on the day I posted this article I received two
thank-you gifts in the mail from developers who I’d helped out in previous
weeks. It’s always good to help people, and it’s lovely to be appreciated. Now
we have three professionals with interchangeably fond memories of each other.
That can only be a good thing.
Don’t assume that someone on the internet knows best
Kind of shooting myself in the foot here, but no one knows you better than you
do: be careful putting too much trust in advice from others, particularly people
you don’t get to see warts and all.
The practical stuff
There are a number of things that you could action right away, and that are very
specific, short-term activities. These are the more general day-to-day things.
Learn on someone else’s time
You may want to work for yourself one day, and that’s great! But don’t wish away
your time spent working for someone else. Learn as much as you can about
process, about the industry, about clients, you name it, whilst working for
someone else. I’m very, very glad I decided to start working for myself, but
I wouldn’t be half the developer I am today had I not spent three years working
for Sky. Being able to learn, get
trained, attend conferences, and more, all whilst getting paid a fixed salary is
absolutely nothing to turn your nose up at. Make the most of your full time
jobs; don’t rush into self employment until you feel you’ve gotten every last
drop out of someone else, be that the company, their benefits, the projects they
allow you to work on, the colleagues you can learn from. Lap. That. Up!
Get involved
Be on Twitter, read the right blogs, follow the right people, participate in the
relevant IRC channels, immerse yourself in whatever it is you want to be doing
right now. Want to learn about performance? Follow the right people. Want to
learn a JS framework? Read the right articles. Want to contribute to
open-source? Get on GitHub.
Note that I said whatever it is you want to be doing right now
? This is
entirely up to you, and it can change as and when you want it to.
Have a blog
Work on something worthwhile, something compelling, and write about it.
Pioneered a new technique? You need to get that written up. Have a really great
case study about some recent client work? Share the knowledge. You totally kick
ass with a certain technology? Make your blog the go-to resource.
People like Kitty making waves in the Sass
community, Sara publishing great SVG resources, and
Ana sharing mind-bending, crazy, complex
math-based CSS transforms really help cement themselves as authorities in their
respective areas. This isn’t a quick win, but it’s certainly very effective.
One thing I wouldn’t recommend is having a blog just for the sake of it. A dozen
posts about What Pokémon can teach us about DevOps probably isn’t
going to ‘stick’ quite as well as an in-depth writeup of something more
poignant.
Broaden your horizons
And I don’t just mean by learning a different tool or framework, I mean in
general. My best work started happening when I was working solely with software
engineers; learning how and why programmers tackled problems was hugely
beneficial to my work as a front-end developer. Even broader than that, I have a
(very superficial) interest in construction, engineering, and architecture:
knowing things about how these industries operate and solve problems can be a
very useful thing in your own work.
There’s never anything wrong with learning more about anything, especially when
it can help you in your career.
You make your own opportunities
Broadly speaking, no one is likely to step up to you and just offer you your
dream job. If they do, it’ll probably be because you already proved your worth
elsewhere. Put yourself out there proactively: side projects, open-source, blog
posts, speaking. This is all about you making your own way, and not waiting for
someone else to come and do it for you (because, guess what, they won’t).
Making your own opportunities will come in many different guises, but you need
to always be making sure you’re doing as much for you(r career) as you can be.
Step out of comfort zones
It’s important to keep pushing yourself, and this can be in any direction you
choose: Want to learn a new programming language? Learn one. Want to go work
abroad for a while? Do it. Want to build up your profile? Go speak at a
conference. Want to work in an unfamiliar environment? Put yourself there.
I always said I’d never do any public speaking—I was terrified of the thought of
it—but when someone approached me and asked if I’d like to give it a shot, I
took that opportunity. I said yes, put myself out of my comfort zone, and have
never looked back.
One thing I would say, though, is don’t tell people you can do something before
you actually can. Don’t tell someone you know AngularJS and then have to learn
it on the job. I know this is probably quite common practice, but it’s basically
lying, and lying is unprofessional. I’ve always, always erred on the side of
caution in order to save embarrassment and, more importantly, letting people
down: your reputation will be worth a lot more to you in the long run.
Attend meetups and conferences
Attending conferences and meetups with talks and/or workshops is just a
GoodIdea™—it’s learning, and learning is what you need to be doing.
Meetups can be used for networking, if you’re into that, but they’re also a
great way to get inspired, see what other people are up to, learn how
competitors (individuals operating in the same industry in the same locale are
all competitors in some form or another) are currently solving problems, and how
that’s going for them. One of the best things about conferences and meetups is
being around your peers, but…
One thing I can’t stress enough here: listen more than you talk. At least in
the beginning. This thing happens more than I can even remember:
A group of people stood around at a meetup, and there’s one guy (or girl) who
loves the sound of their own voice; they haven’t thought to ask who anyone else
is, or what anyone else does, but they’re just going on and on about themselves.
After a while the conversation finally does move to someone else, and it turns
out that that ‘someone else’ is twice as accomplished as the person who just
held court for 15 minutes.
I’ve had this with people showing off about day rates, only to find that someone
earns three times as much as them; about their Twitter followers, only to find
out that someone else has ten times as many; I’ve heard people showing off about
the new technologies they’re using, only to find out the guy sat next to them
has written a full game in it six months earlier.
The amount of times I’ve been well into conversation with someone and all of a
sudden they’ve exclaimed Wait, you’re Harry Roberts?!
is staggering. I
would never assume that people would or should know who I am—far from it—but it
does highlight the fact you could be talking to anyone: find out who it is
before you indulge yourself in twenty minutes of self promotion.
It’s good (and understandable) that you’re full of beans, and excited to get
into the mix, but situations like the above are embarrassing for everyone,
every time, and it leaves people with exactly the wrong impression you wanted to
give them. Sit and listen until you know exactly where you stand in that crowd.
I’ve often found that the most insightful individuals are the ones who sit and
listen before talking.
Stay humble
As above, there will always be someone better than you, smarter than you,
more successful than you. You need to be okay with that, and be humble about it.
There will be things you don’t even know that you don’t
know,
so be fully prepared, at several times in your career, to be brought down a peg
or two. It’s happened to me before, it will happen to me again.
Once you find the people that do know more than you—be that in your field, or a
field of their own—listen to them. You can learn from these people, and add
their knowledge to your own arsenal.
Be good at your job
This seems totally obvious, but everything else that’s gone before this point is
worthless if you’re not actually any good at your job. Probably the biggest
single thing you can do to be successful in any industry is to be good at your
job. You need to be able to objectively point out and address your flaws.
A lot of developers out there are just plain bad at their jobs. This rings
true in any industry, but the barrier to entry in ours probably amplifies the
quality problem significantly. The first thing you need to ensure is that you’re
actually any good.
It’s probably worth reading up on the Dunning–Kruger
effect and
Impostor syndrome to get a
little more of an idea as to what might be influencing your opinion of yourself
(good or bad).
Enjoy yourself
You spend 8+ hours a day, 5 days a week working. No one’s got time for that
being a drag. Leaving a job because you don’t like it isn’t ‘giving up’, it’s
realising that there are better ways to spend such a huge amount of your life.
Sure, you’ll have terrible clients, or boring amends to do, or you’ll inherit
some absolutely appalling code—this is work, after all—but don’t let that
desensitise you. Being a web developer is a job that many do find interesting,
fun, and fulfilling, so make sure you try and keep yourself happy.
Learn how to identify rough patches (i.e. this will soon pass) and just plain
bad places to work (i.e. a certain culture so ingrained that it’ll never
change). As Nicole once told me:
You can spend that long trying to change a place that it just ends up
changing you.
You don’t have to do any of the above
If you’ve emailed me asking the types of question that this post covers, then
the chances are that you will want to follow the above (to an extent). That
doesn’t mean, however, that it’s right for everyone.
I know a lot of developers who are fantastic at their job, but will never be on
a stage, they will never write a blog post. Hell, some of them don’t even have
GitHub or Twitter accounts.
Being a web developer is a job, nothing more, nothing less; there’s nothing
noble or righteous about it, so it’s completely, entirely understandable that,
for some people, work starts at 9am and ends at 5pm. There’s is absolutely
nothing wrong with that. They’ll often have freer evenings and weekends, a
better work–life balance, and maybe even a healthier outlook.
It takes all sorts, and there is no right or wrong approach.
In summary
To reiterate, these are all my personal bits of advice; no one has to agree with
or pay heed to any of them. I’m not trying to be deep, or philosophical, or
wise, but I would (sometimes retrospectively) say that the above has played some
part in my own career so far. I’m not trying to claim that I’m right, or somehow
more qualified than anyone else, but this is generally what I would tell anyone
wanting to makes moves in the front-end development community.
As ever, your mileage may vary, and you should consult as many other sources as
you can—there will be conflicting advice.
In no particular order:
- Don’t rush
- Try not to plan too much
- Be able to respond to change
- Be nice to people
- Think for yourself
- Look out for Number One
- Share your knowledge
- Get involved
- Stay humble
- Be good at your job
- Keep happy
- Decide if it’s worth doing at all
There will be a lot in here that I’ve missed, or not gone into enough detail on,
so if you’d like more specific advice then please remember that you can still
always get in touch with me directly: I’m always happy to help if and where I
can.
Leave a Reply