Secrets of a Successful Frontend Developer: The Backend Mindset
Hey there, fellow developers! Are you a front-end developer looking to improve your communication and collaboration with back-end developers? Well, look no further! I have compiled a list of key topics that will make you a better front-end developer and a more friendly collaborator with your back-end colleagues.
🏢 Architectural Design
If you have an architectural scope or are starting a greenfield project involving the backend, create architectural drawings to demonstrate contracts and communication flows. Backend developers rely heavily on this (and they're right).
Often, the front end is focused on layout and design and neglects architectural drawings and data flow diagrams for building applications and their communication with the backend. It's not always necessary, but when it is, it's not always available.
💾 Databases (SQL/NoSQL)
Learn the basics of databases, including MySQL/MariaDB/Postgres/Redis/Dynamo/Mongo. By basics, I mean remote access, basic query search and data filtering, a minimum of relational theory, and a few use cases for each. It helps a lot!
👨💻 Backend Programming Languages
I recommend Node/JS, GoLang, but also PHP/Java/Ruby, among others. Try building a basic application, commonly a REST API. Your perspective will expand significantly on the front end by doing this.
🤝 Client-Server Communication
The key topics here are a Basic understanding of how HTTP requests work, common status codes and their meanings, ready state and its phases, CORS, stateless vs stateful, and cache. In other words, investigate how your front end communicates with the backend.
🌐 Basic Network/Infrastructure Structures
Understand the basics of the infrastructure on which your application is running, both on the frontend and the backend, whether there are gateways, whether it's a monolith or microservices, where your frontend is in the infrastructure, and how close it is to the backend.
🔒 Authentication
Study OAuth, and JWT, and read about SAML, SSO, and authentication processes in general. This type of integration can be a pain for both the front end and the back end. Try to understand this with an eye on the backend, and it will help a lot in the conversation.
📊 Logs
Here, it's more a matter of habit than knowing things. As a frontend developer, you can and should read logs and have access to them, including the backend logs (to debug the frontend, it helps a lot). You don't have to start debugging backend aspects, but reading/accessing logs is necessary!
💻 Command Line Interface (CLI)
Learn how to use the CLI, even if it's not always used. You will encounter many "dinosaur" backends who only use the CLI. Knowing the minimum will help you avoid discomfort or losing focus on a pair, and it will help you navigate terminals, remote consoles, and more.
🚀 Postman / Curl / Trace
Learn how to use Postman and related tools, as well as some Curl/wget/traceroute (I don't know how it works on Windows, but they are pretty common on Unix-based systems). This helps a lot in exchanging information, and sometimes the backend sends an access or Postman snippet.
These are the key points that I believe will make you a better front-end developer and a much more pleasant collaborator for backends. Remember, this is a lot of information, so don't feel like you have to learn everything at once. Choose one point and take your time. Good luck and happy learning! 🤓