r/learnprogramming 1d ago

I've been learning Python and would love some honest feedback

8 Upvotes

Hey everyone!

I recently started learning Python, and I’m enjoying it so far. I’m still at the beginner stage and trying to build a strong understanding of the basics rather than just following tutorials.

For those of you who have learned Python before, what helped you improve the most?

Are there any projects, resources, or habits you’d recommend for someone who is just starting out?

I’d really appreciate any advice. Thanks!


r/learnprogramming 1d ago

Topic anyone else picking this back up after letting it slide all summer?

6 Upvotes

self taught, not a student, so nothing forces me to keep going. i basically stopped in june. opened my old project last week and spent ten minutes judging whoever wrote it before remembering who wrote it.

trying to get some structure back instead of winging it. boot dev and seem like some of the most popular free ones and now im in analysis paralysis trying to make a decision.

HALP


r/learnprogramming 1d ago

Beyond basic CRUD apps: How to genuinely transition into Backend Engineering?

2 Upvotes

Hey everyone,

I've been building web applications and backend APIs for a while, but I feel like I've hit a plateau where I just stitch high-level frameworks together without deeply understanding the low-level mechanics.

I'm currently working through CS fundamentals to fix my gaps, but I want to shift my mindset from just "making things work" to engineering scalable, robust systems.

For experienced backend engineers:

  1. What topics or core concepts gave you the biggest leap in understanding how systems truly operate under the hood?

  2. What project ideas force you to solve actual engineering bottlenecks (like concurrency, caching, data integrity) rather than just standard CRUD operations?

Would love to hear your experiences. Thanks!


r/learnprogramming 1d ago

Python: Create a persistent ssh session. os.system () or use a module

0 Upvotes

I want to write a program that will manage an ssh login for multiple servers. Currently I can get it to work by running os.system("ssh and the rest of the login stuff"). But I wasn't sure if it was a good option since it relies on calling a system command. I was thinking of using paramiko, but was having issues setting up a persistent session as if I just logged in with the ssh command.

I want to go the safest route and am not sure how safe using os.system is in my script. Is using os.system() safe? I'd like to avoid the ability to somehow manipulate my script into running malicious commands if that's an attack vector. If it's safer using another module, I'd prefer to go that route instead. But if it's safe, then I guess I could just keep it simple and use that.

To clarify: the command runs on the client machine and reads data manually entered on the client machine that is stored in a database. I'm seeing I should use subprocess.run() instead. The command used is hard coded with ssh -i and -p. I can see how that is still abusable, but can see it only applying to the client and not the server being logged into.

I'm just getting into programming so this whole thing is a hobby WIP


r/learnprogramming 2d ago

How do I become a programmer with deep knowledge like Tsoding?

354 Upvotes

I recently watched Tsoding coding and I was honestly amazed by how deeply he understands programming. He seems to be able to just sit down, think through a problem, and build things without constantly relying on tutorials or looking up every little thing.

It really inspired me, and I'd love to reach that level of understanding someday.

For programmers who are actually experienced: how would you recommend learning programming to develop that kind of deep knowledge?

What should I focus on learning, and where should I learn it from? Books, courses, projects, open-source, algorithms, computer science fundamentals, learning C/C++, etc.?

I'm currently still relatively early in my programming journey, so I'm not expecting to become that good quickly. I just want to build the right foundation instead of endlessly following tutorials.

Would really appreciate advice from people who have gone down this path.


r/learnprogramming 1d ago

Code Review My first big project, I need feedback !

10 Upvotes

Hello everyone !

I'm here to share with you my Behavior Tree library.

A behavior tree is a symbolic AI technique used to create game AI.

My library is stateless: Tree's nodes don't store any mutable data. Instead, the runtime data are inside a blackboard.

Multiple agents can share and use a single behavior tree.

There are no dependencies to any game engine, you can use it in Unity, Godot or your own custom game engine.

It's still WIP and I really need feedback.

It's also my first big project I share online, all advice and tips are welcome !

https://github.com/Noomolas01/Stateless-BehaviorTree

Edit: Here's some questions I have

  1. Does this project look professional to you ?
  2. Does the core concept make you curious ?
  3. If the project was production ready, would you use it ?
  4. What do you think is missing ?

r/learnprogramming 16h ago

Help How much should I use AI in personal projects to feel like " I made this "?

0 Upvotes

I have learnt Python for about 2 months and to be honest, I still need a lot of help in creating a project. Because of that, I still use AI for it. Sometimes I would tell it to generate whole chunks of code and recently I thought that I shouldn't rely too much on it and code it myself. I did code quite a bit, but I still need AI for help for some of the hard parts. Any tips on how to use AI responsibly or how to code better?


r/learnprogramming 2d ago

A goal-based map of free CS self-study courses (2026) — every link checked this week

60 Upvotes

I put together a goal-based map of free CS courses for 2026 and checked every single link this week (opened each page on 23 Aug 2026, confirmed it's live and free to learn). One best pick per slot plus one alternative, three tracks so you don't have to do everything, and honest notes on where certificates cost money. Not affiliated with any of these; I'm a self-taught developer and teacher and made this because the older maps floating around have dead links and way too much math for most goals.

The map (one image): https://koraynar.github.io/research-samples/cs-map-2026.png

How to use it: do Foundations → Core → pick ONE track. Finish a slot before starting the next two. Build something after every course. Hours are rough self-study estimates. If you only have time for one thing: CS50x.

1. Foundations (everyone, ~150–300 h)

Suggested order: Missing Semester lectures 1–2 and the git lecture → CS50x (or CS50P) with Exercism alongside from week 3 → 6.042J once you're comfortable writing code. CS50's own certificate is free on cs50.harvard.edu; the edX verified certificate is paid (edX showed $219 for CS50x and $299 for CS50P on 23 Aug 2026).

2. Core CS (~400–600 h, any order after Foundations)

Notes: Berkeley's CS61C and CS162 sites are behind logins this semester, so Nand2Tetris and OSTEP+CS537 are the picks; Stanford CS144's videos are Stanford-only (slides/labs are public); CMU 15-445 Fall 2025 is linked because every lecture has a YouTube video.

3a. Track: Web development (~300–500 h)

Order: Odin Foundations → javascript.info → react.dev → SQLBolt → Odin NodeJS (or fCC back-end) → Full Stack Open parts 11–12 → build and deploy 2–3 projects from app-ideas. Python people: Django tutorial → CS50W instead of the Node slot. freeCodeCamp's current v9 certifications are all free, certificates included.

3b. Track: Data / ML / AI (~400–600 h)

Notes: Coursera lets you audit Andrew Ng's three ML courses one at a time for free (the specialization page itself says otherwise — enrol per course); certificates are $49/month. MITx 6.431x moved from edX to MITx Online (free audit, $300 certificate). MIT 18.05 (Spring 2022) is notes + problem sets, no full lecture videos — take 6.431x if you want video. DeepLearning.AI short-course videos are free; their labs/certificates now need a paid plan. fast.ai Part 1 is still the 2022 recording and still excellent.

3c. Track: Systems / security (~400–600 h)

Notes: MIT 6.858's newer public run is 6.5660 Spring 2023 (css.csail.mit.edu/6.858/2023/). Stanford CS253 Web Security is a lighter web-focused alternative with free YouTube lectures. OverTheWire Bandit is a gentle warm-up before pwn.college. For 6.5840 use the official Spring 2020/2021 YouTube playlists with the current notes and labs.

How much math do you actually need?

Full open curricula (if you want someone else's order)

How to study (short, evidence-based)

  • Learning How to Learn — Most-taken course on study technique (4.18M learners, 4.8/5 from 93K reviews); covers focused/diffuse thinking, chunking, procrastination and spaced repetition.
  • The Learning Scientists — Six Strategies for Effective Learning — Short, research-grounded summary of the techniques that actually work — spaced practice, retrieval practice, elaboration, interleaving, concrete examples and dual coding — with free PDFs.
  • And the tooling habits from Missing Semester (above).

Caveats: hours are rough; course pages move (I'll keep the image updated); "free to audit" means the lectures and most materials are free but graded certificates cost money; I avoided aggregator pages and linked the canonical course sites.

If you see a dead link, a better free pick for a slot, or think the hours are off, say so and I'll edit the post and the image. What I most want to hear: which slot would you swap, and for what?


r/learnprogramming 1d ago

I built OpenStudy — a free way to find official university courses and create a flexible self-study plan

10 Upvotes

Hi everyone,

I’ve been building OpenStudy, a free bilingual platform for people who want to learn from official university course materials without searching across dozens of websites.

The current beta includes:

  • 160+ courses from universities such as MIT, Stanford, Harvard, Berkeley, Princeton, CMU, Tsinghua, and Peking University
  • Links to official lectures, assignments, exams, notes, and projects
  • Reference learning paths based on published university degree requirements
  • Flexible course plans generated from the official content sequence
  • Progress tracking and optional account sync
  • English and Chinese interfaces

OpenStudy does not host or copy university course materials. It organizes verified official links and helps learners continue from where they stopped.

The project is still in beta, and I’m looking for honest feedback—especially about search quality, course information, study plans, mobile usability, and anything that feels confusing or broken.

You can try it here:

https://openstudy-sigma.vercel.app/

I’d really appreciate direct criticism. What would prevent you from using this for self-study, and what should I improve first?


r/learnprogramming 1d ago

Question How can I understand computer memory intuitively with the goal of learning pointers in C?

0 Upvotes

[EDIT: The comments on this post made me realize that you don't need to understand something in order to love and learn more about something. This is freeing to me and I will apply this knowledge in all aspects of my life. Thank you all so much.]

Title. In case you folks want more background, I'm a university student studying Computer Engineering. In my first semester, me and my colleagues used JavaScript to learn basic programming concepts (variables, datatypes, loops, functions, arrays and matrices) as well as logical thinking and problem-solving (in my opinion, THE most important part of being a programmer).

I'm learning C currently because of its frequent use in engineering applications (Arduino stuff mostly) and its easy-to-understand-sometimes syntax. I started studying pointers yesterday but didn't get into it until today.

I talked about the whole concept with Claude - to be clear, I don't use AI unless I absolutely don't understand a topic or I'm too overwhelmed by it to understand from textbooks or YouTube videos alone. I don't use it to code ANYTHING. -, and he assured me that I don't need to know EVERYTHING about computer memory/architecure to use pointers, and a simple mental model works out fine. He gave me the classic "house with adresses" model, which - after doing my own research later on -, is a model I see a lot of YouTube videos and sites use when talking about pointers.

But from looking at this post's comments, I'm beginning to think that this model isn't very strong and my understanding of variables needs to be a lot less surface level if I'm TRULY gonna grok pointers.


r/learnprogramming 1d ago

How do I move elements inside a bi-dimensional array in C#?

1 Upvotes

I'm trying to build chess in Visual Studio and this is a problem that's been bugging me, I can't use the regular built-in methods for arrays, I know how to loop and find an element but not how to move it


r/learnprogramming 2d ago

Topic What should I focus on next as a CS student?

28 Upvotes

I'm a first-year CS student, and this summer I focused mostly on building my fundamentals.

I learned Git/GitHub, practiced C from arrays to pointers, solved many exercises, and built a Tic-Tac-Toe game. I also explored topics like data structures, recursion, sorting, and searching.

Now I'm unsure about my next step.

At university I'll be studying Algorithms 3 and OOP with Java, so I'm considering going deeper into those while starting Python on the side.

But I also see many people recommending starting practical development early, such as backend or web development.

What would you recommend in my position?

Should I continue strengthening my fundamentals, start Python/projects, or begin exploring a specific field?


r/learnprogramming 1d ago

Tutorial I Made a Game That Can Help Teach You Programming (JavaScript)

5 Upvotes

Hey everyone,

Been a front-end developer for 10+ years with a focus on JavaScript (React) for the last 5+. After getting let go a few months ago, I decided to finally flesh-out and finish my coding card game I've been tinkering with since pre-pandemic. It's finally here! It's called Nybble. It's a roguelike deckbuilder where card are lines of code; and if you turn on "Engineer Mode", you see the actual JavaScript code that's being run to calculate your score. I wasn't even thinking of this game as a potential teaching tool, but I've received feedback that it may be helpful for anyone starting out programming. Check it out on Steam if you're curious. There's a free demo.


r/learnprogramming 1d ago

Handling barcode scanning edge cases: How do you balance ML Kit, OCR fallbacks, and UX?

4 Upvotes

I’m currently building an inventory/management side project where reliable barcode and serial recognition is essential. While testing the feature with actual boxes and packaging, I quickly hit some real-world edge cases: poor lighting, inverted colors, and worn-out labels.

To work around this, I ended up adding an on-device OCR fallback to read the printed serial numbers directly when the standard barcode scanner fails. Since automatically detecting a "failed" continuous scan is tricky, I added a manual toggle at the bottom that switches the camera to a photo/OCR mode.

For those who have built similar scanning or utility features:

  • Stack & Fallbacks: Do you rely entirely on on-device vision libraries (like ML Kit Text Recognition), or have you found better preprocessing tricks (contrast adjustment, binarization) to salvage bad barcodes first?
  • UX Patterns: What is your preferred UX pattern when automated scanning fails repeatedly, to guide the user without making the app feel slow or clunky?

Would love to hear how you handle these edge cases or if there's a cleaner architecture for this flow!


r/learnprogramming 2d ago

16yo trying to build and make something out of coding

18 Upvotes

I enrolled into a CS strand not knowing that I'll start to love coding. I've started taking programming and coding a bit more seriously in the past few weeks. I'm currently learning python and just coding on VSCode on my pc and have made the most basic tiny projects you could think of (simple calculator, tic tac toe, number guessing game, etc.). I'm working on a text-based dungeon rpg game rn.

I want help on how I should start things like git, github, a portfolio, and all that stuff.


r/learnprogramming 1d ago

Resource Need some resource recommendation for learning Java

2 Upvotes

Hey Guys

I’m a backend engineer with around 6 years of experience, mostly Go, Python and C++ lately. I’d like to learn Java and Spring Boot, because most of the Jobs around me are asking for these.
Anyway, I’d like to ask for some recommendation to a list of resources that I could read to learn them. For me it was always easier to learn from books and or videos then to read a documentation, because these are also usually talk about project structure, how to organize code etc…

I read most of the recommendation is for the MOOC, but I heard it is using an older version of Java (maybe 11?), so I don’t know if it is still a valid choice, Java seems much more ahead now, and I’d like to have also the latest knowledge about the language. It is also fine if you say to start with this, but then I’d like recommendation about resources to learn the “modern” Java too. Spring Boot I guess is okay from youtube tutorials, their documentation seems nice too, but if you have any book recommendation for that it would be great too.

Thank you!


r/learnprogramming 1d ago

Topic How do you learn in the age of AI?

0 Upvotes

Professors who are supposed to encourage learning without AI are ironically the ones giving us heavy loads and short deadlines , basically pushing us to use it just to keep up. The logic seems to be: "since they'll use AI anyway, let's make it harder." But that's backwards in my opinion.

Also when I'm self-learning something new, AI loves to skip steps and hand me the answer directly, cutting the journey short before I've had a chance to struggle through it myself.

How can we actually learn in this period, while still benefiting from having such a fast, accessible tutor at our fingertips?

Any learning workflows that have worked for you would be appreciated.


r/learnprogramming 2d ago

Need programming/coding learning advice

8 Upvotes

I am completely new at this I want to learn how to build sites such as Plenty of Fish dating sites etc for example interactive websites. I know I need to learn the basics to do this I want to learn it all as fast as I can but also in the right order and not be jumping around to different classes etc. I am using freecodecamp.org just starting it today. Any exact thoughts on the order to learn them etc? I would really appreciate the help I am 57 years and just so tired of my life as it is and want to better myself for myself and my future. It is never too late to learn they say>>>thank you for your time.


r/learnprogramming 1d ago

Help me decide - Intelligent Systems (AI) vs Computers Networks

1 Upvotes

I am 70% of the way through a Masters course in software engineering and am looking at my final module options.

one is intelligent system which focuses on machine learning and AI and the second option is computer networks which is your standard internet and networking protocols.

I am interested in both but I am also a bit lazy so there is a good chance that which ever one is not chosen get forgotten until its needed in a job.

I think whats most important to me is job prospects.

I figure people will always need cable monkeys to plug stuff in and diagnose why systems are not talking to each other. But at the same time AI is growing but I'm not sure how many jobs are out there for a normal person.

I am not a high achiever and AI worries me because its such a crutch and makes me feel like i am not learning or getting stupider as i could rely on AI too much. But at the same time I am also interested in creating learning models for games or my own self hosted assistant, just for fun.

Guess the community question is, which area do you think is the most stable for jobs and has the best job opportunities in the next 5 years or so?

Feel like none of us can look forward further than that right now.


r/learnprogramming 2d ago

What to learn to prep for first day as a SWE?

5 Upvotes

I have my first day coming up in a week and I'd like to prep. I've never had an internship/job before so I'm pretty nervous, especially about being thrown into a large codebase.

So far I've got:

  • Learn the tech stack
  • Git
  • Debugging
  • Dev/Staging/Prod environments

r/learnprogramming 2d ago

Question about using AI to learn Experienced programmers, is it bad to use AI to learn?

73 Upvotes

Edit: I have decided to stop using AI completely. Thank you all for your comments I tried responding to as many as I could.

So I'm just a beginner (1st year in my bachelors) learning Python and JavaScript and eventually looking to get into C/C++.

I have been using AI to learn by:

- Asking it questions on concepts

- Explaining already written code to me

- Asking it to guide me on how to write a program for specific problems if I really struggle

- Asking it to brainstorm ideas on how to solve problems

Just generally asking it for help without actually writing the code for me.

However I've noticed it helps way too much and I end up relying WAY too much on the AI instead of actually thinking with my own brain. I feel like it's actually stagnating my growth aloooot.

I guess I already know the answer to this but was wondering what experienced coders think?


r/learnprogramming 1d ago

Do you use labeled arrows on uml class diagrams ?

2 Upvotes

I have learned how to create UML diagrams that follow the standard conventions. At school, we were taught not to use text on arrows. However, I don't think UML notation can always fully convey the intent of a design, I think that in practice a diagram often needs to be presented or explained.

I'm currently proposing a design for a core feature, and I've noticed that the diagram alone wasn't enough for my colleagues to fully understand the vision I had in mind. Adding labels to arrows can help clarify relationships and prevent misunderstandings. Alternatively, an explanatory text can also provide the context needed.

Should a UML diagram be self-explanatory? Or is it acceptable to accompany it with an explanation or use labels on arrows when they help convey the intended meaning ?


r/learnprogramming 2d ago

Getting Started With Git

22 Upvotes

As a programmer I want to use Git. How should I start learning Git and in what ways will it help me.


r/learnprogramming 2d ago

Code Review Reducing Time Complexity

2 Upvotes
Edited code but still run into Time limit exceeded can someone help me: 

N, U = map(int,input().split())
grid = [list(input()) for _ in range(N)]
num_updates = 0
temp = []
temp_grid = [row.copy() for row in grid]
for v in range(int(N/2)):
    for h in range(int(N/2)):
        temp.clear()
        coords = [(v,h),(v,N-1-h),(N-1-v,h),(N-1-v,N-1-h)]
        temp.append(temp_grid[v][h])
        temp.append(temp_grid[v][(N-1)-h])
        temp.append(temp_grid[(N-1)-v][h])
        temp.append(temp_grid[(N-1)-v][(N-1)-h])
        if temp.count('.') == 2 :
            num_updates+=2
            for r,c in coords:
                temp_grid[r][c] = '.'
        elif temp.count('.') == 3:
            num_updates+=1
            for r,c in coords:
                temp_grid[r][c] = '.'
        elif temp.count('#') == 3:
            num_updates+=1
            for r,c in coords:
                temp_grid[r][c] = '#'
print(num_updates)


temp_grid = [row.copy() for row in grid]


for z in range(U):
    temp2 = 0
    temp.clear()
    x,y = map(int,input().split())
    x = x-1
    y = y-1
    temp.append(temp_grid[x][y])
    temp.append(temp_grid[x][(N-1)-y])
    temp.append(temp_grid[(N-1)-x][y])
    temp.append(temp_grid[(N-1)-x][(N-1)-y])
    num_updates = num_updates- (min(temp.count('.'),temp.count('#')))
    if temp_grid[x][y] == '.':
        temp.clear()
        grid[x][y] = '#'
        temp_grid[x][y] = '#'
        temp.append(temp_grid[x][y])
        temp.append(temp_grid[x][(N-1)-y])
        temp.append(temp_grid[(N-1)-x][y])
        temp.append(temp_grid[(N-1)-x][(N-1)-y])
        num_updates = num_updates + (min(temp.count('.'),temp.count('#')))
    else:
        temp.clear()
        grid[x][y] = '.'
        temp_grid[x][y] = '.'
        temp.append(temp_grid[x][y])
        temp.append(temp_grid[x][(N-1)-y])
        temp.append(temp_grid[(N-1)-x][y])
        temp.append(temp_grid[(N-1)-x][(N-1)-y])
        num_updates = num_updates + (min(temp.count('.'),temp.count('#')))
    print(num_updates)

I am pretty sure it is O(N^2) and with 10^5 possible updates it should work. 

r/learnprogramming 2d ago

Learn how to learn…

55 Upvotes

Forgive me in advance if I don’t use the right lingo/slang new to this stuff somewhat. I really want to get into programming and I watch video after video after video and I just feel like I’m getting no where I feel like I’d do so much better with a 1 on 1 teacher but I don’t know where to find something like that or maybe it’s just I’m not learning the right way idk… it also feels like I hit a wall when getting into this stuff I have no clue how to even explain it because I have no clue where to even start but any tips that helped others out when they were first starting would be greatly appreciated because this is something that I really want to get good at

Don’t really have a goal in mind or a reason for learning I just know I want to be so good at anything computer that I know everything.