Learning web development can be a daunting task. Where do you even begin? Which programming language should you pick? Here are some things that can help you get started and stay on course.

Figuring out What you want

Before you begin the journey of web development it's important to first figure out what you want. Web development is a vast field and it has grown even wider and deeper in 2019. Almost everything you use digitally can be regarded as 'web development' depending on who you talk to.

Front-End Development

Web applications are apps that run in your browser, which means it needs to put out some kind of html / css / javascript to render the page. HTML / CSS / javascript is the basic language of the web. If you are looking at a web page you are looking at the browser's rendition of that html / css / javascript code. How you render the HTML / CSS and Javascript is completely up to you.

If you love building beautiful UIs and creating innovative user-experience becoming a front-end developer might be something you would want to do. Here are some technologies you should consider learning to become a front-end developer

Some front-end technologies
  • HTML / CSS
  • JavasScript
  • ReactJS
  • Webpack
  • TypeScript
  • SASS

Some of the challenges of being a front-end developer is figuring out the best way to convey concepts and ideas to your users. For example how will you make your application easy for users to understand and use without having their hand held by someone who knows. Figuring out ways to get your users to 'engage' with the application in more ways and spend more time on your application will be the most important thing.

Back-End Development

Having a beautiful front-end can only be as useful as the data rendered in it. The data for the front-end needs to be served by some kind of back-end. Whether you are building an e-commerce app, CRM / invoicing app or video streaming site, or a social media site of any kind you will need the data from the back-end to make your front-end useful.

As a back-end developer you will be primarily working with data. You'll be writing code that creates, reads and updates (CRUD) business specific data or just data that serves some kind of a purpose.

For example in an e-commerce application you will have to create the ability to record all the products on a site, you'll be thinking about where to store the price and how shipping costs can be calculated. You'll be creating structure that will allow people to make a purchase on specific products and the e-commerce store owner to issue invoices and accept payments. You'll have to understand how people will be using the data inside of your application, and craft solutions that serve the people using your application.

Back end development involves topics like RESTful API, GraphQL, Application Security, Data Science, Machine Learning and Artificial Intelligence. Basically everything that happens 'behind the scenes' of the user. Here are some programming languages that can be used for back-end.

  • Ruby / Rails
  • Elixir / Phoenix
  • Python / Django
  • NodeJS / Express
  • PHP / Laravel

Back-end Developer will generally be working with business owners / front-end engineers to work out how to structure the data to achieve the needs / requirements of the business and the front-end developer.

Full Stack Development

If you love both front-end development and back-end development you can opt to be a full stack developer. This is something I personally identify with, there is a lot of things you can do when you control both the front and the back.

Full Stack development means you work on the back-end as well as on the front-end. It is generally not recommended to start out becoming 'full stack' developer but if you really feel like being full-stack is important one of the best things you can do is pick a great starting point. Choosing a full-stack web framework can ease the pain of becoming a full-stack developer. Choosing something like Rails / Django over Express can mean the difference between successfully finishing a project and giving up half way.

DevOps Engineer

DevOps as a role has taken off in the past couple of years. It's generally a skillset that's overlooked. However it's extremely important. DevOps generally work on the underlying infrastructure that runs 'applications'. Most application developers depend on some kind of DevOps whether it's automated or done by someone to get their projects launched into the world.

DevOps will generally work with the following technologies.

DevOps are generally also responsible for making sure the development team is able to continuously test and ship their code into production.

If your goal is to get a high paying job in a company DevOps might just be your thing. You'll be working mostly with machine. You'll be servicing developers and making sure the developers are able to ship their code. Some companies also advertise DevOps role as SRE (Service Reliability Engineer).

Conclusion

This article may have made it harder to decide what you want. However it should now give you an idea of how wide and deep the term 'web development' is in 2019. It involves so many disciplines across many skill set. The easiest thing I can do to help you decide what you want is asking yourself what your goals are.

If your goal is that you have an idea and you wish to build something and launch fast then becoming a Full stack developer and choosing something like Ruby on Rails can go further in helping you achieve your goals.

If your goal is to get a job in a company and you love working with the customer facing part of the application, and you like digging into the mind of the user and you don't mind it when customers give you harsh feedback then Front-End Development might be your thing.

If you like solving complex business / technical problems and thinking how data fit together and love solving puzzles but don't like facing customer feedback then maybe Back-End Development will fit your personality.

If you don't like solving business problems, but love solving technical problems only and wish to minimize your interaction with the customer, and prefer working with like-minded people then DevOps might be your thing because you'll be spending a lot of time around developers and not much time with customers.