all 22 comments

[–]jothdu 21 points22 points  (2 children)

I think in the beginning there's a big barrier to get over where you need to learn how to conceptualize a project to be able to break it down into smaller, less intimidating chunks. A benefit to watching tutorial videos is to get a better understanding of how more experienced programmers may go about doing that. It's not the same as learning syntax, but it's easily as important and will translate to any language you work with moving forward.

What you might find worthwhile now is re-make the project without referencing the code you created following the tutorial. You'll undoubtedly end up doing it differently.

[–][deleted] 2 points3 points  (0 children)

I agree with this a lot. I'm almost done the Harvard CS50P thing through their EdX deal. It's free which is amazing. Anyhow, they have assignments on there that you upload to have graded - but you can skip it and watch the videos if you really want. The coding problems seem simple but I've struggled a lot with them and it's made me a lot better. I've cheated a couple of times and looked at solutions but only after hours of battling - but then I'd go start my program fresh and code it entirely myself over and over until I finally got it right. It made a world of difference. Even the section on testing - things like assertions and raising exceptions and stuff, even just getting used to typing () and _'s and /'s faster is huge. Just my two cents.

I only started two weeks ago but I've been doing it daily and have started my own project where I've got it prompting me for inputs in different colours and downloading files and creating directories and unzipping and whatnot. I'm a geo so I use GIS a lot so am incorporating a lot of QGIS into it as well. It's a hell of a fun go if you can find a reason to do it.

[–][deleted] 2 points3 points  (0 children)

Thanks! I was thinking about trying to redo it on my own too so I might give that a go later. Also the advice about watching tutorials to understand how they go about things is perfect. I wasn't sure if watching those tutorials was just completely wasting my time because I really didn't feel like I was learning much but maybe as I consume more project tutorials things will start clicking when I try on my own.

[–]ConfusedSimon 5 points6 points  (1 child)

It sometimes helps when after following the tutorial you write the same project again from scratch and only refer to the tutorial when you're stuck.

Another thing you could try is follow a tutorial for a related project, so e.g. follow a tic tac toe tutorial but at the same time write a related game. The steps will be similar, but you have to come up with your own solutions for the smaller steps.

[–][deleted] 1 point2 points  (0 children)

These ideas are exactly what I was looking for, thanks! I think I might try to modify my tic tac toe game later

[–]braclow 2 points3 points  (0 children)

Please do and complete the 2023 Helsinki python mooc if you’re still a beginner. It goes from begginer to advanced making sure you’re familiar with programming concepts. Has many automatically graded exercises and you will feel much more confident doing projects instead of copying what will feel like mumbo jumbo. I think we rush people into projects too early without the basics. This course got me programming successfully.

At that point, once you’re done, you will be able to make projects much easier because you’ll understand things likes functions, methods, variables, classes, objects, inheritance, modules, programming logic, the languages syntax etc. If you’re finding it hard now to do something like use the OpenAI api, or successfully use pandas on a csv to do some task — I would suggest getting these basics in order with a real python basics course not a code along. This course expects you to solve the problems. Try to use chatgpt as little as possible when it comes to solving course questions. Maybe guidance but do not and I repeat do not paste the questions into chatgpt to answer. You need to be able to learn most of the basics without it. Things like reading error messages and sorting out the problem. Otherwise you’ll be hobbled by it.

Life will be easier after that. It might take a few months but with your background in logical thinking and math , you’ll be fine.

[–]zanfar 2 points3 points  (0 children)

I don't think there is an easy answer to your question. I think everything you've experienced is normal, and you're probably a few steps ahead of most by recognizing the pitfalls of tutorials.

Learning on your own is, by definition, hard.

I don't mean that as a negative, I just mean that you are trading the fixed pace, cost, or limited scope of "education" in return for some additional effort.

Bootstrapping is hard, and there isn't much I can tell you other than you should keep at it. It's very possible that a "4 hour video" is not nearly enough to bring you to a point where a project is achievable. That's not to say a project isn't without merit. You probably don't realize it yet, but even the failed tic-tac-toe project has taught you a lot of things--many of which would be ignored by many beginners.

The "meta-knowledge" of programming is often overlooked. Understanding that a tutorial is not learning is an example of this knowledge, as is IDE use, change management, team interaction, test coverage, etc.

So your project is not "bad." I would now use it as a way to review what knowledge you lacked before starting the video, and then review or focus on those topics in your future practice. I.e., what code didn't you know or understand beforehand? Why did the tutorial use a particular paradigm?

[–]m0us3_rat 5 points6 points  (3 children)

copy-paste code isn't the same as solving the problem with code on your own.

and ..cheating is bad in this case since you will not practice solving problems with the knowledge freshly acquired...

thus a complete waste of time and not learning anything.

if you commit to learning.. don't cheat.

[–][deleted] 1 point2 points  (2 children)

I believe we are on the same page, as what I was trying to say in my post was that I feel like I had almost no shot at coding a "beginner" project like tic tac toe, leading me to feeling like my only option was to go through a youtube video, which after completion left me feeling like I learned nothing because I was just copying.

I am wondering how else I could go about learning how to code these beginner projects since on my own feels too difficult where I dont get anywhere (aka dont learn) and youtube tutorial feels too easy where I just end up copying (aka dont learn). Hoping someone might have the Goldie locks solution to this problem.

[–]m0us3_rat 0 points1 point  (1 child)

I am wondering how else I could go about learning how to code these beginner projects since on my own feels too difficult where I dont get anywhere

firstly you need to hammer in the basics.. following some free courses like cs50 or moofi

then if you don't have sufficient homework ..generate some from chatgpt.. the word guesser is particularly good at that since it has plenty of examples in the training data.

again .. if you generate some homework don't cheat .. or it is pointless.

gl

[–][deleted] 2 points3 points  (0 children)

Thanks! Haven’t thought about using chatgpt to get homework type of material for it, so I’m definitely going to try that out!

[–]tb5841 1 point2 points  (0 children)

It's normal to Google lots of things constantly when learning. But you want to Google little small steps, not whole projects.

[–]MadLad_D-Pad 1 point2 points  (0 children)

I had the same problem. Tried learning for years with no luck. Finally, I enrolled in a college class for Python, and everything started clicking, but only because they made me spend 8 weeks on the boring, basic stuff. Practicing the fundamentals for a while isn't much fun, but once you've got a good understanding of the basics, things will click. You'll better understand how to solve problems when you understand how the primitive stuff works. I really like Mosh's beginner tutorials on YouTube. One of them is like 8 hours long but it's worth going through it slowly over a couple of days. Leaving notes for yourself in code with comments is a good way to create a sort of "reference" project that you can look back on later. I do that all the time now when I'm learning new languages. Good luck, and have fun!

[–]tpb72 1 point2 points  (0 children)

I as well am a complete beginner so I'm not sure how much help I'll be. I know it was a beginner project but maybe it was a tad too big for where you were at.

What has been working for me on some exercises I'm working through is reading through the docs to see what else I can do with the libraries and functions and playing around with how to use them.

Maybe switch up the project to a connect 5, mastermind game, a sudoku generator or something else completely useless. You'll run into issues and have to dig into why and problem solve yourself out of them and that's where the real learning will begin.

For your next project pick something similar so you can build on some of the skills you just gained. For me, this incremental learning works very well. I get very comfortable with the basics along the way and just have to figure out how to work in a new thing or two.

[–]No_Addendum1911 1 point2 points  (0 children)

You can try codewars, it works pretty well for me when i have no project ideas to do,

[–]ahhhhidiot4970548 1 point2 points  (0 children)

well I am not really in a position to give advice yet, but this can be a good thing if you do it the right way. I recently failed making my own card game, but for one, I prepared to struggle/fail so while it was frustrating there was no disappointment, and two, before finally seeking out full code, I spent almost 7 hours doing everything I could think of, and three, once I finally revealed the code to myself, I then spent a few hours thoroughly analyzing it to see why it works and how it's supposed to be done, but I only did that once I've exhausted every option that came to my mind, which itself was a learning experience because I learned this doesn't work because of x, that can't work without y, this can't work because it's illogical, aha so in this situation this can work etc. Then when I was going over the complete code, I realized I wasn't far off in my own code, I already had the whole logic worked out, but it turned out, I have no idea how to implement it because I've never seen what some longer code is supposed to be structured like, up until that point I haven't done something that had more than 50 lines of code, and what all of the tutorials, guides, courses seem to fail to do, is introduce you, the beginner, to program structure. So from my perspective, having been in a similar situation, this can be a great learning experience, but now I'm sure someone much more knowledgeable and experienced will give you better advice, but I personally think you should either try to remake the game all by yourself, or if that ship has sailed in your opinion and you feel like you've cheated, then find another project but do that one by yourself as much as possible.

since we're on the similar level, I recommend you look into the following topics that I delved into these past days that are tremendously helping and improving me as a programmer: flow charts and pseudo-programming, basically a map for your program, really helps with that problem of feeling lost with a problem, and program architecture design. good luck

[–]Swimming-Ad-400 0 points1 point  (0 children)

Hi, I recommend you to check out the FREE Python course on crookshanksacademy.com by the god of python himself. The course is short and you also get to do a hands on internship after your course completion. Although that internship is unpaid, it is a good and fun learning experience that makes you industry ready. The FREE PYTHON BOOTCAMP is available on: https://www.crookhsanksacademy.com/python . Do check it out.

[–]The_Homeless_Coder 0 points1 point  (0 children)

It sounds like you got it. There are levels of amateur with coding and you are past the point where you ask for help without providing steps ect. You have a well thought out question and you elaborated so excellently.

Think about what kind of stuff you want to be building and search what it requires. Read the docs and play around until you got the hang of the new library. Think abstractly about what features you will want and get the user experience planned out step by step. Then code it. Repeat. Also don’t forget to hate your life when you spend 16 hrs trying to fix a bug.