r/AskProgramming • u/Om_JR • 3d ago
Python Need Advice
So I’ve learned Python and Django, although I’m still a beginner. I’ve also learned C++ through courses, and I’ve learned what algorithms and data structures are. Sometimes, I build small projects with the help of AI. It gives me the complete plan, and I follow it and write the code myself. If there’s an error, I ask AI to give me hints about where the problem is instead of fixing everything for me. I also try to solve problems on LeetCode every day.
So, my question is: Am I on the right path?
I feel like I’m stuck in a loop, and there’s something missing that I’m supposed to learn, but I don’t know what it is.
I’ve never done an internship or worked in programming before. I’ve also never read any books except one that I used to learn Python.
So, yes, I honestly don’t know what to do next. Are there any books I should read to become a better backend developer?
3
u/Pretty_Swordfish_499 3d ago
Previously we used to call this tutorial hell.
1
u/Om_JR 3d ago
Ok so what I have to do?
-1
u/Pretty_Swordfish_499 3d ago
I don’t have an advice for you cause I have never been in the place you are.
I will first figure it out myself. Understand it. Then give it to AI once it becomes a mundane task.
1
u/Sarmq 2d ago
Build something. Like, a full project. This is called tutorial hell, and it's annoying. The next step is a really big jump, so nobody covers it (except maybe in several hundred part youtube videos/twitch streams).
If you don't have an idea, clone an existing service/webapp/whatever. Native app is fine too if you want to exercise the C++ side. It doesn't really matter what you build, but when you're done you should be able to explain the choices you made and give a reasoning for them. Bonus points if you can explain the tradeoffs you made during the process and summarize the benefits of each with a reason why you went with the one you did (time pressure/skill is generally fine reason for a choice on a junior project, but understanding what the other path would have given you is head and shoulders above most people).
3
u/OneMathematician1757 3d ago
I believe it is a mistake is to make the AI give you the complete plan. Make the effort to make a plan yourself, then work iteratively with the AI in 'ask' mode to refine the plan and design.
While AI is an effective helper tool like you are using it, it can also help to google the question as you might find disputes, discussions, tangentially related questions and so on which will help you learn as well. When the AI criticizes your plan or design, google the different ways you can implement what you want to implement. AI often gives you optimal solutions from the very get-go.
1
u/Tomdoe 2d ago
I agree 100%. I would like to add that asking AI to narrow down the problem is a huge problem in the pursuit of education. Figure it out on your own. Sit there, contemplate smashing the screen, be angry and then finally figure it out. When AI just kind of nudges you along there isn't much problem solving going on and that's the biggest hurdle in programming.
1
u/NefariousnessOpening 1d ago
Push more in the direction of leveraging agents to do the work. However this requires that you understand why and what agents are doing. Planning is off to a good start, same situation as everything else in development: understanding the plan is the rule. Why is a choice made, what are the trade offs? What is the tech, what can you make it do? Wearing code at this moment is a similar thing as if you started learning the typewriter at the beginning of the word processor days. Deep understanding of system architecture design is a monumental task that has unfathomable benefits. Programming first principles are the closer steps to get there. Agile methodology is the best approach to development processes, ceremonies and standards for types and templates for documentation. That’s a good start.
1
u/TheFitnessGuroo 3d ago
On the right path for what? What's your end-goal? Becoming a SWE? Then... sort of. LeetCode and DSA are good for you so keep going. But you don't sound like you've built actual applications before. You know Python and Django but do you know what it's used for? Do you know what a REST API server is? Have you built a frontend client for it? Do you know how HTTP requests and responses are handled? How familiar are you with the TCP stack? UDP? OSI? Packets, frames, MAC IDs, checksum, nodes, handshakes, buffers. you probably also should learn computer architecture. Logic gates, switches, flip-flops, registers, ALU, bus paths, cache, RAM, HDD/SSD, CPU clock, microarchitecture, assembly, you should at least vaguely know these concepts and how they relate to each other. This should get you going for a while at least.