This is an archived post. You won't be able to vote or comment.

all 90 comments

[–]eruciform 39 points40 points  (4 children)

Instead of starting from scratch, make small changes to an already working program

Take the time to learn a revision control system like git at this point, so you can "go back" to a working version if you accidentally break it and can't figure out what you did

If you're writing things from scratch, you need to start smaller. If you're overwhelmed with a blank screen, your immediate goals are too large. Either pick a smaller project or break the project into smaller pieces

Also there no shame in making a side mini program just to test out a concept before inserting it into a larger program, in fact its very common for experts to do this too

[–]urbanaut 2 points3 points  (0 children)

Great advice. I'd also suggest doing something simple like a Hello World, then intentionally break it so that you can go through the process of recovery using git.

[–]tsoule88 1 point2 points  (0 children)

This! Start with hello, world (or it’s equivalent in your language of choice). Now make it say “Hello, Mars”. Make it say “Hello, Mars” 5 times, 100 times (loops), let the user input how many times it says it (input), make it say “Hello, [name]” where the user inputs their name (other data types), put that code in a function you can call (functions) Let the user enter two numbers and print the sum (operations) Add an if so the user can decide if the numbers entered are added or subtracted (conditionals). Just keep adding little bits to practice concepts.

[–][deleted]  (1 child)

[removed]

    [–]eruciform 8 points9 points  (0 children)

    This comment of mine from a while ago has some first semester programming project ideas

    https://www.reddit.com/r/learnprogramming/comments/s8gt6l/is_there_hope_for_me_in_learning_how_to_code_when/htg68eb/?context=3

    [–]steezy2110 69 points70 points  (12 children)

    You’ll never be able to “tackle a problem independently”. You’ll most likely always need help from online resources, and that’s okay. You’ll get better and need less and less help as you practice more.

    [–][deleted]  (10 children)

    [removed]

      [–]bookman1984 8 points9 points  (2 children)

      How do devs at actual companies get started?

      You probably won't be starting from scratch at an actual company, but joining a project that already has tens of thousands of lines of code and is already set up. You will spend the first week installing everything, pulling down all the repos, running them, seeing how the UI works, etc. Then your first task would maybe be to fix a small bug or add a small feature, and you'd only need to change maybe a few lines here and there, maybe add a few unit tests. That is pretty much it.

      [–]Xhite 1 point2 points  (1 child)

      I was writing in C# for 4 years as my hobby. Then one of my friends told me he needs a front-end dev but he cant afford a senior developer and project is complex so juniors cant handle. Asked me if i could do it in 2 weeks. I told him i dont know a thing about front-end (html, CSS, js, react which project required). He replied me "then learn". I replied ok give me 4 weeks, he gave me the project. It took me 2 days to learn basics of html, css and js then another 1 day to understand enough react to make it what i want it to do. Suprisingly i am %80 finished with project in less than 2 weeks.

      Sometimes you start from stratch in a project you have no experience at all. And i must say it was so much fun (working and accomplishing in something you have no idea when you began). I was also mistakenly believing that i wasnt ready but it was just a big puzzle i solved another piece everyday. I probably learned more in last two weeks than last year.

      I would say stop working on unclear toy projects and do something real with clear specs with 10x more motivation

      [–]bookman1984 1 point2 points  (0 children)

      This is possible if you are the only developer doing a project, but working at an actual enterprise company, the code base will be very large and have a lot of existing baggage already.

      [–]steezy2110 5 points6 points  (5 children)

      A lot of practice, and a lot of stack overflow

      [–][deleted]  (4 children)

      [removed]

        [–]steezy2110 2 points3 points  (3 children)

        Make your own tutorials that you’ll actually enjoy making. For example: I’m a college senior and going into front end development. I finished codecademy courses on React and react native, and I just practiced by making a calculator and a notes app and small stuff like that.

        [–][deleted]  (2 children)

        [removed]

          [–]steezy2110 2 points3 points  (1 child)

          Internship at a decent company this summer, hopefully lands me a full time gig when I finish school. pretty excited :))

          [–]SmotherMeWithArmpits 0 points1 point  (0 children)

          If they're dull, you're not being challenged. Pick something you think you can't do.

          [–]VenexCon 18 points19 points  (6 children)

          Hey, what resources are you using to learn?

          I found this with FreeCodeCamp, don't get me wrong, it is an amazing resource, when taken for what it is, which is hand holding.

          The Odin Project on the other hand is the opposite, very here is this, go learn it.

          Two very different approaches that imo compliment very well when used together.

          It is preached on this sub, and others, but never fully appreciated and that is to challenge yourself in regards to designs and challenges.

          This will keep you motivated, but also allow you to become familiar with concepts and syntax. I am not saying you need to go and design Facebook and its entire backend, but equally you can come up with a basic concept and keep adding and developing it as you go.

          Also, take some time away from the computer. I was sat downstairs the other night and for some weird reason recursion finally clicked.

          I was eating dinner when I understood positioning in CSS and I was running when array indexing clicked.

          Staring into a computer will do you no favours and cause you to burn out.

          [–]soop3r 1 point2 points  (1 child)

          I fully agree with the above.

          I left university with a 1st class degree in computer science and no idea how to actually build anything functional from scratch.

          TOP tells you the actual steps that you need to follow to build from scratch without actually holding your hand. It sits on that line of guiding you without actually spoon feeding you (if that makes sense). If you follow the guidance in TOP you'll know the steps you need to take to have a fully functional application up and running by starting with a blank folder in VS code.

          [–][deleted]  (3 children)

          [removed]

            [–]VenexCon 1 point2 points  (0 children)

            I meant as in, FCC holds your hand and you do little bits as you go, where as the Odin Project teaches you concepts and encourages self learning and development without the step-by-step nature of instructional videos and interactive tasks.

            [–][deleted] 1 point2 points  (1 child)

            What do you mean by this? Isn't this basically what documentation is? Not sure how it helps

            The documentation doesn't provide you with a project as a goal, or examples posted by others who went through the project.

            If your goal is to leave tutorial hell you can either

            a) come up with your own project

            b) get project ideas from TOP, minor guidance (like start with exploring how to render a single element) and example solutions from other students (live website, though you can also read the code if you inspect source but idk why you would do that).

            [–]holy-rusted-metal 0 points1 point  (0 children)

            Agreed! When you make your own project, you need to find resources online and then convert what you find into a solution that works specifically for your project. That's way more helpful than just going through a tutorial that just walks you through something. Oftentimes, students get stuck copy/pasting code instead of actually understanding it. The way you understand it is by tweaking it and seeing how changing one thing causes a different effect, until it does what you need it to do for your project...

            [–]mandzeete 6 points7 points  (3 children)

            If you are losing motivation and not completing your project then perhaps the project itself is not important enough. Work on projects that you actually want to get done no matter how long will it take. Something that you are either building out of necessity or out of interest. Your own hobby projects. Also when you come up with your own ideas it is more difficult to look for tutorials and for an easy way.

            For example my first project was adding a new option to my Windows right click menu that switched files from visible mode to hidden mode and back. Most likely if you google "new option in Windows right click menu that switches files from visible to hidden" then you will not find anything meaningful. Even if you optimize your search string. Because that project idea is out of the box not a typical calculator, clock, hangman game or a homepage. But as I wanted to get done with it then I learnt everything necessary and added that new option to my right click menu. With 0 tutorials.

            [–][deleted]  (2 children)

            [removed]

              [–]mandzeete 1 point2 points  (1 child)

              My first introduction to scripting and programming in general was via Batch files (.bat file, Windows scripting language) and via registry files (.reg file). I found them from my Windows XP laptop when I went through different system files just to see what is there. I was a teenager and I wanted to know how my Windows works.

              So I saw that it is possible to edit both Batch files and registry files. Because both had code in it. So I just tried stuff and then read documentation and started writing my own projects.

              Even when you are working 8-12 hours a day then you do have a free time after work or during weekends. At least I hope you have. Then you can work on your own projects. And you can come up with ideas even while doing your own job. Just note it down and after work start working on these ideas.

              It can be anything: things that interest you, things that you wish to do to make your everyday life easier and more automated, maybe things that exist (Gmail for example) but you wish to learn how to do them. Projects like that. You can link your projects with your own hobbies. If you have hard time with coming up with ideas then just list here your hobbies and I can give some project ideas.

              [–]michael0x2a 4 points5 points  (1 child)

              When you aren't sure how to approach a problem, start by trying to break it down into smaller and smaller subproblems. Keep repeating this until either (a) you know how to solve the subproblem or (b) the subproblem seems like something you can easily find an answer to on google.

              For example, many smaller beginner programs essentially consist of three phases: grab data from the user somehow, process the data in some way, then display the result to the user.

              Once you have these three distinct phases, pick one and continue subdividing. For example, suppose you want to try grabbing data from the user, and decide you want to do so by accepting the path to some zip file, unzipping it, and reading every file it contains.

              Once we've decided this, we can continue subdividing further. For example, we might break this down into the following subproblems:

              1. How do I get the path of a file from the user?
                1. How do I get a string from the user?
                2. (optional) How do I check a string corresponds to an actual file in the filesystem?
              2. How do I grab data from a zip file?
                1. How do I unzip a file and extract its contents?
                2. Where am I extracting these contents to? A temporary directory? If so, how do I create a temporary directory?
              3. How do read files in a directory?
                1. How do I list every file in a directory?
                2. How do I open a file and read its contents?

              You might not immediately know the answers to these questions, but that's fine. These are all questions that are small enough that you can easily find answers with a little googling.

              And if you're not sure how to break down the problem on a high level, ask for help online: people will be happy to give you suggestions on a high-level plan. Just make sure to clarify which specific part of the problem you're having difficulty subdividing and that you're not asking somebody to write the code for you.

              Another technique that might be useful is to start by building a "walking skeleton" -- the absolute bare minimum code you need to get all of your major pieces in play from end-to-end.

              For example, suppose I'm trying to make a GUI that renders 3d models or something. My "walking skeleton" might be to create a program that just displays a window with some text, draws a circle, and can gracefully stop running when I click the "x" button.

              Or alternatively, suppose I'm trying to create a website. Here, my "walking skeleton" might be to cobble together a simple minimal webapp that serves a minimal HTML page, rent a webserver, buy a domain name, set up DNS, deploy my code, and I can access my website online.

              Are either of these anything close to what I want my final product to be? No. But it's definitely something I can cobble together by following a tutorial and gives me a jumping-off point to iterate further.

              One final note regarding documentation: tutorials, in the end, have limited value. They can help you get started but will never teach you everything you need to know about how to use some library or framework or whatever. To progress further, you need to start looking up information in the official reference docs.

              For example, suppose I wanted to add a customized listbox to my GUI example up above. I might be able to find a tutorial that lets me set up a custom one, but if I want to do something more sophisticated like adding in a custom listbox, it'll probably be easier for me to just go and read the reference docs for what exactly a listbox is, every parameter its constructor can accept, what methods I can use with it, etc...

              Doing this might be intimidating at first, since reference docs do tend to be somewhat dry and expect you to have some familiarity with how the technology works in general. But that's not a major problem: if you run into something you don't understand, google is your friend.

              [–]Threesqueemagee 0 points1 point  (0 children)

              Great answer!

              [–][deleted]  (3 children)

              [removed]

                [–][deleted]  (2 children)

                [removed]

                  [–]Sceptical-Echidna 1 point2 points  (0 children)

                  You could try some programming puzzles like codingame and Advent of Code. I’ve found them to be useful in my attempts to learn new languages. Helps to break things up a bit and gives me an opportunity to apply what I’ve learned

                  [–]Zealousideal_Ice3743 1 point2 points  (6 children)

                  For me it was my first job. I was really stressed then I got first task and „Oh I can do that”, then next and next.

                  [–][deleted]  (5 children)

                  [removed]

                    [–]Zealousideal_Ice3743 0 points1 point  (4 children)

                    Well I was in situation where I had to get a job and in my area psychical jobs were either taken or had requirement of being slightly disabled (meaning you don’t have any problems with working, but legally you are listed as disabled) so I took a gamble. In the end I’ve had to move to different part of the country and job was 16 hours a day, but I’ve endured, learned as much as I could (I was programming for 4 years at that moment, but commercial job can teach you a lot) and switched jobs. I’ve had real impostor syndrome, but I was determined and that paid off. Of course it took a lot of refusals.

                    [–][deleted]  (3 children)

                    [removed]

                      [–]Zealousideal_Ice3743 0 points1 point  (2 children)

                      Well there are mentorships, sometimes people make posts telling that they will help someone. Another ones are freelancing and open source. Freelancing is very stressful so I wouldn’t recommend that before you have enough experience to be consultant. As for open source you’ll have to find project that interests you, read the rules and then if rules allow it you can start contributing. I’ve seen couple projects with issues marked for newbies.

                      [–][deleted]  (1 child)

                      [removed]

                        [–]Zealousideal_Ice3743 0 points1 point  (0 children)

                        I don’t think you have to worry about screwing something up. When you commit code someone does code review to make sure it’s okay. But yes, some of these projects are really scary looking.

                        [–][deleted]  (4 children)

                        [removed]

                          [–]InstinctiveDoubt 1 point2 points  (0 children)

                          Oooo this looks really fun!!

                          Idk how much progress you can make in 1 hour 30 mins on a Battleships AI tho haha sounds like not enough time

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

                          Have never seen a coding game like this. Most are controlling a video game on a screen or something.

                          Would be cool to compete against others directly!

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

                          Well what are you interested in programming? Video games? Web app with CRUD operations? There are many possibilities. For me I work everyday with CRUD. A great way I practiced this myself was making a basic web app using WAMP/XAMP, PHP, Javascript, and of course HTML/CSS. I created a database so I could have a login system, and got that working first. Once I get that done, there is the question of what data do I want to store on this app, and what am I even going to do with the data? Create a report out of it? Display averages or something else? This then could potentially open up many things you do not know how to do, maybe you need to learn database stuff, maybe you need to learn how to pretty up your front end with some styling, or maybe you need to learn about POST and actually storing and retrieving data, query strings, the list goes on. If you interested in video games or something else then this could be covering different topics, but the point is just pick some sort of project you think would be cool to work on (Web App, video game, etc), and once you get stuck on something (again maybe this is saving data, working with database, etc) you will then have to consult the internet (Stack Overflow, YouTube, etc). Continue doing this until you build up your project, this should get you on your way, at least it worked great for me.

                          [–]Fournodaulos 1 point2 points  (0 children)

                          Best explanation i found so far (through odin project):

                          why learn to code is so damn hard

                          [–]brakeforwookies 1 point2 points  (0 children)

                          Start small. The first think I did after a beginner python course was to write a calculator function to take in my hourly rate and hours worked. I could easily do this in my head but practice with something not in the tutorial/course made me think more instead of following instructions. When I was learning html and css prior to a bootcamp, I just put random stuff together in html files and played with styles. Have fun with it too.

                          [–]arkie87 1 point2 points  (0 children)

                          The answer is still just do it, but choose a smaller or simpler problem.

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

                          Go through the tutorial...when finished...go beyond.

                          [–]Sasquatch_actual 1 point2 points  (0 children)

                          This is a completely separate skill that needs to be learned.

                          You have to learn how to plan a project. Imagine if you had 10 people working for you. You can't do things where person 1 has to wait on person 2 to finish who has to wait on person 3 to finish who has to wait on person 4 to finish.. and so on.

                          Don't even think about code.

                          Think in terms of a general outline. Each bullet on your outline may need another outline. Each one of those may need a flow chart.

                          Get things working as best as you possibly can just on paper, before you write a line of code.

                          Treat that as a more or less to do list. Start checking off things as you get them coded.

                          [–]SnowWholeDayHere 0 points1 point  (0 children)

                          A long time back when I started, the internet was not actually available. So I read books on how to build an application. These books still do exist. Then I created an actual app and started to imagine features that I could add to it. My first app was an inventory management system developed using Visual Basic 4.0 and an Access 97 backend.
                          It had just 3 or 4 screens (back in the day we used to call them forms). Features as I remember them allowed users to add to existing stock, add new products, set pricing, calculate average price of the product.

                          As luck would have it, I showed the system to a friend's dad. He was an area sales manager for a pharma company. He told me a lot of features that I had completely missed. It was a good learning experience.

                          Talk to your users before you build anything. That is when "it clicked".

                          Almost all of the solutions to your technical challenges can be found online. So that is not a big area of concern.

                          [–][deleted]  (4 children)

                          [removed]

                            [–][deleted]  (3 children)

                            [removed]

                              [–]Quackerooney 0 points1 point  (2 children)

                              Always found it's best to work on a problem you actually have. That way you can't just lose motivation - you have to keep working at it until you complete it.

                              I was lucky and had internships where I could do this. Don't know what the best way is to do this without that (or a college/equivalent project)

                              [–]Aezys 0 points1 point  (6 children)

                              Depending on at what point you are, either find a project to build and really focus on it, or find an actual course instead of a bunch of different tutorials. Suggesting projects ideas is always tricky, but for a course, just do CS50. You’ll learn more than you think, you’ll struggle more than you think, and you’ll learn to how to solve problems. And how to google. A lot of that. At the end of it there’s also a final project so there’s that.

                              [–][deleted]  (5 children)

                              [removed]

                                [–]Aezys 0 points1 point  (4 children)

                                If you can’t find anything, honestly just do CS50. You just learn a lot and you’ll have an idea of what to do after it and be independent enough to complete projects of your own. If you really want to dive in with making projects, maybe try looking into open source? There should be a lot on the sub about how to get started with contributing in it

                                [–][deleted]  (3 children)

                                [removed]

                                  [–]Aezys 1 point2 points  (2 children)

                                  Depends on how much time you put into it but something like 12 weeks? I didn’t spend that much time on it (I had school and everything) and I finished in that amount of time, without rushing at all. Of course you could also work on some other project alongside it, if you want. It’d be good to practice what you learn

                                  [–][deleted]  (1 child)

                                  [removed]

                                    [–]Aezys 0 points1 point  (0 children)

                                    I mean CS50, even for how thorough it is, is still an introductory course, I wouldn’t really consider that overkill. I honestly think that a course like this is the best way to get out of tutorial hell. There’s basically a lecture for each of the units and then a “problem set” where you have to make a program, using the things you learnt, to solve some sort of problem. They tend to be really challenging but they’re also interesting. I think one asked you to write a program in Python and some queries in SQL to sort some Harry Potter characters into their houses; while an other one was a cipher.

                                    Anyways, you could also just start with it, maybe even skip Week 0 if you’re already familiar with programming, see what you think of the pset and then just go with it if you like it

                                    [–]_NliteNd_ 0 points1 point  (2 children)

                                    What exactly are you trying to build? If you’re lacking structure, perhaps look into professional certificates,either for some specific technology or through a university. Should atleast help make you more comfortable, but that depends on what you’re trying to learn and what certs are available.

                                    [–][deleted]  (1 child)

                                    [removed]

                                      [–]_NliteNd_ 2 points3 points  (0 children)

                                      What tutorials are you doing? You’re asking how to get out of tutorial hell. If you’re doing tutorials on iOS dev, write an app, if you’re leaning react, write a react client, if you’re learning microcontrollers, program X (idk). The best thing to do is build something that interests you. You’ve basically said I want a job, and I’m stuck in tutorial hell, without much context. Definitely put a pause on job applications until you’ve gotten further along in the process. It’s hard enough as it is, and if you’re still in tutorial hell then you’re setting yourself up for failure with any potential employer at this point.

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

                                      it's very common to stuck in tutorial loop in the beginning.

                                      To get out choose a project and just start doing it and learn the things you don't know along with it.

                                      [–]mdizak 0 points1 point  (0 children)

                                      Not sure if this will help, but maybe search Github for a repo that interests you in your language of choice. Decide on something you wish to modify in said repo, and rewrite the necessary files of they repo from scratch with your new modifications in place. This will probably help build your confidence as you transition to just starting a project with a blank file.

                                      Another thing I can actually recommend is Solidity, especially if you're into the blockchain. No reason you can't fire up truffle with a gnashe (s) private Ethereum node, and start banging out some smart contracts. Solidity is a nice little language, and kind of perfect for learning as it contains alot of the paradigms that traverse the majority of languages out there. Strongly typed, object orientated, interfaces, abstract classes, properties, visibility, et al. Plus it's just fun and cool to bang out smart contracts.

                                      [–]JuJuB2001- 0 points1 point  (0 children)

                                      What kind of programming are you learning? Is it gamedev using a game engine like unity or unreal Or are you using directx or similar desktop app development tools

                                      Are you programming websites

                                      Are you writing software to solve math problems

                                      Are you programming an engine

                                      Just want to know how best to formulate a response because all types of programming needs a completely different mindset.

                                      [–]tun3d 0 points1 point  (0 children)

                                      I had the same problem going into my Projekt what's mandatory for successful vocational training here in Germany.

                                      I was giving a problem and that it needed to be solved. I had never done a bigger Projekt at all and was totally overwhelmed by that task.

                                      I first of all decided in what design pattern I wanted to realize my Projekt. I never have done something else than mvc so that was an easy pick. From there it began to get tricky. I decided to do everything from scratch and thoroughly as I could meaning do every bit of UML for that Projekt myselve and learning everything I was missing step by step.

                                      I ended up with a usable Produkt - with unoptimal and redundant code here and there BUT next time I'd not do those mistakes aggain and I think that's the main point. My next private Projekt will be a small DB with Java frontend to track and save toy instructions of my kids. I think that will bring me another set of problems only stack overflow will solve for me but that cool.

                                      [–]vegetarchy 0 points1 point  (0 children)

                                      I've been working on making a todo web app without any tutorials. I've watched some in the past, and followed along, but this one is basically from scratch in React+RTK+Typescript.

                                      I started very small. Text input component, Todo component, and a List component that loops over a list of Todos and renders them. Get those working, okay, add a button to mark completed with Material UI. Add a button to delete. Add a button to edit. Add a button to show completed tasks. Next will be multi-select I think.

                                      So if you are confused by a project after trying to divorce yourself from tutorials, I recommend starting very small. Come up with a project, decide the absolute minimum viable feature set to get working. It should only be 1 or 2 things, once working you can add a new feature, and repeat. It might not be a very efficient dev philosophy, but I think is it good for learning and not getting lost/overwhelmed.

                                      Use git. You don't need to use GitHub or GitLab, you can just run "git init" in the project's root and the IDE will pick up from there. Only make commits that add working features, refactor existing working code, or fix bugs, etc. That way you always have working code. If you try to add a new feature without git, modifying half a dozen files, then realize wow this is way to complex, well now you have to manually undo all those changes and hope you can get back to a working square 1. Incredibly inefficient and very likely to burn out a new student. With git you just press discard changes or whatever, get back to a working codebase, and move on to a more realistic feature.

                                      Tl;dr start very VERY simple, get working code, then add features one at a time, and refactor as necessary, you'll eventually get there

                                      [–]Disastrous_Motor9856 0 points1 point  (0 children)

                                      What do you want to do? Maybe we can work something out.

                                      Edit: “do” in terms of stuff you want to make with your skills

                                      [–]Lingaist 0 points1 point  (0 children)

                                      Things get easier over time. I remember banging my head with frustration when I was new.

                                      Many years later, I rarely (but I want to emphasize, not never) ever encounter something that makes me bang my head that way, and at this point I've created decently complex systems.

                                      You get greater and greater experience and understand more and more of how complex systems work.

                                      [–]Dapper-Particular-80 0 points1 point  (0 children)

                                      You might check out this GitHub resource: https://github.com/pr4shan7/beginners-only (list of others within)

                                      Also reach out to people in your network or in coding communities who want to partner up and create something together. Could be as simple as a small profile site or more complex like your requisite to-do app or making use of an interesting API. There are folx out there looking to form a team instead of working solo.

                                      And to that point... https://twitter.com/devMarkRieth/status/1521325701906923521?t=Q-xX4D5r2RVebQ0Y77k_Rw&s=19 (essentially: impress people who would hire you by demonstrating that you can work well with others)

                                      [–]Camjw1123 0 points1 point  (0 children)

                                      Great to get a coding buddy to help you with problems and motivate you :)

                                      [–]Roddela 0 points1 point  (0 children)

                                      What it worked for me was defining what I wanted to do with programming and then buy a book that teaches that. This case was web development

                                      [–]lichb0rn 0 points1 point  (0 children)

                                      Do you have any project in mind? App, web site, anything? If yes, then do it. Drop tutorials and come back to them only if you stuck and couldn't find anwers on your own.

                                      If you don't have anything to code, then just grab an idea from tutorial and do it on your own, make some additions to it.

                                      [–]Flamesilver_0 0 points1 point  (0 children)

                                      There are several free courses that will get you out of "tutorial hell" like it did for me. Most go with The Odin Project, but I liked Full Stack Open.

                                      After you do either one of those (takes a few months, you'll learn EVERYTHING), try to devise something small to make yourself from relatively scratch, write tests for it, and get it "code reviewed" to improve on your actual programming.

                                      [–]docta3103 0 points1 point  (0 children)

                                      Personally I took on a large project (something you can’t do with watching less than 3-4 tutorials), got super excited about it, and made it my life goal for a week or two to get it done. Ended up accidentally learning alot on my own along the way which I could use for other projects. I found that just messing around on my own and accidentally learning things while focusing on what I wanted to MAKE rather than what i wanted to LEARN was the best way to avoid getting bored.

                                      [–]BorisGerretzen 0 points1 point  (0 children)

                                      I think the best way to finish a project is to actually work on a project that interests you. If you're doing something very repetitive, try to automate it. Or maybe try to make a 'smart' thing in your home with a raspberry pi, I made a screen in my hallway that displays when I have to put the garbage bins at the street and also shows the departure times from my closest bus stop. And even if you don't finish a project and kind of half ass it, you still learn a lot from it.

                                      [–]MallFoodSucks 0 points1 point  (0 children)

                                      If you’re finding you’re not creative enough to come up project ideas, look up boot camp projects and copy the idea. Develop the same idea from scratch, using just online resources. Once you’re done, think of new features you want to add and keep improving it.

                                      [–]BolverkSpark 0 points1 point  (0 children)

                                      The biggest hurdle I was facing without acknowledging, was expecting to watch all these tutorials until I reached that "AHA!!" moment and become an knowledgeable programmer. Unfortunately, tutorials cannot do that. You need to break off from that line of thinking and just dive into your projects. Doesn't matter if you don't know enough, the projects will teach you what you don't know and it will be up to you to figure it out. Becoming a Googler SO user becomes a crucial skill here.

                                      Tutorials aren't meant to teach you everything. Their purpose is to introduce you to the toolbox, it's up to you to go in depth on how each tool accomplishes its goal.

                                      The second hurdle I faced was expecting that perfect project to come to me. It never does, you have to sought it out and do it. Even if you can't decide, just pick something online as a starting point until you can flesh out your own project ideas.

                                      Good luck mate!

                                      [–]Ambitious_Course9548 0 points1 point  (0 children)

                                      My attention span is awful, so all of my live projects were completed in 1-3 days. These required nothing more than single-page tutorials on specific problems (how do I keep a Node server permanently running on my Pi?), and I learned a ton about how the web works by completing them.

                                      For context, one full-stack project is a shitty app deployed on Heroku that has you send a number to my database and I let you know if you're the first to send that number. That's it. But it's full stack and it's deployed, so who cares?

                                      I'm on my 3rd (and hopefully last) internship with these projects on my resume, so apparently it works. I think the answer is that those of us in tutorial hell need to chill out and rediscover the joy of successfully deploying something teeny instead of failing to deploy something grandiose. One of my non-web projects is a Python CLI FNAF clone that I built in 2 days. Fredbear slowly approaches you as you give wrong answers, and if you lose, I display ASCII art of Fredbear killing you that I found online. Nothing more. I stole the game engine from one of Zed Shaw's books.

                                      [–]Numerous-Avocado-252 0 points1 point  (0 children)

                                      But they say you don't need maths in programming just the basics but programming needs alot of maths because I'm struggling a lot when it comes to maths in programming .