Beyond Django
Tags: beginners, programming, webdev, python
Published: 2023-10-11 19:15:37

Hi, my name is Saifullah Usmani. I am a Programmer and I have been programming since 2017. I have worked with several freelance clients and my freelance journey begin in 2019.

Congratulations on learning the basics of Django. From here I think you have two choices.

##Choice no 1:
You can learn Django Template Language and start offering freelance services for complete web development. You are a fairly reasonable full-stack developer who can offer complete web development services.
##Choice no 2:
You can choose a little time-consuming path and learn API development and become a backend developer or also learn a frontend framework like ReactJS and become a full-stack developer that way. 
I personally prefer this choice because API development and API integration are two very well-paid and versatile skills and both feel very proper when you work with them.
Choice 2 is like a red pill that will take more time, and not give you any profit in the short term like choice 1 but in the long run it will cross the benefits of choice 1.

## Guide to choice 1:
You need to learn these topics to get started:
1. Authentication in Django
2. Templates
3. Models and Views
4. Qurying models
5. Dynamic template tags
6. CRUD operations with Django models in views
6.1 Handling HTTP requests (GET, POST, PUT, DELETE)
7. A little knowledge of how to modify the Django admin panel
8. Github & GIT


## Guide to choice 2:
You need to learn these topics to get started:
1. All in choice 1 except templates shouldn't be taken religiously
2. Django Rest Framework
3. Pagination
4. A good understanding of HTTP requests and how to handle them in DRF (DjangoRestFramework)
5. Django Signals
6. A better understanding of Django models and relationships (keys) also learn the *related keyword*
7. Filters
8. Django CORS Headers
9. Django Celery
10. JWT authentication
11 How to host Django APIs (Nginx/Apache, Gunicorn, Linux server)
11.1 Hosting with celery

At this point you are an API developer but if you want to become a full stack developer you need to learn a frontend framework where you will consume/integrate the APIs you develop using DRF

###Guide to API integration for those who want to go beyond choice 2
Here is what you can learn for frontend:
1. A frontend framework (Let's assume ReactJS)
2. State management library like Redux (React-redux)
3. Axios (For HTTP requests) [This will teach you API integration]
4. Javascript LocalStorage object
5. Understand Cookies (They are not biscuits for you anymore😂)
6. Understand objects/Dictionaries, Lists/Arrays, and how to loop over them and render them in any way you want using JSX or any other option you have in your frontend tech.
7. Learn User Interface (UI) and User Experience (UX) theories so you can critique your own design and make better designs.

That's it, keep in mind you can start freelancing after choice 1, choice 2, or beyond choice 2. Freelancing is another skill and if you want to learn that then keep in mind freelancing is just about communication, not your skills.
Read about my freelancing experiences here:
https://dev.to/saifullahusmani/series/15137
or visit my website and read from there:
https://saifullahusmani.com/index.php/category/freelancing/