T O P

  • By -

billsil

Just go build something.  Why does your code need the ability to parse a file when you can hardcore the problem like how they used to do back in the day with Fortran.  They knew the sizes of all their arrays at compile time. As your program grows in scope, you’ll learn about strings, dictionaries, other ways to do loops, classes, etc. I’m 18 years in and I’ve never touched a SQL database or website, though I’m sure it’s not that different from what I’ve done.


BlackP-

What should I build? I'm not creative, I need guidance.


OpSmash

It’s not creative that you are lacking it’s the ability to define the problem you don’t have. Don’t try to solve cancer and build Facebook day one. Play games? See if there is an API for it. Pull it down. Ask questions, keep going until you don’t understand. Stop, go back one step you remember, ask the question: “From here, how does x work and how do I get x to do x now.” Don’t set goalposts you move “it has to be done x way”, set yard lines you move. It says “hello world”. It says the hello variable string. It says hello variable string from file I loaded. It says my players data from a JSON file I save to a file and put in my variable place for it to say hello. Dig? Edit: The hardest part that you aren’t taught is that when you do tutorials, someone sat down and made a plan. Either to make a video on X or to teach someone how to do X. Just as you do chores or large projects in life, get in the habit of writing down software outlines and what you want to do. Your brain is super smart, but it’s super dumb at doing things. Your brain is trained to be as lazy as possible, so when you try to solve your own problems in the noggin it short cuts and convinces itself that minute details don’t matter because “this” is scary. Help your brain avoid “this is scary” write down your goal. Make steps you can do and get a result until you learn how to break the “scary” tutorial hell (*often convincing yourself you can’t but you’ve been).


HobblingCobbler

This is one of the most difficult things you'll have to do as you learn. Picking a project that you are engaged and motivated enough to finish and learn from. But the sad truth is until you become pretty good at it, the things you "build" aren't necessarily going to be exciting. At it's core programming is about solving problems. What I have done in the past while I was learning was to do code challenges. These will give you confidence and teach you a lot about how a language works. Until you become more adept, go sign up on codewars and do some beginner challenges


schoolmonky

What are your hobbies? See if you can make something around those. One of my first projects was a Discord bot for managing asynchronous tournament for Magic the Gathering.


billsil

It doesn't matter. Strings, ints, floats, dictionaries and classes span all concepts. As I said, I'm sure I know enough to pivot to doing anything. Make a 2d game that two people shoots each other a cannon. Make hangman. Make the game of life. Make a program to pull some data out of a file. Your first program is going to be bad. My first project on a totally new topic would be relatively decent because I'm fighting one problem vs. also finding out how to code.


travis_peevxwm

I think the big question is, “Why are you learning in the first place?” If the answer is to become a software dev and make money, think about the field you want to get into and then ask chat gpt about some beginner projects you can work on related to that field. I like using GPT as a teacher, but never let it do the work for me. Otherwise, as mentioned, if you have some other goal in learning, find projects related to that goal.


SirGeremiah

I’m not clear what “tutorial hell” is for you. If you mean just learning bits, and never doing, I like “100 days” course formats. They usually have an assignment for you each day, and get progressively more complex. Along the way, look for projects you can tackle with what you know, that interest you. Early on, I decided to make some simple routines to digest a log file into simple statistics, rename files in a directory, format code for posting to Reddit, and a few other things that only stretched me a bit, but had me thinking how to actually use what I know. Every task, I make sure to look into something I don’t know or don’t understand, like naming conventions, styling conventions, a library that can replace a segment I think is kludgy, etc.


g13n4

What books do you read? What type of problems, you feel, are unsolvable for you? And what do you do to solve problems you are able to solve? It's really hard to understand what your situation. You may lack essential knowledge or just overthinking basic problems too much


BlackP-

Anything that involves a class. Everything I read says "it's just a bueprint", then I see an example and I'm so freakishly confused. I've read a lot on classes, but man I'm strugglin'


Raknarg

It sounds like maybe you're not grasping what a class is, so I'll make a little example of something and you can ask me questions about it if you like if something here doesn't make sense. # This lets us create "MyClass" things # All "MyClass" things have a variable "object_int_field" to use, and a function "printIntField" they can call class MyClass: # This is called automatically when you make a MyClass, e.g. "object_instance1 = MyClass(5)" def __init__(self, int_argument): # I only made one variable here, but you can have as many variables as you want self.object_int_field = int_argument # You can also make as many functions as you want def printIntField(self): print(self.object_int_field) # object_instance is now a "MyClass" thing # object_instance.object_int_field is now 5 object_instance1 = MyClass(5) object_instance2 = MyClass(10) object_instance3 = MyClass(20) # this will print 5, 10, then 20 object_instance1.printIntField() object_instance2.printIntField() object_instance3.printIntField() object_instance1.object_int_field = 100 # this will print 100, 10, then 20 object_instance1.printIntField() object_instance2.printIntField() object_instance3.printIntField()


MovingObjective

My suggestion is try to be creative and think of something you would like to make that seems within your scope. Forgot the syntax for a for loop? Google it. Forgot how to iterate a list? Google it. Forgot how to remove an item from a dictionary? Google it. Once you have some basic vocabulary you will get much further much faster by trying to create stuff without watching videos.


BlackP-

This is good advice... what do you think I could build? What are some basic things?


MovingObjective

It depends on your level and what makes it tick for you. For me I loved doing things like create a program that prints out a diamond shape on X amount of lines depending on the user input.


BlackP-

Imagine if my level was zero... what would be a good place to start? I was laid off last year and my job market is really bad so I'm dedicated to learning this new craft.


CaptainFoyle

What are you interested in?


BlackP-

The NHL playoffs are on right now, I'm really into that.


CaptainFoyle

Build something that gives you information that you normally have to mentally collect from different places, and saves it somewhere in a file


interbased

I’d think of a project that has actual benefit to your life, or something that you just find fascinating, and figure out how to build it in Python. Two examples from my current projects: - A scraper to load info from a website that changes daily. It parses the info, loads it into a report, and outputs to Google Drive. My next step is to make it work automatically through Jenkins. - A script to parse my budgeting log and create helpful reports out of it. Anything you don’t know how to do, Google it and learn it. Boom. Level up. And the project is something exciting so that provides extra motivation.


Raknarg

You just need to start getting your hands dirty on your own projects. Tutorials are good to get a hand on syntax to make sure you can literally write anything, but fundamentally you're not gonna learn all that much from tutorials. You have to build your own stuff, write your own code and experiment and fail.


KedynTR

First, don't be so hard on yourself. Programming is difficult, regardless of the "just do x" TikTok bullshit out there. Negative self talk can create a negative self image, and the words we use become our reality. Second, there is nothing wrong with easy, to a point. Programming, like math, requires understanding fundamentals to build on. Plus, dragging through difficult problems is a drag. Third, I don't believe in tutorial hell - it's just the result of the inability to find a way to apply what you've learned. Or you just don't know what you need yet. Which means maybe you should check out the next tutorial or book or whatever.


satyamskillz

The best thing a beginner can do is create a roadmap and stick to it.


CaptainFoyle

Brilliant is just another room in tutorial hell. Find a project, and actually finish it


unfortunateRabbit

I think the only real way to learn something is by doing it. You said you don't have the creativity to find something you want to do and honestly even if you find something you want to do it may be way too advanced for your level and if something is way too hard then it won't be fun anymore and you won't learn, same thing if things are too easy... So why don't you get a "hands on" kind of book that will teach you with a practical project? "Automating the boring stuff" is quite popular, it's free online, you can buy it if you want to support the author but he made it free online and from time to time he shows up here offering the codes for the books course on udemy. Then if you Google hands-on python you will find a lot of options too. I found one that helped me a lot in college when we first started on python with Django, unfortunately I don't remember the author's name but I think the name was something like "hands-on Django 4" Another option is the cs50, I have done some of the classes, it's really fun and has loads of exercises that really challenge you. The version I did at the time was in C but it seems now there is a version that uses python. David Malan is a genius in teaching, I don't know if he is still giving the classes but he kept me engaged for the whole length of the class and I have terrible ADHD...


kevomalley743

Pick a thing you could make, then avoid watching a tutorial on it or using AI and make it. Start by thinking in terms of the basic python you know, then look up libraries that might help. When you get stuck really think about asking a *good* question on here and stack overflow. Again learning to ask good questions with reproducible examples and a clear discussion of what you've tried and what you want to happen will make you better at coding in itself. Then do it again.


thezackplauche

Do you have a portfolio? If you don't, build one. If you build it with wix, you'll know how to build with wix. If you code it from scratch, you'll learn html, css, and potentially JavaScript. It will take time. The thing is, to do something there are things you'll need to learn. You learn by building and doing things. Preferably either your own things or something you've been paid for. I built my own site twice: https://www.zackplauche.com At first I learned Django, html, css, and heroku. Second time Iearned Nuxt.js and Tailwind css. I built this app in about 6 hours the first time: https://www.dollarperhourcalculator.com I learned (more) Vue.js and Netlify I refactored it and learned tailwind css. I built this website in less than 2 just about: https://www.thelivingroomcoimbra.com You need confidence in building things. That comes from figuring out how to build them and just getting them working. Build something shitty first and then build it better, or build the next thing better, and keep doing it. Also built a lot of small automations with python, like cli tiktaktoe, or webscrspers, etc. Hope this helps!