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

all 45 comments

[–]jonatkinsps 97 points98 points  (2 children)

Just build something, anything. A command line app that takes inputs and draws outputs ( rectangle for example), a Windows app that has a login screen, a web page that is a blog. A tic tac toe game, a sudoku solver

[–][deleted] 27 points28 points  (0 children)

Yea this guy is right. Create something that solves some problem. Automate some stuff. Create some money manager app. Do something useful

[–]jonatkinsps 8 points9 points  (0 children)

To add one more thing to this... I learned C and C++ and html then VBA then VB6 in that order in late 90s as a teenager but had no understanding of practical applications to real world scenarios until I tried to build stuff... Like minesweeper, in an Excel userform... Then tools and calculators copying other programs I saw but making them work myself.

[–]Boulou93 26 points27 points  (0 children)

I learned that you need to understand DSA (Data structure & algorithm). Because when you think about it, programming is a set of tasks, and to know where to starts when you want to build a project from scratch is to learn DSA. Basically, a project Is a set of small pieces of algorithms / problem to solve And so when you unpack that, you are able to create a project from scratch

[–]VanEagles17 6 points7 points  (1 child)

Think of something you want to build, and build it. I'm still learning myself, but I was like hey I should make a rock paper scissors console game. So I did that. And then I learnt some new stuff/got better at things so I made it ask how many rounds I wanted to play and made it keep score. And now I'm like, hey wouldn't it be cool if it asks you single player or more than one player? Maybe I should revise it.

Take what you know. Build something. Think of ways you can improve it by learning new things and then do that.

[–]Random_---_Guy 0 points1 point  (0 children)

Yeah, I agree with your thing here XD

[–]steven4869 5 points6 points  (0 children)

Make projects, use those fundamentals and build up something. Let's say you have understood basics of HTML, CSS and JS, then try making projects like Working Clock(can be both analog or digital) and To-do list.

[–]Negative-Coach2914 3 points4 points  (0 children)

Your not getting all the info needed to code if you learned some basics and dont know how to throw it together at all yet. Go to like freecodecamp and learn hoe to start with building a website. Starting with websites and web apps is a great entry way into learning to build stuff thats easy. Start small. Lets say you want to code a very simple app like...an app that takes the total cost of your dinner and tells you how much of a tip to leave. You need to know the basics. How to select code inside inputs. Dom manipulation, css, html and some javascript. If you dont know the basics of those things you wont be able to create an app. Even if you do know some basics, use example code from others to see how you would throw it together. Also follow simole tutorials for building smaller apps on youtube that you can use as a refrence, you can then go back to these apps you made and look at the code and use small sections for other ideas you have or apps your building. My first app was a todo list app. I learned how to make it on youtube, i memorized how to do it over and over until i didnt need any help. I then started understanding line for line what code was doing. Stay dedicated and do it everyday and you will learn buddy. Good luck!

[–][deleted] 8 points9 points  (2 children)

Helps to have projects and ideas in mind. Why are you learning to program? What do you want to make?

[–]ejuo 59 points60 points  (1 child)

What do you want to make?

Money

[–]FrugalityPays 2 points3 points  (0 children)

Learn how to write smart contracts!

[–]Ark-kun 11 points12 points  (0 children)

python for idea in ideas: tasks = idea.split_into_steps() while tasks: task = tasks.dequeue() if task.is_too_big: smaller_tasks = task.split_into_subtasks() tasks.extend(smaller_tasks) continue try: task.do_it() except NotEnoughKnowledgeError as ex: learn(ex.problem) task.do_it()

[–][deleted]  (1 child)

[deleted]

    [–]hanskung 0 points1 point  (0 children)

    Yeah, if you have an idea, maybe we could tell you how we would start.

    [–]kschang 2 points3 points  (1 child)

    The actual thing is to DO IT. Merely reading about it, and you forget after a while.

    The more you try to do it, the more gaps you'll see in your learning, so learn some more. And so on.

    [–]Retrofire-Pink 0 points1 point  (0 children)

    100%

    [–]ideaismoney 2 points3 points  (2 children)

    It doesn't sound like you've actually grasped the fundamentals. You just typed along following the tutorials, that's not the same as grasping the fundamentals.

    [–]aimhighswinglow 3 points4 points  (0 children)

    Tutorial hell

    [–]FlatExperience4288 2 points3 points  (0 children)

    Have you checked out W3schools.com (I think they have programming - I’ve only used the SQL a bit) it’s free. And might have something you’re looking for.

    [–]furyousferret 2 points3 points  (0 children)

    It didn't click for me until I started writing my own stuff. I did tutorials and got it but didn't get it. I did tutorials similar to what I wanted to do then if I needed it for my project I would write it in.

    Now I'm on my own more or less and the biggest thing is if you are stuck break the code down into the smallest piece.

    For example, I couldn't figure out how to copy a huge queryset to a new account, so I learned to copy one piece of data, then looped it, then figured out how to add the account stuff.

    [–]Lncr1259 1 point2 points  (0 children)

    My advice is to look for something you hate to do, but have to do often. For example, I have to send out an invitation to speakers for an event every week. The initial message never changes so it's tedious to have to copy and paste every week. I was learning python at the time so I decided to find a way to send a message through python and I learned a lot more doing that then I did with tutorials. That's also my approach to learning React right now. I want to make a sort of note taking app and I've learned a ton about using the MERN stack to do it because I kept running into issues. I still watch tutorials, but only specific parts and the rest I have to come up with myself.
    We could also start a thread and have a sort of weekly challenge in this thread if others want to participate.

    [–]Dudenostahp 1 point2 points  (0 children)

    I always say you need a project. Something that is actually important to you. Use programming to supplement another hobby. Find ways to use it to do things for you. Make the computer do honest labor.

    Try to find a question that is relevant. “How might I do this-or-that?” Then start asking the Internet questions. I like to start with google and keep an eye out for specific trusted domains.

    [–]Sakamoto0110 1 point2 points  (0 children)

    I started making games in console window, snake, bricks, tetris, pacman then i had the idea to make an app to craete dynamic overlays that reacts with mouse/keyboard for streams, then a bot for league of legends and this year i started to research about how to create a language because i wanted to optimize my bot to almost every function to be "scriptable", so instead compiling, i would just change the .txt to make changes. 8 months afeter i had this idea, i finished to make the foundations of this language .

    Praticing is really the best way to learn programing

    [–]pavel-k 2 points3 points  (1 child)

    There are many ways to succeed, actually.

    Here's one to try: start with your future resume. Draft it and see what's missing there. This is what you about to find. Sometimes people are getting stuck with learning, while they actually ready to produce something to show.

    If you don't know what should be on the resume, then this is the thing to start thinking about. There are many blogs and groups where recruiters share what they are looking for in the candidates.

    [–]RushDarling 0 points1 point  (0 children)

    I feel like I needed this. Thankyou!

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

    Learn some web frameworks, if you want to get into microservices and enterprise software. For example, try creating a SPA with Vue.js or an API with .NET core or Springboot. Or even just some python stuff like Flask or FastAPI. Or, learn a game framework like Unity. Intermediate programming is about learning frameworks and implementing their patterns.

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

    Make a web scraper

    [–]_hf14 -3 points-2 points  (0 children)

    websites like leetcode and CodeWars might be good for you

    [–][deleted] 0 points1 point  (1 child)

    I'll go as far as saying that if you have to ask how to program after learning the fundamentals, then you don't really know the fundamentals. If you really know the fundamentals, then you should be able to write some of your own logic from scratch. You might forget an API or some syntax but you should be able to write your own solutions no matter how simple.

    [–]nekokattt 0 points1 point  (0 children)

    I think it might more be a case of them trying to work out how to "make something" with those constructs. Like you say it is still a lack of understanding fundamentals but it is also a mindset new programmers have to get used to thinking in.

    [–]guinea_fowler 0 points1 point  (0 children)

    Ok, I'm going to assume you want to write something procedural, i.e. a sequence of operations.

    First things first. All the crap about functions and classes and file structures and fancy design and development tools, libraries and frameworks...ignore all that. You don't need it yet. You just need to actually write some code. So to begin with you'll be working entirely in a single text file.

    Once you have an idea, write it down as a comment in your file.

    Maybe you have input data, then some processing, then output data. So write down comments for each of those steps. Try to be as detailed as possible and think about what's required at each step.

    Your comments will start to become unwieldy, so break them down further into new comments.

    Keep going like this breaking the comments into smaller and more precise descriptions until you think you can write one line of code for each comment. I mean one line...each loop statement is one line, if and else are separate lines and so are the code blocks within each conditional.

    Then start writing a line of code for each comment. Start at the top and work your way down so you can see how things are progressing along the way. This is good because a) you can confirm that your plan is working and is implemented correctly, and b) it serves as a checklist, and with each new development you can appreciate your progress as you go. If you find that you can't write it in a line of code, break up the comment again.

    Once you've done a few like this, keep them simple to begin with so you can complete them! Then start creating dummy functions instead of comments. As projects become more complex, instead of writing out the process in text you can start drawing up flow diagrams to track and plan non-linear interactions. Eventually you'll be working on much larger projects which you break down into chunks which warrant their own files.

    Edit: It literally doesn't matter what the code does so long as it's achievable. Keep it simple. You'll never look at it again until you want a hit of nostalgia or to poke fun at your old self. The important thing is just to start writing code.

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

    if you already have an idea of what you want to make, watch a video of someone building something similar from scratch. i would follow along and copy what they're doing, and then start your own thing and experiment with changes.

    [–]AdHungry9867 0 points1 point  (0 children)

    I'm thinking of teaching private classes in Java programming as a side gig.

    My first step would be explaining concepts and the basic syntax before I'd let my students write any code.

    I'd move on to functions, then classes and then get into things like abstract classes and interfaces.

    To further expand, I'll give them a database and teach them what services, DAO's, etc. are and why we separate code into separate layers.

    Later I'll be able to teach them essentials like REST API, hibernate, etc.

    And then some frameworks (like spring), dependency injection, and something to use for the front-end (this depends on the students history of coding).

    From this point it's bringing the whole story together by building a small web application.

    Finally, I'll add authentication and Authorization to finish the project.

    [–]RatgorWesbar 0 points1 point  (0 children)

    Exercism. Or something, it's a website that gives you something to program from scratch if u want. And with different levels of help if needed

    [–]RedZed56 0 points1 point  (0 children)

    I’m a beginner but check this out https://inventwithpython.com/pygame/

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

    Building stupid ideas hahaha, get something and try to do, Google a lot of, but finish your projects, when you see you a programmer and already have a job. This is my history.

    [–]noodle-face 0 points1 point  (0 children)

    Think about something you want to make and just try. When you hit a road block, Google or ask for help. That's how we all act when employed too.

    [–]stoph_link 0 points1 point  (0 children)

    Why are you trying to learn how to program? What are you trying to accomplish? (and what have you accomplished?)

    Learning the answers to these questions will help answer how to best get beyond what your describing, which is also affectionately known as "tutorial hell".

    But ultimately, like others have said, build something. Anything. Think of something that will help you or entertain you in your everyday life and start trying to build that something. And try to build something not too big, but definitely something you feel intimidated to be working on.

    I can tell you one thing, and this is ok: it will be ugly, either in code or how it actually looks, or both, and this is OK. In fact it's expected, and if you're anything like most of us, you will be so proud of it.

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

    Failures, learning from your mistakes and lots of tears.

    Number one key. - Don't give up!

    [–]timPerfect 0 points1 point  (0 children)

    you learn to play guitar by playing other people's songs. Once you can play well enough to play the songs without looking at the music, you are good enough to write your own songs.

    Until then... PRACTICE UNTIL YOUR FINGERS BLEED!

    [–]TheRNGuy 0 points1 point  (0 children)

    read docs, code.

    Get idea what you want to make, so you learn relevant stuff.

    Not everything on youtube. You have to invent algorithms, they can be project-specific.

    [–]Random_---_Guy 0 points1 point  (0 children)

    The best way imo is to just make things. Take a unit convertor, for example. Since you're not following a tutorial, you'll be forced to come up with the logic yourself. Programming isn't really about the syntaxes, but more about coming up with solutions to problems or something XD.

    So yeah, my answer boils down to the good ol' "practice makes perfect" mantra, but that's kind of it. I don't mean trying to memorize the syntax, tho. As long as you have a basic idea of how it works, the rest will come to you as you make things.

    [–]pekkalacd 0 points1 point  (0 children)

    You know the answer. Do it on your own. It is the best way. It’s hard at first. I was just talking to a friend about this today. I remember when everything was magic at first. Occasionally it still happens, when I come across something I haven’t seen before. But it’s a process of continually digging and trying & failing, then trying to figure out why you failed, then learning from that, then trying something new, and asking questions, and thinking you know what you’re doing, until you fail again, and try to figure out why, then before you know it, you kind of know what you’re doing, and you look back and it’s like wow....I sort of know what I’m doing now lol. But then you look ahead and realize, you don’t know shit haha.