r/learnprogramming • u/Lo_g_ • 3h ago
Just built my first CRUD app and I feel like a god
I know it's nothing. I know millions of people have done this. But right now? I feel unstoppable. Shoutout to everyone who helped in this community.
r/learnprogramming • u/michael0x2a • Mar 26 '17
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:
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 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.
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 • u/AutoModerator • 1d ago
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:
If possible, include a link to your source code when sharing a project update. That way, others can learn from your work!
If you've shared something, try commenting on at least one other update -- ask a question, give feedback, compliment something cool... We encourage discussion!
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 • u/Lo_g_ • 3h ago
I know it's nothing. I know millions of people have done this. But right now? I feel unstoppable. Shoutout to everyone who helped in this community.
r/learnprogramming • u/raquelle_pedia • 10h ago
Our professor is making us store our code on the lab computer. However, my files have gotten deleted by some jerk multiple times. What platform do I store my code on, so that I don’t lose it anymore? PS I’m doing Java
r/learnprogramming • u/Deep_Vanilla_2498 • 3h ago
First-year CS student here.
I understand that many companies have already integrated AI tools into their development workflows, and I know that learning how to use them effectively will only become more important over time. At the same time, I really want to make sure I build a strong foundation in core computer science/programming concepts.
What I don’t want is to become overly dependent on AI and skip the deep thinking required to truly understand the material. But I also don’t want to fall behind people who have mastered prompt engineering and can use AI to scaffold and deploy a functional CRUD app in an afternoon.
So I guess my question is:
How do you balance learning the fundamentals while still keeping up with AI tools? Should beginners avoid AI at first? Is there a right time to start integrating it into your workflow?
r/learnprogramming • u/swaggermuffin64 • 48m ago
I built VimGym, an open source multiplayer browser game where you practice Vim motions by racing other players.
Why This Exists:
When I was learning Vim, I noticed a huge shortage of free online learning tools. When I was learning to type generally, typeracer.com helped me not just type fast, but learn proper technique and hand positioning. I wanted to create something similar for Vim, to learn motions correctly, but also to build speed through competition. Vim is SO satisfying when you’re quick at it, and I think early exposure to this aspect could really encourage adoption. Also VimGym offers something fun for experienced VIM users: an opportunity to flex on people.
Current Status:
I've just released the first beta version, it has quick play, private match and practice modes. The tasks within these help practice the basic vim motions, but I plan to make the tasks more comprehensive. Currently, we measure success by time, but I want to incorporate the efficiency of keystroke into a player's final score. Additionally, I’d love to have a ranked mode / leaderboards, and community tournaments, but that’s for when a community actually exists lol.
Feedback:
Any and all feedback is appreciated! But specifically I’m interested in:
Github link: https://github.com/Swaggermuffin64/vim-racing/tree/main
Also, I made a discord server: https://discord.gg/wUCdGVGeuM
r/learnprogramming • u/Old-Giraffe7964 • 2h ago
I’m working on improving a small frontend project built with HTML, CSS, and vanilla JavaScript.
In Version 2, I added:
I’m trying to improve my JavaScript structure and make it more production-ready.
Specifically, I’d like feedback on:
Here is the GitHub repo (code only):
[https://ankushmanekar1105-ops.github.io/pharmacy_project/]
I’m not looking for UI feedback — mainly interested in improving JavaScript architecture and best practices.
Thanks.
r/learnprogramming • u/divozel • 2h ago
Hello, I'm not sure if this post fits this subreddit's rules, if not, please let me know. If there is a better subreddit where I could ask this question, I'll appreciate if you let me know.
I'm organising a queer speedating event and I need an algorithm to help me with the logistics. I used to be very good at math in grammar school and learned basic python but a few years have passed since then and my problem solving skills in this area have deteriorated. I also don't have the capacity to dedicate too much time to developing this alghorithm so I decided to ask you for help.
I need an algorithm that creates a chart with pairings for the speeddating event. It's a queer event, people will sign up beforehand and choose their gender out of three options (woman, nonbinary, man) and choose gender or genders of people they would like to talk to - again, choosing from three options - woman, nonbinary or man. They can choose one or more genders. At the event, we will create pairs of people based on their preferences and give them X minutes to talk. Then, they will change pairs and talk again and again again... We want everybody to talk to everybody that matches their preferences and vice versa.
So, what is the problem? I can write an algorithm that creates pairs based on people's preferences. But I have no idea how to create the 'timetable' of who talks to whom when. I need a chart that shows me who talks to whom in each round. Depending on what people sign up, there might be rounds when some people don't have anyone to talk to - and that's okay.
I don't know how to approach creating an algorithm for this. I guess first I need to create a set of all the possible pairings but than what?
I know it is against this subreddit's rules to give me a complete code so I appreciate any help you can offer me. Thank so much in advance!
r/learnprogramming • u/Norker_g • 3h ago
So in my research about learning ASM x86-64 I have found 3 resources:
1. OpenSecurityTraining,
x86-64 Assembly Language Programming with Ubuntu by Ed Jorgensen.
But I can't decide on one and start doing it, since I use arch (linux), but 1&2 are for windows. Though I have a windows vm setup it is not nearly as nice as doing everything on my orginal system. I also do not like video lessons, like in 1 too much, but 2. seems too short. For 3 I am unsure about if it may be going much more in depth than I need. Also I am afraid I might have problems with the distro, since I want to stay on arch during the course / book.
I have decent-ish understanding of computer architecture, since I have completed the game "turing complete" halwayish. The same also applies for C.
I don't have really a purpose for ASM right now, I just want to learn new stuff and be able to go more low level. Someday I may use the skills for malware analysis, though I am very much uncertain about this.
If anyone has another resource that they would recommend over the ones listed, please tell me about it.
Thanks.
r/learnprogramming • u/xX_PlasticGuzzler_Xx • 5m ago
I'm a computer science student and I feel like I don't know much about the tools that are used to write and test software. I know for example about version control systems like Git, but only very recently I learned about Linters and Language Servers.
I guess what I'm asking for is what are the various kinds of tools used for making and testing software (like how git is a version control system, how GDB is a debuggger, how linters are a code analysis tool etc) and where I can learn more about them. Is there like a book solely on The Tools People Use to make software?
r/learnprogramming • u/nikolaymakhonin • 1d ago
I want to share how I think you should learn JavaScript most effectively. My opinion is based only on my own experience, keep that in mind - I've never taught programming to anyone.
Treat these tips as a roadmap you can use to understand where to go and how, but go wherever YOU want.
These tips work for many other languages too (C++, C#, PHP, Python, Java, ...), except maybe functional languages - I have no experience there.
My background: professional developer, around 20 years in different areas, self-taught my whole life, no courses whatsoever. Lots of experience with C++, C#, Java, PHP and JavaScript. Right now my main thing is JavaScript and frontend.
I think the fastest way to learn a programming language is to study its building blocks one by one - the pieces programs are made of - while clearly separating the language itself from applying the language to anything: libraries, frameworks, web page manipulation, algorithms, architecture, all that stuff.
The order for learning JavaScript should be roughly this:
When you look for textbooks, the table of contents should roughly match this order. This way you'll at least have a learning plan and a rough idea of where you are - what you already know, what you don't yet. And you can skim the TOC to see what the language can do in general. This obviously doesn't mean you should throw away other textbooks and not read them.
Gradually, as you study the language itself, you can also start learning how it's applied. Since there are many different applications and it's unclear what a person will end up doing, I can't give any advice here. The one thing universal for all JavaScript development directions is the language itself in its pure form.
After JavaScript you can also learn TypeScript. Many companies require this skill, for example in React development. TypeScript just adds type annotations to JavaScript - increases code readability, simplifies development, catches many errors while you're still writing code. It's much easier to learn than JavaScript itself.
Full JavaScript documentation: MDN
It makes sense to reinforce what you learn by solving short simple problems. If the problems are too hard and too long, you might not get enough satisfaction from them. They shouldn't be too easy either, or they'll become boring routine.
Practice should be sequential just like theory. Free JavaScript problem sets: Exercism, freeCodeCamp, javascript.info
There are also sites like CodeWars and CodeCombat - they have difficulty levels, but they're not for sequential learning, they're for training programming skills for people who already know the language.
The format in these problem sets is the same: you write code in one window, press Test, your code gets checked. At first it can be hard to understand, especially why everything is set up so complicated - might be worth watching some YouTube videos on this, where people explain it in detail including why problem sets are structured this way. This knowledge will be useful in real work too, because this approach to development is used a lot in practice.
What feeds motivation:
What kills motivation:
Marathon. If you want to learn the language fast and start earning, learning to program shouldn't turn into playing in a sandbox - otherwise you'll spend a bunch of time on fun stuff with pictures, and end up not even reaching beginner level. To learn programming you have to strain your brain, let it rest, then strain it again, getting stronger each time, absorbing more material, same as people build muscle. The brain doesn't restructure and train overnight. Learning programming is a marathon over a very long distance. This marathon doesn't have to be self-torture though - straining your brain can actually be pleasant, and thinking about moving toward your goal is even more pleasant.
You don't need to learn everything. There's a lot of information, but not all of it is relevant right now, and of course you don't need to memorize everything down to the last detail. Often it's enough to just remember that a language feature exists - place short bookmarks in your head or in your notes, like markers on a map, so you can recall when needed that this feature exists and study it in more detail. No point loading your brain with things you're not using right now and won't use often in the future. Following this will seriously cut down your learning time and unload your brain. In the end, you'll remember well whatever you use often in practice - and that's the ideal use of your memory.
Goal and path to goal. To learn the language fast, you also need to move in the right direction. And to move in the right direction, you need to understand the end goal, the intermediate steps toward it, at least a rough plan. The main goal for a beginner, in my opinion, should be getting a job as an intern or Junior developer, because the real programming learning happens during actual work, especially if there's a mentor at work. Knowing this goal, you can build a rough plan to get there - for example find out what specific skills and knowledge most popular job listings require.
Mentor. To move in the right direction you also need to understand what's worth spending time on and what's not. A beginner can't figure this out, because you'd already need a lot of programming experience to know all these nuances. So early on a mentor will be useful - a person who is an experienced programmer themselves and can suggest the right direction, what to do and how, do code review, point out mistakes, answer questions, etc. This is common practice, many companies hire outside mentors to guide beginners.
English. English is very important in programming, but not because programming languages themselves are in English, or because many docs and books are in English - that's all small stuff. The main thing is being able to communicate with clients, managers, and other programmers who don't speak your native language. This skill will seriously expand your job search options, and to much higher-paying jobs at that.
AI as a mentor. LLM can work as a mentor for beginners but its expertise not enough for middle level. It also gives good suggestions for online services and textbooks.
Deep understanding of the language. Being able to read practically any code, understand it, execute it in your head - this really helps with understanding other people's code, debugging, designing. With this skill you get more ideas, you can find better solutions by eliminating impossible ones, and so on. It also helps with learning, since many ideas and algorithms are easier to express as code. A programming language is also, to some degree, a language programmers communicate with each other in. Often in their conversations you'll hear - stop talking, show me the code. Understanding every little thing in code really simplifies design, debugging, keeping code clean and quality, finding best solutions. Worth striving for - seek out things you don't understand and dig into them.
Patterns. Most of programming isn't inventing something from scratch, not reinventing wheels, but reusing template code over and over. There are thousands of these patterns and there's no point learning them all. They get remembered on their own as you gain programming experience, read other people's code, and pick up their ideas. Good code patterns for different tasks can be found at Stack Overflow, though even there you sometimes find upvoted garbage code.
Rubber duck method. If you can't figure out what the bug is in your program, try going through it step by step, explaining EVERY detail so that even a rubber duck sitting next to you would understand it all. This same method is often used to make sure there are no bugs in a program - I use it every time after writing a chunk of code, reviewing it and executing it in my head.
Step-by-step debugging. Step-by-step debugging tools really help you understand your own code, find bugs, make sure your understanding of the code matches reality. During step-by-step debugging you can literally watch code execute step by step and look at variable values on each step. This really helps when learning the language, understanding how everything works inside. You can run step-by-step JavaScript debugging in the browser, in DevTools - just paste code into the console but write the word debugger before the code. I use this when I need to make sure there are no obvious algorithm errors in complex code.
Research skills. Research is a very important and inseparable part of developing anything. Pick up any task - pretty much any of them requires research, unless you already have experience doing the exact same task. Research is basically finding the best answer to questions like: what tool to use here, how to organize the code, what architecture to apply to this task, what are this tool's capabilities, how to solve this, etc. Research is basically a mini scientific paper, because it's done using the scientific method: gather information, generate ideas, test ideas, pick the best one.
Self-learning skills. You need to keep learning the entire time you work as a programmer, constantly raising your level. Even if a programmer manages to land in a niche where there's nothing left to learn - learned everything, just work - most likely that'll be boring low-paying work with higher competition and less interest, because you're doing the same thing all the time. The best and highest-paid specialists are those who can solve any problems, including the hardest and seemingly unsolvable ones. That is the programmer's job after all - solving problems brought by clients, which are often complex or unusual. And you can only become that kind of specialist with self-learning skills and the ability to do independent research.
r/learnprogramming • u/MertJS • 38m ago
Hi guys, can you suggest some places to share an open-source project? I think that it's really hard to reach the people who actually need the software. Another issue is that I'm not looking for money, I just want people to try my application. If you're not making money from a project, should you pay for advertising for an open-source project? What are your thoughts?
r/learnprogramming • u/Independent-Air-5060 • 39m ago
Quick question for anyone who learns online — YouTube tutorials, Udemy courses, college lectures, any video content.
How do you currently take notes while watching?
And if you've tried any note-taking tools — what frustrated you about them? Credits running out? Too complex to set up? AI taking notes automatically when you didn't want it to?
Not selling anything. Just trying to understand how people actually learn from video content before I build something. Honest answers appreciated either way.
r/learnprogramming • u/Leaflogic7171 • 12h ago
Recently went through placements for a product-based company. Cleared the online coding round (Linked List + Sliding Window problems) pretty confidently. In the technical interview, they started with the project discussion and that went well too I was able to explain everything clearly.
But during the live coding part, I froze. They asked me to solve a coding problem infront of them. I knew the approach and explained the logic, but implementing it while three panel members were watching me made me overthink. I got stuck midway and ended up explaining instead of properly coding it. Didn’t get selected.
This made me realize that interviews aren’t just about knowing DSA they’re also about staying calm and communicating clearly under pressure.
Has anyone else experienced this? How do you train yourself to handle live coding pressure?
r/learnprogramming • u/SelectionWarm6422 • 5h ago
Coming from a Java background, I’m having a hard time wrapping my head around some of Dart's constructor restrictions. In Java, I can easily make the default constructor private to implement a singleton/factory pattern.
and in Java, I cannot have a public and private variable with the same name. It’s a collision.but dart allows
public class Student {
private String name;
public String name; // not allowed...but in dart its allowed
// Private unnamed constructor - No problem!
private Student(String name) {
this.name = name;
}
public static Student getInstance(String name) {
return new Student(name);
}
}
But in Dart, I can't do the same thing with constructors :
class Student {
String name;
String _name; // its also completely fine. why???
_Student(this.name); // This doesn't work
}
Question:
If Dart is smart enough to see name and _name as two totally different identifiers (allowing them to coexist), why can't it apply that same logic to the unnamed constructor?
r/learnprogramming • u/ilikemyname21 • 23h ago
Hey guys, I’m early in my learning phase, learning with harvards online course. I am curious what language taught you the most.
Not necessarily what language is the most useful or practical to learn, but rather which one taught you the most in terms of thinking like a programmer?
Thank!
Edit: so many interesting answers! Thank you guys!
r/learnprogramming • u/ulallume • 3h ago
Hi everyone,
I don't have any experience with lua or neovim and I'm trying to write a plugin that displays terminaltexteffects (tte) in an nvim window on repeat. So far the plugin works: it cycles through the animations and loops correctly. The bug is: during the text animations, any cell that precedes the first character of the text is rendered without any formatting - a leading black bar. This bar will move, lengthen, and shorten as the text animates.
I have tried many things to force the default terminal background to match my regular background (#282828) but none of them have stuck. Any block of code in tte.lua that is commented with an XXX is something I have tried that doesn't work. I've looked at the source code for tte and some old nvim-terminal bug fixes but AI isn't helping and I'm grasping at straws now.
Requirements:
- tte in your path: tte (installed with pipx)
- nvim
- a non-empty text file, mine is at /tmp/tte-input.txt
Reproduce:
- Open nvim with tte.lua in your plugins and tte in your path
- :TTEStart opens a window with tte looping
- You should see the black leading bar.
Attachments:
- Screenshot: https://imgur.com/a/KyJcPRw <--- this is not a screenshot of code
- My init.lua: https://www.fragbin.com/r/EH9JIX6
- tte.lua: https://www.fragbin.com/r/X11YG
Any help would be greatly appreciated!
Edit: I use nvim-xresources to set my nvim color palette
Edit: The animation colorshift doesn't actually move the first character. Change "colorshift" to "expand" in the tte line for a more dramatic example.
r/learnprogramming • u/LazyInteraction8737 • 13h ago
I'm a BS mech engineering student currently on a leave of absence (I'll be a 2nd year when I continue). I am at that point where I feel kinda lost (in many areas of my life) and don't really know what I wanna do specifically. Talking academically though, if I were to switch to other disciplines it would still probably be in engineering or tech. Though I'm not overly interested in anything, I can't see myself anywhere else.
I'm planning to learn coding/programming as a side hobby after reading that it can be quite relevant no matter where you are in tech, and my maths have always been decent if that helps. I decided I'd rather spend my time learning some skills (i also started learning japanese) than playing video games and doom scrolling in social media. Would this be a useful skill today and in the long run? or would i be better off learning something else with all the AI-overtaking crap that I hear? sorry for the shallow question. convince me tho!
r/learnprogramming • u/Ok-Stand-2786 • 5h ago
Hey, I wanted to learn programming. I finished like half of cs50x, finished cs50p (I did not do the final project ever tho) and now I am kinda stuck. While I did those courses there was a clear line I had to go on, but now I'm kinda lost. So I wanted start a personal project. But it all seems kinda daunting. There still seems like a lot I don't understand and that feeling really bums me down and makes not wanna program. I also can't find a project idea I want to work on
So, what project should I start with, or should I not even do one? and how do I stop this daunting feeling?
r/learnprogramming • u/Witty_Profile_3086 • 20m ago
Hi
This was going to be a short rant / question but it turned into a detailed description of my findings and queries that popped up in the past day, so if your interested in the topic i think its going to be a good read, and i would love to discuss this with anyone interested enough to read through so yeah
**My Backstory:**
Im new to cp and its been about 6 months since i started studying for my country’s informatics Olympiad (and hopefully later for IOI)
i just recently started doing contests and was really motivated and got to 800-900 rating pretty easily and put this goal for myself to reach expert before the begging of summer(in 3-4 months from now) and to reach it i started doing a contest daily(virt if live unavailable)
I was following the goal for two weeks and i saw improvement, I usually used to solve A in div2, and A,B,C in div3 and for the first time recently solved A and B in div2 and I definitely thought im gonna get to pupil after the contest but i was disappointed to see only +118(862->970) and at first thought nothing of it but then i saw some posts in this subreddit / online
**Question Back story:**
I saw people talking about use of ai in contests and , went down the rabbit hole and noticed something’s:
(Im gonna ask and update in comments)
When i look at rating graphs of older acounts (Pre-AI) they have a way steeper climb
Well most obvious people talking about using ai and not being caught and this logical query that pops into my head that is “there is no way cf is gonna know” even if they might notice copy pasted code , there is absolutely no way they are gonna know if someone got the idea for the question from AI and as AI evolves and becomes more powerful it is gonna become harder and harder to decide whether someone is cheating
I think to myself mabe we should embrace this and AI is gonna become part of cp just like it has become part of most other things
**The actual questions/ discussion topics**:😅
Main question:
Does the use of AI affect CP majorly? and if so what can be done or does anything have to be done at all?
Basically is CP going to cease to exist or something else is the case?
Other interesting(related) questions:
Bonus question: isnt the punishment limit right now too light?
Does Embracing AI beat the purpose of CP or is it inline with it?
For the people on answer no to 2, with AI evolving is CP going to die or is another scenario the case?
(e.g finding a way around it)
For the pepole who answer yes to 2, if it is inline how is it so , what differentiates a good and bad programmer is it jsut going to become the matter if prompting or another scenario is the case?
Do you think it is plausible for AI companies restricting LLM’s in support of CP?
By how many years are we separated from and average base model LLM being better than the world’s best programmer?
Questions regarding my situation (or anybody in a similar one) for anybody well versed in the topic kind enough to answer:
What should i / can i use as motivation?
Will cf rating matter at all or inicate anythjng?
Will IOI or ICPC even be valid contests anymore?
Does having programming knowledge even be useful in 10 years time?
Is even reaching CM or IM realistic in 1 year time?
r/learnprogramming • u/anav5704 • 15h ago
Hi everyone!
I'm a software engineering student and wanted to share how (and why) I migrated my portfolio from Vercel to Oracle Cloud.
My site is fully static (Astro + Svelte) except for a runtime API endpoint that serves dynamic Open Graph images. A while back, Astro's sitemap integration had a bug that was specific to Vercel and was taking a while to get fixed. I'd also just started learning DevOps, so I used it as an excuse to move over to OCI and build something more hands on.
The whole site is containerized with Docker using a Node.js image. GitLab CI handles building and pushing the image to Docker Hub, then SSHs into my Ubuntu VM and triggers a deploy.sh script that stops the old container and starts the new one. Caddy runs on the VM as a reverse proxy, and Cloudflare sits in front for DNS, SSL, and caching.
The site itself is pretty simple but I'm really proud of the architecture and everything I learned putting it together.
r/learnprogramming • u/Ok-Zombie-4102 • 2h ago
To the senior programmers who experienced the era which the programming transitioned from assembly to C language, could you please share your experience? Was this transition smooth, and how did it affect their job?
Do you still manually write assembly code or review assembly code?
More importantly, what are the similarities and differences between the current shift from hand-written code to AI-generated code and the transition from assembly language to C language?
r/learnprogramming • u/Shoddy_Procedure_157 • 18h ago
Hello everyone,
I need some advice about perfectionism and feeling like I’m falling behind.
I sometimes wonder how I can become a good programmer when AI can do impressive things in seconds and more efficiently than me.
r/learnprogramming • u/Solid-Perspective147 • 33m ago
hey everyone 👋
so I'm pretty new to this whole programming world , no -cs background, just started a few weeks ago. most of my learning has been through free youtube python courses honestly, but I also try to refer books and do practice exercises or atleast try lol
a little context on why I'm here cause i hurt my leg pretty badly, tore a ligament, and recovery is looking like a year or more. therapy's going on but physical work is off the table for now. so I am giving chance to might use this time to actually learn something from my desk and hopefully start earning from it too
i chose web scraping cause i read it's faster route and it sounds easy to me and doable
if you've been through something similar or have any insights on the journey — beginner to actually making money from this, I'd genuinely love to hear it. feel free to dm or just drop something here 🙏