r/learnprogramming 21h ago

Geniune question, how do I learn programming practically?

I asked my lecturer a while back how, and he basically said to read up on the books and practice. I understand his advice, but I wish to look for a meaningful project to better facilitate my learning. Any advice on how I should proceed? I get that I can redo my coding assignments to make them better, but I really am looking to write programs that would help me instead.

Thanks in advance for the advice

21 Upvotes

16 comments sorted by

11

u/JGhostThing 21h ago

Your first projects should be simple. You should be able to complete them in less than a week. These projects are not meant to be useful, except to learn to complete projects.

Start very simple. For example, a calculator that uses the command line and can only do addition. By simplifying the project, it lets you learn the command line easier.

After you finish this, start a new project that is a continuation of the first. Add subtraction.

As another new problem, add the other operators.

Then add a gui.

The goal is not to create a calculator. At this point in your growth, you should be working on finishing, not on making something useful. The world doesn't need yet another calculator app.

And please remember: perfect is the enemy of good, This means that trying to make something perfect takes a long time and probably can't be done, whereas you can make it good enough in a fraction of the time and effort..

5

u/NationalOperations 21h ago

The thing that helps in this is the struggle of making something from scratch. Playing with concepts you understand in new ways to better have them become tools in your brain to solve problems. Don't be afraid to break things that's half the point. The other side of it is researching new concepts/reading docs.

The books expose you to concepts and features but it's you spending time to build upon them and play with them that will cement them.

If you have assignment where you accept input from terminal to simulate a "bank". You can then explore the facets of that. Hey how do I handle bad input? No input. What if I want to write and load the results from a file. Maybe they should be able to view checking and savings. So on and so on. Just be curious

5

u/thisisappropriate 21h ago

"I really am looking to write programs that would help me instead"

Cool, make them? What's the difference between your coding assignments and something that would help you? Look at the first jump you can make and make it, repeat. Like, if your coding assignments aren't run on your local machine, how do you do that, do your books tell you? Or if you would need to call an API and you've not covered that, find out.

If you're thinking that the things you need are too big or too far away, either think of something smaller and sillier (it doesn't need to be better than another product, it just needs to be something you decided to put fingers to keyboard for, make a calendar or an auto clicker or a command line todo list) or think of the parts that make up what you want and make a little bit at a time.

3

u/Cynerixx 21h ago

You should look for tutorials or platform to get started on it with whatever language you've chosen. Then you would take on small problems/projects to solve/learn problem solving and logic from them. Freecodecamp.org is a great starting point both on their site or YouTube. There are also interactive learning sites like coddy.

1

u/hooli-ceo 21h ago

You apply it practically.

1

u/Ok-Common-6249 20h ago

I’m still learning programming myself, but one thing I’ve realized is that taking breaks is seriously underrated. Sometimes you need to step away and let what you’ve learned actually sink in instead of constantly trying to learn something new.

For me, projects have worked the best. The more projects you build, the more comfortable coding becomes. Try to make each project a little different and, whenever possible, build things that can actually be useful in real-life scenarios. That way, you’re not just learning syntax—you’re learning how to solve problems with code.

My 2 cents: learn, build, get stuck, take a break, come back, and build again. That cycle makes programming much easier over time.

1

u/DrShocker 20h ago

I really am looking to write programs that would help me instead.

Write a homework tracker. Make something that alerts you when your tests fail with a notification. Design a tool to help you with a game you like. Automate an annoying process you're doing manually.

1

u/MartianManhunter_MM 20h ago

Pick a small project for personal use

1

u/Sad_School828 19h ago

There are basic concepts you need to learn about before anything else:

Variables

Data types, which is important to understand even in non-strictly-typed languages.

Reference vs Value Parameters (in all kinds of interpreted scripting) and Pointer vs Value Parameters (and variables) in real/compiled programming.

Stack

Arrays vs Linked Lists, where Linked Lists (in low level) are basically what drives things like Lists (Python) and Collections (DotNET), all of the above aka "Iterables"

If/Else and Switch/Case logic structures, along with concepts like Boolean (which is in fact mathematical and not logical, in spite of being used to emulate logic).

Once you get a good handle on these basic precepts, you can pick up ANY programming language in a matter of minutes. They all use different terminologies (like Linked List vs List vs Collection when the first term is legit and the other two were made up by runtime-interpreted developers just to pretend their language is special) but the functional concepts are still identical in every platform and every syntax.

1

u/La-ze 19h ago

Suprised no one has said, try learning to do things in C. C is a simple language that abstracts very little so you have to manually manage pointers and memory. In doing so, you'll learn the core concepts of programming and how things work under the hood.

Once you're comfortable with the basics, I suggest mixing in some C++, to get access to abstractions like stdlib data structures and trying some projects.

C/C++ is also in high demand in industry

If you don't have a particular idea, cracking open some simple leet code problems is a good place to start.

In terms of what to learn, I would say work your way up from language basics to data structures such as vectors, link list and arrays. Just learning those 3 will give you a foundation for most of programming.

1

u/RegularReaction2984 16h ago

If you’re the type of person who does best with structure, I cannot recommend the Odin Project enough! It’s how I got into coding, and it worked very well for me, though ofc everyone’s different. It’s very practically oriented though, I found that helpful. And last time I checked, it’s free.

1

u/AnythingButUseful 12h ago

The best way is to build something after you learn the basics

1

u/Illustrious-Cat8222 6h ago

Also consider writing small, throwaway programs just to experiment with different language and library features.

Also realize that much of programming is about problem solving.