Welcome back! Recently i’ve been looking into web development for some projects i’ve been pseudo coding. I’ve developed websites using Wordpress before and i’ve developed GUI’s using R and Python, but i’ve come to a road block recently: I really want to create a full fledged web app, whether it’s a SAAS (Software As a Service) or a standalone web page of some sort. I’m well aware of the different ways to make a website, but as an engineer, one should be comfortable at handling the whole entire process of developing a website from both the front end and back end.
As some of you may know, I use Python extensively, and Python has a couple of different web frameworks you could choose: Django, Flask, etc., and Django seems to be a very decent starting point for web development using Python. However, there was a large question in my head before beginning this journey, the question was:
Why Not Just Build GUI’s Within Python Using One Of The Existing Frameworks (Streamlit, Tkinter, Pyqt)? Why Build An Actual Web Application?
This was a pretty big question in my head, i’m sure you may have this question as well. As a Python developer, you may not need to develop any sort of web application using any web framework, you could just use something like Streamlit and create a web application in minutes without having to setup backend databases and web hosting. However, the one thing that is very perplexing is the fact that if you wanted to scale out that application, let’s say a Streamlit app you developed, you would essentially have to distribute that project as a .py file to your team, clients, etc., whereas if it was a web application, you could just point them over to a website.
This is where learning a web framework such as Django could be very useful. For example, imagine you develop out a very functional data gathering tool, let’s say this tool is able to display specific information that could be valuable to an end user, you could create this tool and send it to people via an email as a .py file, or send it to them via docker and have them run that file, but in my opinion, I would much rather point them to a website in order to access this tool, this would help in not easy access to the tool, but also helping to build a brand of that tool.
Is It a Waste Of Time?
The other main question i’ve ran into is: Is it a waste of time? From what i’ve seen, almost every single company i’ve ever applied to / worked at as a Data Scientist pretty much required no experience in any type of Web Framework (Django, Wordpress, Flask, Ruby On Rails, PHP, Etc.), so if your plan is strictly to stick within Data Science, then it’s pretty much pointless to learn a web framework in my experience. However, if you plan on branching out and developing your own products, it may be extremely beneficial to have some experience on setting up a web app from both the front end and back end.
Obviously, learning Django is one aspect of it, you would also have to learn how to setup environments, hosting, database development and so much more, but web applications still seem to be the one of the most powerful ways in churning out a project to people. So to kind of sum up this article, I think learning Django (or any other web framework) is an extremely powerful thing any engineer can do, this can allow them to branch out of their common tasks in order to learn another extremely useful skill set that can allow them to not only stand out on a resume, but can also help in developing out a web application for your project.