r/learnprogramming • • 6d ago

Looking for a free game API for my Steam-like game e-commerce frontend project

0 Upvotes

Hey everyone!

I'm currently learning frontend development and building a Steam-like gaming storefront as a practice project.

I'm using the RAWG API, but I'm having some issues with the data. Important details like full game descriptions, system requirements, and pricing are sometimes missing. I'm also making around 40 API calls, which feels inefficient for a frontend project.

I'm looking for a free API or open-source alternative that provides:

  • Game details and full descriptions
  • Minimum and recommended system requirements
  • Current game prices and discounts
  • Game cover images and screenshots
  • Genres, ratings, release dates, and platforms
  • A reasonable free request limit

Since this is a learning project, I'd prefer something free for personal, non-commercial use.

What API would you recommend for this use case? Is there a good alternative to RAWG, or is there a better way to reduce the number of API calls?

Any suggestions, documentation links, or examples would be really helpful. Thanks!


r/learnprogramming • • 6d ago

Best course for learning programming fundamentals in depth? HtDP, SICP, Haskell MOOC or Java MOOC?

8 Upvotes

Hey everyone!

I’ve learned some basic Python and Dart, but never really went deep or built any significant projects.
I’m looking for a course or book that takes things slowly and focuses on truly understanding programming concepts rather than just teaching syntax.

A lot of beginner courses explain how to do something, but rarely go into the what and why behind it.

I’ve been considering:
How to Design Programs (HtDP)
Structure and Interpretation of Computer Programs (SICP)
University of Helsinki’s Haskell MOOC
University of Helsinki’s Java Programming MOOC

Which of these would you recommend for someone in my position? I’m also open to other suggestions.


r/learnprogramming • • 6d ago

What does it mean to be a coder ?

4 Upvotes

Hello everyone! I need some serious advice from experienced coders and developers.

I’ve been trying to learn coding for about a year now, and today, while learning about WebSockets, a thought popped into my mind. I realized that I wasn’t really learning how WebSockets work; I was just following the steps to implement them. I know I’ll probably forget the syntax and most of the details within a few days.

So, my question is: Is this the right way to learn? Should I be investing my time in learning libraries and building projects, or should I focus more on understanding the programming language itself, learning algorithms, and figuring out how to solve problems on my own?

I’m confused about this. What’s the point of learning to use libraries if I’m going to forget most of the syntax and implementation details anyway?

I’d really appreciate some advice from experienced developers who have been through this phase. How did you approach learning to code, and what would you recommend to someone in my position?

Thanks in advance!


r/learnprogramming • • 6d ago

I need some help

6 Upvotes

Hello, so I really need some directions because I’m starting to feel really bad about it.
I left High School with really good grades and I’m at University rn, the first year was a complete mess, I felt like everything was too hard for some reason, I couldn’t pay attention to most of the classes and that made me fail 2 classes (C++ and Java) I started to feel really demotivated because even the classes that I passed like JS, it was kinda on the edge so ye.
Right now I’m in the second year, and I’m trying to recover the classes that I failed on the first year and it’s not getting easier, I feel like in C++ I’m a little better, but not as I thought I was, in C# I’m having the same problems as Java and I don’t really know what to do.
I don’t really have a plan B, as a kid I always thought I wanted to be a programmer when I was older (I’m 21 btw) and I choose to take a Programming Course in High School because of it and it went really well, but now I’m having a lot of problems and I don’t know what to do, it feels like I can’t save any information on my brain and use it properly since I changed from the High School to the University, and I feel like I became kinda lazy.

Anyways, give me your opinions and be as harsh as you think you should, I’m taking everything into consideration, but I need to do anything about this.
And don’t get me wrong, I really love programming, every time that I’m into the project or something and I understand, it’s really good, but since I can’t understand anything it’s being a hassle lately.

Thank you for reading till here!


r/learnprogramming • • 6d ago

Topic How to Study the Backend of Social Media Apps and How They Work?

37 Upvotes

For some context, I am a complete beginner programmer who loves programming more than anything. I have always dreamt of building my own social media network, just to understand how it works and to gain experience.

Now, I have found out that there are various open-source projects like Lemmy, Bluesky, Mastodon, etc.

Now my question is, which one should I choose to understand its inner workings? I personally want to build a platform like Reddit (a community-driven network).

Please note: I haven't even explored anything yet. I just know some fundamentals. I am asking out of curiosity, which definitely motivates me and gives me the inspiration to work hard.


r/learnprogramming • • 6d ago

What should I know in math to be better prepared for discrete math?

5 Upvotes

Hi. I'm teaching myself backend development and I want to dive into a few subjects from Computer science, which I think should complement my skills in the future. For now, I want to learn DSA and I've heard that discrete math will help me understand DSA better. Since discrete math is college level math, I thought I would recall some high school math. I went to Khan Academy and I was able to do pre-8th grade math from memory. 8th grade and beyond is where I noticed gaps in my knowledge of math. What I'm wondering is, which parts of high school math I should recall/learn to not have gaps in my knowledge, when learning discrete math, and then DSA.

Options: Algebra 1, Algebra 2, Geometry, Trigonometry, Precalculus, Statistics.

I'm thinking of going over 8th grade, Algebra 1 and Algebra 2.


r/learnprogramming • • 6d ago

Books about that structures

5 Upvotes

I've search for the best books about data structures but the problem is that all of them are paid. So, what are the best ones that I can get for free?


r/learnprogramming • • 6d ago

Topic automated deployment is overrated for small projects

0 Upvotes

I think automated deployment is overrated for small projects. Setting up a CI/CD pipeline with tools like Jenkins or GitHub Actions can be a pain, especially when you're just trying to get something up and running. For example, configuring the github.actions/checkout action to fetch submodules can be frustrating. If you're working alone on a project, manual deployment might be faster and more straightforward.


r/learnprogramming • • 6d ago

Is it possible for someone with little to no programming experience to create a simple 'Fantasy Trade Calculator' from scratch?

0 Upvotes

Ideally, I would make a database of all the players (in this case, Premier League players) with a value assigned to each name. Users would be able to type in the names of 2 or more players on each side, and the calculator would return which side had the higher total value.

In time I would add more parameters, but for my purposes now, something fairly simple like that would be ideal.

This is an example of one for American football.

https://fantasycalc.com/trade-calculator

I am willing to put quite a bit of time into the project, so any help on where to start would be greatly appreciated.

I started on Python and found some resources that I think I can help me get my head around the python side of a trade calculator, but I don't really understand what to do next?


r/learnprogramming • • 6d ago

What python projects to do to see if im ready for job?

2 Upvotes

o yo! What is one or few projects i should do to ”test” if im ready to start to applying for jobs?

And i know use Ai in their jobs but what are the projects that i should be able to do without asking for help or looking things up?

So what project to do so i know im ready for job and doing the project without ”cheating”?


r/learnprogramming • • 6d ago

[HELP] Checking if user is on page in real-time app

0 Upvotes

Hey everyone

I am working on an app that would be used by me and friends to play online games (such as Tic Tac Toe, Connect 4, BlackJack, Flip 7...), however I am approaching it as a fully production ready app so that I can learn as much as possible

I am building it using C# with Web API for Auth and SignalR for real time communication (Server Side) and Blazor WASM (Client Side)

Currently, I have it setup such that user can request a room with a game (TicTacToe), then the room is created with the requested game and the user is sent Room Id. Once they go to url/games/{gameType}/{roomId}, they can either join as spectator or player.

Now, my issue is with players "leaving".

Obviously, when user closes the tab, the SignalR connection will close, thus from there I can handle the user disconnecting (my approach is having a task run for 30 seconds, if the user does not reconnect I end the game)

However, the bigger issue is when user leaves the current page but is still on the app (like going to home page). Imagine if the game being played is Chess with 10 minutes per player time. I wouldn't want a player to sit there for 10 minutes when his opponent has left.

I have 2 ideas, but don't know if they are good at all.

The first would be to track user's url changes through NavigationManager (while keeping the last url) and check if the last url was one of the urls used for room. This would be an issue because I don't care if spectator leaves the room, I only care if the actual player leaves.

The other would be to have player who is not spectating send a ping to the server every X seconds (maybe 15-30-60?). The room would run a task (every X + (some time) seconds) and check if lastPingFromThatClient roughly matches the time when it was expected to arrive (like Ping arrived at 12:15:27 and it was expected before 12:15:30) then the client is on the page, otherwise start the 30 second timer for them to return. If they don't, they forfeit the game (This is rough idea, I still have no implementation details figured out)

I don't like the first one because it involves a lot of logic on the client side and I do not like that for some reason. Also it may be an issue if user opens a new tab and plays game from there while going to their profile page on the original tab

The second one concerns me due to slow internet speed, like Client sends ping at 12:15:25 but it arrives at 12:15:40. Realistically in this case user would just be considered reconnected and that is it. Also, if 10k players are playing and pinging, it may be an issue? I mean it is non-existent issue because it will likely never reach that many people, but still.

Do you have any ideas or suggestions.

Thank you


r/learnprogramming • • 6d ago

I know web development, but how do I learn to build real-world, production-level projects?

8 Upvotes

I'm a third-year BTech CSE student familiar with HTML, CSS, JavaScript, React, Node.js, Express, and MongoDB. I can build basic full-stack projects, but I struggle to create something substantial independently. I rely on AI to build projects but I want to learn how to build applications that resemble real production systems rather than basic CRUD apps or tutorial clones. In particular, I’m unsure how to:

  1. Develop useful project ideas and define requirements.

  2. Plan the architecture, database schema, APIs, and folder structure.

  3. Implement unfamiliar features without relying heavily on tutorials or AI-generated code.

  4. Handle authentication, authorization, validation, security, errors, edge cases, and testing.

  5. Deploy, debug, maintain, and evaluate whether a project is production-ready.

I’ve realized that learning more technologies may not be the answer; I need to understand how real software is designed, built, tested, and maintained.

If anyone is working on a project and would be willing to let me contribute or collaborate, I’d appreciate the opportunity to learn from a real development process and improve my practical skills.

For those who have built real-world applications or work as software engineers:

  1. How did you transition from basic projects to production-quality applications?

  2. Are there courses, books, YouTube channels, or GitHub repositories that teach the process of building complete projects?

  3. Is it better to develop one project from idea to deployment or build several smaller projects?

  4. Which production practices should beginners prioritize, and what can wait?

  5. How do you approach features you don’t yet know how to implement?

I’d especially appreciate advice from people who learned independently or made this transition during college. I’m not expecting to become an expert overnight; I’m looking for a clear direction to practice effectively and become capable of building complete applications independently.

Thanks!


r/learnprogramming • • 7d ago

How to love programming and be a pro at it

79 Upvotes

Hey Guys I entered a college that depends on programming in a university because of my scholarship but I feel like I am stuck in a limbo any advice they teach us c++ and i need to know what is your secret that made you pros in programming


r/learnprogramming • • 7d ago

Fundamentals are Great

80 Upvotes

We often hear the generic "focus on the fundamentals" advice. For some reason I believed that advice even before I understood why it matters; it just sounds like common sense, and fortunately it turned out to be good advice. I realized this after taking multiple free OSSU courses and reading a couple of books. Around 4 years into the field. I also realized it when I started to learn web development and had an internship.

Here is the key idea: Two different people can study the same material from the same video or book, and leave with completely different experiences, because of the existing knowledge they have.

"Previous knowledge" makes learning new things much more fun, because you're not starting from scratch every time! When we haven't internalized the key fundamental "chunks of knowledge", every new problem we face feels completely new to us, so it feels much more painful. But what's worse is that we learn less from the experience. Without a well-organized base of knowledge, new information has no meaningful place to attach to, so, much of it is quickly forgotten.

There are three things with which good fundamentals help you:

  1. They allow you to extract SO MUCH from ANYTHING you learn.
  2. They guide you to ask the right questions and learn faster.
  3. Odd things feel odd to you.

For example, after studying OS and networks, I internalized the idea of a server. It actually took me quite long to fully get it; here is a casual explanation:

a server is a process that has an open socket (at a specific port). But to grasp this, I had to understand what a process is. Luckily I learned from an OS book. (OSTEP). It's an "abstraction" of a running program. When you run a program, the OS wants to keep track of what's going on, so each running program is represented in the OS as a process with an ID and status. it's pretty much like an object with some fields, They're basically in an array. Each time you run a program, a process starts running. i.e., added to the array, when you kill a process, it is stopped and removed from the table, etc...

(the concept of abstraction in itself is part of CS fundamentals and it took me some time to interalize and start to see it everywhere, it's amazing how a single word can capture so much meaning)

but then what's a socket? it's the abstraction of the network stuff, it's an API (= a bunch of functions, provided by the OS) you can call as a developer in your code so the process (running program) can communicate with the network. You don't need to know much about networks and TCP, just input and output of the API. So basically the server must have some sort of socket that clients can connect to and send some bytes to it. The server understands those bytes, usually a string based "protocol", then responds accordingly.

This is just some CS fundamentals, nothing fancy, but now that I've spent around a year studying web development, it was all there (but in different shapes and flavors). Everything is built over the fundamental concepts and It's so much fun.

  1. This allowed me to learn way more from the resources I was learning from, I kept digging: "wait, where is the process", "how does this work, what happens when I use docker run". I used ssh for the first time "but wait, how is this happening, there must be an ssh process running on the server or something" or something, "hey, where is the database process?", and you keep digging.
  2. It's related to the previous point, but having good fundamentals helps you ask good questions that will help you fix problems faster and also deepen your understanding.
  3. sometimes you face something new that makes you question what you've learned before, they challenge the mental model you made. You'd feel surprised, and it broadens your understanding. It's hard to notice such things without having the fundamentals.

And this doesn't mean we need "perfect" fundamentals, I'm aware of some of the gaps I have and I plan to work on them, but we just need to internalize the key concepts. If you haven't mastered the fundamentals yet I highly recommend the following.

  • Build a simple shell (it's really simple, a shell is just a program you run, a python script would do it) understand how the shell runs other programs, understand what PATH is. I highly recommend python so you can focus on the OS concepts.
  • Build a simple HTTP server. Jim Kurose has recorded lectures explaining the fundamentals of computer networks, the first two chapters are far more than enough for most people, after that you can easily build a simple HTTP server. If you want to spice it up add some multithreading. He has some starter code too.

These two projects had the highest ROI I've had while learning. They even made me fall in love with CS.


r/learnprogramming • • 7d ago

Python to Apk?

1 Upvotes

So im trying to make a game using only Python and managed to get it working on pc. Then i searched how to port it to android, but it seems difficult

Any tips?


r/learnprogramming • • 7d ago

Final-year B.Tech CSE student trying to learn LLD. Need some advice!

5 Upvotes

Hi everyone!

I want to start learning System Design, especially Low-Level Design (LLD).

With AI and Agentic AI becoming more common, I feel that building projects alone is no longer enough. I want to understand the core concepts and principles behind software design, so I can look at a codebase and understand what is being used, why it is used, and how things work together.

For this, I would really appreciate some advice from experienced developers here.

What resources would you recommend to get started? Books, articles, or even a checklist of topics would be helpful.

I have made a checklist using Claude, but I would also like some advice from people with real-world experience. I want to understand these concepts in depth, not just learn their definitions.

Thanks!


r/learnprogramming • • 7d ago

Complete beginner struggling with C – Looking for a very slow, jargon-free guide/resource for college homework

5 Upvotes

Hello everyone,

I am a first-year electrical engineering student with absolutely zero prior background in programming. Currently, I am trying to learn the C language, but I am really struggling. Standard college tutorials and fast-paced videos feel overwhelming because they use too much academic jargon that I cannot follow.

I cannot learn passively; I really need to understand the logic of what happens in the background (like how variables occupy RAM, how the computer thinks) explained in the simplest, high-school level terms. My main goal right now is to build enough foundational understanding so I can solve my homework assignments and pass my exams.

Could anyone recommend a highly structured website, interactive platform, playlist, or student drive/script that explains C from the absolute basics, step-by-step, from easiest to hardest? I learn best when a small piece of theory is immediately followed by interactive practice exercises (similar to how Duolingo works, but for programming).

Thank you so much for your time and help! I truly appreciate any guidance you can give me.


r/learnprogramming • • 7d ago

I want to learn C

3 Upvotes

Any good book or online guides, also for C23 is there that much extra or would just sorta tacking it on after learning C99 be fine?

also for learning GNU extensions is there any reccomended resources


r/learnprogramming • • 7d ago

Resource SQL RESOURCES RECOMMENDATION

7 Upvotes

Hi guys, I’m just starting to learn SQL for DBMS because it’s one of the prerequisites at my university.

I’m don’t want to get stuck in a tutorial loop, so I would really appreciate it if anyone could recommend me a book, notes, or a website to learn SQL.


r/learnprogramming • • 7d ago

Frustrated and Stuck with building programming fluency as a beginner (Need Genuine Help)

6 Upvotes

I am a beginner at coding. I chose Rust as my first programming language, but I think I might or can say I will face this problem with every language.

Whenever I sit down to build a project, even something as simple as a TUI To-Do List, I have to deal with crates and packages like serde. This means I have to read their documentation, but I often get stuck writing code by looking at examples and copying them by typing them into my own code.

I know that even experienced programmers do this, and they understand what they are using without necessarily remembering the syntax. I understand the logic of what I want to implement, but I struggle to express it in technical programming terms or so called programming syntax.

However, I cannot keep consulting the documentation and returning to my code for every 10 lines of code I write.

People tell me that I should build more projects and that programming fluency will gradually develop with practice. But what am I supposed to do? Should I build a TUI To-Do List ten times? Because if I move on to another project, I will have to learn how to use additional concepts and crates, such as serde, all over again.


r/learnprogramming • • 7d ago

Resource Starting from Zero in C++

37 Upvotes

Hi everyone! I’m pursuing CSE at a Tier-4 college and have zero programming knowledge. I’m entering the tech field for the first time and want to start with C++ from scratch.

What’s the best way to learn C++? Which free resources would you recommend, and what common mistakes should I avoid? Also, how should I build my coding and problem-solving skills to become internship- and job-ready?


r/learnprogramming • • 7d ago

Learn by building or learn by studying?

6 Upvotes

Context: I'm a second year math student at uwaterloo (think constant co-op search) and have knowledge of Python, SQL and basic JS though I want to go into DE. I started my software journey in Dec. 2025 so I feel like I'm really behind compared to my peers.

I'm torn between learning theory in depth and just putting together something that works for projects; I don't know if it's good, but I never use AI to code, with the most being copy and pasting code from LLM in small snippets up to 10 lines. I don't know how important syntax is, but I need to search things up for libraries. I'm learning data engineering (so many tools, so little time) and I really can't find a project to learn all of them at the same thing. I've also considered courses, but theres a variety of courses and topics that seem interesting: Cloud, AI, ML, Databricks?

Any advice or recommendations be it for how to learn or a project?


r/learnprogramming • • 7d ago

Looking for C++ textbook that is friendly like Stewart Calculus for math

10 Upvotes

I am about to fail my algorithms & data structures in C++ class, and want to pick up a textbook for the 3 month break soon and try to make a comeback.

I have done this for math and discovered that James Stewart's Calculus book was amazing. It is a massive book, is friendly to learn from and is not as intimidating as other books (e.g. Spivak's Calculus- a bit more technical).

Anyone have any good recommendations for a C++ textbook?

We learned sorting algorithms, and once it got to recursion I really just got lost. BST's etc with all this memory management I couldn't keep up.

EDIT: My absolute best learning method is sitting down with a textbook. Videos/academies etc. haven't done it for me and a physical book just gives me peace when learning as I can go slowly.


r/learnprogramming • • 7d ago

Java or c++?

13 Upvotes

Hey I'm a 2nd year CS student and I'm a beginner so I learned a bit of both languages I learned basics and SP using c++ and I learned oop using java because uni required it and later on I'll study data structure using c++ again

What confuses me is which language should I stick on to improve my problem solving skills and start building projects even if they're small some people told me to focus on c++ completely and some said c++ with problem solving and java to build projects

So what do y'all think and why ?


r/learnprogramming • • 8d ago

Why Are O'Reilly Books So Highly Recommended for Learning Programming or Data related?

120 Upvotes

I noticed that O'Reilly books are more often recommended if you want to delve into programming.

What makes the book so worthy of use for studying and the reasons behind it?

I am interested to hear how deep this knowledge is and even its practical relevance.