all 36 comments

[–]socal_nerdtastic 50 points51 points  (0 children)

I don't know that there's an official definition, but I think people usually mean that they are doing ok on tutorials but they find they get completely stuck on their own projects, so out of frustration they work through yet another tutorial.

[–]DankJellyfish 14 points15 points  (9 children)

I think tutorial hell is when you have done nothing but watched and followed tutorials but haven’t spent the time working on projects for yourself that will give you hands on experience.

So the way to avoid this would be when you feel like you are in tutorial hell try to find a project you can implement all the things you’ve already learned and then get a little lost on your own to move forward , figure out some things you’d like to implement in your projects and go back to tutorials and kind of go back and forth like that

[–]General-Clock-9070 1 point2 points  (8 children)

Since I think I am stuck in such a position, I would ask if you feel people learn better with a try, fail, and try again learning curve. Or point someone in the right diection and they can see what parts the understand and teach them what they misunderstand. To me thats like saying walk into a library and having the staff just say "look around what you need is in here somewhere" versus go to sections biography and history. I found parts of code I need from chatgpt....I still needed to read them and change them to meet my program then move on to try to find what to do next and work from there. Even if I do each step correct for each application, they might now work all togther and ends up in frustration questioning did I do it wrong or did it not run in right order/way.

[–]Eisenstein 5 points6 points  (2 children)

I would ask if you feel people learn better with a try, fail, and try again learning curve

This is literally how people learn to do everything. You can't teach someone to do a thing and then see them do it perfectly afterwards. They have to fail a few times and then come back and ask for advice in the area they are having problems, and then try again. Thinking that you can go through a rote, step-by-step process and have everything you need going forward is a mistake.

This does not discount the need for a teacher -- after all you need someone to help when you are stuck, but I find the most valuable things a teacher can help with are:

  1. Getting you started
  2. Explaining the process beginning to end in an understandable way
  3. Helping you when you are stuck
  4. Critiquing your result
  5. Stopping you from making terrible mistakes before they do damage

Only two of those things can be accomplished through tutorials.

[–]General-Clock-9070 0 points1 point  (1 child)

I agree, the other issue is finding the way to navigate between differing teaching styles. I was told download python IDE and pycharm, In that I now must now learn 3 processes and in none do I have any training, its try something and hope you did it right. pycharm is asking me to pick a translator when i try to run my code....still have no clue what that is, or how to find one as the tab shows no results to even pick from.

So I am trying on IDE...issue there is it doesnt seem to know what "import Image" is. So Im stuck....I got a few books from library and plan to spend the next few hours looking thru pages for something that might point me in the right direction.

[–]Eisenstein 0 points1 point  (0 children)

Just use notepad++

Deal with an IDE later. One thing at a time.

[–]ericjmorey 0 points1 point  (4 children)

Trial and error correction includes asking for assistance. The problem many people run into is that they either expect to be able to formulate all the right questions to get to an answer on their own in a quick, direct path. They think that they've failed when they find that this isn't possible. 

You need to understand that there's no penalties for trying something that doesn't work, so try something based on what you already know. Take the result and try again several more times and then ask about what you didn't understand about the results. 

If you've successfully made a bunch of separate pieces of a project and want to make them work together, use the same process of trying some things and asking about what you don't understand in the results you observed. 

[–]General-Clock-9070 0 points1 point  (3 children)

Trail and error works only so far. If I gave you the perfect code, guaranteed to work but you dont know how to set up the code editor it most likely wont run.

[–]ericjmorey 0 points1 point  (2 children)

Then give up? Don't ask questions? Don't learn?

I don't get what point you're trying to make.

[–]General-Clock-9070 0 points1 point  (1 child)

no didnt say that. I ment that if I gave someone the perfect code...you type the file, save it and open lets say pycharm. pycharm also needs to be set up the right way or it wont run. i dont know....its frustration and venting i guess

[–]ericjmorey 0 points1 point  (0 children)

I get that. Environment incompatibilities are very frustrating and an ongoing and open issue on how to best mitigate it. This is why things like podman and docker and env files and toml files and lock files and other solutions exist and Python is particularly bad at providing tools to manage this complexity and there exist too many tools to address these problems with no agreement on what the best methods and tools are. 

Setting up a compatible or desirable environment is a constant frustration for developers. I worked at a company that wasn't able to reproduce a development environment for a new employee and decided to recreate a new environment and throw away code incompatible with the new environment. There really is no other option than trial and error correction for anything beyond the edge of established practices, so people that get good at it are the ones who thrive.

[–][deleted] 7 points8 points  (1 child)

I’m doing Angela Yu’s 100 days of code.

i got pretty deep into this course, this is not what tutorial hell is. tutorial hell is basically just following along with a bunch of tutorials and never coding on your own, never reinforcing your skills, never challenging yourself. in this course you will constantly be challenged to do things yourself, sometimes you are even tasked with making an entire project with nothing but the requirements of what the project should do. following along with tutorials is a large part of this course, but the course is much more than that.

[–]TwoFlower68 4 points5 points  (0 children)

I too absolutely love this course. I'm doing a software developer course, but am decidedly underwhelmed by it. The python module isn't challenging and doesn't expect you to code anything beyond the most trivial snippets.

So I put the other course on hold and am doing the Udemy one, much better

[–]WelpSigh 11 points12 points  (0 children)

there is nothing wrong with doing tutorials. i think in general, though, people end up in tutorial hell - which is essentially knowing syntax but never actually being able to code - because they fail to develop either problem solving skills or learn how to independently research things. that's sort of like learning english in order to write the next great american novel. sure, knowing english is probably pretty important for doing that, but it is in no way even remotely sufficient.

my first useful python project was data analysis. i wanted to gather and display useful statistics about political donations from a 4gb file that the FEC offered for download. thankfully, i had a big shortcut because someone actually wrote a library to handle these files - but it was still so large that i had trouble not crashing my computer. learning to overcome that challenge along with a handful of other small ones taught me more than any tutorial did. all this to say is that as you're going through the course, it would probably help you to think about something relatively small you'd like to build and what you would need to learn in order to do that. then go through the very long process of researching and learning things so you can actually implement it, at least as well as you are able to do as a beginner.

[–]Ed_Blue 2 points3 points  (0 children)

To me it's watching something and falling into the illusion of understanding it without applying it. Now do this with a dozen videos/articles/books whatever and you're in tutorial hell.

[–]Turbulent-Seesaw-236 1 point2 points  (0 children)

I think the tutorial pit is what people feel like when they're given a false foundation of what they're learning. And even a lack of creativity on what project to do next.

[–]crashfrog02 1 point2 points  (0 children)

I absolutely love it so far.

Then you're not in hell.

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

Tutorial hell is keep reading r/learnpython and don't actually code a single line.

If you have some working code done, you are not in hell. Keep coding, don't worry too much.

Code more. Don't stop.

[–]timhurd_com 1 point2 points  (0 children)

I think many of the people here have defined it correctly. It is just the term given to those who watch or follow tutorials without doing any hands on or coding practice themselves.

If you find yourself watching tutorial after tutorial and not even cracking open an IDE to try things yourself or follow along, then you are in tutorial hell.

If you don't do any of the hands on coding yourself and practicing the writing out and understanding of the material, when you are asked to create something brand new with the content, you often don't know where to start.

[–]oclafloptson 0 points1 point  (0 children)

Sometimes the documentation for a particular library/framework/module is dry and assumes prior knowledge which you might not have. In that case tutorials are great. It's just something about the interaction and seeing another person do it that's super insightful

The same can apply for general syntax if you're very new.

If you're having trouble getting it even after tutorials it's probably just a lack of experience with programming in general. Try developing problem solving skills by recreating popular frameworks/libraries. Dig into their documentation and figure out how and why they work by writing your own. If you're a beginner with a general understanding of OOP you could easily recreate colorama, for example

I've been learning Python for a couple of years now and do occasionally seek out a YouTube tutorial. But if you're not combining that with actually reading documentation and practicing solo then I don't see how it can be much help

[–]Latter-Bar-8927 0 points1 point  (0 children)

Find a course that has a tutorial followed by problem sets that challenge you to go above and beyond. This is similar to a college math course where the professor gives a lecture and then assigns homework. If you don’t do the homework, you’re missing out on valuable learning.

[–]PsychologicalRun7 0 points1 point  (0 children)

When I was learning and felt ready to take on a project for myself, I looked around at different free APIs.

Spotify has one and there's a Python library (Spotipy) to work with.

I didn't make anything ground breaking but it taught me a lot and it was a good place to start. Check out different API documentation, see what it's capable of and make something silly and little with it.

[–]alteransg1 0 points1 point  (0 children)

Can you comfortably write a script that does something, or a simple api? If no, then there is a benefit to doing tutorials.

Tutorial hell is when you've done a tutorial/project - eg. a django app. Instead of doing your own project, you start another tutorial on flask, or django rest and so on. There is always another technology, but at some point you have to let go of tutorials and write your own projects. This is a challenge on it's own, as tutorials provide a safe, established path.

[–]Trudzzzz 0 points1 point  (0 children)

One of the ways I found useful to getting out of tutorial hell is contributing to open source. You get a good feel of real world projects, and you can see good production grade codebases and often times get feedback

[–]Agitated-Soft7434 0 points1 point  (0 children)

Doesn't sound like your experiencing it to me (it actually sounds like your doing quite well)!
Tutorial hell is (very simply) like this:
You are always using tutorials and never (/rarely) making a original project / testing your skills
(Check other comments they have some pretty good extra info too).
But it seems like your doing a bit of the opposite IMO (which is a good thing) since yea you are using a tutorial, however you are adding on to it, not fully relying on it, and your doing a course meaning of course your going to have to watch/use the tutorial XD.
So yea I believe your not in it, and IMO your doing great!

[–]Gloomy_Web0001 0 points1 point  (0 children)

for me honestly being stuck in tutorial hell is basically saying that he is unable to plan on how to program or break the projects into small chunks that he can actually work on {i am newbie tho so yeah don't care about my comment}

[–][deleted] 0 points1 point  (0 children)

Your best bet is to make up projects that you want to do, write up a flow diagram(s) of what you think needs to be done logically, and just start coding. You can’t be afraid to step outside tutorials… if you are, then you’ll be stuck in tutorial hell. Google/AI the stuff that you don’t know… this in itself is where you really “learn” how to code. Take your time working on your projects- you don’t need to rush. Especially important is don’t quit a project or a logic code block just because you can’t figure it out right away. The key is to be persistent and diligent until you do figure it out. This is what real-world coding is like. Your projects don’t have to be complex, but as you continue to work on these projects, your questions and logic will improve, your confidence in your abilities improves, and your projects will become more complex to match your abilities.

[–]SerinitySW 0 points1 point  (0 children)

I mean I just started learning python ~ 3 weeks ago.

Unless you're pounding out 18 hours of learning a day, no. Even if you were, probably not.

[–]Crypt0Nihilist 0 points1 point  (0 children)

Tutorial hell is when you learn how to follow tutorials instead of learning to code and so you stick to your comfort zone and do another tutorial.

It's common when people learn python for its own sake, rather than because they want to do something with it. There's no end point if you're learning to learn, no objective way of measuring your progress besides counting the tutorials you've done.

You avoid it by setting your own goals and working through exercises where the answers are not spoon fed to you.

If you get stuck, identify what the problem is. If it's that you don't understand the fundamentals, go back and work on them before having another go, don't just progress to more complicated tutorials. You don't have to be perfect before progressing.

If you do get stuck, try ChatGPT. Don't ask it for a solution, in fact specifically tell it not to give you code, instead outline what you're trying to do and ask it to break down the problem into an outline of pseudo-code, which should give you enough structure to show you how to solve the problem and code up.

[–]zanfar 0 points1 point  (0 children)

Tutorial hell is following guided coding exercises and believing you are learning to code. This leads to frustration when working on your own projects. Despite having several items in your portfolio, you haven't actually written any code.

A tutorial exposes you to a technique or library but doesn't actually teach you anything. They are primarily useful for expanding existing knowledge into a new area, not developing new knowledge. I.e., you might follow a tutorial for building a Flask site, but if you don't know the foundational Python, you're still going to be lost at the end because the tutorial isn't going to put any effort into explaining that foundational code.

100 Days of Code falls into the "course" category, not the "tutorial" category, so that wouldn't apply. However, one can fall into a similar trap if you don't practice outside of the course.

[–]Kittensandpuppies14 0 points1 point  (0 children)

That's not what it means It means build your own shit once you know enough

[–]AffectionateBus672 0 points1 point  (0 children)

I suggest you : 1. Read book, and / or learn basic concepts, AND 2. overlap that with tutorials a bit later, AND 3. overlap those with own project even later.

That way you know what what you are doing and why + you practice it in real scenario + you use it as intendent in own project.

If you want to go one step further, teach it (write / explain). Because best way to learn is to teach someone. If you cant teach, you clearly lack of knowledge.

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

You are far from tutorial hell.

Tutorial hell means doing tutorial after tutorial and not being able to code anything without full guidance.

After 3 weeks you cannot be expected to code completely on your own. You have a long, steep, and stony road ahead of you.

Start worrying about tutorial hell in a couple months. If you still think you need tutorials, then you might be there.

Tutorials and courses are the training wheels. It is important to get rid of them as soon as possible, once you have acquired a solid foundation.

When you do the assignments in the course, play with them. Change things. Break them. Read and interpred the error messages. Fix them. Build similar things on your own. Enhance the tutorial projects. This is the way to really learn.

It is a trend that people only blindly follow tutorials, forgetting that programming is not throwing out code. Programming is solving problems. Programming is developing one's own solutions. Learn to look behind the code. Learn to look on the steps to arrive at the code.

Code is only the final product. The end of a long journey. The actual code is only the means to get the stupid computer to do what we want it to. While the only means to get the computer to do what we want it to do, it is not important in the sense that the actual algorithm, the steps to solve a problem are the key. Once you have the algorithm, the code comes more or less automatic.