Step by step guide to becoming a modern back end developer in 2023
roadmap.sh
roadmap.sh
Define 'learn' - to what depths? Learn databases next to grep/sed etc. Cringe.
All the trendy crap you likely won't need: mongo/influx/firebase/cassandra/redis - learn it if you need to. Hopefully some of these will be untrendy pretty soon, then forgotten.
This is bad and it's not credible to learn all this to a useful level. This is laughable. I hope starters here aren't put off by this.
The postgres+postgraphile combination is really powerful! We used to build GraphQL backends with Python and Ariadne before.
It sounds simple. And I like simple. But superficially looking at it, it sounds too simple.
We also used postgres policies for row-level access control in one application. The policy functions could rely on the logged in user being already validated and present in a SQL variable (we set that variable in a postgraphile javascript hook).
The database schema and stored procedures are just one or multiple SQL files which are in version control. I also commit example GraphQL queries, which indicate how a schema can be used and can serve as a manual test case.
Of course it's not possible to learn all of this as a junior to some "deep" level - but it's a syllabus - and you would not want to take on this as a junior without someone around to guide you.
Yeah, a good start. Not deserving a flag
I think a better list will be something of a specialized path made by devs and engineers working right now. We can go even further by dividing the path by field (fintech, adtech, streaming services, retail, etc...).
Seriously? Has anyone ever actually implemented this?
IMHO every REST API should be discoverable this way like the web, for example with links to related resources in responses (at least in dev) and by having OpenAPI documentation at a root path like / or /api.
JSON API provides much of this for free when used with something like Laravel:
https://jsonapi.org/implementations/
https://github.com/laravel-json-api/laravel
Edit: honorable mention:
I'm not questioning usefulness of this, but how to make use of it to become a better developer? Binge read from top to bottom on topics not having familiarity in it?
If too much is setup from the start it can be not so great to do startup like things like building fast.
If the essentials of those aren’t in a dockerfile somewhere in 2023, do developers spend enough time focusing on clients?
For me, having as many of those in a place to activated when needed is usually fine.
For those new to backend - I’m assuming you’re more referring to the simplicity of choices vs the actual technologies, as several could be interchanged.
This roadmap, i'm not sure who's the intended audiences.
In reality, most of tech choices is not for tech reason, most of them is to ease the hiring process.
But i guess if it's for technical reason, nothing beats simplicity.
I think for starting a startup, a simple LAMP+Framework setup is still the best approach.
For example Debian+Apache+MySql+Python+Django.
Although I would use SQLite these days instead of MySql.
Haha, i have always known it to be PHP
That's why I said "for example".
For a startup it should be whatever you know and are familiar with, and preferably something managed. For $20/month you can run a mysql database, plus a DO app platform app which is a docker container with whatever stack you want. A single tutorial will give you a CI CD pipeline with reproducible artifacts and something that will scale until it's worth actually paying attention to it.
I can set up a CI pipeline that deploys to a DO app service in under 5 minutes and not have to touch it again for a long time.
If DO decides to pull the rug on supporting containers then I'll use some other similar platform, and in the unlikely scenario that all of those providerd disappear, ill spin up a VPS on whatever provider you run your custom lamp stack on, install docker and move on. Until that day comes, I won't worry about the underlying platform and I'll continue to deploy using a zero friction pipeline that I set up when I waited for my coffee to brew one morning last January
Have any good links for this?
However, I wouldn't bother choosing any actual implementation, for a few reasons:
- It takes time that could otherwise be spent learning something else
- If you're inheriting a legacy project, that choice has already been made for you
- If you need to choose one for some green-field project, the landscape/tradeoffs may have changed since you originally learned this stuff (e.g. your preferred tool may have been discontinued, or some alternative has solved a bunch of its problems, etc.)
When it comes to actually building stuff, start small and simple (e.g. LAMP, (Fast)CGI, etc.); whilst keeping those concepts in mind to avoid limiting future options (don't over-abstract, since YAGNI; but likewise don't paint yourself into a corner)
We don't care about lit, qwik, solid, or any other framework for that matter. I mean, we know they are there but there are much to cover and the team is already comfortable using Next. API routes are good too for business logic pertaining the app itself.
For our backend, we stayed with TS, Node.js, and the good ol' Express.js.