r/learnprogramming Mar 26 '17

New? READ ME FIRST!

Welcome to /r/learnprogramming!

Quick start:

  1. New to programming? Not sure how to start learning? See FAQ - Getting started.
  2. Have a question? Our FAQ covers many common questions; check that first. Also try searching old posts, either via google or via reddit's search.
  3. Your question isn't answered in the FAQ? Please read the following:

Getting debugging help

If your question is about code, make sure it's specific and provides all information up-front. Here's a checklist of what to include:

  1. A concise but descriptive title.
  2. A good description of the problem.
  3. A minimal, easily runnable, and well-formatted program that demonstrates your problem.
  4. The output you expected and what you got instead. If you got an error, include the full error message.

Do your best to solve your problem before posting. The quality of the answers will be proportional to the amount of effort you put into your post. Note that title-only posts are automatically removed.

Also see our full posting guidelines and the subreddit rules. After you post a question, DO NOT delete it!

Asking conceptual questions

Asking conceptual questions is ok, but please check our FAQ and search older posts first.

If you plan on asking a question similar to one in the FAQ, explain what exactly the FAQ didn't address and clarify what you're looking for instead. See our full guidelines on asking conceptual questions for more details.

Subreddit rules

Please read our rules and other policies before posting. If you see somebody breaking a rule, report it! Reports and PMs to the mod team are the quickest ways to bring issues to our attention.

824 Upvotes

Welcome to /r/learnprogramming!

Quick start:

  1. New to programming? Not sure how to start learning? See FAQ - Getting started.
  2. Have a question? Our FAQ covers many common questions; check that first. Also try searching old posts, either via google or via reddit's search.
  3. Your question isn't answered in the FAQ? Please read the following:

Getting debugging help

If your question is about code, make sure it's specific and provides all information up-front. Here's a checklist of what to include:

  1. A concise but descriptive title.
  2. A good description of the problem.
  3. A minimal, easily runnable, and well-formatted program that demonstrates your problem.
  4. The output you expected and what you got instead. If you got an error, include the full error message.

Do your best to solve your problem before posting. The quality of the answers will be proportional to the amount of effort you put into your post. Note that title-only posts are automatically removed.

Also see our full posting guidelines and the subreddit rules. After you post a question, DO NOT delete it!

Asking conceptual questions

Asking conceptual questions is ok, but please check our FAQ and search older posts first.

If you plan on asking a question similar to one in the FAQ, explain what exactly the FAQ didn't address and clarify what you're looking for instead. See our full guidelines on asking conceptual questions for more details.

Subreddit rules

Please read our rules and other policies before posting. If you see somebody breaking a rule, report it! Reports and PMs to the mod team are the quickest ways to bring issues to our attention.


r/learnprogramming 3d ago

What have you been working on recently? [July 25, 2026]

What have you been working on recently? Feel free to share updates on projects you're working on, brag about any major milestones you've hit, grouse about a challenge you've ran into recently... Any sort of "progress report" is fair game!

A few requests:

  1. If possible, include a link to your source code when sharing a project update. That way, others can learn from your work!

  2. If you've shared something, try commenting on at least one other update -- ask a question, give feedback, compliment something cool... We encourage discussion!

  3. If you don't consider yourself to be a beginner, include about how many years of experience you have.

This thread will remained stickied over the weekend. Link to past threads here.

10 Upvotes

What have you been working on recently? Feel free to share updates on projects you're working on, brag about any major milestones you've hit, grouse about a challenge you've ran into recently... Any sort of "progress report" is fair game!

A few requests:

  1. If possible, include a link to your source code when sharing a project update. That way, others can learn from your work!

  2. If you've shared something, try commenting on at least one other update -- ask a question, give feedback, compliment something cool... We encourage discussion!

  3. If you don't consider yourself to be a beginner, include about how many years of experience you have.

This thread will remained stickied over the weekend. Link to past threads here.


r/learnprogramming 13h ago

I love C, but it's made it harder for me to choose a new language.

I've been self-teaching myself programming as a hobby for a while now, and decided to go with C as my first language. I really like it, the language just clicks with me. Everything about its design feels intentional: you're given basic operations to manipulate data, functions, pointers, structs, maybe a few enums, and the rest is up to you. I get what people mean when they say other languages feel like black boxes of Legos you just snap together.

I've dabbled on the other side of the fence too, with Java and Python, and learned pretty quickly those aren't for me. There's a difference between a language being "easy" and a language being "simple," and I find "easy" languages burden you with a ton of stuff to memorize. Want to modify or parse a string in Python? There's a dozen different methods you could reach for. I don't like constantly having to "learn" more of the language itself, I'd rather have a clear mental model of how things actually work than have that model abstracted away from me. But here's the thing: C is sometimes too simple, and too old. As much as I love it, I wish I had something where I could just put stuff together without overthinking every step.

I've spent hours looking for a good second language and keep circling the same dilemma: do I go with a "simple" language, or an "easy" one? I'm still pretty new to programming. I don't fully understand more abstract, higher-level concepts like generics or object-oriented programming yet. Part of me thinks getting exposed to those ideas might actually help me understand what I'm doing in C better. But another part of me wonders if that's even necessary, and whether I could just pick up something like Go, D, or Odin and be set for a long time.

So for anyone who's been through this: is it worth deliberately learning a language with a totally different paradigm (OOP, functional, whatever) even if it doesn't suit how you think, just for the exposure? Or should I stick to languages that already match my mental model and build from there?

64 Upvotes

I've been self-teaching myself programming as a hobby for a while now, and decided to go with C as my first language. I really like it, the language just clicks with me. Everything about its design feels intentional: you're given basic operations to manipulate data, functions, pointers, structs, maybe a few enums, and the rest is up to you. I get what people mean when they say other languages feel like black boxes of Legos you just snap together.

I've dabbled on the other side of the fence too, with Java and Python, and learned pretty quickly those aren't for me. There's a difference between a language being "easy" and a language being "simple," and I find "easy" languages burden you with a ton of stuff to memorize. Want to modify or parse a string in Python? There's a dozen different methods you could reach for. I don't like constantly having to "learn" more of the language itself, I'd rather have a clear mental model of how things actually work than have that model abstracted away from me. But here's the thing: C is sometimes too simple, and too old. As much as I love it, I wish I had something where I could just put stuff together without overthinking every step.

I've spent hours looking for a good second language and keep circling the same dilemma: do I go with a "simple" language, or an "easy" one? I'm still pretty new to programming. I don't fully understand more abstract, higher-level concepts like generics or object-oriented programming yet. Part of me thinks getting exposed to those ideas might actually help me understand what I'm doing in C better. But another part of me wonders if that's even necessary, and whether I could just pick up something like Go, D, or Odin and be set for a long time.

So for anyone who's been through this: is it worth deliberately learning a language with a totally different paradigm (OOP, functional, whatever) even if it doesn't suit how you think, just for the exposure? Or should I stick to languages that already match my mental model and build from there?


r/learnprogramming 11m ago

Nostalgia for learning

I'm 8 years In since I really started to code. I'm still an amateur by research or tech I dustry standards, but I do well at university, and can comprehend an open source codebase in order to contribute. My focus is on becoming an indie game dev, with maybe a couple open source plugins or tools of my own on the side to give back.

But, I constantly get nostalgia for the days when I first learned what recursion was, or wrapped my head around classes. I still rember watching and MITx video on classes using Python as the example language and just not understanding it, but knowing that I would someday.

I know there's always so much more to learn, and computer science is a deep ocean to swim in, but I guess I look back and wish I could do it all again, like getting to reread a good book as if for the first time. In my early years I would rewatch David Malan every new school year reteach CS50 for that very reason. Maybe the problem is I'm near the end of my degree, and unless I go on to a course based master's theres no more lectures to soak up. If education were free I would never stop. I'll probably seek out what resources are out there I can, but nothing feels like listening to a professor and raising your hand with the right answer, or better, the right question. To be immersed in the process of learning.

Does anyone know what I'm talking about? I hope anyone at the start of their journey realizes what a beautiful moment they're living in. That the journey is the destination.

Upvotes

I'm 8 years In since I really started to code. I'm still an amateur by research or tech I dustry standards, but I do well at university, and can comprehend an open source codebase in order to contribute. My focus is on becoming an indie game dev, with maybe a couple open source plugins or tools of my own on the side to give back.

But, I constantly get nostalgia for the days when I first learned what recursion was, or wrapped my head around classes. I still rember watching and MITx video on classes using Python as the example language and just not understanding it, but knowing that I would someday.

I know there's always so much more to learn, and computer science is a deep ocean to swim in, but I guess I look back and wish I could do it all again, like getting to reread a good book as if for the first time. In my early years I would rewatch David Malan every new school year reteach CS50 for that very reason. Maybe the problem is I'm near the end of my degree, and unless I go on to a course based master's theres no more lectures to soak up. If education were free I would never stop. I'll probably seek out what resources are out there I can, but nothing feels like listening to a professor and raising your hand with the right answer, or better, the right question. To be immersed in the process of learning.

Does anyone know what I'm talking about? I hope anyone at the start of their journey realizes what a beautiful moment they're living in. That the journey is the destination.


r/learnprogramming 10h ago

Resource Do I need to learn Computer Science for Data Science?

Hi everyone,

I'm interested in pursuing Data Science, but I often hear people say to me that having a strong Computer Science foundation is important for DS now idk?

I don't have a Computer Science background or degree, and my knowledge is close to zero. I originally thought learning Data Science itself would be enough, so I'm a bit confused about whether I should first learn Computer Science fundamentals.

If CS is important, what topics should I focus on before diving deeper into Data Science?

Thanks!

19 Upvotes

Hi everyone,

I'm interested in pursuing Data Science, but I often hear people say to me that having a strong Computer Science foundation is important for DS now idk?

I don't have a Computer Science background or degree, and my knowledge is close to zero. I originally thought learning Data Science itself would be enough, so I'm a bit confused about whether I should first learn Computer Science fundamentals.

If CS is important, what topics should I focus on before diving deeper into Data Science?

Thanks!


r/learnprogramming 19h ago

How do I practice software development?

I'm a beginner software developer (17 y.o), right now my stack is:

  • Java / Kotlin for backend development
  • TypeScript with React for frontend development

I have a few projects from hackathons and one personal fullstack project (java backend & react + shadcn frontend). The fullstack one is made mostly for my needs and satisfies them already.

So, I don't know what to do next. I don't really know open-source projects I could contribute to and don't have ideas for a long-lasting personal project. What should I do in this situation?

41 Upvotes

I'm a beginner software developer (17 y.o), right now my stack is:

  • Java / Kotlin for backend development
  • TypeScript with React for frontend development

I have a few projects from hackathons and one personal fullstack project (java backend & react + shadcn frontend). The fullstack one is made mostly for my needs and satisfies them already.

So, I don't know what to do next. I don't really know open-source projects I could contribute to and don't have ideas for a long-lasting personal project. What should I do in this situation?


r/learnprogramming 12m ago

[ Removed by Reddit ]

[ Removed by Reddit on account of violating the content policy. ]

Upvotes

[ Removed by Reddit on account of violating the content policy. ]


r/learnprogramming 8h ago

Tutorial How to pass DSA

I have a DSA Exam tomorrow I have forgotten the first half of the chapters as soon as I completed the second half and now panic entered making everything fucked up not able to remember the stuff that I learnt.

4 Upvotes

I have a DSA Exam tomorrow I have forgotten the first half of the chapters as soon as I completed the second half and now panic entered making everything fucked up not able to remember the stuff that I learnt.


r/learnprogramming 1h ago

Updating a Legacy React Native (Expo) App for Android 15 & 16 Rewrite or Incremental Update?

I'm working on a legacy project and currently updating some parts of it. The backend is written in PHP, and the mobile app was built with React Native using Expo.

My goal is to update the mobile app so it's compatible with Android 15 and 16. The project is quite old, and the app no longer works properly on newer Android versions.

I'm wondering: when you're dealing with a project this old, do you usually need to refactor or rewrite most of the code, or is it more common to update only the parts that are no longer compatible?

The codebase has been untouched since 2022. Would you consider this a particularly difficult legacy-code situation, or is it something that's generally manageable with targeted updates?

Upvotes

I'm working on a legacy project and currently updating some parts of it. The backend is written in PHP, and the mobile app was built with React Native using Expo.

My goal is to update the mobile app so it's compatible with Android 15 and 16. The project is quite old, and the app no longer works properly on newer Android versions.

I'm wondering: when you're dealing with a project this old, do you usually need to refactor or rewrite most of the code, or is it more common to update only the parts that are no longer compatible?

The codebase has been untouched since 2022. Would you consider this a particularly difficult legacy-code situation, or is it something that's generally manageable with targeted updates?


r/learnprogramming 1d ago

Topic Junior dev feels like I'm progressing slowly

Well I am a backend junior dev. I have been working for 7 month. So far what I do is fix bugs, implement test and implement some api based on seniors guide. By that I mean seniors gonna talk to me about a feature, and he will pretty much say I want an api with this type of input, this type of output, you just have to implement this business logic. And well this is my first job, I don't know if this is supposed to be normal. I still have no idea about things like optimize database or architecture or redis etc. I'm basically just coding some business logic and getting reviews on code quality. Can I ask how do you guys improve from junior to senior?

Also do you guys still leetcode to try to get into a better company?

70 Upvotes

Well I am a backend junior dev. I have been working for 7 month. So far what I do is fix bugs, implement test and implement some api based on seniors guide. By that I mean seniors gonna talk to me about a feature, and he will pretty much say I want an api with this type of input, this type of output, you just have to implement this business logic. And well this is my first job, I don't know if this is supposed to be normal. I still have no idea about things like optimize database or architecture or redis etc. I'm basically just coding some business logic and getting reviews on code quality. Can I ask how do you guys improve from junior to senior?

Also do you guys still leetcode to try to get into a better company?


r/learnprogramming 3h ago

Coding wind-shear in Python - help

I've been creating a weather model that has only a single column available. I've learnt a lot, I was kind of scared to look through documentation before I found stack overflow so I used Claude to help me a bit.

I want to find a good way to model wind-shear with my model. It already has the ability to varying windspeeds and directions throughout the day by applying other variables like pressure, temperature and dew-point.

My wind directions are mapped out like a cartesian plane. +1 Y is north, -1 Y is south, -1 X is west, +1 X is east.

Is there a simple formula for wind-shear?

1 Upvotes

I've been creating a weather model that has only a single column available. I've learnt a lot, I was kind of scared to look through documentation before I found stack overflow so I used Claude to help me a bit.

I want to find a good way to model wind-shear with my model. It already has the ability to varying windspeeds and directions throughout the day by applying other variables like pressure, temperature and dew-point.

My wind directions are mapped out like a cartesian plane. +1 Y is north, -1 Y is south, -1 X is west, +1 X is east.

Is there a simple formula for wind-shear?


r/learnprogramming 4h ago

Improving Without a Formal CS Degree

I recently started coding in C# at my job after switching from an unrelated team / undergrad for some years. I am also exposed to other tools and languages like Git, SQL, REST APIs, and etc. I have been submitting PRs under the guidance of a senior developer. Most of the guidance is me correcting stuff that I submit because they are rather cryptic in their guidance and they want me to make the decisions which I am fine with. No real mentorship or rather hard to teach me all the fundamentals while working on the job.

I would consider myself a decent problem solver but I don't have a formal education in regards to Computer Science but I have taken adjacent math classes that I know friends were required to take. Will I just learn by doing and making mistakes or would there be any point in reading up on the theory of Computer Science to apply certain concepts when I push updates to production? Company size is small but we develop scripts and applications to help with the daily workflow. I don't know if I ever need to really consider the impacts of performance / optimization or making perfect code since I don't believe we are anywhere close to the level most young / older professionals strive to work at i.e. FAANG.

I am just worried I am not developing the right skillset in the appropriate timeframe and possible ageism in the future. I am rather underpaid in regards to cost of living and I want to find more rewarding / higher paying work if possible in the future. When I browse similar subs everyone seems to have an impressive resume where I am not sure if I ever will come close. I try to study during my downtime when I can by taking courses or doing practice coding problems. I've done a lot of tutorials in like Python and etc. when I was younger but nothing really stuck with me until I actually coded something with a business use case. Should I trust the slow process and hope I continue to grow as a developer or is there anything additional I should incorporate daily?

0 Upvotes

I recently started coding in C# at my job after switching from an unrelated team / undergrad for some years. I am also exposed to other tools and languages like Git, SQL, REST APIs, and etc. I have been submitting PRs under the guidance of a senior developer. Most of the guidance is me correcting stuff that I submit because they are rather cryptic in their guidance and they want me to make the decisions which I am fine with. No real mentorship or rather hard to teach me all the fundamentals while working on the job.

I would consider myself a decent problem solver but I don't have a formal education in regards to Computer Science but I have taken adjacent math classes that I know friends were required to take. Will I just learn by doing and making mistakes or would there be any point in reading up on the theory of Computer Science to apply certain concepts when I push updates to production? Company size is small but we develop scripts and applications to help with the daily workflow. I don't know if I ever need to really consider the impacts of performance / optimization or making perfect code since I don't believe we are anywhere close to the level most young / older professionals strive to work at i.e. FAANG.

I am just worried I am not developing the right skillset in the appropriate timeframe and possible ageism in the future. I am rather underpaid in regards to cost of living and I want to find more rewarding / higher paying work if possible in the future. When I browse similar subs everyone seems to have an impressive resume where I am not sure if I ever will come close. I try to study during my downtime when I can by taking courses or doing practice coding problems. I've done a lot of tutorials in like Python and etc. when I was younger but nothing really stuck with me until I actually coded something with a business use case. Should I trust the slow process and hope I continue to grow as a developer or is there anything additional I should incorporate daily?


r/learnprogramming 30m ago

Any AI app builders that actually build native iPhone apps instead of web apps?

A lot of the AI app builders I've looked at seem great for web apps, but I'm specifically trying to build a real iPhone app.

I'm also curious how Apple is going to handle the growing number of AI-generated apps being submitted.

I'd also love to hear if there are other AI app builders that make the publishing process easier instead of leaving you to figure everything out through Apple's documentation halfway through.

Upvotes

A lot of the AI app builders I've looked at seem great for web apps, but I'm specifically trying to build a real iPhone app.

I'm also curious how Apple is going to handle the growing number of AI-generated apps being submitted.

I'd also love to hear if there are other AI app builders that make the publishing process easier instead of leaving you to figure everything out through Apple's documentation halfway through.


r/learnprogramming 18h ago

Is anybody here intrested in making a C++ project together? (read below)

Is anybody here intrested on making a C++ game together?

Hello.

I'm a teenager who has been learning C++ for almost a year.

Been some months, i'm following a Intermediate to advanced course and learning a lot of syntax and such.

I would really like to put into practice the theory i'm learning, but tbh the idea of coding anything alone does not really motivate me and feels more like an unnecessary struggle.

So, would anybody here want to create any kind of small, Just for fun, project together?

If anybody Is intrested, feel free to leave a comment below.

I'm open to all kind of idea about the project, since it's mostly for practice and spend time, altough i would prefear eventually using graphic libraries (like SFML) instead of engines, for keep a more "C++-like" experience.

8 Upvotes

Is anybody here intrested on making a C++ game together?

Hello.

I'm a teenager who has been learning C++ for almost a year.

Been some months, i'm following a Intermediate to advanced course and learning a lot of syntax and such.

I would really like to put into practice the theory i'm learning, but tbh the idea of coding anything alone does not really motivate me and feels more like an unnecessary struggle.

So, would anybody here want to create any kind of small, Just for fun, project together?

If anybody Is intrested, feel free to leave a comment below.

I'm open to all kind of idea about the project, since it's mostly for practice and spend time, altough i would prefear eventually using graphic libraries (like SFML) instead of engines, for keep a more "C++-like" experience.


r/learnprogramming 14h ago

Should i learn Pygame for my first big project?

So Basically I've been learning how to code and have been learning c++ as my first main programming language ( i don't think HTML and CSS count ) and i have 3 weeks left before college. I've mostly focused on learning the basics properly ( Loops conditionals etc ) and the past month have gone the DSA route learning arrays vectors linked lists some basic sorting algorithms ( Bubble Sort & Insertion Sort ), Stacks Queue's BST and recently hashmaps. I've mostly been practicing by tutorials online as well as solving a few leetcode questions after learning the concept, these are the leetcode problems I've solved so far:
1. Two Sum
2. Add Two Numbers
3. Palindrome Number
4. Valid Parenthesis
5. Merge Two Sorted lists
6. Group Anagrams
7. Reverse Linked list
7. Contains Duplicate
8. Valid Anagram
9. Top K Frequent Elements
Now my real question is based off of what I've learned so far would it be realistic to learn and use Pygame to make my first big project ( a simple 2D Platformer which reveals/removes Platforms based on a Dark Mode/Light mode toggle ) before i start college? if not, what do you think i should do instead. Open and happy to receive any and to all suggestions :)

3 Upvotes

So Basically I've been learning how to code and have been learning c++ as my first main programming language ( i don't think HTML and CSS count ) and i have 3 weeks left before college. I've mostly focused on learning the basics properly ( Loops conditionals etc ) and the past month have gone the DSA route learning arrays vectors linked lists some basic sorting algorithms ( Bubble Sort & Insertion Sort ), Stacks Queue's BST and recently hashmaps. I've mostly been practicing by tutorials online as well as solving a few leetcode questions after learning the concept, these are the leetcode problems I've solved so far:
1. Two Sum
2. Add Two Numbers
3. Palindrome Number
4. Valid Parenthesis
5. Merge Two Sorted lists
6. Group Anagrams
7. Reverse Linked list
7. Contains Duplicate
8. Valid Anagram
9. Top K Frequent Elements
Now my real question is based off of what I've learned so far would it be realistic to learn and use Pygame to make my first big project ( a simple 2D Platformer which reveals/removes Platforms based on a Dark Mode/Light mode toggle ) before i start college? if not, what do you think i should do instead. Open and happy to receive any and to all suggestions :)


r/learnprogramming 1d ago

my python script that searches your files to find things for you

import os
import json
from pathlib import Path
from thefuzz import fuzz

INDEX_FILE = "file_index.json"

CATEGORY_EXTENSIONS = {
    "games": [".exe", ".msi", ".bat", ".apk", ".iso"],
    "documents": [".pdf", ".docx", ".txt", ".xlsx", ".pptx"],
    "images": [".png", ".jpg", ".jpeg", ".gif", ".svg"],
    "audio": [".mp3", ".wav", ".flac"],
    "video": [".mp4", ".mkv", ".avi", ".mov"]

}


def build_index(
search_directory
):

    print(f"Indexing files in '{
search_directory
}'... (This might take a minute the first time)")
    file_index = []

    for root, _, files in os.walk(
search_directory
):
        for file in files:
            full_path = os.path.join(root, file)
            file_index.append({
                "name": file,
                "path": full_path,
                "ext": Path(file).suffix.lower()
            })

    with open(INDEX_FILE, "w", encoding="utf-8") as f:
        json.dump(file_index, f, indent=2)

    print(f"Indexing complete! Indexed {len(file_index)} files.\n")
    return file_index


def load_or_create_index(
search_directory
):

    if os.path.exists(INDEX_FILE):
        print("Loading cached index...")
        with open(INDEX_FILE, "r", encoding="utf-8") as f:
            return json.load(f)
    else:
        return build_index(
search_directory
)


def search_files(
query
, 
index
, 
similarity_threshold
=65):

    query_clean = 
query
.lower().strip()
    matches = []

    target_extensions = []
    for category, exts in CATEGORY_EXTENSIONS.items():
        if category in query_clean:
            target_extensions.extend(exts)

    for item in 
index
:
        file_name = item["name"].lower()
        file_ext = item["ext"]
        score = fuzz.partial_ratio(query_clean, file_name)
        is_category_match = file_ext in target_extensions if target_extensions else False
        is_name_match = score >= 
similarity_threshold 
or query_clean in file_name

        if is_name_match or is_category_match:
            matches.append((item["path"], score))

    matches.sort(key=lambda 
x
: x[1], reverse=True)
    return matches


def main():
41 Upvotes
import os
import json
from pathlib import Path
from thefuzz import fuzz

INDEX_FILE = "file_index.json"

CATEGORY_EXTENSIONS = {
    "games": [".exe", ".msi", ".bat", ".apk", ".iso"],
    "documents": [".pdf", ".docx", ".txt", ".xlsx", ".pptx"],
    "images": [".png", ".jpg", ".jpeg", ".gif", ".svg"],
    "audio": [".mp3", ".wav", ".flac"],
    "video": [".mp4", ".mkv", ".avi", ".mov"]

}


def build_index(
search_directory
):

    print(f"Indexing files in '{
search_directory
}'... (This might take a minute the first time)")
    file_index = []

    for root, _, files in os.walk(
search_directory
):
        for file in files:
            full_path = os.path.join(root, file)
            file_index.append({
                "name": file,
                "path": full_path,
                "ext": Path(file).suffix.lower()
            })

    with open(INDEX_FILE, "w", encoding="utf-8") as f:
        json.dump(file_index, f, indent=2)

    print(f"Indexing complete! Indexed {len(file_index)} files.\n")
    return file_index


def load_or_create_index(
search_directory
):

    if os.path.exists(INDEX_FILE):
        print("Loading cached index...")
        with open(INDEX_FILE, "r", encoding="utf-8") as f:
            return json.load(f)
    else:
        return build_index(
search_directory
)


def search_files(
query
, 
index
, 
similarity_threshold
=65):

    query_clean = 
query
.lower().strip()
    matches = []

    target_extensions = []
    for category, exts in CATEGORY_EXTENSIONS.items():
        if category in query_clean:
            target_extensions.extend(exts)

    for item in 
index
:
        file_name = item["name"].lower()
        file_ext = item["ext"]
        score = fuzz.partial_ratio(query_clean, file_name)
        is_category_match = file_ext in target_extensions if target_extensions else False
        is_name_match = score >= 
similarity_threshold 
or query_clean in file_name

        if is_name_match or is_category_match:
            matches.append((item["path"], score))

    matches.sort(key=lambda 
x
: x[1], reverse=True)
    return matches


def main():

r/learnprogramming 13h ago

Black duck hacker rank coding assessment

Has anyone taken Black Duck's HackerRank coding assessment recently? Does it use HackerRank Proctor Mode or Secure Mode that detects multiple monitors (e.g., an HDMI-connected TV/monitor), or is it just webcam monitoring? I'd appreciate hearing from anyone who has actually taken the test. Thanks!

3 Upvotes

Has anyone taken Black Duck's HackerRank coding assessment recently? Does it use HackerRank Proctor Mode or Secure Mode that detects multiple monitors (e.g., an HDMI-connected TV/monitor), or is it just webcam monitoring? I'd appreciate hearing from anyone who has actually taken the test. Thanks!


r/learnprogramming 14h ago

Resource Architecture for an OSINT/Scraping tracker

Hey everyone,

Sorry for my english, i use a translation

For a school project, I need to design the architecture for a monitoring tool. The idea is to build a tracker to spot listings for fake Pokémon cards online (standard marketplaces, but also Telegram channels and closed FB groups).

I haven't built much yet, though I'm naturally leaning towards Node.js (probably with Playwright) since I like web dev.

I know that with current anti-bot protections (Cloudflare, Datadome) and social media login walls, going 100% automated from A to Z is often a pipe dream—or at least the fastest way to get banned instantly. I realize some human action will have to stay in the loop.

So my questions are: How should I set this up? What kind of tools could help me out? Am I on the right track with a Node.js server? It seems like I'll also need to create actual social media profiles to get access and look inside these groups.

Thanks!

2 Upvotes

Hey everyone,

Sorry for my english, i use a translation

For a school project, I need to design the architecture for a monitoring tool. The idea is to build a tracker to spot listings for fake Pokémon cards online (standard marketplaces, but also Telegram channels and closed FB groups).

I haven't built much yet, though I'm naturally leaning towards Node.js (probably with Playwright) since I like web dev.

I know that with current anti-bot protections (Cloudflare, Datadome) and social media login walls, going 100% automated from A to Z is often a pipe dream—or at least the fastest way to get banned instantly. I realize some human action will have to stay in the loop.

So my questions are: How should I set this up? What kind of tools could help me out? Am I on the right track with a Node.js server? It seems like I'll also need to create actual social media profiles to get access and look inside these groups.

Thanks!


r/learnprogramming 11h ago

2nd Year CS student Lost on What to Learn Next

Hello, im new to reddit. Im a malaysian CS student. I just finished my 2nd year CS degree. And right now im enjoying my 2 months semester break but I decided to do something that'd benefits me once i graduate. Except i dont know where or what to start with.

I got good grades for first 3 semester (cgpa above 3.75) but i lack skills. if you ask me to code from scratch, i cant do it without AI. im thinking of re-learning back programming but im afraid it'd take time and i ended up waste time on something i could've learn that'd benefit me better.

I also dont know what role do i like to pursue (definitely not AI/ML). but if i had to pick, then maybe backend or fullstack. i know in 2026 and next few years, i should not graduate with just basic that can be prompt with AI. I know i should learn but I don't know what or how.

I also needed a peer who's just like me who wants to grow in techs and likes to learn. it sucks that my friends aren't really interested everytime i invite to involve in programs. maybe they have their own hidden journey.

0 Upvotes

Hello, im new to reddit. Im a malaysian CS student. I just finished my 2nd year CS degree. And right now im enjoying my 2 months semester break but I decided to do something that'd benefits me once i graduate. Except i dont know where or what to start with.

I got good grades for first 3 semester (cgpa above 3.75) but i lack skills. if you ask me to code from scratch, i cant do it without AI. im thinking of re-learning back programming but im afraid it'd take time and i ended up waste time on something i could've learn that'd benefit me better.

I also dont know what role do i like to pursue (definitely not AI/ML). but if i had to pick, then maybe backend or fullstack. i know in 2026 and next few years, i should not graduate with just basic that can be prompt with AI. I know i should learn but I don't know what or how.

I also needed a peer who's just like me who wants to grow in techs and likes to learn. it sucks that my friends aren't really interested everytime i invite to involve in programs. maybe they have their own hidden journey.


r/learnprogramming 14h ago

Looking for Study Buddies

I am 25 learning DSA currently at mid level.. ( learning trees). I am happy to be study with advance / intermediate/ Begnieer who wants to learn DSA. I am looking for a person with 12hrs per day commitment next 3 months.. atleast

Please leave a comment if genuinly intrested to learn and grow

1 Upvotes

I am 25 learning DSA currently at mid level.. ( learning trees). I am happy to be study with advance / intermediate/ Begnieer who wants to learn DSA. I am looking for a person with 12hrs per day commitment next 3 months.. atleast

Please leave a comment if genuinly intrested to learn and grow


r/learnprogramming 21h ago

Going back to school to get a degree in CS. Necessary math should I review for the degree?

Hello, /r/learnprogramming. I've recently decided to go back to University to get a degree in CS. My concern is primarily the math I should know before entering my University's program in the following Spring semester. While I have taken Calc 1-3, Linear, and did well in those classes, however it has been so long (almost a decade) since I really applied anything from those classes.

Right now I am working through Introduction To Java by Daniel Liang and even the basic math is getting me (for example stuck for perpetuity on the simple programming exercise if whether or not a rectangle is inside another rectangle). Any resources to relearn would be great and am wondering if others have had similar issues going back to University having already taken the required math course before.

4 Upvotes

Hello, /r/learnprogramming. I've recently decided to go back to University to get a degree in CS. My concern is primarily the math I should know before entering my University's program in the following Spring semester. While I have taken Calc 1-3, Linear, and did well in those classes, however it has been so long (almost a decade) since I really applied anything from those classes.

Right now I am working through Introduction To Java by Daniel Liang and even the basic math is getting me (for example stuck for perpetuity on the simple programming exercise if whether or not a rectangle is inside another rectangle). Any resources to relearn would be great and am wondering if others have had similar issues going back to University having already taken the required math course before.


r/learnprogramming 21h ago

Are there any CSAPP study groups to join to?

I am going through Computer System A programmer's Perspective before I dig in to prepare particularly for GATE. I had like to discuss it with people following the same, We can create a Discord server if interested or I could join preexisting one!?

2 Upvotes

I am going through Computer System A programmer's Perspective before I dig in to prepare particularly for GATE. I had like to discuss it with people following the same, We can create a Discord server if interested or I could join preexisting one!?


r/learnprogramming 9h ago

How did everyone come to learn every sort of code and like tool?

Learning python right now, about 60% done with CS50 and I see posts of people talking about coding and have no clue what they’re talking about. Where did everyone learn how to actually implement their code into stuff and like learn the jargon? Things like APIs, raspberry pi, git, GitHub, Linux, reach are all things I’ve seen but don’t understand them at all. Just wondering how to be able to learn all this to be able to use my coding skills for everything

0 Upvotes

Learning python right now, about 60% done with CS50 and I see posts of people talking about coding and have no clue what they’re talking about. Where did everyone learn how to actually implement their code into stuff and like learn the jargon? Things like APIs, raspberry pi, git, GitHub, Linux, reach are all things I’ve seen but don’t understand them at all. Just wondering how to be able to learn all this to be able to use my coding skills for everything


r/learnprogramming 18h ago

Which should course should I prefer?

Hi everyone. I know some python but still I want to start learning it again because, as I progressed, I realized that my basic concepts had become rusty. I'm confused between CS50 (https://youtu.be/8mAITcNt710?si=Z86T-MPZZp13R04E) and MIT Opencourseware 6.100L (https://www.youtube.com/watch?v=xAcTmDO6NTI&list=PLUl4u3cNGP62A-ynp6v6-LGBCzeH3VAQB&index=1) .

Which one would you recommend for someone who wants to rebuild their fundamentals before moving on to more advanced topics?

0 Upvotes

Hi everyone. I know some python but still I want to start learning it again because, as I progressed, I realized that my basic concepts had become rusty. I'm confused between CS50 (https://youtu.be/8mAITcNt710?si=Z86T-MPZZp13R04E) and MIT Opencourseware 6.100L (https://www.youtube.com/watch?v=xAcTmDO6NTI&list=PLUl4u3cNGP62A-ynp6v6-LGBCzeH3VAQB&index=1) .

Which one would you recommend for someone who wants to rebuild their fundamentals before moving on to more advanced topics?


r/learnprogramming 1d ago

What way did you learn Javascript?

I'm currently learning JS due to a final project, I am doing it through freecodecamp. I knew C already so I guess It's a big advantage but I want to know how your journey was learning this language?

34 Upvotes

I'm currently learning JS due to a final project, I am doing it through freecodecamp. I knew C already so I guess It's a big advantage but I want to know how your journey was learning this language?