About python web development
Hello everyone, today I want to share my last tree years of web development using the Python programming language, and that was not the first time that i used python, Where did I work on projects whether academic like “implementing AI for solving image processing” , or freelancing like “Web scraping for data collection “ and other specialties and projects and open source contributions.
Then I needed to be able to make my experience on the web because of the job opportunities it contains, So i started with learning back-end by virtue of tribal gains over machine learning and data analysis, The thing I was sure about is the programing language that i will use, but for choosing a web development framework is challenging.
Python community provide multiple web frameworks, and there are basically three types of frameworks :
1- Full Stack Framework : (Django, Giotto, Pyramid, Web2Py …… )
2- Micro-framework : (Flask, Bottle, Falcon ……. )
3- Asynchronous Framework (Tornado, Growler …….)
So I started to learn that web development involves a front-end, everything that interacts with the client, and a back-end, which contains business logic and interacts with a database, then i start my first side project using Flask, because It is designed to keep the core of the application simple and scalable plus it’s easy to learn.
i started my first job as a python developer, where the company need to build storefront websites for eCommerce startup, so i have to use monolithic type of application, “monolithic describes a single-tiered software application in which the user interface and data access code are combined into a single program from a single platform”, Flask provide everything you need to build a web application, such as “blueprints” can help you structure your project by grouping its functionality into reusable components, “Jinja2” template engine allows customization of tags,filters, tests, and a lot of tools that’s You will learn it with time and as needed.
After that I had to contribute in the API service where i learned Django rest framework, celery, Elasticsearch, and more tools which I did not know the necessity of using them for generate reliable outcomes, in addition to deployment and monitoring skills, the most of my contributions was about new API integrations, such as Facebook business API and payment methods.
There is a big difference between freelancing and work on team, the main assumption of all team-building activities is building relationships in a team which will affect better decision making and improve implementation of the most complex projects. In order to be successful on these levels, it is necessary to build a team motivated by one common goal, and the important thing I learned from my team is about good communication and treatment, Great teamwork doesn’t always mean ‘work.’ In fact, the more a team can have fun, the more likely they are to trust each other.
When you contribute on large-scale web applications, performance holds the key. Scalability is the ability of an application to achieve high performance irrespective of the number of people using the application at any given point in time. A large scale web application can effectively handle high volumes of data and traffic and quickly adapt to voluminous load changes without affecting the quality of operations, so the developer must be knowledgeable about best practices, and bad decisions could possibly add layers of complexities to the system and adding features in the future could become harder. It is important not to jump on the scalability bandwagon.
All in all, my experience learning Python has been fulfilling and empowering. Learning Python truly makes me feel like I am able to subject the machine to do amazing tasks for me,