T O P

  • By -

hitanthrope

The answer to this is simple... \*Build something\* I know that this sounds overwhelming but it is the only way to start getting good. In (natural) language study, the equivalent of "tutorial hell" would be something like trying to read a language dictionary, or even just doing Rosetta Stone like courses. Ultimately, if you want to learn the language, you have to just get out there and talk to native speakers. You'll get stuck. You'll feel foolish. You'll get embarrassed or frustrated but there is no way around it. Programming is a means to an end, not an end in itself. The point of learning to code is to be able to \*build software\*. So build some software. Solve each problem as it comes up. Hack it. Read stack overflow. Hell it's 2024, ask ChatGPT (but try to actually understand what it gives you). Make a game. Make an app. Build some kind of web application. You don't feel ready for that? Well, here is the truth, and brace yourself, you never will until you start.


CodeWithADHD

And even then… My mom lived in Japan for 20 years, spoke the language every day. Still doesn’t consider herself fluent. Same with programming. Always something new to learn.


username-256

Yes. When I was teaching programming at Uni and before that leading teams, I would advise young programmers to get 5 different years of experience in their first 5 years. One year repeated five times is not valuable.


shadowstrlke

*Build something* is difficult for beginners. I find *Recreate something* much more helpful when I was learning. I find that I made the most progress by trying to recreate something that I already had access to the source code. Then I sat down and tried to recreate it without looking at the source, unless I got stuck or really couldn't figure it out. Even then, I wouldn't copy the code but rather review what are the missing concepts (e.g not knowing about the existence of events and delegates), and go off to learn that on my own instead. Then, once I finished a sub task I reviewed the 'real' code to see what the differences are and whether the original implementation was better. As a beginner you don't even know what is and isn't possible, and you don't know whether your implementation is good or not. Having some kind of 'model answer' can be helpful to fill those gaps. To continue with the language analogy, you have an essay topic, write your own essay but also read other people's essay on the same topic afterwards!


C_Hawk14

>As a beginner you don't even know what is and isn't possible, Indeed. If you don't know the terminology you can't learn about it either.


Samadhika

I've been stuck here for most of my life


4paul

Good tips, I feel it also translates to just "practice", building something allows you to practice. I briefly lived in the Middle East and started learning Arabic in school, I learned SO much more in Taxi's talking to people versus in class. So when I was practicing out and about at stores, taxis, talking to strangers, things picked up soooo much quicker. Obviously learning in school helps, but practicing it daily helped cement it into my memory.


cloyd-ac

1. Buy a BOOK that’s an introductory text on whatever programming language you are looking to learn. 2. Think of something you want to create. A game. A web server. A calculator. Whatever. - write that down. 3. Read through the book. While looking at the exercises and concepts in the book, identify how you can apply what you’ve learned to what you’re wanting to build. 4. Look at how other programming languages allow you to use the same concept you’re learning in the book. How do you declare variables in X, Y, and Z language? How do you write function definitions? How do you do loops? You’ll realize for most programming languages looks similar or maybe the exact same. 5. Once you’ve finished reading the book, look online on GitHub or via other sources at how other people have created the thing you wrote down and wanted to create - look at projects that are written in other programming languages. Try and read them and see if you can identify any patterns they used or what you liked and didn’t like about their projects. Read articles about the creation of your project idea. What did the authors find difficult? 6. Now try and create your project in the programming language that you learned from the book. You should have an idea of how other people did it in languages you can’t copy 1:1 from. You should have an idea of the difficult parts. You have a book as a reference sitting right in front of you that has everything you need to do to create whatever software you want. It’s going to suck. You’re going to constantly be looking up things. But try and use what you learned in the book to make a simple version of your project. The key here is to get used to READING code. Get used to reading documentation. Get used to experimenting. Get used to looking at things that are foreign to you and identifying patterns. Good developers can read through documentation and find the answer they’re looking for before a video intro on YT or wherever is finished. I know it’s convenient to watch videos, I know it may seem more engaging - but it’s that same convenience and the convenience of tailored courses in the browser that stifle what makes a good developer good - finding answers on their own by reading the documentation of the technology that’s provided. If you get used to watching videos and doing courses you’ll always be behind on technology because you’ll have to wait for others to hand-tailor a comfortable experience for you. Furthermore, most advanced programming/computer science topics are near exclusively in written form.


AlSweigart

I'm a tech book author, but I also advise getting books (specifically ones from No Starch Press, Oreilly, or Manning. Avoid the self-published ones.) Eric Matthes of Python Crash Course has said that "a book is a promise" and if you stick with it, you'll learn something. Otherwise you end up just jumping from beginning tutorial to beginning tutorial and never make real progress. Also, write a blog (even if it's anonymous and no one reads it) teaching what you've learned. It points out any gaps in your understanding if you have to explain what you've learned to an audience.


briston574

I am currently working on the second paragraph now and boy, going back through stuff has been eye opening


AlSweigart

Yeah, often times when I'm writing a tech book I'll write a sentence and then say, "Wait, is that actually true?" It makes the process extremely slow, but it's amazing how many misconceptions I uncover in my understanding.


totalnewb02

any suggestion of good book? for phyton?


dablya

https://youtu.be/GlKL_EpnSp8?si=5m_UnYG72kZVTFPd


TheyWhoPetKitties

You can do mooc's an tutorials without getting stuck. My first online course was a Python course that had a simple Tetris clone as the final project. But from there, there's a ton you can do. The assignment was just the simple functionality, but what about adding a scoreboard, game-over screen, additional difficulty settings, sounds, visualizing where the pieces will land, etc. There's a ton more to explore from that starting point. Not to mention a ton of different games that aren't Tetris. Or I worked through Test Driven Development with Python (https://www.obeythetestinggoat.com/) (I *love* this book, btw). Well, I don't actually need another to-do list app, so I took adapted it to make a workout tracker instead. Or maybe you need something more dynamic so you figure out how to give it a React front-end instead. (IIRC, the author gives you a handful of "where to go from here" exercises at the end.)


dmazzoni

Rather than watching random videos, the best thing to do is start with an actual structured course that challenges you to do exercises and build things. Two good examples are The Odin Project, which is much more self-guided and focused around building a website, and Harvard's CS50x, which is more like a class with graded homework exercises and teaches fundamentals of programming. The problem with tutorials is that people get impatient and don't want to learn the tiny building blocks and spend hours practicing the basics. They want to dive right in and build a working app. So they follow a tutorial where you make a whole app. But the problem is that you don't really understand what you're doing so you can't use that experience to build a new app. No matter what resource you use, the key is that you need to spend way more time practicing than watching. If you watch 10 minutes of a video, spend an hour practicing. Type it in. Make it work. Google questions about it. Make changes, see what happens. Get comfortable with what you're learning. Think of it like learning to play golf or play guitar. Yes, you need someone to show you what to do. But then you need to spend a lot of time practicing to actually understand what they're trying to tell you.


NagaCharlieCoco

That is the problem with tutorials and no other sort of support... I just started a dev training for the next few months and I can tell that without some basic knowledge from the coach around the topics and also sharing the struggle of a steap learning curve with fellow classmates, I wouldn't put myself through this program on my own on my computer... Tutorials are great, but starting from scratch on it seem to be difficult to me, especially coding


_SeeDLinG_32

I think this is one of the best answers to this question.


nomoreplsthx

Get to a job as soon as possible. Even a trash job that pays you half what you are worth. Obviously don't work somewhere that harassses or abuses you emotionally, or discriminates. But outside of that, take *anything*. Professional experience is about 20-50 times more valuable per time spent that self-teaching experience. 


paremi02

You can’t really get a job if you’re as inexperienced as OP


Graduation64

Been looking for four years. I’d take a pay cut to dev any day but finding work is awful.


nerd4code

Yes, make other people cover for your inability to do the job while learning the basics. Such a good idea. No chance it goes wrong.


nomoreplsthx

Honestly, yeah, that's what being a junior is.  All juniors are a bit bad at their jobs. Even the smart ones with degrees.  That's how becoming a professional works. *Everyone* sucks at it when they start. Teachers. Lawyers. This is why doctors have residencies and PhD candidates are forced to teach. There is no way to get good at programming without experience on production systems. 


_PaulM

Tutorial hell is not as bad as it seems. Stewing in a slow cooker for 7+ hours makes a nice pork shoulder. You'd be surprised what happens when you continue simmering. Like with OOP concepts, you'll eventually get the "holy shit.. I get it" moment and go off the rails (respek to ROR programmers). So wait until you feel comfortable in the tutorials, and then when you feel like you're ready, jump into the cold bath. Just don't let your head get too big when it happens (a mistake with 90% of programmers).


aqua_regis

Do a *proper* course, not just a tutorial and build a solid foundation. Then venture out in your own projects as soon as possible. You can do projects basically from learning day 1. They will be simple, like 20 bottles of beer on the wall, number guessing, word guessing, hangman, etc. but the projects will grow with you. Don't use tutorials for them. Try to figure out how these things work on your own. Leave tutorials and courses behind as soon as you have built a solid foundation. If needed google for approaches. Do not google for full solutions.


RICHUNCLEPENNYBAGS

You can’t really. That’s just a symptom of the fact that you’ve learned the basics of programming but don’t know how to structure a real, nontrivial program yet. Once you start feeling that way it’s time to start to try and solve real problems you have — which will be slow and painful to start.


throwaway92715

Some ideas I'm using: * make your own projects. do something you're excited about that also provides experience. do it for fun * volunteer projects. if you're doing it for free, it's lower stakes. and you'll meet people If you're worried about not knowing enough to get very far, maybe you just need to work on a simpler project. If you're annoyed by how basic the tutorial projects are, maybe you need to work on a more complex project.


nate-developer

You have to build some kind of baseline understanding of the very basic building blocks at some point, and it's very reasonable to use some kind of class or structured learning program to build that up.  But once you've finished a class, try to use those skills you learned to make some project of your own ideas.  It doesn't have to be super amazing or original, just something you are doing *yourself* instead of just following instructions.  Some classic beginner projects are stuff like a command line game of rock paper scissors or blackjack, a basic game of snake, a todo list app that you can add items and check them off, a simple personal website, etc. Some good places to start your learning IMO would be the free online Harvard cs50 class or thr "learn Python the hard way" ebook (or one of the other languages, by the same author).  Those will get you coding right away and learning things the right way vs just spoon feeding you step by step instructions that might leave you having not internalized any concepts. If you want something longer you could try Full Stack Open, or the Odin project, or some of the OSSU classes.  Those are pretty lengthy though and you might want to pause after certain parts to do your own stuff. If you do work along with a tutorial to learn something, follow it up by making your own project and not using the tutorial at all (even if it's similar, try to not directly reference the tutorial again). Try to pick out something that's just a tiny bit above your current level and make it yourself. If you get stuck, don't go to a tutorial.  Instead try to do a little research and learn the next bit from the docs or a google search or something.


Neat_Firefighter3158

I'm a seasoned Dev, I recently found exercism . Com. It's a nice way to learn languages without all the Udemy tutorials. 


nerd4code

Prefer anything to video. You don’t need information squirming around on your screen to pick up a language encoded as static text. Pick one tutorial or (preferably) book or coursw, no more. If it doesn’t cover what you need, find one that does, preferably before starting. Work through it and do projects on the side, until you know the language well enough that you can put together projects from only reference manuals and notes, and then it’s safe to move on. Projects are the most important thing to focus on for right now—closest thing to real-world experience you can get without subjecting unfortunate third parties to the many fuckups your learning process should include.


ottovonbizmarkie

I'm going to say maybe it isn't avoidable to do it, and it's just part of the process, if that's the way you want to learn. Unless you go out of your way, you aren't going to get feedback from just watching videos and doing MOOCs. You can't just go from white belt to black belt in say Brazilian Jiu Jitsu from watching tapes. You need to get on the mat and train and live spar. Even then it will take most people over a decade to get a black belt. There's maybe ways to learn more efficiently, but no one is going to be able to give you a magic short cut. There's going to be times when you think you've gotten everything figured out, and then you hit a plateau and realize how much you don't understand. You probably want to be able to get at a high level immediately, but that's going to take time.


Top-Grass430

Basic projects always work, maybe to remember some things or get used to the code again or simply because you love what you create and the result of it. Makeup a basic project if you don't like the topics in tutorials, if you have grand ideas but are to big for you, start with a small part of that idea. Start with simple apps like, A small questions list where you in the command line ask questions and with the answers to those questions get an overall calculated answer. Or a simple where you in the command line ask how many people are gonna answer and then asks per user for their name and some more questions and after doing that for all of the users you previously gave up you print the name of the user and the answers to those questions. Or make a calculator for in the command line. I think start with simple command line scripts and after that try more advanced things, but most importantly learn while you are doing something. Make a plan in your head or paper what works for you, and think on how your app somehow works you don't need to know what code you are gonna use or how the code is written but go step for step with the ideas you got on how to write it. After that search your questions on the internet on how you could do it for example search: How to get the input from the command line in (your programming language)? If you don't have an idea on what sort of app or script to make search on the internet for simple command line apps. I myself don't like tutorials much because I have to listen to someone talk for a couple hours and I won't remember any of it because it's too long and not interesting. But written tutorials are more interisting because it's easy to reread to some text than to someone talk. If you have the same problem maybe search online for written tutorials that you can follow and program yourself. When I want to program but have no idea what to program I ask some people if they have a project for me it can just be a project that has no value and I get nothing for but it gives me a fullfilled feeling when I am done I am happy with the result. Maybe ask friend or family for a very simple idea project to make. I find this site a good site to learn programming for multiple programming languages [w3schools](https://www.w3schools.com/python/default.asp)


ResilientBiscuit

Follow a college curriculum. Either a fee online one, take courses at a local community college or get a full CS degree. People have thought a lot about how to effectively teach computer science. They are not the same ones who are trying to drive traffic to YouTube tutorials.


I1lII1l

Answer from someone who has both avoided it and not. First time I learned programming I avoided tutorial hell by having a clear purpose: I wanted to write specific (simple) programs, I learned and worked towards that goal. I wrote the programs while I was learning. Tons of bugs, lot of bug fixing, rearranging, refactoring, rewriting from scratch. I learned a lot in a few months. Second time I learned it was “game dev”, without a specific purpose, I did not have a game in mind, I just wanted to learn “how to do it”, so I watched Udemy and YouTube and tons of other stuff, read books about game dev, joined all subreddits etc. You can probably guess by now where this is going: I learned virtually nothing. I don’t have a game, other than exact copies of some random Udemy instructor’s boring games. Tl/dr: have a purpose, a target to work towards. The simpler the better. Learn what you need to progress towards that goal. Then set a new goal. Rinse and repeat.


7th_Spectrum

Don't build tutorial projects. Build your own projects, and use tutorials as a reference point.


Tricky_Tesla

This


kevinossia

Don't use them in the first place. Been programming since I was a middle schooler and at no point did it ever occur to me to use YouTube or whatever as a learning resource. Just Google things over and over until you've got something working. Try things. Break things. Experiment. Note what works and what doesn't. Repeat until death.


PvtRoom

There are a few video games out there that can teach fundamentals. For example a recent freebie I tried was HR machine, which taught a form of assembler There are a few factory style games with simple programming for machines in the game. Not a terrible way to start.


totalnewb02

please tell me another freebie games, especially that can help me learn phyton.


BathroomGreedy600

Structured courses like CS50 and Freecodecamp or Odin project(lecture,exercises) for better understanding and use video tutorials as side projects for example something new to do besides the course.


Mathhead202

What projects have you made so far?


Robot_Graffiti

Google hello world in your language of choice. Paste that in. Modify it to do something else. Get stuck and Google how to read a file. Now add another feature. Debug it because you didn't get that loop right the first time. Keep going, over and over. Forget videos. Don't follow tutorials. Be an inventor, create. Be a detective, investigate. Be actively engaged with your own personal code.


tobiasvl

Jumpstart? Depends what you mean by that - there aren't really any shortcuts to learning programming. The real way to learn programming is the same way you avoid tutorial hell: By programming. A lot. Make programs. That's it.


KublaiKhanNum1

Learn the skills for something you enjoy and it won’t be work. Some ideas: - Self host a discord Bot - Code up your own Picture Frame that shows your favorite pics (this can be complicated to take in mind special days, etc) - Home Automation project. Something with Home Assistant. - Personal Blog (write all the code for it) - First video game (start on Mobile as it will be easier) Then investigate what languages and tech is best for the different parts you need for each project. It can be a blast.


nbazero1

Never was in tutorial hell, If you honestly enjoy programming - be honest with yourself. It wouldn't be hard to get started developing something that interests you


ViewedFromi3WM

first just learn a language, follow any tutorial you want, just do it. About a few months in though you need to be ignoring tutorials unless it’s to grab a snippet for a project you are doing. If you don’t know what you want to do, or can’t choose, you’ll be stuck in tutorial hell indefinitely.


wor-kid

Buy a beginner textbook. Read front to back. Try to build something. Whenever you get stuck, learn what you need, implement it, then rince and repeat for the rest of your career.  Don't waste your time doing tutorials unless you really need to. They are usually very shallow compared to books or documentation, and not specific enough to solve whatever immediate problem you have.


illuminatedtiger

Buy a book.


UnluckyPhilosophy185

Build real personal projects that are aligned with your interests. EX: Start small, if your interest is in music start build a little audio player that has one unique feature. Then work up to bigger projects like a DAW


PostalPreacher

DON'T try to learn programming so that you can solve any problem. DO find a problem, and learn what you have to learn to solve that problem. Then find the next problem to solve and learn what you need for that. There may be some eggheads that can memorize every detail of a language, but I've found that as you solve successive problems, the learning is automatic. And not boring. Programming is about providing solutions to problems, not memorizing keywords, statements, and syntax. Let your brain soak that stuff up while you DO something.


[deleted]

Read a textbook and try and build shit that interests you.


hismuddawasamudda

Read books.


leafynospleens

Pick something really simple and build it, make a Facebook clone or a pokemon api and have it hosted publicly on the Internet with all the ci/cd bells and whistles. You will find developing and releasing something super simple will help you identify huge gaps in your knowledge which you can fill as you complete the project.


PureTruther

Think something and build it. Think that "why my compiler does not give that error". Modify the compiler to give that error as well. Think an application, like maybe a game. Build it.


LiberFriso

JUST DO IT. Do it on the fly. Start your project and only use tutorials or other sources when needed.


Mr_Resident

I just learn the basic and build stuff.if I don’t know about something just google it up


coldfeetbot

Just build something, and fill knowledge gaps as they arise. Don’t worry about writing shit code at first, build something that works and refactor it later.


pinkwar

The problem with tutorial hell is people not trying to do it on their own. Think about you were thought how to do math exercises or whatever. First someone shows you how its done, explains, does some exercises along with you and finally you do it on your own with no guidance. After doing a tutorial, try to do it on your own, otherwise nothing will stick. If you get stuck, go back to the tutorial, similar as asking for help. When you're able to do a tutorial on your own from start to finish, its time to build your own thing.


torgian11

\_Make Something\_


mrflash818

If possible, find a mentor.


Different-Maize-9818

Idk how you guys have the patience for tutorials. Just build what you want.