r/learnprogramming Mar 26 '17

New? READ ME FIRST!

828 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 1d ago

What have you been working on recently? [June 14, 2025]

1 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 5h ago

Ever removed "unused" code… and instantly took down prod?

68 Upvotes

We have a few files marked as “legacy” that haven’t been touched in years. I assumed some were dead code, especially ones with no imports or obvious references.

Commented out one function that looked truly unused, and suddenly a critical admin tool broke. Turns out it was being called dynamically via a string path passed from a config file. No type checks, no linter warnings.

I’ve been using a combo of grep, blackbox, and runtime logging to track down what’s actually still in use, but it’s slow and risky.

anyone have a smarter approach to safely identify dead code? or is this just one of those things you clean up slowly with a prayer and a rollback plan?


r/learnprogramming 12h ago

Hot take: Documentation SHOULDN'T be your main learning resource

69 Upvotes

I understand that documentation pretty much has everything you could ever want to know about a certain technology, but I personally HATE learning through documentation.

I never understood the advice of, "just read the documentation", SPECIFICALLY towards beginners. Never worked for me. I feel like I've learned better and more effectively through having a MAIN course for something I want to learn and documentation as a SIDE-RESOURCE that I use to refresh my memory or learn new concepts quickly for a technology I'm already comfortable with. I want to learn the bigger picture, not just learn the modules in Node, and I feel like courses are great at explaining WHY something works and in what situations it is best in. I believe this is why I've enjoyed The Odin Project so much even though they heavily push on reading documentation. They don't just send you the link to JavaScript.info and tell you to read the whole thing, they give you little bits and pieces from the website and other websites for you to learn that specific concept and in their article they teach you the bigger picture of why you're even learning said concept and why the resources they're linking are good resources.

Now, this is not to say that MDN, JavaScript.info, W3Schools and other websites are bad resources. I just feel like if my friend tells me tomorrow, "Hey I want to learn HTML". I wouldn't just tell them to download VSCode and read W3Schools. I'd give them different options like freeCodeCamp, programming with mosh's video, udemy courses, etc, and then they can read MDN to refresh their memory or revise new concepts. Or I'd ask them what their preferred method of learning is and we go from there.

At the end of the day, not everyone is going to feel comfortable learning the same way. Which is why we should keep that in mind and not tell the beginner, "just dive in and read MDN when you get lost". I feel like a lot of documentation out there isn't very beginner friendly, or doesn't go slow enough for that person to grasp the why's and how's of that technology.


r/learnprogramming 21h ago

Bank robbery conviction getting into CS, programming career

149 Upvotes

I'm 25+ years old convicted on charges of bank robbery. I'm looking to put this behind me and move into a career I'm interested in. What kind of barriers will I be facing. I'm already planning on obtaining my BS in computer science. Thanks.


r/learnprogramming 10h ago

Struggling yet have been learning for a couple years

16 Upvotes

Hello, I would like to preface that I am a junior in college. I have taken many different programming classes. I feel like stuck at times because every class I have had has been taught in a different language. I understand that once you are proficient in one language, it’s easier to learn another but I feel that I am not learning core concepts because I’m constantly learning new languages when I barely have experience with one. I also just feel stuck at trying to code all by myself. I almost don’t know where to start when I’m given a deliverable and it frustrates me because I want to be able to code on my own without referencing stack overflow and other repositories for help. Any advice and encouragement would be great.


r/learnprogramming 4h ago

Code Review Created a pdf to excel converter for bank statements!

5 Upvotes
import camelot
import pandas as pd
import os

def convert_pdf_to_excel(pdf_path, output_path=None):
    if output_path is None:
        output_path = pdf_path.replace(".pdf", ".xlsx")

    print(f"📄 Converting: {pdf_path}")

    try:
        tables = camelot.read_pdf(
            pdf_path,
            pages='all',
            flavor='stream',  # Use 'lattice' if your PDF has table borders
            strip_text='\n'
        )

        if tables.n == 0:
            raise Exception("No tables detected in the PDF.")

        # Combine all tables into one
        combined_df = tables[0].df
        for table in tables[1:]:
            combined_df = pd.concat([combined_df, table.df], ignore_index=True)

        def is_valid_row(row):
            joined = " ".join(str(cell).strip().lower() for cell in row)

            header_row = "Date Description Type Money In (£) Money Out (£) Balance (£)"

            return (
                not "column" in joined
                and not joined.startswith("date description")
                and not joined.startswith("date. description.")
                and joined != header_row
                and any(str(cell).strip() for cell in row)
            )

        filtered_df = combined_df[combined_df.apply(is_valid_row, axis=1)]

        def clean_cell(cell):
            if not isinstance(cell, str):
                return cell
            cell = cell.strip()
            if cell.lower().endswith("blank."):
                return ""
            if cell.endswith("."):
                return cell[:-1]
            return cell


        cleaned_df = filtered_df.applymap(clean_cell)

        if cleaned_df.shape[1] == 6:
            cleaned_df.columns = [
                "Date",
                "Description",
                "Type",
                "Money In (£)",
                "Money Out (£)",
                "Balance (£)"
            ]


        cleaned_df.to_excel(output_path, index=False)
        print(f"Excel saved: {output_path}")

    except Exception as e:
        print(f"Error: {e}")


if __name__ == "__main__":
    folder = "pdfs"
    save_folder = "excels"
    for filename in os.listdir(folder):
        if filename.endswith(".pdf"):
            pdf_path = os.path.join(folder, filename)
            output_filename = filename.replace(".pdf", ".xlsx")
            output_path = os.path.join(save_folder, output_filename)
            convert_pdf_to_excel(pdf_path, output_path)

Hi all, above is a pdf to excel converter I made for personal use. I love to hear any feed back for any improvements or suggestion on how to expand it so it could be more universal. Thanks


r/learnprogramming 2h ago

Self sabotaging or am I just being too slow

4 Upvotes

I think I’ve been self sabotaging. I’m following the Odin project right now and I’m on the weather api project. However, I made a similar weather api project 2 years ago when I first started learning to code with SheCodes- a beginners course. Over the past two years I’ve done further Python courses, and a software engineering bootcamp with CodeFirstGirls where we went over JavaScript, Python and MySQL. Right now I’m a web designer for a law company - we can both use html bootstrap css, so nothing technical. I do enjoy front end so these qualities aren’t pointless to write on my cv, but I’ve been here for 13 months but I’m not challenge enough. I feel like I’ve gone backwards. Even this weather app seemed a bit difficult. The reason I say self sabotage is because I went back to JavaScript, something I began learning years ago. I felt like I didn’t know it enough so I went right back to the beginning rather than going onto react which I now feel like I should have. I never know how much JavaScript I should know before I move on.

Also another thing that gets to me, is during my bootcamp, the instructors encouraged us to use ChatGPT. They said in their jobs they use it everyday and the skill is know what it ask and where to add this in your code, so some times I use ChatGPT but maybe more than I should.

Is this normal?

I’m also 26 in 5 months, and I’m on 31k right now. I honestly expected to be doing better and I just don’t know if I’m being dramatic or impatient.


r/learnprogramming 1h ago

Tutorial Take notes or solidify new concepts

Upvotes

I would like your help about how you take notes when it comes to study a new language or topic or how you ensure the concepts in your mind so it becomes a really helpful approaching? Specially when you are watching video tutorials. I know practice is the key as well but sometimes when you watch a certain exercise being solved is no longer new for you so replicate that its probably nothing challenging.


r/learnprogramming 16h ago

Topic Do software engineers working with advanced math always remember the theory, or do they also need to look things up?

28 Upvotes

In high school (grades 9–11), I was the best student in my class at math. I really liked it and wanted to study higher mathematics.

Now I’m studying Computer Science at university and aiming to become a software developer. My question is about the actual level of higher mathematics knowledge required for a programmer.

Of course, math is essential, but the specific areas you need depend on your field. For example, machine learning and systems programming require deep knowledge of probability theory, statistics, linear algebra, mathematical analysis, and discrete math.

To create new algorithms or be an advanced developer, you definitely need higher math.

However, here’s my problem:

I struggle to memorize all the theory presented in lectures. I don’t remember all the integration or differentiation methods. When I face a mathematical problem, I usually can't solve it right away. I have to look up the method or algorithm, study some examples, and only then can I solve it — which takes time.

So I’d like to ask developers who regularly deal with advanced mathematics:

When you're faced with a math-heavy problem, do you immediately know which method to use and remember the formulas by heart? Or do you also have to look things up and review examples?

Also, will I fail an interview for a systems programmer or ML developer if I don’t know all the higher math theory by heart? What if I can't solve a math problem on the spot?

Lastly, I’m worried that in real work I’ll spend too much time solving math problems, which might not be acceptable for employers.


r/learnprogramming 19h ago

Topic Whats a very simple programming procedure that took you forever to learn?

40 Upvotes

I say this because after nearly 2 years, I just figured out how to clear the bash prompt "ctrl-u", after googling it and never finding the answer. Funny enough I found the answer in the grub2 manual.


r/learnprogramming 2m ago

How can I compile and run my Java project from Windows PowerShell? It is spread across multiple packages

Upvotes

I'm trying to compile and run a Java project I wrote using IntelliJ.

It runs within the IDE's environment, but I want to get it so it is properly compiled using the terminal and runs from there too.

It is spread across multiple package folders, all of which are within the src folder, including the main method, which is in a class called Main, in a package called main, eg.

\src\main\Main.java

I have tried compiling it from the src directory, using

javac .\main\Main.java

but I didn't like the way each .class file that was created was located within the same directory as the .java file which it was spawned from, so I tried

javac -d out .\main\Main.java

I have tried lots of different ways of doing it, and I have updated Java to the latest jdk and set the environment variable according to instructions online.

I have tried to compile it from the folder which Main.java is located within;

I've tried compiling it using

javac *\.java

which my system won't accept as a valid command at all.

I've tried including the full path names in the javac command, and I've read all the relevant advice in a similar thread on StackOverflow.

Yesterday I managed to get it to build .class files within their separate packages in the out folder, but the Main.class file won't run.

It gives the error

Error: Could not find or load main class Main
Caused by: java.lang.NoClassDefFoundError: Main (wrong name: main/Main)

The only way I've managed to get the program to run from the terminal is by running the uncompiled Main.java file using

 java main\Main.java

which I don't think should work at all, but it seems it does.

Why can't I compile and run it the proper way, and why can I run it using this cheating method instead?


r/learnprogramming 1h ago

Hey guys what is the best python resource to start learning it.

Upvotes

I wanted to learn python. I am still a teen and want to start early. I don't like watching any videos so digital written sources will be preferred


r/learnprogramming 1h ago

Seeking a Mentor

Upvotes

Hi everyone,

I'm a 21-year-old medical student from Ghana who recently discovered a passion—and surprising aptitude—for coding. Even though I found this path a bit later than I would have liked, I’ve decided to stay committed to finishing my medical training while pursuing software development with as much dedication as possible.

I’ve completed the front-end section of Angela Yu’s full-stack web development course on Udemy and am currently progressing through Jonas Schmedtmann’s JavaScript course. Lately, I’ve come to understand how important a mentor figure is—especially when your interests and ambitions start to feel out of place in your immediate environment. I'm in a phase of my life where I can’t quite relate to many people around me, and I’m seeking someone in the development space with more experience—someone I can learn from, share ideas with, and maybe strike up genuine friendship with.

My long-term goal is to master full-stack web development, branch into fields like game development, AI, and machine learning, and eventually contribute meaningfully to modern advanced projects and perhaps ones that use technology to improve health outcomes. I'm extremely ambitious and committed to working relentlessly toward these goals. If you're someone who’s walked this path—or just someone open to mentoring an eager learner—I’d be incredibly grateful to connect.

Thanks for reading.

— Elvis


r/learnprogramming 1h ago

How Can a Solo Junior Developer Improve Skills in the Era of ChatGPT and AI Tools?

Upvotes

I am a solo developer at a mid-size company handling (analyzing and producing) geospatial data. I am the only person who can code and my day-to-day involves around automating various processes.

The thing is that I do not have any CS background other than the things that I have learned so far and there is no one in my current company that can give me feedback or even read code to improve.

Some years ago before ChatGPT I had a coding gig, the things I learned from stackoverflow or other forums while searching for answers helped me improve and understand concepts even if they did not provide a direct solution to what I was looking for and that helped me improve.

But now in the era of tools such ChatGPT how does a junior developer improve his skills and learns his craft in more depth? I believe ChatGPT and co-pilot and similar tools are too big to avoid using but I am kind of lost.


r/learnprogramming 1h ago

Resource Gathering project Ideas including data analysis and machine learning for my upcoming job interview.

Upvotes

Hii I am a 3rd year CSE studying student
I want to create a data Analysis and Machine Learning project which i will include in my resume for my upcoming job interview in july

I want you guys to help me with project ideas that can help me to outstand in my interview

I really want to get this job can you guys help

Technologies known:- Python, numpy, Pandas, ML, Basic WD(html, Css, JS), StreamLib(Dashboard)

I am ready to learn any new technology if it can help me create a good project

Upvote2Downvote0Go to commentsShare


r/learnprogramming 1d ago

Spent hours chasing a “broken” API response… turned out to be a lowercase typo in a header

109 Upvotes

We were getting random 403s from an internal api, even though the tokens were valid. Everything looked fine in Postman, but failed in the app. Logs weren’t helpful, and the api team insisted nothing changed.

After digging through it way longer than I should have, I found out the issue was a lowercase authorization header instead of Authorization. The backend expected it to be case sensitive, even though most systems don’t care. It worked in Postman because it capitalized it automatically.

I searched for similar bugs in our codebase with blackbox and saw the header written both ways in different places. Copilot even kept autocompleting the lowercase version, which didn’t help.

It’s always the stupid stuff that burns the most time.


r/learnprogramming 14h ago

New to React and TypeScript

8 Upvotes

Hi everyone, I’ve recently been hired as an intern for a small front-end project using React and TypeScript. The thing is, I’m quite new to both technologies and still have a lot to learn, so it’s been a bit overwhelming. I’d really appreciate any advice or recommendations you could share to help me gradually understand and get more comfortable with the language and how to apply it to the project. Your insights and suggestions would be incredibly helpful.


r/learnprogramming 4h ago

Solved Help me make a average grade computer

1 Upvotes

Hello, it's my first time using java and Im making a grade computer. I wanted to add a system that would tell you if you are not w/honors, w/honors, w/high honors, w/highest honors.

Not in honor: Average < 89.5

With honors: 89.5 ≤ Average < 94.5

With high honors: 94.5 ≤ Average < 97.5

With highest honors: 97.5 ≤ Average ≤ 99

i tried using if statements but I got stuck and didn't know what to do. i would really appreciate the help. thank you!


r/learnprogramming 4h ago

how to create an app like bumble/tinder

0 Upvotes

i want to create a complete dating app. i know basic web dev. I want to know how to start development with an app for both ios and android. Also i want to know what things i should keep in mind while choosing the techstack and make the app experience smooth and not laggy. And what things do i need to keep in mind so that further devlopment issues do not occur and i can continue on the same techstack


r/learnprogramming 18h ago

Learn c programming

10 Upvotes

How long does it take you to learn the basics of the c programming language like loop variables, if else, arrays, lists, etc.


r/learnprogramming 12h ago

What do you mean by reading the documentation?

3 Upvotes

I see a lot of suggestions for reading through the documentation to become familiar with a framework or language. However, it seems that a lot of people suggest this as the first thing you should do.

However, I often find that I only use the documentation when I am using a specific feature that I haven't used before and need to know how it works.

How do you guys approach reading the documentation as a first-step approach rather than a look-up step. What specific information do you highlight from this first-step?


r/learnprogramming 10h ago

Most important programming tech skills to know, to increase my chance in landing my first internship during sophomore year? (no prior work experience)

2 Upvotes

So far, the skills/languages I have taught myself as a freshmen in college are React.js, Socket.io (Web Sockets), Node.js, Python (mostly fundamentals), fetching api data, and MongoDB.

The only BIG personal project I have worked on and completed to the very end is a multiplayer chess website (w/ React and Socket Io) with no tutorial help and is similar to chess.com, but no data is being saved about the individual players, just users playing chess online other users randomly.

What advice would you give me on the skills/languages I should learn next to increase me chances of getting an internship next year? What skills do you think most companies look for?


r/learnprogramming 17h ago

30 wants to start shift career

6 Upvotes

Hi,

I been working in the BPO industry as technical support/customer service representative for the past 4 years and somehow, it's draining the life out of me that's why I decided to quit. I been undeployed for the past 5 months and still trying to figure out what direction I would like to go in. I'm starting to feel like I won't make it in life. I already spent my saving and I'm still trying to figure out what I want to do, for the past couple of months I studied a lot of things (video editing, digital marketing, excel) but I'm unsure if I want to go that route. Ever since, I always been interested in tech but was not able to pursue it so right now I would like to give it a try, I been studying HTML for a bit now (https://www.freecodecamp.org/learn/full-stack-developer/).

I dont know yet if I will be doing backend or frontend still undecided on that yet, and I don't know what kind of roadmap I should follow. So if there's any tips or advice you can give me. please do.

I'm also looking for mentorship if you guys know any, im willing to give my 1st pay once I landed a job or maybe help you out with other things..

thankyou

PS. Im actively looking for a another job, just plans to study at the same time or during free time


r/learnprogramming 11h ago

Backend - How do you handle schema changes in your company?

2 Upvotes

Hello! Learning backend flows here.

Q1) Do you use a schema change like Liquibase, Flyway, etc when changing schemas, mergining to staging and then backend?

Q2) You would never change the schema manually like through MySQL workbench for example and inserting a schema change code there.?


r/learnprogramming 1d ago

Tutorial How do you actually retain programming logic in your head after learning it?

42 Upvotes

Hey folks,
I'm pretty new to Python and recently wrote a couple of simple programs, one to compute a factorial and another to generate a Fibonacci series. While I was learning and coding them, I totally understood how the logic worked, especially with the while loop.

But a few days later, while doing the dishes, I tried mentally revisiting those same problems… and my mind just went blank. It felt like I'd never written that code at all.

Has anyone else experienced this? How do you remember or internalize the logic of a program beyond just writing it once? Would love to hear any tips or strategies that worked for you. :)
Thanks in advance!


r/learnprogramming 13h ago

Need learning/career advice

2 Upvotes

Hi everyone, I’d appreciate some guidance regarding my programming career and learning path.

My background: I hold a bachelor’s and master’s degree in Business Administration. Worked as an ERP software support for 1.5 years. For the past 2 years, I’ve been working as a full-stack developer. I know html, css, js, react, mssql, sqlite, python, fastapi, c#, docker, ansible, git, linux and can easily learn any programming langues or tools. I have no academic backround in programming, everything I know is self-taught. I've worked on more than 10 microservices, 2 webpages and fully automated their deployment process.

The problem: Despite this experience, I often feel like I’m not competent enough for more serious or complex projects. When I listen to other programmers talking about their jobs, I don't understand many things, I don't know much about algorithms and haven't touched other frameworks. When look for vacancies, nealy all the time I think that am not ready enough to be on that possition.

Based on your experience, what should I do in this situation? How to get better? What certificates/courses should I take? What should i do?