How To Get Back From End City
My previous article described how you can go into frontend development. Information technology as well discussed how the front stop can be a place filled with landmines – step in the wrong place and you'll exist overwhelmed past the many frameworks of the JavaScript ecosystem.
In this blog article, let'south run into how you tin go into back end evolution. Along the way, I'll answer some of the most mutual questions people ask me about information technology.
What is Backend Development?
Front end evolution involves what a user sees on the screen when they open a specific URL owned by you. Fifty-fifty in a completely static surroundings (with only HTML/CSS), when someone opens a website, some server on the planet needs to respond to yous with those HTML and CSS files.
That server is just a computer, just like the one you use yourself to scan the internet. But it has been tuned for operation, and doesn't have unnecessary components like a mouse or keyboard fastened. And information technology sits with tons of other computers probably in a data warehouse.
Programming those computers in some special way is called back terminate development.
Yous may think that backend evolution is called what it is because it runs behind the user's dorsum. A visitor to your website never really "accesses" the back end completely. They just communicate with your server, either directly through ports for very express admission (like transferring HTML/CSS files) or non fifty-fifty that – buried deep nether CDNs or firewalls (like Cloudflare).
Now that nosotros take a raw agreement of what dorsum end development ways, let's get into some real questions.
Is front end programming knowledge required for the dorsum end?
TLDR; No.
Dorsum end development, as mentioned higher up, involves the programming of a computer sitting probably on the other side of the planet responsible for responding to what your users say from their own computers.
If you're a full-time backend programmer, you do not really demand to care about what goes on inside those HTML, CSS and JavaScript files you lot send to the user's browser. Instead, you lot've to focus more than on the performance of the server, the server lawmaking, and throughput.
What goes into back end evolution?
Well, going past the books, you may say that a person who codes an application that tin can answer to HTTP requests is a back stop developer.
But in reality, sometimes back finish developers are able to do much more than just writing server scripts. They accept the knowledge to set up reverse proxy servers (NGiNX/HAProxy), enable compression and other ways to speed up the site, and prepare a production docker environment.
To qualify every bit a back end developer, I'd say the bare minimum skills you demand are:
- Good noesis about a programming linguistic communication in which y'all can write HTTP servers. Examples: C#, Coffee, Node, PHP, Python, etc. (there are many!)
- Manage to host using cPanel (traditional) or using bash last (cloud hosting/traditional)
- Working with Version Control Systems (VCS) similar git for managing and deploying builds
Only similar every game comes with minimum and recommended specifications, for back end developers, my recommend specifications would be (inclusive of the minimum skills):
- NGiNX for static file assets and server management
- Database Management skills (SQL/NoSQL)
- Security of backend (Writing condom and robust code, running applications in docker containers with express privileges, protection against DoS attacks)
- Autoscaling/Load balancing
Alright, too much talking about what goes into back cease evolution. Merely how do you become ane?
Start with minimum requirements
Like I said, for the back stop, just similar games, we take a set up of minimum requirements and recommended requirements. The minimum requirements consists of iii things:
Larn a backend programming language
When people learn by themselves, they usually do not have a team or anyone who can do forepart end development. They're all on their own. Then you'll often have to create webpages and servers all past yourself, at least in the offset.
Although there are a lot of choices for dorsum end programming languages, and I cannot recall of any popular organisation language which doesn't support HTTP servers out of the box. The advantage of choosing Node is that your front end end JavaScript skills are transferrable to the back end.
Nonetheless, you can cull from a variety of languages like Coffee, C++, C#, Python, PHP, etc.
How do you pick i, you lot might enquire. The respond is the same equally it was in the front end development article: you accept gotta effort everything initially and see which one clicks the all-time with you.
Node is easy as you might have already done JS programming for the front end. But if you're a Python or Java programmer, y'all might detect those easy to selection upwardly. Information technology depends on your profession and taste completely.
Acquire nearly managing hosting
Gone are the days when you'll have to manually purchase servers and ready them up in your home, connect to your Isp, do all that stuff yourself. This is the era of cloud computing. Now, when hosting your website, y'all have mainly two options:
- Going for managed hosting servers like HostGator or GoDaddy.
- Going for deject hosting providers like GCP, AWS, or DigitalOcean.
What is the difference between the two? In both cases, the servers are owned and operated by the respective companies. But the major difference is that managed hosting is more than GUI friendly, has a rich set of tools for seeing the filesystem, monitoring usage, managing your official domain emails, uploading/downloading files from your server, and so on. It'southward basically a setup for people with less technical skills.
For that reason, I do not recommend managed sites like HostGator or GoDaddy for seasoned developers. Notwithstanding, it might be a good platform to brand mistakes and larn on, primarily considering you usually have prepaid plans for them. Y'all'll as well have a dainty UI for managing things, which doesn't allow you to accidentally shoot upwards your bills.
Simply when y'all start picking up speed, I recommend that you switch to a cloud provider. This takes away all the nice tools from cPanel that yous used to manage files and folders on servers. Just at the same fourth dimension, it volition challenge you to level upward your skills a lot.
Today, a lot of deject providers offering a decent costless trial, too, so that yous tin can actually endeavour out their platform before going full in. I host my website for developers - codedamn - on DigitalOcean and find it to exist at a sweet residual of site complication and features.
You lot can use this link to signup on DigitalOcean and get free $100 credits. DigitalOcean instances are as cheap as $5 a calendar month, then you lot have a runway of about twenty months on that instance, great deal, huh?
Anyway, you can choose any cloud provider. Then it'southward important to learn to manage the server using only the command line past ssh'ing into it.
Learn about Version Command Systems
At that place are other solutions apart from Git for VCS. But Git is the most used and simplest to understand.
As an private, you might non appreciate it right away. Just you'll understand why information technology is then of import the moment you lot start working either in a team on multiple features simultaneously in your project.
Git allows you lot to manage your workflow using commits and branches. Commits are like checkpoints in your codebase - the ones you lot can e'er revert to if you screw up.
Branches are like alternate realities of your project, where something completely different could happen. These alternating realities can be created from any point in time and can exist merged dorsum over again at whatsoever time.
If those realities can be merged together with compatibility, then information technology's fine. But if in that location's a conflict (like if you're alive in 1 reality and expressionless in other), and so you take to manually make a choice. Other changes tin be merged automatically.
Git is super interesting, and one time you lot get hang of information technology, you'll want to utilize it in every project. You get to proceed a history of your work in an efficient manner (it compresses and stores only the divergence between commits).
It also allows you to create online git repositories on sites like GitHub, which acts every bit a central source of truth for your website. Sites like GitHub can be configured with special webhooks that can actually update your website whenever you add together a new checkpoint (a new commit) without you ever needing to manually become to the server and update it yourself.
Go for recommended skills
I'one thousand a big believer in learning by doing. And the best way to do something comes out of necessity or involvement. Once y'all consider yourself skillful plenty with the minimum requirements, it's time to learn the recommended skills. This includes all the tools like Docker and NGiNX mentioned in a higher place.
DevOps is likewise something which fits in super nicely with back end developers. You could try and explore TravisCI or CircleCI for automated build deployments. Continuous Integration and Deployment (CI/CD) is a topic that could have another whole web log post, then I'll not go into that. In fact, one time it is set up correctly, it'll salvage yous a ridiculous amount of developer time!
And so comes databases, which I placed in recommended skills. Simply you're gonna demand databases for pretty much whatsoever application which involves some sort of data persistence generated by the user.
Databases are commonly easy to begin working with, but harder to maintain and tweak properly. The best way to commencement working on a dorsum end tech stack is to accept everything together on a unmarried server - the lawmaking of your application, the reverse proxy servers, the database, etc. Then as you go more proficient in each thing, yous can decouple it from the existing business logic.
By doing this, y'all're enabling an architecture that can be highly scaled. A database-operation intensive application could take an optimized solution for databases. And a heavy traffic leap site should have a good CDN mechanism to offload static assets, and so on.
Conclusion
At that place'southward so much to learn, just it'southward all doable if yous don't give up. Allow me know what you recollect nigh this mail service through my twitter and Instagram handles. Information technology'll hateful a lot to me if we connect over there!
As well, if you lot're interested, checkout codedamn - a developer-focused platform for learning technologies like backend development! I fifty-fifty posted a YT video on spinning upwards your own elementary website server in ii minutes! Check that out and permit me know what you think!
Peace!
Acquire to code for free. freeCodeCamp's open up source curriculum has helped more forty,000 people get jobs equally developers. Become started
Source: https://www.freecodecamp.org/news/learn-backend-development/
Posted by: rutledgehisone.blogspot.com
0 Response to "How To Get Back From End City"
Post a Comment