How can we learn from other people's code bases?

Hello,

I have written this text window watching a tutorial a week ago.

from tkinter import *
from tkinter import filedialog

my_window = Tk() #Creating a window 
my_window.title ("Notepad Version 1.2")
my_window.geometry('500x500')

text_space = Text(my_window, height=500, width=500) #Making a text space (I think variable) in the window and writing "my_window" so python
                                                        #which window has this variable, works without it too. Just type height and width
text_space.pack() 

my_window.mainloop()

Problem: Now my problem is I really don’t understand what I need to learn from this code base. Think of it like a math problem. I saw the problem, I found the solution online, I did it, and just thought ok first we do this step, then this , then this. But I really didn’t understand anything.

Here, I understand what the code is doing, like first importing everything from Tkinter library which is used for creating windows usually and all, then we set title and other configuration and everything.

But is that all there is to learn? Like what are the in depth things we need to learn? What concepts do I need to understand? And even if I do have names of a few concept I don’t want to just read their definition and stay there. I wanna go as in depth as possible (I don’t even know if wanting to go so in depth from the very start is a good idea, so if it is not please feel free to correct me in this).

Question Summarized: Therefore, please help me understand when I build a project watching tutorials or anything, what am I really trying to learn from it? And how do I start building some without any tutorials?

Thank you
Joyeta

Building projects on your own will teach you how to break down large problems and tasks into smaller tasks. You will learn how to debug your code and error messages. You will learn how to research for help and ask questions better. You will learn how to design your own solutions and have a better understand of the programming language and tools.

For example, let’s take a project idea like an expense tracker.

What are the core features that an expense tracker should have?
List off a few key features that this project should have

Start with a building out one of the core functionalities.
Expense trackers should allow users to create budgets, categorize their expenses and analyze their spending habits.
Start by breaking down one of those core features into small bits and chip away at the problem bit by bit.

You will probably get stuck a lot and need to read documentation, stackoverflow, etc but you are going to learn a ton in the process.
That is the best way to become a developer.

When you build projects from scratch and make tons of mistakes, you will learn so much more then solely watching tutorials.

Tutorials are great when you are first starting to learn but then you will want to break free from them and build projects on your own.
It can be scary to do that, but it is the best way to learn and grow

You just start.

You will get stuck a lot and not know where to turn to next and it will be tempting to look up a full project tutorial to see how someone else did it.
But remember that programming is about problem solving.
It is about learning how to get unstuck and solve problems.
So it is totally fine not to know how to start or mess up 100’s of times because you will learn so much in the process.

The best developers are the ones who made 100’s of mistakes and put themselves in positions where they were in challenging projects and didn’t know how to even get started.
But they took it one step at a time, and failed a whole bunch until they figured it out.

Hope that helps :+1:

1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.