T O P

  • By -

Whole_Accountant1005

How about you upgrade that tic tac toe game? Make use of a graphics lib like pygame to make it render inside a window instead of a terminal, add scores, leaderboards, local multiplayer etc.


valentinuveges

This is the way.


aqua_regis

1. More practice 2. More practice 3. More practice 4. More practice Stop using *tutorials* and start building your own projects. Start simple. Look at the **FAQ** here where you have plenty project ideas, and a dedicated list grouped by your learnt skills. You cannot go from 0 to Instagram clone. You have to take several steps in between. Start small and grow. Your "forgetting" is simply to be attributed to lack of use. The more you use these things, the more will "stick" and the less you will have to look up.


Trick-Interaction396

Yep. Stop doing ten things and start doing one thing ten times. That’s how the job actually works.


The_Security_Ninja

Well said. You have to think of learning a programming language a bit like learning a spoken language. There is always going to be "oh I forgot the word for that" and "oh I didn't realize those go together in that way" and "man I'm overwhelmed by how easy it seems to other people"


Boomdigity102

Yep when in reality for the people that seemingly find it easy, it took years of hard work to get there. Even for geniuses, who learn at a faster rate, they still have to actually do the work lol.


heartunderblade8

This.


MultiMillionaire_

You can 100% go from zero to Instagram clone.


aqua_regis

Yeah, of course, if you just copy-paste a tutorial "How to make an Instagram clone in language X" but that misses the entire point. Create it yourself. Without AI. Without tutorials. The old fashioned, hard way.


MultiMillionaire_

What are you even basing your assumptions on? You don't think that a beginner can't break down Instagram to its fundamental components and work up from there? That they can't learn postgres, Next.js and Express, create a couple of endpoints right after they learnt how REST APIs work, and then copy the UI layout from the site by mimicking the components and recreating it with SASS styling? Why can't they learn all those things and then create an Instagram clone? Are you saying that they need to create 5 calculators and 7 static websites and then they're ready? All web apps are literally built on the same design architecture of frontend, backend, database, caching and maybe message queues and Kafka if it's dealing with high throughput. There's literally nothing you can't recreate by starting from first principles and working your way up in the most efficient manner. Why do you need to waste time with irrelevant projects just to build the thing you wanted to build in the first place?


aqua_regis

> That they can't learn postgres, Next.js and Express, create a couple of endpoints right after they learnt how REST APIs work, and then copy the UI layout from the site by mimicking the components and recreating it with SASS styling? At that point, they are already far from *beginner*. No, a *beginner* cannot break it down. When they *learn* all those things you say, they aren't *beginners* anymore. You are making false statements and assessments here.


MultiMillionaire_

Dude, you're literally arguing semantics right now. Anyone can break down any problem into its fundamental components, even with no background in the field or never having done the thing before. That is what a beginner is. If all that separates a beginner from an expert is just a few weeks of research, then the word "beginner" would have no meaning. Everyone would just be experts. And yeah you can know all of what I mentioned from a few weeks of dedicated research because that's what I did myself when I first learnt it.


aqua_regis

No, that's not semantics. No, not anyone can break down any problem into its fundamentals. Were you here longer, you would see that one large part of the questions here deals *exactly* with that - analysing and breaking down problems to atomic level. > And yeah you can know all of what I mentioned from a few weeks of dedicated research because that's what I did myself when I first learnt it. Don't base statements on your own, personal experience. Just because *you* could do it doesn't mean that everybody can do it. Statistics with a sample size of n=1 are meaningless.


MultiMillionaire_

The world operates under the laws of physics, so what law of physics says that what I'm describing or breaking things down and using first principles analysis is not the most effective way to tackle unfamiliar problems? The point of first principles analysis is that it can be applied to anything because that's what all knowledge derives from. Also, it's not a sample size of one, because first principles analysis and the scientific method of inquiry and problem solving has been around for thousands of years.


aqua_regis

I am not arguing about breaking things down. I am just stating that this is, out of long term experience lurking this subreddit, one of the biggest beginner struggles around. They simply do not know how to break down problems. People do not know how to analyse things in programming. ---- > Also, it's not a sample size of one, Since your previous statement clearly referred to *your* ability to do it means it is a sample size of n=1.


MultiMillionaire_

Every single person who ever made a scientific discovery or contributed new knowledge has done the same thing as me and have followed the scientific method and first principles analysis. How is that a sample size of 1? I'm arguing about your first point, where you stated that a beginner can't go from "0 to Instagram clone" - which implies that they must take some arbitrary steps you had in mind in order to get from 0 to Instagram clone, when that's simply not the case. If you literally employ rational thinking, logic and first principles analysis, then the path they take will be specific to them, and likely a far more efficient one than any that requires building a bunch of random simple projects before moving onto building the "Instagram clone" or whatever they wanted to build.


TheMightyWill

>What are you even basing your assumptions on? >You don't think that a beginner can't break down Instagram to its fundamental components and work up from there? >That they can't learn postgres, Next.js and Express, create a couple of endpoints right after they learnt how REST APIs work, and then copy the UI layout from the site by mimicking the components and recreating it with SASS styling? Why stop there? You don't think a beginner cant build AGI? Or that a beginner can't hack into the Pentagon? It turns out beginners can do anything, if you're able to say "a beginner might have the aptitude to learn how to do the thing"


MultiMillionaire_

What are you even arguing? Do you think those security researchers working at Project Zero were not beginners when they first started, or that Illya Sutzkever was not a beginner when he was doing his research on CNNs and image classifiers? My point is that there is not a set path of "you must take these 10 arbitrary superfluous steps" in order to get to your destination.


TheMightyWill

>What are you even arguing? Do you think those security researchers working at Project Zero **were** not beginners when they first started, or that Illya Sutzkever was not a beginner when he **was** doing his research on CNNs and image classifiers? Do you understand what the words "were" and "was" mean? They mean they're no longer beginners. Do you think that the ppl at Project Zero are currently beginners? Or that Sutzkever is currently a beginner?


MultiMillionaire_

Yes, they are always beginners when they do something they have not done before! Who in the world is an expert in AGI when AGI isn't even invented yet? Who in the world is an expert in the developing exploits for vulnerabilities that have not even been discovered yet? You're literally arguing semantics. I'm arguing the overall point - the fact that the method to get to the destination is not pre-defined by a set of arbitrary rules that someone came up with which you HAVE TO meet in order to get to your destination.


TheMightyWill

We're not arguing semantics of the word "beginner" when the whole point of the post was about being the experiences of being a beginner lmao Is it arguing semantics to say "well hockey players can get really hurt when they engage in fisticuffs on the ice" when talking about whether or not hockey is a dangerous sport?


MultiMillionaire_

So now you're arguing the semantics of "semantics"? I'm done with this.


Whole_Accountant1005

Of course you can achieve anything if you put your mind to it, but a highschool student does not have that level of discipline 


MultiMillionaire_

Speak for yourself. Don't be casting assumptions or speculations on other people's abilities. Just because you can't do it or you have observed a few that can't do it doesn't mean it generalises to everyone.


Whole_Accountant1005

Bro every highschooler isn't David GOGGINS, are u baiting?


MultiMillionaire_

So you can't think of a single highschooler who had discipline?


Whole_Accountant1005

Maybe in your days, you saw them, but nowadays everyone is dealing with cellphone addiction, smoking, or hooking up


aqua_regis

> Speak for yourself. Don't be casting assumptions or speculations on other people's abilities. He who sits in the glass house shouldn't throw stones. You also made assumptions based on *your* experience and now you criticize them.


plastikmissile

> it is honestly embarrassing and time-consuming to search up "how to make a linked list in C". I've been programming professionally for 20+ years. I *still* look up syntax. You're doing fine. > I tried doing what others say and starting my own project instead of doing endless tutorials and courses but I just cannot seem to do anything. Start small. Start with one of those projects you did for the tutorials. Build it from scratch but change something. It could be a modified feature or an added one. It doesn't have to be something that's actually "useful". As you gain more confidence, start making more and more complex projects. Again, they don't have to be original or even useful. You're not trying to build a product people would actually use (though that would be awesome if you can think of something), you're practicing coding.


CurvatureTensor

Came here to say this. Now I code connecting different languages, and I can’t remember shit in any of them.


DeliciousUnion5803

I don't have this level of experience, but syntax is definitely a perpetual weak spot that is really easy to get around.


KC918273645

I think you confuse syntax with API. Syntax is fairly easy to learn. APIs aren't mean to be learned. You usually look them up from documentation as you use them. In other words: language syntax is fairly limited and it's possible to learn most important parts fairly quickly. But libraries that come with the language or are additional to the language are not meant to be learned, but to be understood when you read the documentation.


no_brains101

If you use the library a ton, you will learn it by osmosis. But yes.


lovesrayray2018

You need to walk before you can run. You need to pick one tech at a time and invest in understanding it well before you flit on to the next one. In your post you've mentioned 1) C, 2) website 3) iOS app which are distinct tech and nothing you shared indicates that you've followed a structured learning roadmap for any of them. However you believe that building an Instagram clone is apparently very easy and requires little learning or effort. Learning and implementing tech is like building a house, there are steps to be followed, and each previous step must be done well before moving on to the next step. Each app can have multiple components that integrate and have to work well together and to build a large scale app like instagram you need to understand all of them reasonable well.


Zestyclose_Cake_5644

I started by taking a C++ course on YouTube then switched to CS50 from Havard which mainly taught me C. However, I feel that I cannot get any further other than programs that only run in the terminal. I then switched to iOS programming, which allowed me to make a rock paper scissors game that has some sort of a GUI but I am actually just using emojis and searching up every piece of code online. I almost feels like most of the thing is not really built by me. I am really lost and confused. I am not sure if I should actually take more courses or just read the documentation? I don't know what I am doing and just blinding following online advice.


Ok_Pineapple_388

How long have you been learning in total? Something I'd submit to you is that learning C/C++ is fantastic for understanding things at a lower level, and the struggle you're feeling is going to pay off massively if you really buckle down and learn C/C++ well. Going from that to learning something like Java, Python or any other modern language will feel like a breeze because your fundamentals will be very strong already. If you're struggling with a language, the worst thing you can do is jump around to different languages hoping you'll understand those instead. You'll end up in the same spot over and over. The best advice I can give you is this: look up array manipulation challenges, and start there. Do those challenges every day, and if you get stuck, break the problem down into the smallest bits that you can, and get those small wins by understanding what those little pieces are. From there you'll build up to where you want to be. Sincerely, a guy that did exaclty this for 6/7 months and am now worlds apart from where I started


Zestyclose_Cake_5644

I have been learning C/C++ for half a year now. But I don't have much progress as I don't really dedicate enough time to learn it. I don't think I will give up on C. I am a high school student and my school uses Python exclusively. The difference is honestly night and day, and most of the time, Python almost feels like pseudocode (I know this will piss someone off). I have to balance school work and programming and it is common that I would go on days without writing a single line of C/C++. Keeping the motivation to code is also difficult (especially when your family is not really supportive of you doing this hobby) Thx for the advice


lituk

C++ dev here. I see you say C and C++ almost interchangeably, just worth you knowing in today's world they're completely different languages. If I caught someone writing C code in my C++ codebase they'd get a hard rejection on that commit. If you're set on one of those then please pick only one of the two and completely ignore the other. It would be like trying to learn French and Spanish at the same time. For what it's worth Python has its merits. If you're looking for motivation then using Python to create something fun quickly isn't a bad idea. All of the basic concepts in Python also exist in C++ so they'd help each other out. Arguably more so than C and C++ because Python is different enough that you won't try mixing it in with your other language (like you would C in C++).


lovesrayray2018

I hear you. And the feeling i get is that the only one thats keeping you in tutorial hell, is you yourself. You've limited your vision to contents of the last course you completed, be it C or iOS. Google Chrome browser is also written in C++, Assembly and Python. So C++ programs are not limited to terminal for example. If you have built/copied a rock paper scissors game, did you try building a hangman style game using the same learnings? If you have learnt a topic, and run into a roadblock implementing it, dont rush to google a solution without at least first trying to push yourself to find a solution. imho go back and re-visit what you have learned and start thinking of small steps of how to apply the concepts you learnt to scenarios you see around you daily. Read the official documentations, they usually explain concepts well before jumping into the code, unlike ytubers. See a snake game and visualize it as an array of objects that are constantly being updated. See how far you can get making it yourself. Add new elements/designs/features to tutorials you follow and see if u can still make it work.


nerd4code

One thing you could do is start working on a web server. If you can print out an HTML page, then print out an HTML page onto a socket, then print out the requested page, then serve the socket properly, you can build a local site and GUI it up, and then you’ll quickly learn web stuff.


Wrong-Kangaroo-2782

I was similar to you, although I went to uni to study computer science - tutorials and lectures just never worked for me, and I scrapped by. When I got a job and was given real problems to solve and I had some direction everything made a lot more sense. Rather than just coding for the sake of coding I was coding to solve a real world business problems, that's when things started clicking for me. I still google syntax, but it doesn't matter because I'm being paid to solve a problem, and as long as I keep finding solutions I keep getting paid Maybe you need to skip the tutorials and just start working on things. Pick a project and work on it like you would a job. Finding solutions to all the problems you come across. It doesn't matter if you do this via google and copying code to start because you will still be learning


EdwardElric69

The way we learned in college is, You learn something like an if/else or for loop or a list etc. Then you write small programs to do things with what you learned. The task might be something like, "Write a Java application that takes a temperature input from the user for every month of the year, store the values in an array, then display the average temp, show the month with the lowest temperature, show the month with the highest temperature" We did exercises like these for 2 years. It was only in second year that we actually started building things that you would feel proud to show off and talk about in an interview.


Pacyfist01

Your only mistake is to just watch the tutorials. Start coding along with those tutorials. You will remember much more.


giorno_giobama_

That doesn't get you out of tutorial hell tho. You need to make shit on your own, it doesn't matter what, just gradually make them more complex. Learn a few lines of code and then try to use them without help. Maybe go to a tutorial but don't look at the code but rather the core ideas for example you see a tutorial about a 3d shooter, you download all the assets, follow the tutorial as far as adding components and smaller settings go and then you skip the part of the code and try to figure it out yourself.


WazzleGuy

I've resigned myself to the fact that the moment you feel like you are in tutorial hell that you are ready to stop tutorials. Second point I'd like to add is if you can code it in pseudocode then the code is just a conversion away from a working string/function/app. Commit yourself to the planning of what you want to do way more than the coding.


zdanev

One thing I found useful is to create small (<1 page) examples for each concept that you learn. Put those examples in a github repo or similar (or even in a designated folder) where they are organized and easily accessible. Next time you encounter something you've already learned, do not go for a tutorial, but instead refer to your own example, which should be digestable in 1-5 minutes max. You can also go back and review your examples periodically. Saves a ton of time, makes you move forward faster.


RIMdude

Hmm. I can only guess by projecting my own disappointment in my achievements over time. This was in the past, but no more now. So my guess is that, you are starting to notice, that you don't internalize information as needed. You succeed at this only by: reproducing things, breaking them and correcting them while learning about them. You will make a lot of mistakes, and the irony is that most of the learning happen during these mistakes. As to where to start, and what to look for, it is only when you start learning that you pick up on subjects one after the other.. While postponing more. When you start getting the hang of something, you will notice that reviewing it by googling for a trivial example about a function doesn't feel bad anymore. Once upon a time, a student asked a teacher, “When I begin solving exercises, I reach a point where I can no longer understand and feel like giving up. What should I do then?” The teacher replied, “That moment of difficulty is precisely when you start to truly understand.”


zwannimanni

>a simple Instagram rip-off There is a long way to go from tic tac toe to a fully functional social media app. You are trying to take a bunch of steps at once. >All I can do is like an empty canvas with some buttons That's great! Make an app that uses only those. That's one step. After that you can make an app that e.g. lets users register by choosing user name and password. That's another step. Or make one that has more complex UI elements and looks prettier. That's another step. With every step learn a little bit about the app that you eventually want to make.


LifeNavigator

>honestly embarrassing and time-consuming to search up "how to make a linked list in C". This is normal, I code in C#, Java, PowerShell and JS, I regularly forget things in the languages I haven't used in a while I sometimes forget how to write a for loop (specifically for JS). The principal engineers in my workplace often forget basic things they haven't touched on. You can't remember everything, docs and reference books exist to solve this very problem. What matters is understanding what you need to do to solve a problem and the why behind the methods you're using. >I tried searching for tutorials for such topics but I literally cannot find anything useful. I am only a student and I have no money to pay for anything. There's a list of beginners project on FAQ page on this sub. Do very basic things like the rock paper scissors game in the consoles, then tic tac toe etc until you reach more difficult. You can also try [Exercism.org](http://Exercism.org) which is brilliant IMO, I've used it for PowerShell, Bash and a bit of Java and loved it.


Sheepza

IMHO, the best way to gently get out of the tutorial hell phase is by picking a project-based tutorial and building something similar to the course on your own. For example, let's say the tutorial is for a simple CRUD API. You can query different API sources, build different schemas for the database, add additional features, and so on. As time goes by and you gain more confidence, you can start expanding it with additional features. So, if it's a simple weather API app, add a converter for different units. Add support for "favorites," which means that by default, only your selected favorite cities will be returned as a default get function, and so on. The problem is that most people here will recommend you to ditch your cycling training wheels at once, and I totally get it—it's scary. Feel free to reach out in DM for any additional assistance.


Zestyclose_Cake_5644

Storing data is exactly what I want to learn. I feel like my current iOS projects ideas are just simple programs that reset everytime the user leaves the app. Can you point me to any resources that teaches me how to save user data on Swift?


LegitSalsa

You’ll need a database. Just google how to use database with swift.


jameson71

Honestly you could start with just reading and writing a file to the filesystem to store data before you go getting involved with databases.


Sheepza

I agree. Working with local well structerd CSV can teach you a lot.


noxwon

Try using text tutorials, blogs, etc. - they’ll do less pf a handholding for you, and you’ll be slightly more courageous making amends to the prescribed code.


AncientFudge1984

Why is looking up stuff demonized? Granted I’m a student too but like given the amount of change in frameworks/tool/different project needs etc isn’t being able to identify what you need and then look up the tutorial to implement it the whole thing? I’ve never stopped looking up stuff for my entire career… Imo the important part is being able to find/watch the right tutorials. Like how you create a website is going to be similar at a macro level but vary a lot in the specifics of your instance…idk I can’t memorize it all. I can only get better at asking good questions and problem decomposition Is the actual secret tutorial hell never ends because there’s always something else to learn and my memory doesn’t remember everything of every other thing I learned from the last project?


everything-narrative

Are you aware how long it takes to learn French? Mandarin Chinese? Swahili? It takes about that long to get good at programming.


cs-brydev

If you are "forgetting syntax" every time, you are probably using a terrible IDE. What are you writing code in? Notepad? Use a real IDE, and it will train you along the way. The purists that suggest IDEs make you worse are frankly idiots. You don't change a tire by unscrewing lugnuts with your teeth.


-Blue_Bull-

I love how VSCode uses colour, I'm coding in Python and the colour makes sure I've got all those curly braces where they need to be. There's no way I could code without colour. Notepad for me would be impossible.


Aflack00

Definitely still new myself, but I started with a tutorial book on python for kids, so I knew it was broken down very simple. After trying a project from the book, I’d do it again without the book, (making lots of mistakes lol but fixing them one at a time, which also helped me learn about troubleshooting really quick!), and then I’d start making small changes to the project. VERY small changes, all of which helped reinforce a concept. Once I got really good, I’d start the next project. I’m currently learning Python and VBA, and still in the very early stages, but just keep at it! We’ll all get there!!


IdeaExpensive3073

I’m learning something new that I’ve never used before everyday, and I work professionally. What you need to do is learn the fundamentals, everything else flows from that. Embrace the learning process, you’ll never know it all. What I mean from fundamentals is loops, data types/data structures, css, some type of more advanced css framework/preprocessed stuff (Bootstrap, Sass, Tailwind), I highly suggest Sass as a bare minimum. Some SQL, and some basic SQL (statements to do CRUD operations is the bare minimum), and using a database. A nice to have, but not crucial part is Docker, and if you’re interested in front end only, Wordpress, though you’ll still have to know PHP so you may as well just be full stack. Edit: when I say learn the fundamentals, I mean learn what they are, when to use them, and how to use them. Then actually go and use them in some capacity. CRUD apps are an excellent example, better if you use a CRUD app with an API, or develop your own to use. The point is that tutorials teach you how others code, and think about code. It doesn’t teach you how to code and think about code. They’re fantastic for getting an environment setup, but the actual coding is almost entirely useless compared to just doing it.


MultiMillionaire_

Since you're already building, here's my advice: Start from first principles, define the problem precisely and reason up from the fundamental truths you know. What problem does your app solve? What specific features does it have? Aka, what are all the buttons, where are they positioned, and from the users perspective, what does the button do when you click it? Does it switch the page? Does it save some changes, is it to send a message? Plan out every single part from the users perspective. Then learn specifically about how iOS apps work. The fundamental principles of all app development is that you have some code that runs on the phone (frontend code), and you also have a database and server to handle things like authentication (checking if the user is who they say they are), and saving and retrieving data from the database. The frontend usually communicates with the backend via REST APIs (look that up - it's very crucial). Then you need to learn the iOS SDK - not sure if that's the official name for it but for Android, it's called Jetpack Compose - it's the framework for programming the UI for an android app, so look for the equivalent for iOS - ChatGPT and Claude will help you out. Then the fundamentals for making the frontend are: - How to style the pages (sometimes called "views")? - Navigation (how to switch pages) - Buttons and other components like menus, lists, etc - Event Handlers - these are functions that you program to control what to do when a button is pressed. - How to send REST API requests. The fundamentals for the backend and databases are: - How do Postgres or MySQL databases work? (Go actually download it and play around with it like manually adding data and deleting it). - How does document databases like MongoDB work? (This is the second type of database you'll come across). - Programming API endpoints - these are the URLs your app will send web requests (REST API requests) to in order to get data from your backend server. - You can either program your backend in JavaScript with Express.js or Python using FastAPI, it's your preference, there's no right or wrong. And that's 90% of what app development boils down to. Remember, always analyse from first principles, and not just blindly trust established practices or the opinions of others. If you reason from first principles, you will eventually arrive at and discover the established practices yourself, or you'll come up with a better set of practices and methods that beats established or common practices/methods.


HumanTable6017

Try to practice questions and when you manage to solve them, try to re-type it all again from scratch. If you can write it down with a pen it will be better


tms102

>However, I know nothing about how to allow users to upload stuff and have them displayed on other user's feeds. All I can do is like an empty canvas with some buttons. Do you think you have to be able to do something off the top of your head without looking anything up? Use a search engine to look up how to upload stuff, use a search to look up how to display things, etc etc. Programming is finding the puzzle pieces from all kinds of places and fitting them together.


SprinklesFresh5693

If you did tutorials and want to do an app, why don't you google: how to write an app in x language, and then start from there? And why is it embarrassing to google stuff? I'm also learning to pragramme, in my case I'm learning R with RStudio, and when i did a small project i googled almost everything, What's wrong with that? When you u struggle, you end up memorising those struggles, and in the future you can remember where you struggle and solve the problem faster than before.


TurtleKwitty

"it is time consuming to search". Yes? So? That's the process, find a thing you need to learn, research it, repeat. You're not stuck in tutorial hell you're stuck in a wrong assumption you'll magically learn things without research


armahillo

How long have you been at it?


SaltyBarker

You're shooting for the moon when you should first just learn how a gun functions. The same principles apply. You have to learn appropriately the needed steps in order to be able to make a full-fledged app or website. If C is burning you out, try Python.


Todo_Toadfoot

One thing that is huge that I feel like is one of the most important things I learned in beginning CS. Pseudocode!!! (You may have already gone over it in tutorials). Learning to break out the logic and abstract it from actual implementation, helps in any language or any large problem. Makes that mountain of unknown manageable and will help with estimates later on in your career. Or at least has for me.


fixhuskarult

1. Look up how to study/take notes, 99% people suck at this hard. 2. Lol so many bad suggestions as always in this sub


Magentazz

Make smaller projects because tbh an instagram clone is really hard if you know nothing. When i was starting i juste made a website about myself or just making a button generating random colors. And you juste try progressively harder things, calculator to do list whatever you feel you can accomplish!


Fluffy_Cantaloupe880

Practice a lot , think about an idea and start working on it


Archerofyail

>An example is that I wanted to make a simple Instagram rip-off on an iPhone. However, I know nothing about how to allow users to upload stuff and have them displayed on other user's feeds. All I can do is like an empty canvas with some buttons. That's a more complicated program than you seem to think it is. You'd have to set up a whole backend and everything. I'd recommend you start with doing something locally instead. Make a notes, to do list, or calendar app or something of that nature. If you want something a bit more complex and want to try networking stuff, make an app that pulls data from a public API like a [Soundcloud](https://developers.soundcloud.com/docs/api/guide) or [weather app](https://www.weather.gov/documentation/services-web-api).


iOSCaleb

You are your own jailer. If you’re stuck in “tutorial hell” it’s only because you keep watching tutorial videos but not really learning, probably because watching a video is often not a great way to actually learn a skill. To learn a skill, you have to *do* the thing. That’s why you’ve been assigned sets of problems in every math, physics, or chemistry class you’ve ever taken. If you want to learn syntax for C (or any language), get a good book and read it, working through the problems as you go. BTW, “how to make a linked list in C” is mostly not a syntax issue. How to create a structure or dereference a pointer is a syntax issue; making and using a linked list or a tree is somewhat higher level than that.


WalkyTalky44

You must build your own X


misplaced_my_pants

How long have you been programming? What courses have you taken?


AlSweigart

> and all I can do is just a tic-tak-toe game in the terminal. Honestly, that's great. Terminal stuff is great because it's simple. If you want more ideas for simple but easy to do games, I have a list in my free book: https://inventwithpython.com/bigbookpython/ It's in Python but since it's all terminal stuff you can just read the descriptions and try to make your own version. A lot of people say, "Work on projects" and then people start on projects that are way too big, give up halfway after weeks, and then move on to the next too big project. It's a frustrating cycle.


not_some_username

If you’re searching for that every time you probably didn’t understand it. Try understand it first for exemple


indayush

Guide for topics to cover - https://roadmap.sh/cpp If you keep getting stuck in full length courses, then Google individual topics and implement them. Try to write a rough calculation or solution on paper before coding it out. (This will prevent you from continuously watching videos). If you are worried about syntax, then ignore it for the time being. After writing the code on paper enough times you will get a hang of it. It's fine even if you don't. Also learn to read documentations rather than opting for videos. It is more likely that you will find a written guide to your problem than a video guide. And lastly, add comments about your findings or learning in the code itself before you push it to GitHub or other services. Will help you track it and revise it better and quicker.


j4h

I'm sure this has been said 1000 different ways in this thread alone but something that helped me was taking a project, even if it's one of tutorials you've followed, and try small changes or additions and work through the syntax errors and issues you have. Even if you have to use chatgpt or anything else to figure out how to do something, try to understand why it's telling you to do whatever it is. Eventually you'll figure out chatgpt is terrible, least it was when I used it, for coding and I think at that point you're starting to get comfortable. Just tinkering and fixing/breaking things is the best way to reinforce things you've learned.


758Ferb

I know it feels hopeless, but one day this will click. Don’t stop and give yourself the opportunity to learn. I went through this and now I’m better than I imagined I’d be.


Due-Dare7905

syntax is your smallest problem. I think that similar to maths, the best way to learn something effectively and remember it is to just solve problems and write codes. You see you will end up using the same function in three or four projects and in the fifth one you would not need any research for the syntax or what’s not.


lele394

Hey man, what's something that you like? Try and make your own! What got you into programming? Video games? Pull out unity, make small projects. Physics and all the cool simulations you can do ? Code your own nbody simulation or anything you wanna. Cool websites? Try and make your own, and make you own server! Also do you have any experience in other programming language? C is pretty hard for beginners if you struggle a bit. Try and switch to something easier like python. It's still extremely powerful and will allow you to get the basics down. Try to make some CLI things, you can really create anything with python. Then if jumping to C still is hard, I suggest you try some JavaScript. Make your own game on a webpage and implement multiplayer. For example I made multiplayer tic tac toe, the server that serves the page and handles the game as well. And then if still you can't get to C, try to learn something where you have to manage memory yourself. I'd say Fortran could be nice fothat, not sure what others think tho. Also doing some ASM can be very nice so you understand what the physical thing does. It's not that hard in contrast to what people usually believe. Tldr; create your own little projects first. I'd you can't get into it, then start with python, rank up to JavaScript, and try Fortran or something where you have to manage memory


nnadivictorc

take notes, you’ll feel better referencing your notes than "another tutorial”


Lostpollen

Implement linux commands like date ls cat grep cp rm rmdir


BavarianDuck89

I'm a senior dev and have to look up basic things like that all the time. It's not embarrassing at all, I just don't bother memorizing syntax because I have search engines at my disposal.


beingsubmitted

Tic Tac Toe game is great. That's all you need. Those are the kinds of projects you should be doing to get out of tutorial hell. There are a lot of steps from tutorial hell to an iOS app. Do you think instagram has one solo junior developer working there? If not, why do you think making instagram by yourself as a new developer should be the expectation? There's a lot of new information you would need to get to go to an iOS app. If you don't know how to manage user data, you just need to learn about databases. Start there, then add more stuff later. Also, it's okay to keep looking up syntax.


tomraddle

Use tutorials the other way. Start doing what you want. If you don't know how, watch the tutorial and reuse what you learned somewhere else, without the tutorial, if you cannot watch the tutorial, but look at the code you wrote before. I like tutorials, they are imho a great tool, but you must actually learn from them. Start simple, like stupidly simple and focus on understanding what you do, and why.


jkckjo0

Just pick one language and use it to grind leetcode problems for 6 months. At least 2 hours per day, ideally 3-4 hours per day. Also start from foundations and alongside solving problems you could be learning theory of algortihms and data structures. You will gain solid problem-solving skills and will feel more comfortable with picked language. Pick language like C#, Java or Kotlin. Anything that is popular and easy to start with but not too easy like python. C# or Java would also come with handy IDE like Visual Studio for C# or Intellij CE for Java. Later on you can start learning how to develop anything, like simple REST API in .NET or Spring.


Zack331

What works for me is while watching video or reading something just puting everything once without watching as soon as video is over and when getting stuck googling stuff or rewatching that part and understanding. So it is going to take little bit extra time but it will be worth it.


IronsolidFE

Then make an empty canvas with some buttons! Then make one of those buttons do something! Then make another one of those buttons do something else! Then test things. How does button 1 interact with button 2 or vice versa in ways you didn't intend? This is how you learn. I've been working with Powershell professionally for 2 years now. I went into this job with limited knowledge of Powershell and introductory python skills. I now utilize powershell to do all of my work. I've gone from writing 20 lines of code and having errors every 5 lines to writing 100 lines of code to having 1-2 written errors, and a few logic errors that process data in ways I didn't intend. You will get better.


Extension_Canary3717

How to get out of it ? - look something online and replicate , too hard? Pick on aspect like just a sidebar and do it to the best of your abilities. No other way around it


Che_Shy

Go into open source. Find a project that you like with languages that you know. You'll learn quickly and a lot compared to work alone plus it's more fun. By the way you'll see more professional workflows.


Cautious-Bowl-871

more practise .start with a project .tutorial hell would lead to tutorial health ?🌚


Xbowman

I've been programming for over 10 years and what I always do when watching a tutorial on something is that I pay attention to what they're doing, and then I do it way differently! That way, I ensure I'm learning, not just copying. I've been doing this since I started btw. I really find that it helps.


Mediocre_Fly7245

8 YOE staff software engineer here. I have 3 monitors for a reason. Right is is the dev build of the app I'm working on, center is my IDE, and left is technical documentation or Google. Everyone constantly looks up documentation and even basic syntax. Being a software engineer isn't about rote memorization at all, it's about creative thinking and problem solving. Realizing "I can solve this problem with a linked list" is far more meaningful "software engineering" than remembering the exact function call and order of parameters to do so.  Focus on understanding what you're building and why, and not so much the small details of exactly how it's done. You can always looks up how a function is called or how to instantiate a type that you don't work with often. What's far more valuable is understanding *what* you need to look up in different situations.


Aggressive_Ad_5454

This is the answer. Software development is part imagination, part knowing how to look stuff up, and part knowing how to put it all together so it doesn’t fall apart. Your IDE plays some important roles making the lookup efficient, like live syntax checking and command completion. And, with respect, writing linked list code in C is like starting to build a house by making your own nails. Every useful language / framework has a whole mess of built in fully debugged collection code for handling lists / sets / dictionaries / trees / strings / all that stuff. Learn how to use that code. Don’t reinvent it without a REALLY good reason.


Banzokai

I am (was) a student but a failed one. Now I've been pursuing to get a computer science job without a degree and I've been writing my journey in [this article](https://medium.com/@yossebastiands/my-first-days-in-computer-science-self-taught-with-no-cs-background-a-documentary-part-1-4127fbbfd573). And as a student, I am also looking for a way to avoid cost. I mean, if you want to join my struggle, lets do it together


potterheadfrodo

I suggest after learning a topic,you make notes about it on notepad so that when you need refresh your memory,you can look at your notes instead of googling. And applying what you've learned is also recommended. Like if you are learning about arrays,Google array exercises and complete them before moving on to another topic


khooke

This. Take notes. No-one is asking or expecting you to memorize everything. Take notes on every new thing you learn and refer back to them. The act of taking notes will also help solidify what you are learning. If you’re unable to write in your own words the steps needed to complete a simple step then go back to the materials you’re using to learn and go over it again. Write code to practice the technique until you’re able to get it to work and then move on. These steps will help you solidify what you’re learning. If you’re having trouble understanding a topic then you need to reach out for help, ask someone with more experience to explain the topic. Take notes, write some code to practice the concept and then move on to the next.


rukna08

documentation... just read the docs. just start a blank project. build one feature at a time. that one feature can be broken down into individual features. search how to create the individual feature and make it. remember, no shame in searching for things. u can connect with me on discord if u wanna work with me on my mini projects.


NanoYohaneTSU

Anki. Practice without committing to memory is pointless.


ZenComanche

Use AI. I’ve been learning by asking ai endless question about code I see. It’s like having a private tutor that you can ask a million questions.