How to become a web developer

What coding language to learn, where to learn it, and how to get employed

mixocial_05-01Congratulations! You’ve made the big decision to become a web developer! But you don’t know where to start or what the journey will look like. Or perhaps you’re still sitting on the career-change fence and want to know more about web development before you make up your mind. In either case, this article has some advice and suggestions for getting started in the world of programming and tech.

Since I started teaching front end code at betahaus last year, I’ve had lots of people approach me with questions about how to make their first move to break into a career as a programmer. I’ve answered enough emails about it now that I thought I’d gather my thoughts together into a blog post.

Web development is an exciting and ever-changing field. There’s a huge and growing demand for skilled developers. If you are considering a career change, web development and programming is a really great option to build a fulfilling career.

So here are my two cents on what coding language to learn, where to learn it, and how to become a web developer.

What is the best coding language to learn?

Deciding which language to learn really depends on your end goals. Are you interested in joining a fast-paced innovative team to build the apps of tomorrow? Do you crave the freedom of being a freelancer? Are you more interested in design and user interaction, or the challenges of building out systems for business logic and data processing?

There are a lot of coding languages and frameworks out there, and knowing what languages are used for the various types of web development and programming will help you learn code more quickly and efficiently.

Front end coding

mixocial_03-01When we refer to the “front end” of the web, we’re talking about the part of the web that you see and interact with. It usually consists of two parts: the web design, and front end web development. This will be contrasted with the back end, which is discussed below.

Junior Front End Developer

In order to be hired as an entry-level front end developer you’ll need to know HTML, CSS, and at least some JavaScript.  HTML is responsible for the actual content and structure of a web page, while CSS is used to define layout, colours, typography, and other stylistic features. At a basic level, JavaScript is used to add interactivity to web pages, such as image sliders, drop-down menus, or form validation.

In a junior role you would be responsible for taking layouts from designers and turning them into HTML+CSS+JavaScript prototype templates that are passed to the back end team, who will plug in the actual application logic. Startups with their own products, digital agencies, and some larger companies with internal marketing teams would be looking for people with these kinds of skills. The pay is not amazing but it’s a pretty fun role and it can be a good way to get a foot in the door and learn more on the job.

Being familiar with the following common frameworks, tools, and libraries would make you more attractive to employers:

Senior Front End Developer

To take on more advanced front end work, you definitely need to go further with JavaScript.  A good path is to pick an application framework and really get to know it. I would recommend either AngularJS or React. React is a very exciting new project initially developed by Facebook and is gaining a lot of popularity, but Angular has been around for longer and until recently has had better documentation and community support.

These frameworks let you build dynamic “in the browser” applications much like Facebook itself, where parts of the page are updated and refreshed without refreshing the whole page. These skills are hugely in demand, so if you can make at least a “toy” app using one of these (e.g. a simple app that lets you track your activity or a To Do list) you will improve your employment prospects enormously. Again, this would let you work at a startup or for a higher end digital agency doing work for corporate clients.

Back end coding

mixocial_01-01The back end is what goes on behind the scenes of the web. It usually consists of three parts: a server, an application, and a database.

If you want to go down the back end path, then you should probably learn two languages at least to a basic degree, and then pick one of them to learn well. It’s unusual to be really skilled at both front and back end development, but some people do have broad skills across both areas and are referred to as full stack developers.
Here are some back end language options to consider:

  • Ruby on Rails is easy to learn and there’s a big community around it. There are a lot of startups in particular that use Ruby as their go-to language. However it’s probably losing some ground to Node.js (discussed below).
  • PHP is used by 82.1%of all websites. WordPress is written in PHP, as are large parts of Facebook. It’s versatile, popular, and easy to learn. However many developers are critical of PHP as a bit of a “spaghetti language” that lacks some standard programming language features, which makes it inefficient and difficult to work with for building powerhouse applications.
  • Java is a powerful, well established language and will take a serious amount of time investment to learn well. However, it’s a very bankable skill to have. Large parts of Google’s applications, as well as enormous amounts of corporate software, are written in Java. You can also write apps or software for startups using Java frameworks such as Spring. Importantly, Android applications are written in Java, so your skills will transfer well.
  • Node.js is JavaScript on the server. This is hugely popular right now and is what I would suggest to dive into because:
    • it’s in demand;
    • it’s easier to learn than Java;
    • you can learn JavaScript and use it on both the front and back ends; and
    • there’s a big community around it.

Freelancer

mixocial_04-01If working for another company doesn’t interest you and you’re looking to become a freelancer, then learning WordPress theme and/or plugin development is a fantastic way to go. This will require a combination of HTML, CSS, Javascript, and PHP.

This may seem like a lot to learn all at once, but it means you will be able to deliver a completely functional website (both front and back end) while working alone or in a small team. Many digital agencies also work largely with WordPress, and so it’s a pretty valuable skill.

If you aren’t interested in working with WordPress but still want to freelance, then a good idea is to invest in a niche area of either front or back end coding so you can plug skills gaps in development teams and command a good price for your work.

Where can I learn code?

I look good in a cap and gown – what about a degree in Computer Science?

As for study options, I would not necessarily recommend a computer science degree. In the ‘pro column’, you will learn some very interesting fundamentals of computing, and you don’t have to burn brainpower and energy thinking about what to learn – you just learn what’s in the curriculum. Once you have a better grasp of what’s out there, you can then choose a path that interests you.

Harvard offers a free online introductory course to computer science, which is a good place to start if you’re cash-strapped and want the structure a course provides.

However, in my experience there is a considerable lag between industry practice (particularly for web) and what’s taught at universities. If you are going to work through a university course like this, then I suggest cherry picking certain sections. I’d look for sections on understanding how to structure and normalise databases, or why certain algorithms are more efficient. These will help general thinking skills about coding.

Short Courses and Bootcamps

If you don’t want to invest three years into a computer science degree, another option is to do a short course (often called a Bootcamp). In short courses you get face-to-face support and they sometimes assist you with job placement afterwards. The cost of these courses varies greatly and they might require some investment, but it’s worth it for up-to-date industry-focused learning.

Here I should let you know that I run a front end coding course at betahaus in Berlin. In this five day course I cover the basics of HTML, CSS, and JavaScript, and by the end of the course we use these skills to build a simple, responsive landing page. The course is intended as a primer for people working in related fields such as content marketing, journalism, or UX design. However it’s also a great way to dip your toes into the water of web development and find out if it’s for you before making the fairly considerable commitment of doing a 3-6 month Bootcamp style program.

Do It Yourself

The Internet has a wealth of knowledge, and I’ve found the web development community particularly generous with their know-how. You can almost always find the answers to your questions somewhere. I think you learn code best by doing; so online courses like Codecademy, FreeCodeCamp, and Team Treehouse are really valuable.

Even though it’s DIY, you don’t have to do it alone! Get social with your coding by joining coding meetup groups in your city. It’s great to be able to just lean over to the person next to you and ask them that question that’s been bugging you. You learn a lot faster, you get to know people in the tech scene, and it’s a lot of fun! It’s also a great chance to network when you start looking for jobs. Go to Meetup to find groups, speaker presentations and coding related events.

How do I get my first job as a web developer?

mixocial_02-01To get hired in an entry-level front end role, employers would expect to see a portfolio of at least several websites. These sites should showcase different layouts (i.e. single page marketing, portfolio overview, portfolio single page, blog overview, blog single, membership account) and a few different JavaScript powered elements (animated scroll, form validation, an image carousel/gallery).

Like with any job, it’s about getting out there and networking and building personal connections with potential employers as much as scanning job listings and sending off CVs. In cities like Berlin the tech community is very active, and there’s plenty of events where you can meet other developers to get the inside word on job openings.

There’s also a recognition in the industry that the pace of change is huge and that there’s a constant need to update skills and knowledge. Showing that you’re a committed team player with a skill for self education can get you hired in a role that’s a bit of a stretch for your current skill set. It is a given that you will have to learn some things on the job.

If you want to make a career change and become a web developer, here’s my shortlist of how to get there:

  • Do as many online courses as possible, for example through Codecademy.
  • Tackle relevant parts of a Computer Science Degree through a portal like Coursera.
  • Consider doing a short course or bootcamp.
  • Offer to make a couple of websites for friends and do it to the best of your ability.
  • Make a portfolio website for yourself.
  • Make a Github account and put any code you write on there.
  • Go to Meetup to find groups and coding related events in your city – this is a great opportunity to find potential work and improve your knowledge and skills.
  • Take part in a hackathon or two and network, network, network!

So that’s it, the crash course in how to become a web developer! I hope this has made the career change a little less daunting for you. If you have any questions about anything in this article, or about web development in general, please leave a comment. Or if you work in web development and you think there’s something I’ve missed, I’d love to add to this article.

Want to learn to code with me at betahaus? Check out the front end code course at betahaus Berlin.

Shout outs

This article was co-authored by my awesome and very talented sister Myfanwy. If you need a social media marketing genius you should definitely get in contact with her.

The lovely vector art was designed by Freepik