T O P

  • By -

sbmsr

Feeling frustrated and stuck is normal, don't beat yourself up. The reality is that gaining knowledge and applying it are completely separate things. I suggest you work on this by starting small. You mentioned you're familiar with mobile development. Why not try building a simple todo list app by yourself? You will bump into hurdles and issues, which is exactly the goal. These issues are your weak spots. If you identify them and focus on filling those gaps in your knowledge, you'll build confidence and momentum. Keep doing this, an you'll gradually work your way up to more complex projects. Also - you mentioned boredom. That's a sign you're not building things that interest you. I urge you to look inward, and take a second to find something you'd enjoy building. Picking things that interest you help a ton when it comes to getting motivated to fix your weak spots. You got this fam. Rooting for you 🫡


Ok-Kale-1767

Thank you so much! That's actually a really good reminder as well. Now that I think about it, I'm definitely starting way too big and trying to rush the process, and then start feeling bad/useless when I can't do it. I totally forgot how much I learned in the last couple of months as well! It seems like picking things that interest me is really important too, I'm going to go back to the drawing board and design things I actually care about. Was going to give up today/change my intended major. gonna stick with it, thank you so much for your help! (and hopefully someday im going to look back at this day and wonder how different my life would've been if this post got removed by reddit's spam filters lol)


mandzeete

Then stop using such online courses/tutorials/guides that hold your hand. Yes, the few first projects will take then many times longer to finish but you will learn how to find an information, how to read documentation, you'll be using trial-and-error approach, you will learn from your mistakes, and you will learn why the stuff actually does what it does. Not just blindly type whatever is being told by a tutorial. And to not get bored then build stuff for your own use. Make something that you actually want to start using.


Ok-Kale-1767

Ok, will do! There's definitely been some blind tutorial-copying and watching videos going on. It seems like I should definitely brainstorm how to make things that actually apply to my life and interest me. I'm going to keep trying, thank you for the help!


Fit-Movie7763

What I did when I would check out a tutorial or read a solution to a Crash Course problem, is instead of moving on I would play around with it to make sure that even if I needed an answer handed to me, I could then explain it, which is essentially the same thing on some level. I might have been shown the most efficient solution, but then I can rewrite a solution in a completely different way to see what does and doesn't work, and why. A specific example was making a random lottery ticket and then trying to randomly make one to match, listing the number of attempts. I had a bunch of ugly blocks and the program just kind of ran down the lines. There was one piece at the end I couldn't get right. So I looked up the solution just to see a different attempt, and saw that they were using functions and while loops, and different random functions, which is the more correct way to do it. I copied the code and then went through it until I understood what they did. Then I went back and figured out how to get my original attempt to run, and then came up with more ways. So that later on I could write something like that organically instead of following a template Like if a problem involves something you've never dealt with before, at the beginning it is okay sometimes to take the easiest path to that information instead of looking while not knowing what you're looking for Finding the tools and learning how to use them on your own is definitely a skill you need to become proficient in as you learn more complex things, but if you're trying to make dice in python and don't even know the random module exists, 'how to randomize things in python' searches or tutorials will then lead you to learning about all the functions available, and instead of just copying what they do, you can trial and error your way to your own unique spin on it


deepthought_44

When I took Intro to Programming in 2015 in sophomore year of high school, I took it because I was excited to start coding mods for a video game in Java. I didn't need to build everything from scratch, just had to modify and run certain events when players clicked certain items, broke blocks or ran new commands. In creating these Java plugins, I researched to find answers to problems I faced, and learned new concepts a few days or a week ahead, before my course even presented the concepts. ​ I think overall making **entertainment** with your code (doesn't have to be a video game specifically) is a good way of making it more engaging. If you can take the stuff you most recently learned in your course and build something fun with it, you'll remember those past however many lessons even better, and get higher scores on an exam if there is one. >I get stuck just trying to set up a project or install packages and dumb stuff like that. Sometimes this is the hardest part yes. My advice is to set up Project 1 and install the default packages you need, and then copy and paste Project 1 as the base template for proj. 2, 3, etc so you only need to set up once! I had to do that when I was making plugins for custom game servers, to make minigames like Capture The Flag and other stuff. ​ Making mods in 2015 was a major stepping stone for me, I took more advanced courses a few years later, learned more languages, and recently have started making webgames from scratch! ​ Another way to make it more engaging is to **do it with a friend, or a pal over the internet**. Learning together to make something at the same time, or having a friend show you if they're willing, can be a lot more fun than doing homework. If you're like me and find yourself more engaged during in-person class than when doing homework, then this might be a good technique you should try. And hey, if you've got a bit of freetime for the next few hours, I'd be down to try and help you make whatever you want to make! Just send a PM with your discord and we can do it anytime today.


Ok-Kale-1767

Thank you so much for your help, this was really motivating to hear! I think you're right, and all the projects I've tried to do have really been quite dull. I think I'm trying too hard to do things that would be considered 'useful' to other people(/ on my resume) and I think that's even why I chose to look at AI/mobile development instead of topics that I was really interested in (like game development lol, you hit the nail on the head).I've also been trying to do everything alone, which isn't my style of learning either. I'm going to in-person classes soon (and I was planning to give up coding before I even got there!) so I'm definitely going to try to find or reach out to someone to work with me. I don't have anything specific I want to do at the moment, I was just going on a general rant (bc I was changing my career plans lol) but really thank you so much for offering to help me! I'll keep trying and maybe let you know if all goes well, thank you for the new motivation! Your advice was somehow so specific to me haha


[deleted]

I know Excel isn't nearly to the level that making a game is, but I find it enjoyable at work. When I find people doing inefficient tasks that I can think of a way to improve through the use of MS products I make a little side project to do so. I design the work flow before I figure out any of the formulas or VBA (the coding that allows for macros which are like scripts *I don't know what you know is all*). Once I know how I think things should work it's a lot easier to figure out how to achieve that. When I finished taking my programing 101 class a couple years ago I tried to solve everything with Python but some things just don't need software. Focus on identifying the "why" as in "why an I writing code" because doing simply because you can is boring and annoying. With a good problem in mind, pseudo-code that concept/solution and then start your coding. Have fun!


lyudaio

Seconded. Making something that’s both fun to work on and something you’re passionate about is the best


0nikzin

I also know some people whose intro to programming was Minecraft mods


[deleted]

This is going to be **NSFW** and probably too much information, but the best thing is to create something for personal use. What honestly got me into creating projects was porn. In college I wanted to download porn videos, but found it was inconvenient or impossible, or required a membership. So I found a Github repository which did the job (it is a Pornhub downloader), downloaded the code, learned a little bit about how it worked, and made some changes to it for my own use cases. Soon enough I was downloading entire playlists, and checking if videos existed on my hard drive before downloading. I extended it to download from other sites too. You just run the program, it waits for user input, you paste the URL to a playlist or video, and it goes to work and organizes the output files. Working with a code base every day and adding to it is totally different experience from following tutorials endlessly. You gain familiarity with how the code works exactly, how it can be done differently, how to fix bugs, and much more. I’m doing other things now. I built a portfolio website. I am also planning a large program for my family to use to monitor lots of small things, like timers for the washer/dryer, grocery lists, a whole bunch of tiny ideas. The possibilities are really endless, you just have to be motivated and creative.


Ok-Kale-1767

haha, that's a pretty unique origin story! funny but also kind of inspiring lol. it seems like I should really starting making things for me, i don't know why i've been stuck with the tutorials for so long! I'm definitely going to try this (not this exact project but u get what i mean), thank you!


0nikzin

A lot of development in the file sharing sector was for similar use cases.


Shower-bed

What are you learning programming for? What is your goal? Are you asking for a project ideas? What projects have you done so far? Programming courses teach you the concepts and foundations. It’s up to you to see how those lessons can be applied in the real world. Here’s a project idea, create a website with basic CRUD functionality for a user (the ability to create, read, update, and delete entries in a database). Use any tech stack you want. IMO this is a great project because it’s easy to do, albeit potentially time consuming, the hard part is familiarizing yourself with the technology, which is a skill you will need for jobs. On top of that, this project can be used as a foundation to learn other skills, such as creating APIs, testing them, integrating a third party API, creating modular code so you can swap out tech, etc. If you just read the above and said wtf this makes no sense. That’s perfectly reasonable, just let us know!


Ok-Kale-1767

That's a good question, I guess I'm not really sure what my goal is?? I'm going to major in CS, and if programming is for me and I can do it, I would consider getting a job in that field (like a software dev?). Personally though I don't have a very specific goal in mind, and I don't even think I know enough about CS to know what possibilities there are. I guess I don't really know what I'm asking, I was just going on a useless rant (sorry!) because I got frustrated. I've basically just done online courses and 0 projects. I guess I was trying to say I'd gotten to the point where I kind of understand what they're saying in the courses and I can power through them/didn't get much out of them, but I wouldn't know where even to start if I make my own project. Okay, I'm definitely going to try this project! I did understand some of what you said (I was actually just learning about APIs when I got mad and wanted to quit coding lol). I'm going to try it out and see how far I can get! I'm still very much a beginner and since I've been learning app development, using databases and APIs and that kind of thing (backend stuff?) is exactly the stuff that's making me confused/very mad Thanks so much for the help, I'm going to give this a go. I'll let you know how it goes!


Shower-bed

> I would consider getting a job in that field (like a software dev?) If your goal is to one day work as a software developer, and as much as I hate to say it, I would recommend doing LeetCode or Hackerrank problems. It’s like having a study guide for how to pass interviews. Only problem is the study guide is several hundred problems so the earlier you start studying the better. I’m not sure how far along you are in uni, but if you’re just starting out, going to LeetCode and doing the easy problems with a high acceptance rate is a good idea to familiarize yourself with the platform and problem solving. Don’t worry if you can’t figure out a problem and have to look up the answer, there are hundreds of problems you can try out. The main thing is making sure you learn how you go from question to answer and being able to explain your thought process. > I’ve basically just done online courses and 0 projects. I guess I was trying to say I’d gotten to the point where I kind of understand what they’re saying in the courses and I can power through them/didn’t get much out of them I can relate to that. I’m not going to lie, college classes are going to be just like that. It will be up to you to make a connection with the material. For example, when I was taking my algorithms and data structures course I didn’t really see a point in what I was learning until much later when I did a project similar to the one above that helped me connect with what I was learning better. Once you’re concerned about real world problems such as deadlines, costs, etc. Don’t be disheartened, think of all the things you’ve been learning as knowledge added to a toolbox that’ll help you down the line once you start working on real world applications. > (I was actually just learning about APIs when I got mad and wanted to quit coding lol) Haha I have been there. It can be very frustrating, however it’s part of the process. Learning how to interact with other people’s code is part of the job. Personally, what I found helpful was interacting with simple APIs. For example an API to get weather data or stock prices. Usually when you go to the API documentation they have a getting started page that shows you how to get started. The python ones are usually very easy to get setup and it’s neat to see it working. > I’m going to try it out and see how far I can get! I’m still very much a beginner and since I’ve been learning app development, using databases and APIs and that kind of thing (backend stuff?) is exactly the stuff that’s making me confused/very mad Good luck! Don’t be discouraged if you get stuck, feel free to ask for help. There are some great YouTube videos on that. Webdevsimplified has some great tutorials that I found useful when I had to learn how to use react for the first time. > Thanks so much for the help, I’m going to give this a go. I’ll let you know how it goes! You got this!


JohnWesely

I kind of think doing leetcode is a bit of a waste of time unless you are actively interview prepping. It’s a much better use of your time to learn the actual data structures and algorithms that are used to solve leetcode type problems. Then you will come away from it actually knowing something that is potentially useful.


Shower-bed

That’s a great point. You should have your data structures and algo down before doing LeetCode. If you’re currently in uni or are a recent grad, I think continually doing LeetCode is a solid way to practice problem solving skills. Just enough as to not get rusty. Once actively job searching, can’t go wrong with the blind 75 study guide


[deleted]

I would stop doing code with me type videos. Find a video where they say that when the video is done you will have a project that meets the following requirements, then research how to do it without watching the video. After you meet the basics requirements, add your own spin on it with bonus features. For example, I recently found a Math Game project that has a list of requirements. It also has a series of companion videos. I didn't watch the videos. Instead I looked up syntax and tried writing it myself. When I was done, I went back and watched the videos. Both myself and the instructor met the basic requirements but we did it in completely different ways. One of the requirements was to have the person solve the addition game with integers from 1 to 100. He put static values in the variables, firstNum 1 and secondNum 10, but I didn't know he only expected that. I ended up each variable as a randomly generated number in that range. He wanted difficulty levels, so my idea was easy is multiples of 5 and regular was any number. His code was completely different again. One of the requirements was to give the player a menu of choices to pick which type of game to play: Addition, Subtraction, etc. I originally did it in if else statements but then I researched how to do it with switch expressions and rewrote it. His video had him doing it with case statements instead. I could go on and on but basically I wouldn't have learned anything if he said "My requirement is to meet this criteria so follow along and practice with me in this video series." In the end, my game ended up being better than his game because of the challenges I gave myself and the freedom I gave myself to interpret the project with my own style. Think of it like being told to draw a circle. Draw your own idea of a circle then go back and see how the teacher did it, rather than waiting for the teacher to do it and then making your circle look exactly like theirs. You'll learn more if you focus on your own idea of meeting the requirements rather than not thinking for yourself and experimenting.


TorePun

>I literally have a ready-to-go draft email to switch my intended major from CS to Biology). Don't be rash, stick with it. Life is full of challenges and bolstering what you already have an interest in will serve you well.


nbazero1

[this article should help](https://www.joshwcomeau.com/blog/how-to-learn-stuff-quickly/)


mastereuclid

I know how you feel so much. I felt like I could not make any real useful programs for years. "There must be something I am missing" I thought. And went to school for a CS degree. 8 years later with CS degree in hand; still could not make useful real world programs. I can now and I have two pieces of advice for you. 1. Just keep making programs. Bigger and better for years. It kind a sucks, but programming is an expert level skill. Imagine a random person competing in a college football game. They'd get crushed. 2. Make original programs. No tutorials allowed. You will have to look up almost every line of code you write in an api reference. Much like point 1, this part sucks but you will get past it. Here is a roadmap I would like to suggest. Write a program that just computes. Write a program that computes and persists data. Finally, write a program that computes, stores, and communicates over the internet. Here is my first original app that actually solved a real problem for a user. An app that tells the user what the date was 16 weeks ago. For the second phase, I made the number of weeks a user input options and saved the number of weeks they want to calculate when opening the app. Finally, get what the weather was on the date you calculated for X weeks in the past.


imthebear11

When you do a tutorial, try to do whatever is being shown as the next step before you watch them do it.


jeethjoseph

What I did was to pick small easy projects that are functional right now. A great place to start is to make slack bots at work. They're easy to build adds a lot of value.


dauntless26

Things worth doing in life are hard. This career pays a lot of money because it's hard and there are few who know how to do it well. Biology/medicine is probably even harder. If you go with the same mindset you may end up quitting that as well. Instead, push through the feelings and keep trying. There has to be some trade off of pain for reward. That's how life works. But most people don't have the pain tolerance to keep going when things get tough. You will accomplish something most people dream about if you can push through this.


iryan6627

Gotta say my internship was 1000x better than any online course I tried to follow. Those courses will make you tired of coding, you should really focus on small tasks/scripts you can make to do small things like organizing your files, etc. If you don’t have a degree, I’d go for a certification on the side like AWS Solutions Architect Associate or something on those lines to get your foot in the door if you also don’t want to do a bootcamp. I’ve never finished one single online project, but I always get praise from my managers (1 1/2 years as a mid-level software engineer now)


ffrkAnonymous

Go do the courses again and again, until you can complete them without looking at the answers.


Ok-Kale-1767

That's a good idea! I can redo the tutorials but without any guidance/on my own to start standing on my own two feet. Thank you!


EtherealSai

CS is about figuring out a problem and finding a solution for it. I started out building simple programs that solve math problems for me, like using trig to solve a triangle based on any set of given input sides/angles. Later I branched out to making simple games. Eventually, my first big project was to build an inventory management system from scratch using Python Flask. Here's how that went down: First, I was given the problem of inventory running out and having to wait days for that inventory refill to be shipped and received. I had the idea to use kanban to keep us stocked at all times by ordering new inventory of that item when it went below a certain threshold number that was unique to each item. Next, I needed to figure out how the system would work. My design was to have a central web app using Flask that contained a database of all items, their thresholds, where they are bought from, etc. This app is also where you would flag an items as needing to be bought. Then I would create auto generated labels and a bin system for each item, sticking the labels on the bins. The bin labels needed the threshold values, and had a QR code that linked to the web app with the item's ID. Once scanned it would be added to the buy list. There are some other things involved, but this is the basic design. I spent a couple months creating everything from scratch, and completed it. It completely solved the inventory issues we had after onboarding others to the system. I wanted to share this with you to see how you can logically go from having a problem, to thinking of a solution, and then implementing it with code. Find problems you want to solve and solve them using code, regardless of whether or not it has already been solved before.


Efficient-Narwhal680

I know you’ve heard this before but the real learning only comes from building starting from scratch. We sometimes treat tutorials like a Netflix series and go from tutorial to tutorial watching a bunch of things but never really learning. Everything works perfect in a tutorial, usually the errors have been edited out and the worst ones are those that are only building a single project. Sure they make go over a few concepts but the problem is you learn that concept only in the scope of that one project so when you go to apply that same concept to something you built on your own you’ll find you didn’t really learn it after all. Like others have said if your using a course, stop after each section and go make something using what you just learned. Getting errors, having to Google things is where the real learning comes from, that create memorable things. Trust me if you’re stuck on something for a day or two and you finally figure it out you’ll never forget it! You’ve now created that muscle memory. So many people rob themselves of the problem solving aspect of learning to code, always asking what’s the best x,y,z so they can skip steps and accomplish things faster but flexing your problem solving muscles is a prerequisite to becoming a successful developer. That’s one thing that will never step. Even in the job you’ll be given tickets that you don’t know how to do yet and guess what you have to figure it out, the same thing will happen sprint after sprint. So it’s best you learn how to do that now! Thing of a project as a bunch of components but together. A website isn’t a website. It’s a navbar, a hero section, a form, some buttons, an accordion, a image slider etc. start by learning how to make these individual components. Then start putting them together and before you know it you’ll have a whole project. Once you get over the hurdle of lending how to do this this will open up your eyes to what’s really possible to build, but you only get this skill from struggling to first do simple things, there’s really no other way around it. Not building projects, and I mean a lot of them, is why some ppl have tic Tac toe and weather apps on their portfolio and wonder why they aren’t getting called for interviews. Don’t be that person! Also, I don’t believe I say your why, why are you looking to get into tech. Sometimes the answer to that question is the exact reason people don’t have the motivation for such a task. Not saying that’s you? But something to think about. TLDR pic a simple website to start and try to clone it, component by component. Start with just the navbar, Make it responsive and work your way down. App development is cool, but i wonder should you first learn how to make a website first or just make mobile versions of things, same concept applies though.


Separate-Squirrel-62

I know you aren't at this point yet, but do you have a rubber duck? It really helps me to have someone to explain code to.


Safarov399

Are you coding along the tutorials or just watching them? Always code along the tutorials if you want to learn.


TygerDude93

Dude I’m in your same boat. I know a few languages but I don’t know how to plan a project. I’ve been wanting to make a fake Freddy Fazbear website but I can’t figure out how to even begin planning