How to Become a Full-Stack Developer: Part 2

This is the second in a series of posts on teaching yourself programming and full-stack development. If you haven’t checked out the first part, on learning CS Fundamentals, Algorithms, Design Principles and Front-end Development, you can do so here.

Motivation

You now know how to build static websites using HTML, CSS, and Javascript. Although the Internet was originally designed to share static web pages, the capabilities (and expectations) of a modern web app have increased gigantically. Almost every app requires that you authenticate users, respond to them and replicate real-world scenarios as closely as possible.

To do the aforementioned, you need to get data from a user (or an API), process it and produce an output. You also need to save this data and have a mechanism to identify the user the next time s/he returns to use your app. To perform these functions, our present stack isn’t enough.

Interview with Ankit Tomar, Co-Founder & CTO, Bizongo

 

Servers are required to process user data, store files, convert it into HTML/CSS/JS. Then, these servers serve it to the browser in a form that can be presented to the user. A database is required to store data important to your app. To program the server, we require a server-side scripting language and for the database, we require a database (duh) and a language to communicate with it. This is exactly what we’re going to do in the next steps. For the first seven, refer to the earlier post! 

Step 8: Server Side Scripting Languages

As mentioned before, to program and communicate with your server, you will need to know a language it understands. Unlike front-end where Javascript is the only choice, there are a plethora of options available for you to program on the backend. The most popular ones are Java, PHP, Python, JavaScript and Ruby.

PHP has its shortcomings, but it has the gentlest learning curve out of all the languages and frameworks I’ve used so far. And PHP is about coding quick (and dirty) solutions. So, in an extremely short period of time, you can build a web app to be extremely proud of.

How to become a full stack web software developer UpGrad Blog front end backend

Java is a general-purpose programming language and probably the most popular language of all time. It is extremely popular for building mobile apps (on the Android platform) and used extensively in most major tech companies. Head First Java is an excellent place to learn this ubiquitous language.

To learn Python, I’d strongly recommend Zed Shaw’s Learn Python the Hard Way and Albert Sweigart’s Automate the Boring Stuff with Python. If you’ve decided to go with PHP, you can learn the basics of the language on Codecademy.

You already know enough JavaScript syntax to get your hands dirty with the Node and backend JS frameworks (such as Express). I’ll cover Ruby later in conjunction with Rails as it is rarely used as a standalone language.

Step 9: Learn SQL

For the next step, you should probably pick up a little SQL (Structured Query Language). It is the language databases communicate with. And although you might not use it directly when you switch to using frameworks, it still helps to know how to directly communicate with your database. The good news is that SQL is incredibly easy to learn. You should be able to get a good grasp of it in a matter of hours. Head First SQL is a great resource for this purpose.

How to Become a Full Stack Developer: Part 1

 

Step 10: Learn a ‘Conventional’ Full-Stack Web Framework

Now is a good time to experiment with web frameworks that can do most of the lower level work for you.

There isn’t a shortage of great frameworks that could cater to every purpose imaginable. Rails (written in Ruby), Spring (written in Java) and Django (written in Python) are among the popularly used frameworks today. You could take a look at Michael Hartl’s The Rails Tutorial – available for free.

As far as Django is concerned, the tutorial on the official website is a good place to start. Once you feel you’re comfortable with the basics of the framework, do give Two Scoops of Django a read. It’s one of the best technology books ever.

If you’ve decided to go the Spring route, I’d strongly suggest signing up for UpGrad & IIIT-B’s Software Development program. The program gives you a very holistic overview of the framework and helps you build a robust and scalable backend.

Step 11: Javascript Full-Stack Frameworks and the MEAN Stack

Not very long ago, Backend Development used to be based on the concept of the request-response cycle. For example, the browser sent a request and the server responded by spitting out a webpage in HTML. However, since early 2010, more and more applications have become real time.

The structure of an entire web page changes without refreshing and behaves dynamically based on user input and interaction (Think chat, liking, commenting, live videos and reactions, etc.).

How to become a full-stack web software developer Back-end UpGrad Blog

In such a scenario, a simple request-response cycle simply isn’t enough. Therefore, there has been a recent surge of interest towards asynchronous programming and making AJAX requests the norm. Javascript Frameworks tend to excel at this. So, it makes sense to get acquainted with one of the major JS frameworks available in the market. The two most popular ones are the MEAN Stack and MeteorJS.

Interview with Farooq Adam, Co-Founder, Fynd

 

Learning MEAN is slightly more complicated due to its asynchronous nature and the callback hell Node usually tends to unleash. But now that you’re a seasoned developer, you are mature enough to deal with its idiosyncrasies.

Meteor is a full-stack JS framework I’m currently experimenting with. The concept of Meteor is absolutely delightful – one framework in one language that takes care of all the components of an application (front-end, back-end, and database). However, this comes at the cost of customisation freedom. Once you’ve built something in Meteor, it is virtually impossible to change the database or the backend framework should you choose to do so. Though, I still think this is a worthwhile technology to learn. Meteor is known to be extremely powerful. It’s capable of doing things in hundreds of lines of code where other conventional frameworks would’ve required a thousand.

Conclusion

This is the end of part 2. In this post, we’ve covered resources concerning backend development and the various full-stack technologies available. You can now proudly call yourself a full-stack developer. Congratulations!

But the story of full-stack web development doesn’t end here. With the introduction of the iPhone, there has been a smartphone revolution around the globe. More and more people are shifting towards using smartphones in place of desktops. In such a scenario, it is imperative that you learn to build apps for two of the most popular platforms out there: Android and iOS. We shall be covering this in the next and final part of this series. Additionally, we shall also look into frameworks that allow us to build native apps using Javascript (Ionic, React Native, etc.).

Until then, it’s goodbye. 🙂

Your comments and suggestions are welcome!

The following two tabs change content below.

Rounak Banik

Rounak is a final year undergraduate at IIT Roorkee. His professional interests lie in Web Development and Data Science. He has previously interned as a Software Engineer at Parceed, a New York-based startup and Springboard, a Data Science EdTech startup based in San Francisco and Bangalore. He has also worked as a Backend Development Instructor with Acadview, teaching Python and Django to around 35 college students from Delhi and Dehradun. He is currently working directly under the Director of IIT Roorkee and Dr. Durga Toshniwal on a project on Fake News and Review Detection.