If you’re a prospective or fresh developer starting out, it’s not always easy to know what you should know. What languages should I understand? What frameworks? And what the heck is a fullstack?
To help you out, we’ve outlined the basics of what you need to know right here. While it should demystify the types of web developers, it’s by no means the ultimate guide. You can get more comprehensive and into the weeds, but this should provide you with a starting overview.
Front end developer
A frontend developer is the one who makes the face of the website tick. Whatever you see on a website, is the work of the frontend developer. If you’re looking for an analogy, the frontend developer is the one who does the tiles, if the backend developer does the plumbing.
Basically, the frontend developer makes the body of the website look good, while the backend developer handles the engine. This can involve the color of buttons, look of loading screens or simply the flow the site itself.
What you need to know
These constitute the absolute basics of what you should know as a junior frontend developer.
Diving a bit deeper, you should also get familiarized with RESTful services and APIs, responsive design, cross-browser development, content management systems, and testing.
If you’re proficient in design — even just at an elementary level, it will help you in your job. Both in terms of evaluating the existing user-flow, as well as providing input on changes. Or perhaps doing the entire thing from scratch.
Advancing as a frontend developer
So what’s next? When you’re looking to advance as a frontend developer you need to expand your technical skills. First, you should pick up another language such as Python, PHP or Ruby. Furthermore, it’s important to gain in-depth knowledge of DOM elements, XHR 2, cookies, and even some SEO.
Aside from the technical aspects, soft skills become important. Understanding organization as well as communication is key to help you advance from junior to senior roles. You must know how to structure and organize your work efficiently, and help guide others in the process when needed.
Also understanding business decisions is important. When adding or implementing features, it’s important to think of the bottom-line. What does this add to the business and why is that important?
The backend developer is the plumber of the web development world. (In a good way.) It ensures all piping is in order and that everything flows smoothly. When a button is clicked, the backend developer is there to make sure that the proper data is gathered or manipulated.
Handling the machinery, the backend developer often needs to get familiar with both backend languages as well as databases. And, frankly, some frontend technology as well.
What you need to know
Get stacked: Languages, frameworks, and databases
Language-wise, you have many options to choose from as a backend developer. There are multiple languages that cater to the backend, such as Python, Ruby or PHP to name a few. What matters is that you master one or a few of them.
Furthermore, a backend web developer needs to understand the storing of data. You need to get familiar with databases and how they operate. There’s no need to be a database expert, but your experience should be at least intermediate.
One way to combine both of these, is to learn a stack. A stack is a collection of compatible languages, frameworks, and databases. For example MEAN (MongoDB, Express.JS, Angular, and Node.JS) or LAMP (Linux, Apache, MySQL, and PHP).
More so than frontend developers, backend devs need to know how to handle security. Getting a good grasp of how to ensure the safety of a site is often the backend developers responsibility, and something you should study. Security is something that’s easily overlooked, but it’s not as much fun when your website is suddenly crawling with links to Viagra-supplements…
Advancing as a backend developer
As you advance in your career as a backend developer, you’re expected to strengthen your technological grasp. This means adding further knowledge of databases, distributed systems, POSIX standard systems — such as Linux — and knowing at least one concurrent language.
A fullstack developer doesn’t need to be as intimidating as it sounds. You don’t need to know everything to be a fullstack. Just, you need to know a lot…
A fullstack is comfortable with taking a product from an idea stage to full launch. Essentially, it’s is someone who is familiar with each layer of software technology. That includes networking, database, user interface, API, and so on. There’s no need to be an expert in each element, but a knowledge technology from front- to backend is necessary.
What you need to know
As a fullstack, you should know:
- Databases, such as MongoDB or MySQL.
- Content Management Systems: Such as WordPress or Drupal.
- Basic libraries, such as jQuery or Bower.
- Server-side web technologies, such as Node.JS, PHP or C#.
- Side technologies. Git, Jira, APIs, and so on.
Advancing as a fullstack developer
A solid fullstack developer is a generalist. Or a broad specialist. Whichever you want to use. Essentially, you need to be someone who’s pretty good at a lot of things. You can either progress from being a fullstack to being a subject-matter specialist, such as machine learning. Or you can continue to broaden your skills to cover a wide range of expertise.
Where to learn
So where do you start? Depending on what your goals are, there are many places to start. But thankfully, there are plenty of affordable — or even free — resources on the web. Below are but a few starting points:
Front- and backend as well as database:
Codeacademy: Broad selection that covers plenty of languages and frameworks. Data science, computer science, web development, code foundations.
Even though this article only scratches the surface, hopefully it has helped clear up some confusion. Once you have a better grasp of what it is you need to know, check out one of the learning resources above. Even the free ones are solid, and should give you a better grasp. But of course, the best way to properly learn, is to start building things yourself.