It’s common for people to ask what we look for in a frontend developer, and sometimes, how they can switch careers and learn to code. If you’re one of those people, here are a few tips that might help you understand what we look for as an agency, and how to get started.

Your personal stack

Here’s the set of skills and languages I’d focus on, if I was learning from scratch:

HTML5, CSS —obviously.

—obviously. Sass —it’s so simple to get to grips with, and you’ll begin to love it. Great frontend development is also about writing well organised, maintainable code.

—it’s so simple to get to grips with, and you’ll begin to love it. Great frontend development is also about writing well organised, maintainable code. You need to be rock solid with responsive design . It’s very easy to learn the basics, anyway.

. It’s very easy to learn the basics, anyway. Get great at Javascript (learn ‘vanilla’ Javascript before you begin to rely upon jQuery)

(learn ‘vanilla’ Javascript before you begin to rely upon jQuery) Learn Git . Sourcetree will do at first, but you should, in time, look to learn how to do Git via the command line.

. Sourcetree will do at first, but you should, in time, look to learn how to do Git via the command line. Get comfortable in the Terminal . It’s really simple when you get used to it. When you get errors, don’t freak out—just stop and read them. Once you learn to understand them, they’ll be your best friends.

. It’s really simple when you get used to it. When you get errors, don’t freak out—just stop and read them. Once you learn to understand them, they’ll be your best friends. Begin to learn how servers, server optimisation, caching, and performance work—by understanding how the hardware affects what you’re building, and how to make pages faster, you’ll be able to build better products.

work—by understanding how the hardware affects what you’re building, and how to make pages faster, you’ll be able to build better products. Get familiar with a language you can build functionality with like PHP or Ruby. Learn how to edit templates in order to implement design and basic functionality changes.

like PHP or Ruby. Learn how to edit templates in order to implement design and basic functionality changes. Get used to rapid prototyping —we do lots of this, and a great frontend developer needs to be able to communicate via prototypes and concepts, mocking up ideas quickly in order to get their message across and communicate ideas with their team.

—we do lots of this, and a great frontend developer needs to be able to communicate via prototypes and concepts, mocking up ideas quickly in order to get their message across and communicate ideas with their team. Gain an understanding and appreciation of what makes good design. This is always something we look for. Some people are more technically minded—sure—but you’ll be working on the frontend of sites and apps, and so if you can’t make design decisions and communicate with designers, you’ll find it really hard to improve and do a great job. Being able to tweak layouts and take a set of design elements (a pattern or style-guide) and work with them is really important.

In a small team, you’ll often find yourself responsible for integrating design with a CMS or a functional language. The important thing is that you can deal with functional code and edit it when needed, even if you’re not building an entire app from scratch.

We’re not mad—we realise that trying to become a great frontend developer is a discipline in itself, and you can’t be expected to be brilliant at design, frontend and backend all at once. But if we’re working on an intensive project and need to style a modal, for example, then having a designer produce a mockup, a frontend developer code it, and a backend developer implement it, is horribly inefficient and leads to poor quality end-products which take ages to build.

The way you think

We’re building a learning organisation—everybody here is absolutely committed to helping each other get better at what we do. It’s not about competing with other people and agencies—it’s about meeting that endless drive to keep growing, challenging ourselves, and learning more.

We look for talented people, and having the right attitude can definitely make up for a lack of certain experience.

Don’t bother with a university degree in ‘Web Design’ —personally, I’ve found very few of these that were decent, outside of a few great places like Hyper Island and General Assembly. The University experience is a really valuable one for a lot of people, for sure, but what you do outside the lecture theatre is way more important. Use that free time to learn as much as you can, and definitely consider doing a non media-related degree, if you do choose to do one.

—personally, I’ve found very few of these that were decent, outside of a few great places like Hyper Island and General Assembly. The University experience is a really valuable one for a lot of people, for sure, but what you do outside the lecture theatre is way more important. Use that free time to learn as much as you can, and definitely consider doing a non media-related degree, if you do choose to do one. Be entrepreneurial . At the moment, nearly all of our team has freelanced in the past. There’s no shame in working in a company, and learning from those teams—it’s often the best way to learn—but it’s crucial that you understand the business and the purpose behind what we’re building. In a great team, you’ll be creating and contributing—not simply a drone following intructions.

. At the moment, nearly all of our team has freelanced in the past. There’s no shame in working in a company, and learning from those teams—it’s often the best way to learn—but it’s crucial that you understand the business and the purpose behind what we’re building. In a great team, you’ll be creating and contributing—not simply a drone following intructions. Become obsessed with self-improvement and learning new skills. There’s nothing worse than being content with the skills you have. If you’re a developer who is content and you’re not learning, you’re falling behind. You won’t get anywhere in this industry without being determined to learn new things.

and learning new skills. There’s nothing worse than being content with the skills you have. If you’re a developer who is content and you’re not learning, you’re falling behind. You won’t get anywhere in this industry without being determined to learn new things. Work to become a great communicator . Without this, you’re nothing.

. Without this, you’re nothing. Become self-sufficient . We work in a really close team, so this is critical in anyone we take on. Don’t rely on others to make things happen—constanty look for new opportunities to learn and improve things.

. We work in a really close team, so this is critical in anyone we take on. Don’t rely on others to make things happen—constanty look for new opportunities to learn and improve things. Become confident. Learn the meaning of what you’re doing, be constantly humble, but be prepared to stand up for what you believe in , and have a spine.

, and have a spine. If you’re doing frontend development, you still need a good eye for design. If you don’t have this, you’ll struggle, and you’ll also be a poor fit for working in a small team. A huge company may be able to partition different job roles and have people handling very specific jobs—it’s still a poor solution, but they can just about manage it—but a small company relies on having a cross-functional, versatile team. Educate yourself on design and understand that a good frontend engineer goes beyond merely implementing a static mockup in code.

What’s important is the way you think, and what you’re capable of. Not the number of pieces of paper you have to show your qualifications.

What would a frontend developer do in a month at Hanno?

We work on small, self-organising teams and so for us, it’s crucial that everyone on the team is ‘t-shaped‘—this means that we look for people who hold a wide range of skills, while also building a specialty—a focused skill which they aim to be a real expert in. If you’re designing products and working really closely with startups, like we do, that means your role can involve a massive amount of variety. That’s part of the challenge, and to us, what makes our jobs so exciting.

Our workloads vary between intense collaboration on projects (sometimes, this can be a project which runs for an intense 2/3 month engagement, with perhaps 3 other team members), and on running several smaller projects at once. So in a month or two with us, you might have:

Optimised an existing site for page-speed and load times

Reviewed code with a designer and perhaps done some pairing with them to help them improve their coding skills.

Cleaned up some prototype code into efficient, maintainable production-ready stuff.

Built a mobile web app using jQuery Mobile—researched effective ways to implement HTML5 mobile apps and worked with a UX designer to flesh out a prototype of their first few static wireframes, so they can test the app in a more realistic environment.

Run some cross-browser testing on a site prior to launch, flagging and prioritising issues, and fixing several of them, alongside a designer (who will also code).

Spotted a new technique that would improve Hanno, for example animating SVGs, and worked out how to bring it into the team’s frontend stack. Perhaps put together some resources and an internal message and documentation explaining how to handle it.

Written a blogpost or two for this Logbook, about an experience or perspective—something to share with the community and educate others on what we’re doing.

Dealt with some simple change requests on an existing client site, to take the strain off the designers, who are pushing for a site launch.

Maybe some more UX focused stuff—took a client dashboard app built on Bootstrap and added a new page or view, modifying existing backend and frontend code to extend it to the new client functionality.

Worked with a designer 1-1 to execute a concept they have in mind for a prototype and teach them a little about the limits of CSS3 in implementing this.

Spoke to a client about their ‘page budget’ and collected enough data/research to talk them out of a damaging design decision on their site.

Worked with a client to prioritise features for an ongoing app development project, collected a brief and worked with them to identity additional information needed. Set things up so that the designers can start work on the visual elements you’ll need to do your role later on.

Integrated a marketing site with a third-party JS API to give us better insight into performance and conversions. Set up an AB test with a couple of page variations. Analysed these results.

Implemented custom animations and effects on a marketing site, where the client had requested feature videos and shiny new CSS3 stuff.

So how do you get started? What’s next?

The most important thing is to try and consume as much information as possible. You can make huge progress and learn very fast, if you’re committed to it. And once you break through those tough first steps and get a handle on how to tackle things, you’ll find that your pace of learning just gets faster and faster:

Read Design is a Job. It might be about design, but it’s a great resource and will change the way you think.

Devour the Isobar frontend code standards

Understand performance. Read, and learn from, the YUI guidelines

Start using GitHub, find open-source projects, get active with them. Not to build a profile, but to get involved in meaningful projects that help you grow.

Likewise with StackOverflow. You can often get hired on the strength of a SO profile, and it’s a brilliant way to find ‘real’ problems to solve and practice on. Once you’re contributing to the community, you’ll also be able to take advantage of it when you get stuck on something tricky and need to ask a question.

If you’ve only worked on small projects in the past and want to learn from a big, well-built project, it’s definitely worth spending time pulling apart a well-built framework like Foundation and understanding exactly how it works. Other tutorials on Treehouse are also great for getting to grips with the basics.

Good luck, and enjoy!