Advices and "To Do Lists" for Newbies

Hi folks,

First, if I violate some of the rules in there by this message, please forgive me. I am a student for software engineering, and trying to be a great contributor for open source projects because I want to be an active member for the open source community and learn something by practicing.

They say Django is one of the great open source projects to say welcome newbies. So, I wanna learn how to become a master of software engineer from there. That is the plan :slight_smile:

I noticed that there is “Issue Section” which allows “Easy Pick” for bugs. That is great for starting. I think I can be usefull there by solving some easy problem, but I want to deep dive for projects, and although, I have some coding and debugging skills, and knowledge of algorithm and data structures. I feel these are not enough for deep moves. I need to learn desing patterns, web structrures, advanced python languages skills etc.

This is a jungle, and I might lost in there. So if you are an experienced developer, and bear to read that message till there, please give me some advices, some guides, some cool sources, a to do list to be like you. For example, I have just explored MDC Doc web page, and it is great place to learn web technologies. Then I decided to ask what else there to be explore. Let me find it.

Thank you,

Hi @c-firat, welcome to the community!

This is a pretty open ended question so I apologize if I’m not conveying the information you’re looking for. From what I understand you’re looking to be an active contributor to Django. Here are my suggestions (not in order):

  • Monitor the Django Internals forum and join the django-developers mailing list. These are the places where the discussion of the development of Django occurs. Anecdotally, when I started using Django, I made vast improvements when I started trying to answer questions on Stack Overflow. I didn’t know the answers so I had to go figure them out and then provide the questioner the answer. Or, and I assume it was the more likely case, someone would beat me to the answer and I could see what others’ had in mind.
  • Build a project that uses Django to familiarize yourself with some of the major aspects of Django (middleware, ORM, views, template rendering, caching, urls) - If you have a baseline knowledge of how django works on the outside, it might help you reason about the internals.
  • Start working on open easy picking tickets - This will help introduce yourself to the contribution process of Django.
  • Look to assist with Django adjacent projects - Django Rest Framework, Django Debug Toolbar (see the recent Django survey for other popular third party django packages).
  • Assist on Django tickets by helping create a reproducible test case. - Even if you don’t know how to solve it, it can be very helpful for others to have an immediately reproducible test case.

The larger piece of advice from me is to stick with it. It’s going to be tough, but that means you’re learning. The internals of Django are complex. It can take a while to understand why things are built the way they are. Stick with it and be patient.

Disclaimer: I’ve been building applications using Django for ~9 years. I’ve made a few small contributions to Django proper, more to other Django third party projects.

Hi @CodenameTim ,

Thank you for your advice. This is my first social coding experience, and I deduced that this concept keeps software engineers update and strong for their skills. When I look for projects, I see there are really smart and good coders, and I can say a huge gap exists between them and me. Thus, I sometimes feel that my help might not necessary.

The cold fact is university education or any passive learning doesn’t close this gap, but only these kinds of practices might do that. I am not sure because I haven’t closed yet :slight_smile: That makes me curious to learn more about the experienced programmer here. Therefore, I decided to use this forum to contact some of them.

I hope I will be more usefull in the Django project, and any other usefull open software project with the advice, and catch up you guys.

Thanks again :slight_smile: