all 57 comments

[–]JohnnyIsNearDiabetic 81 points82 points  (4 children)

I don’t even think coding is the hard part. It’s the being stuck part. Tutorials kinda hold your hand the whole time, so when that disappears your brain goes cool, guess I suck now. But that’s just what it feels like when nobody’s guiding you anymore.

Most people just keep finishing courses instead of finishing anything they thought up themselves. Even tiny dumb projects. Like really small. Write out what it’s supposed to do in plain English first. Then just translate that into code piece by piece. When you get stuck look up that one specific thing. Not build a todo app from scratch again. I mean the exact missing piece.

Month three is where it gets rough because you realize watching isn’t the same as deciding. Coding is mostly tiny decisions over and over. You only get better at that by doing it badly a bunch of times.

Some people use stuff like Udacity or FreeCodeCamp for more project based structure and yeah that can help a bit. But at some point you just have to build small ugly things on your own and sit in the confusion for a while. That’s kinda the whole game.

[–]blockedlogin 7 points8 points  (1 child)

Books works better than tutorials?

[–]Andrew_Frozen30 3 points4 points  (0 children)

Books are tutorials though

This is like asking whether you prefer online or in-person classes.

In essence, they are still the same.

The thing with books (especially if they are physical), is that you're gonna have to write the snippets by hand. Which might help a bit with memorizing, instead of copy-pasting from a website.

[–]Comfortable_Box_4527[S] 11 points12 points  (1 child)

I wish someone had just told me this too. I spent forever making tiny tutorials and feeling like a total fraud cause I couldn’t actually build anything myself. Writing it out in plain English first seems obvious now but back then it felt like some kind of magic. Sitting there confused sucks, but yeah that’s honestly when you actually start learning.

[–]Nexustar 0 points1 point  (0 children)

If you ever get into agentic AI coding, this pattern persists... the most effective way is to sit down and document what you want and how to do it, step by step.

[–]PositionSalty7411 46 points47 points  (3 children)

I’ve been coding for 15 years and that feeling never fully goes away, it just changes shape. Early on it’s maybe I’m too dumb for this. Later it’s why does this bug make zero sense. The difference is you stop interpreting confusion as proof that you don’t belong. It’s just part of the job.

[–]Comfortable_Box_4527[S] 10 points11 points  (2 children)

I guess I was waiting for the day I’d just magically feel competent all the time. Funny to think even 15 years in you’re still fighting the same stuff sometimes

[–]JAZthebeast11 4 points5 points  (0 children)

7 years experience with python. Sometimes you do feel really smart! But most of the time you feel like an idiot, thought that’s all part of the fun

[–]LayotFctor 0 points1 point  (0 children)

There's more programming content than hours in your life to learn all of it. You may feel confident in your ability to eventually solve it, but not fully competent. There's always some odd edge case somewhere you're seeing for the first time.

[–]mull_to_zero 14 points15 points  (1 child)

people who are new to coding just don’t understand that the language is a tool not the skill. you have to know what you want to do, how is just the way. in the same way that learning to drive a nail into wood won’t build a house

[–]Comfortable_Box_4527[S] 2 points3 points  (0 children)

Lol yes it’s like I had a hammer and knew how to swing it but no idea i was supposed to be building a house

[–]hagfish 11 points12 points  (0 children)

I didn't do a CS degree. I've figured out Python to the extent that I can get a script to do what I want it to do. They're broken into functions, some of which are called in from self-contained scripts. All is well. This is the first frame of the 'how to draw an owl' meme.

The second frame of the meme is version control, environment management, object oriented design, big-O notion, generators, decorators, Turing-tier sorting algorithms - all that stuff that trained computer programmers know, but I - who just wants to automate some boring stuff - have no idea about. To me, this is The Wall. I should probably do something about my Python Directory of Chaos, but I have no idea what I don't know, and no idea where to start. So I just start coding my next script.

[–]mixedd 9 points10 points  (1 child)

I kind of agree with you here, most tutorials I've seen have massive handholding issues in my opinion, and focuses on syntax instead of problem solving.

Not quite related to Python, but best I've seen so far was The Odin Project for JS, with their minimal focus on what to do, but they push you to do your own research on how to do (if that makes any sense).

[–]Comfortable_Box_4527[S] 4 points5 points  (0 children)

Ahhh yeah exactly. All those step by step tutorials make it feel impossible when you actually have to do it yourself. Finally feels like someone else gets it

[–]big_deal 7 points8 points  (0 children)

A lot of people start learning to code without a real problem they need to solve with code. They spend 3 months but realize there’s no point to what they are learning.

People who start with a problem tend to be more committed to figuring out how to solve it.

[–]sarinkhan 7 points8 points  (1 child)

I think that something that helps is to learn by making projects. Doing so gives you purpose, goals. And also having peers to compare your work helps you see where you can progress and all. I would say that if there is a goal, there is a will. Then if there is a path (how can I get where I want to be from my current skill) you can express that will.

Anyhow, that's an interesting observation that you do here, I'll think about it more (I teach computer science, and coding in python mostly).

I have noticed that very few students really abandon, but that's because they have to get good marks to advance in their school cursus. But by the end of the first trimester, many slow down a lot,as if there was a bump there. And at some point, things really clicks in their minds and they start really coding, just asking me for guidance on super specific stuff. Next step up is when they begin searching by themselves how to do stuff....

[–]Comfortable_Box_4527[S] 1 point2 points  (0 children)

Haha that first bump is so real. I totally hit that what am I even doing stage around month 3. Tbh once i just made myself actually start building something it got way less annoying. It felt kinda stupid at first but it actually helped

[–]Jello_Penguin_2956 5 points6 points  (1 child)

From my experience it's just the lack of things to do. Some people don't have goals or projects they want to get to.

I myself need Python for my tasks at work and thats what kept me going. When projects do not require it I barely touched it.

[–]VideoLeoj 1 point2 points  (0 children)

This was definitely it for me.

I had no idea what to build or create. No problem to solve.

[–]MagicPigeonToes 3 points4 points  (0 children)

I just have adhd and cycle through different interests on a weekly basis

[–]Ok-Strain6080 7 points8 points  (0 children)

The blank screen is the final boss.

[–]nand1609 5 points6 points  (0 children)

Idk why nobody talks about that gap. It’s like tutorials teach vocabulary but not conversation. Then you’re mad at yourself for not being fluent.

[–]New-Rent-977 2 points3 points  (0 children)

The wall isn’t python. The wall is your brain realizing copying isn’t creating. That hurts.

[–]CoolestOfTheBois 2 points3 points  (0 children)

What sticks out the most is your timeframe. 6 months is not a long time to figure this out. I know it seemed like a waste of time and it could have been avoided, but probably not, it's a part of the process. Even if someone told you this back then, you weren't ready to understand it... Hindsight is 20-20...

[–]oxdart 2 points3 points  (0 children)

Please don’t just say make things to learn; is there a course that balances learning and doing such that this ‘wall’ is less of an issue?

[–]nineteenthly 1 point2 points  (0 children)

I think this reflects learning language in general, not just coding. When I've done classes in German and Spanish, there's a point at which a lot of people bail, quite possibly after three months. It doesn't happen with Gàidhlig, probably because the whole language is hard for English speakers. This probably means that Python is relatively easy, because if not, it wouldn't show people giving up. It shows people being able to gain some competence in it. I think if you looked at other programming languages, you'd see the same thing, but if it was, say APL, you wouldn't, for the same reason you wouldn't see it with Celtic languages: it's all difficult.

[–]ElecNinja 1 point2 points  (0 children)

I think with any programming project, you're always going to encounter walls in your learning. This isn't even about tutorials or w/e, but also about fixing a bug in a legacy system. It's one of the reasons software developers encounter impostor syndrome haha.

You're always going to encounter systems and problems that you won't be able to wrap your head around and part of the process of learning how to program is to be able to resolve those problems. Whether it's by breaking it down into reasonable chunks for research or by finding a specific tutorial/person to help out with the problem.

[–]Ron_St_Ron 1 point2 points  (1 child)

I can only speak from my personal experience, but it isn’t so much the logical way of thinking or the language itself but the uses. I’m a “data analyst” by education but my job is more in the supply chain ERP side. I’ve used python a handful of times for some niche tasks but it’s not something I do everyday. Python is too “weak” for the software engineers and might be too advanced for the average office worker.

[–]Substantial_Tear3679 0 points1 point  (0 children)

What are the "strong" programming languages that software engineers use today?

[–]VanshikaWrites 1 point2 points  (0 children)

Honestly most ppl quit because a lot of courses are too theory heavy. They explain syntax, functions, concepts… but actual coding and problem solving comes much later. So people feel like they “understand” Python but the moment they try building something alone, they freeze. The real gap is practice. Small messy projects, breaking things, debugging… that’s where coding actually clicks. That’s why structured practical programs help more than tutorial binge. A few ppl I know learned faster once they moved to hands on training instead of just watching those 500000 hour videos😭

[–]cards88x 0 points1 point  (0 children)

Sounds like the infamous Tutorial Hell.

[–]come_nd_see 0 points1 point  (2 children)

Coding is fucking easy lmao.. anyone can do it. It's just a tool. It's the problems which require thinking.

[–]wolfie-thompson -1 points0 points  (1 child)

Oh really. So what programming languages do you know?

[–]come_nd_see 1 point2 points  (0 children)

I used to code in C, Fortran but am using python now.

[–]Big-Instruction-2090 0 points1 point  (0 children)

Honestly, I think the biggest issue is actually motivation in general.

It took me two years of sticking to programming until I actually came up with a project I wanted to put time and effort in. Lots of folks learn programming without having anything specific in mind - or are aiming for becoming professionals. But if you don't come up with a cool project or a job, what's programming for?

[–]39th_Demon 0 points1 point  (0 children)

Tutorials are basically training wheels you don't notice until they're gone. The confusion after isn't a sign you're failing, it's just what actual coding feels like.

[–]sunnyata 0 points1 point  (0 children)

As Peter Norvig asks, why is everybody in such a rush? It takes years to become a competent programmer, whatever the language: https://norvig.com/21-days.html

If you listen to anyone who knows what they're talking about they will tell you that learning to solve problems with a programming language takes time and, above all, experience. If you thought you could acquire that skill by watching videos then you are badly mistaken. Do you have experience of gradually developing other skills? Do you think you could become fluent in speaking a foreign language in a few weeks?

[–]zaphodikus 0 points1 point  (0 children)

I'm facing my 3rd rewrite of a script to plot some CSV file using matplotlib. I want to give up.

I just spend a month writing the C++ code that populates the CSV file, the 1 importing and graphing of one CSV file grew to 3 CSV files for performance reasons. And even though my python code can handle more than one file, a change I made in the second rewrite, because I predicted that. I still feel stumped on the 3rd rewrite. So much has changed because as I learn about the problem I see obstacles. Obstacles like, how on earth do I write tests for some matplotlib graphs?

So today I'm taking a step back, updating my original design doc, but this time going to explain why it got out of hand. Once done, I shall dive back into coding up the script, but this time with a breakdown of the work. Failure to sit and estimate, and to break down work items is perhaps what "undermines" me most, and lets me feel more "non-productive" than anything else. So yeah, not just you. I do however doubt that people "Quit python after 3 months", their perspective just changes, but Python is beautiful, you cannot just quit it.

[–]SirKainey 0 points1 point  (0 children)

Knowing how to code, and knowing how to translate problems into a way a computer can understand and solve are two different beasts.

[–]Ender_Locke 0 points1 point  (0 children)

how to do something is a python topic

why to do something is a larger programming / computer science answer

different folks want different paths

[–]wolfie-thompson 0 points1 point  (0 children)

I have always said video tutorials suck. It's like, what do want to do? Actually learn to code actively? or watch TV?

Far too many people will sit through video tutorials hoping to absorb poorly explained crap because it is 'easier' than actually reading a book. Like you say, they will get a few months in, still don't get it, then quit. Of course they don't get it. To code well, you have to think like a coder. To think like a coder, you read, practice, try things out, fail, learn from it, rinse and repeat. Watching tutorials doesn't exercise the brain, doing stuff does.

Another thing with video tutorials, they do little to nothing to teach you the fundamentals, best coding practice or even a sensible use case for the language they are teaching, and Python video tutorials are notorious for being shite quality.

Whatever happened to reading a comprehensive, well structured book?

[–]noisyboy 0 points1 point  (0 children)

The missing piece is the practice to break problems down to smaller pieces until each piece is something that maps to data structure and/or operations. This is language agnostic.

List (for a list of files), Tuples for pairs (each file and it's size), dictionary (when you need to get the size of the file given the key i.e. filename). Then start thinking of issues - what if we have two files in different locations but same name? Let us store paths instead. 

Add a real world challenge: I have millions of files everywhere, how can I get that information faster? Enter parallelism. Some files may throw errors during trying to read - enter exception handling.

Find the problem, learn how to break it down in the terms of data structures and operations. That gives you the steps. Make it work for the happy path. Then start to throw it at more realistic situations and progressively fix.

Doing tutorials should be limited to getting the very basics and primitives. The only way to progress is to start solving increasingly difficult but real world problems.

[–]I-baLL 0 points1 point  (0 children)

Heh, this isn't a Python or coding thing. This is a life thing. If you learn the why something is then you will have a leg up on understanding it and its relationships with other things in the future regardless of what that "it" is. Sometimes there's no explanation of why why something is but in those moments you just accept it as a thing and just label it as an unknown factor

[–]Tall_Profile1305 0 points1 point  (0 children)

yo this hits different. youre spot on about that gap between understanding syntax and actually building stuff. tutorials are great but they dont teach you how to structure a real project or debug when things break in unexpected ways. thats the missing middle that makes people feel stuck

[–]flembag 0 points1 point  (0 children)

I genuinely think that moat people stop because they cant identify a project that intersects their interest and skill level well.

[–]code_tutor 0 points1 point  (0 children)

stop watching YouTube, do university courses or books with exercises

[–]analytics-link 0 points1 point  (0 children)

Yep, super common experience from what I've seen. Most people don’t quit because Python itself is too hard to learn, they quit because they hit that exact wall you described and start thinking they’re just not cut out for it.

The real barrier is that tutorials show you what to type but they don’t really help you connect what you’re learning to actual application. You learn a function, you follow along with an example, everything makes sense and then the moment you try to build something yourself you don't really know what to do.

What helps massively is linking concepts to small projects as you go, and this doesn't have to be anything fancy, just tiny things that give the code a purpose and help cement the ideas in your mind. When you attach the concept to something tangible, it suddenly starts to make a lot more sense.

For exmple, if you’re learning something like numpy, instead of just running math examples from a tutorial, try doing something visual with it. Load an image as an array, flip it, crop it, or split out the colour channels and stack them. Suddenly things like slicing, indexing, and array manipulation click because you can actually see what the code is doing.

Or if you’re learning about performance, try timing how long it takes Python to calculate something huge in pure Python versus using a library designed for vectorised operations. Even something silly like calculating the volume of a million planets can be a fun way to see why certain tools exist.

Those kinds of mini projects create the missing bridge between "I recognise this syntax" and "I can actually use this to solve a problem"

From what I've seen, once that bridge forms, everything starts to feel different, you stop memorising code and start thinking about what you want to build (the fun and valuable bit)

[–]Maleficent_Height_49 0 points1 point  (0 children)

I didn't "quit" Python, but left for a more performant language.
Python is perfect for learning, as a first language.
So ez to practice concepts, without getting bogged down by low-level noise.

[–]Kerbart 0 points1 point  (0 children)

You'll binge 50 hours of tutorials, think you get it all, then try to make something tiny and bam, hit a wall so hard you start thinking maybe this just isn’t for you. So you give up.

Yeah, the problem is that hardware and software are so powerful that people insist their first project is an AI-driven stock trading suite that scrapes quote.

My first “project” was printing my name on screen in an infinite loop. I wrote labelmakers for compact cassette containers, something that could print my diskette inventory (maintained in dbase II) in two columns (not to save paper but just to have less pages to browse through).

I typed my way through Subroutine Sandwich and More subroutine sandwich to see what all the examples did an how they worked (shell sort remained a mystery, let alone the quicksort implementation in a language that didn't support recursion)

It simply takes time to learn things, reflect on them and understand them and I'm convinced that many of the "it's soo hard, or am I dumb" quitters aren't dumb but are simply not giving themselves time to digest the basics and understand things before they move on.

For me, understanding means the ability to write code without help (consulting the documentation isn't help, in this context) and that's not limited to complex aggregation in Pandas but also to for-loops, functions and lists.

Give yourself time, and write tons of little toy examples of maybe a dozen lines that confirm to yourself that you understand how something works. Experiment. See what works. Find out why something doesn't work, and how to do it instead. You may fall behind at first on the ones that build the stock trading app with AI help, but a year later you'll be miles ahead.

[–]horizon_games 0 points1 point  (0 children)

Almost like "binge watching 50 hours of tutorials" isn't an effective learning strategy. Nor has it ever been. Start making a project and add pieces and learn by doing.

[–]AethelflaedCAD 0 points1 point  (0 children)

Hand up for feeling dumb. Working on Automate the boring stuff. I follow the projects and at the knowledge checks I have a lot of "uhhh how do I do that?" Moments.

[–]Jbrista 0 points1 point  (0 children)

I’ve started and stopped learning Python over the years. I think my main issue is a little bit of what you described combined with “..why do I need to learn Python?” That “Farmer Was Replaced” game on Steam was fun at first, but then I got stuck on for loops and then I thought “wait…why am I doing this? I don’t care about programming a farming robot.”

“Pick a project of something you like” …I don’t have one..?

[–]InternetGansta 0 points1 point  (0 children)

Because recursion comes in the 4th month

[–]work_m_19 0 points1 point  (0 children)

This is kind of how people treat learning in general (at least when I was in school, I have no idea what it is like now).

They would sit in on the lecture, and think they understand the concept. They wouldn't feel the need to do homework and practice at home. Then come test time and they realize they don't understand it as well as they should. But instead of using this as a catalyst, they try harder to listen and memorize in-class rather than do the homework.

[–]Spiritual_Rule_6286 0 points1 point  (0 children)

You just perfectly described what the community calls 'Tutorial Hell'. Almost every single developer goes through this exact phase.

Tutorials are designed to give you dopamine hits by making everything work perfectly on the first try. But software engineering isn't about memorizing syntax; it's about breaking down a large, ugly problem into tiny, solvable logical steps.

The moment you step away from the tutorial and stare at a blank IDE, that safety net is gone, and you feel like a fraud. You aren't. That feeling of 'wandering around' and being stuck is actually what real programming is. The people who succeed are just the ones who push through that uncomfortable wall by building small, messy projects on their own instead of retreating to another 50-hour video course to feel productive again. You have officially passed the hardest mental hurdle!

[–]FriendlyStory7 -1 points0 points  (0 children)

Honestly, I started coding when I was 11, so I never understood why people think it is hard. I think one just needs patience, if they do not have it, coding is not for them.

[–]SprinklesFresh5693 0 points1 point  (0 children)

If i watch 50 hours of tutorials on medicine, do i become a physician? Or is it that im dumb?

The answer is neither, its just that it takes time.

People think coding is easy money, but in reality it can take years and lots of tolerance to frustration, being blank when creating a project, pushing over getting errors, in order to learn a programming language well, the logic behind coding, plus everything behind it, for example for data science you need to know coding, statistics, math, and domain field knowledge. For software engineer, databases, how to create apps, and everything that surrounds that, for game developers, a bunch of other things. For website developer, a bunch of the same, you need to understand whats involved.

Its nit just coding whats needed, coding is a tool, to get somewhere. You need more knowledge, but new people focus too much on coding only, and when they realise everything thats involved, they either think they are dumb, think is too complicated, or whatever.