Login
Theme: Light Dark

I want to be a fullstack web developer. What is the best way to grab the technologies?

Tagged:

Home - Quora Link

Best way for someone to learn in your position is to skip the books and crap and just try to build something, learning everything you need on the way.

I like to use this process to greenfield new projects:

  1. Create a new repo and install your web server boilerplate. I use Rails so this means running `rails new <project-name>`.
  2. Set up deployment and your basic web infrastructure. It’s best practice to isolate services onto different servers and to treat those servers like cattle rather than pets. This means being able to blow away your app or database server and recreate it at a moment’s notice. It makes troubleshooting a lot easier. So get it to deploy an empty web service to your new production server.
  3. Next make a small change to the web service and deploy your change. Just making a home page that says “It works!” qualifies.
  4. Make your first data model, and make a simple dynamic webpage that uses it. At this point you have your basic infrastructure set up and you can start developing your app. If you have problems, you can now troubleshoot by isolating where in the app the problem lies. If it’s data, blow away the database and recreate from your schema. If it’s code, roll back your code until you don’t have the problem. If it’s infrastructure, redeploy your code onto a new server or recreate your database.

Always fix infrastructure issues that come up first, then code issues, then data issues. Hack away at your project until you have something neat enough to show to others, then leave it running and start a new project. You can reuse your database server, but just spin up another $5/month Digital Ocean server for your app server.

Always start with infrastructure and build outwards to data. When troubleshooting, check that the data is right first, then move inwards towards your infrastructure. This is how you move through layers of abstraction. The web is just a big bundle of abstractions that you have to navigate.

Good luck and have fun!