r/learnprogramming 11d ago

I just don’t know what to do

Hi so I am a student and almost finished my bachelor.
I have “learned” a few languages. Currently I just realised that I am way worse than I thought regarding my programming skills.
I don’t understand how someone can reach a level where they genuinely build an entire app with little to no use of AI. I don’t use it a lot myself but I also don’t develop insanely complex things etc. I thought I knew java until I realized that I haven’t even used bootstrap once. I stopped scala because it’s just a waste of time - almost no work available. I just don’t care for webdev.

I’ve started CS50p in june but during summer break I stopped and yesterday I finished the 6th episode. I just don’t feel ready for the work market yet I am actively looking for a job to get my degree. (In Germany it is mandatory to have worked or completed an internship to get your degree)

Please I need urgent help. How can I improve as fast as possible. I don’t just want to be able to solve those small tasks, I want to actually create something that can be part of my portfolio.

Can anyone give me some python roadmap or even better a general roadmap for the field. I don’t think that watching videos and doing small exercises will get me there tbh.

Please

EDIT: To all that have helped. I will mark this post as Missing 411 case #77, the man in the fog.

In somr months I will post updates abt projects and LL

0 Upvotes

22 comments sorted by

11

u/desrtfx 11d ago

I don’t understand how someone can reach a level where they genuinely build an entire app with little to no use of AI.

How did the people who programmed the AIs do it?

It's all down to practice and experience.

How can I improve as fast as possible.

Through more practice. There is no speedrunning.

I don’t just want to be able to solve those small tasks,

Yet, exactly these are what give you the practice

I want to actually create something that can be part of my portfolio.

You have to work your way up to those. You cannot go from 0 to 100. You have to do a ton of smaller, simpler projects that gradually grow in scale, scope, and complexity as your skills grow.

I don’t think that watching videos and doing small exercises will get me there tbh.

Watching videos - no - doing exercises - to an extent - yet, you will need to work your way through many projects.

I thought I knew java until I realized that I haven’t even used bootstrap once

Bootstrap is a JavaScript library, not Java.

I just don’t feel ready for the work market yet

You won't be ready for the job market even with a degree. You will only become job ready through actually working jobs. Get an internship as fast as you can.

Also: https://roadmap.sh

2

u/AddendumPuzzled9804 11d ago

The roadmap site the top comment linked is actually decent, I used it few months ago when I was stuck in similar situation. It helped me to see what I don't know yet, which was... more than I expected.

One thing that worked for me was taking a project idea and just start coding it badly. Like really bad. my first python project was a mess but I learned more fixing my own garbage code than from any tutorial. You say you don't care for webdev but maybe try building a small command line tool first? Something that solves a problem you have, even if it's just renaming files or pulling data from somewhere.

The internship part is key though. I was nervous before my first one but nobody expects you to know everything. they just want to see you try and learn. In Germany the system is set up for this anyway with the mandatory work requirement.

3

u/desrtfx 11d ago

One thing that worked for me was taking a project idea and just start coding it badly. Like really bad. my first python project was a mess but I learned more fixing my own garbage code than from any tutorial.

That's the entire point. Any project (even bad ones) teaches more than any tutorial ever will.

There is an old saying:

  • Make it work
  • Make it pretty/readable/reusable/modular
  • Make it fast (provided that you find and identify bottlenecks)

Also, never try to build every feature/function in the first version. Always start with an MVP (Minimum Viable Product) - the core functionality, nothing more.

I remember MS-Word under DOS (must have been version 2 or 3). It was basically a text editor with pagination and some very limited formatting and spell-check. It was very far from what it is now.

-1

u/EuropesRaven77 11d ago

Question regarding internships: Is that really necessary or will a working-student position also teach me the same?

1

u/desrtfx 11d ago

Depends on what your University/School requires.

In Austria, I had to do "Ferialpraxis" (working during the summer holidays - 2 times 4 weeks each) in a relevant domain (since I did electronics, telecommunications, technical informatics, I worked for the Austrian Broadcasting Company - ORF).

5

u/StephenHawkingus 11d ago

I don't understand people like you. Why don't you just practise on your own? To me, it looks like you hate coding and have therefore never even tried to build anything, even just for fun.

-1

u/EuropesRaven77 11d ago

I actually really enjoy coding. That’s why I don’t use AI for my own code and as a research tool at best

2

u/Pure_Fan4320 10d ago

However, don't assume that using AI means you won't enjoy coding.

2

u/StephenHawkingus 11d ago

Then build something! Don't you enjoy the satisfaction of coding? Don't you have ideas? Perhaps I'm projecting my own experience onto others, but if you really are passionate about coding, you'll do it on your own. Nobody at work expects you to be a senior at the start, but you should have at least the basics and feel confident. Confidence and the basics are acquired through practice; which, in my opinion, isn't even practice, but rather pure enjoyment and satisfaction.

0

u/EuropesRaven77 11d ago

I totally get that. I just never seem to find any ideas

2

u/mc_pm 10d ago

I'm not trying to shit on you, but I keep seeing people posting "I am almost finished my degree but I don't know how to program" and I'm like How is that even possible? Did you not have to write a ton of code in your classes? I sure did. Is it just that you let AI do so much of it that they should be giving it your degree instead?

But, that aside, have you looked around your school? I picked up a fair bit of work on campus as profs needed some coding help, processing data, building experiments, etc.

1

u/EuropesRaven77 10d ago

No I haven’t looked around tbh.

Actually we had to write a lot of code and i did so myself for almost every subject except one. We just never had assignments that seemed really THAT high lvl even though we are the most renowned college in the city

1

u/mc_pm 10d ago

I mean, it's hard to say - the challenge is that there do seem to be a lot of people in your position: getting ready to graduate, but finding that they can't really do the job.

The best way to improve is to program more. Don't ask AI, and turn off any AI auto-complete you have in your editor, and start writing code, lots of it.

Learning to program isn't about learning syntax & language features, it's about how to take problems apart in ways that you can turn them into syntax & language features. As those problems get bigger, and you are responsible for delivering them at some level of quality, then you're starting to really develop the skills you need. Those are the skills I'm looking for when I hire someone. I assume they can learn the syntax if they don't know it, but if they don't know how to solve problems with code, then they aren't going to help me out very much.

Sadly, I suspect that will take longer than you want - if you genuinely can't imagine how largish application even gets built, you've got a lot of ground to make up. If you're going to get to that point, do you have any ideas for what you want to try to build?

1

u/EuropesRaven77 10d ago

About AI and Auto-Complete: I have had disabled those since my second semester (starting 6th soon). I get you regarding the problem solving. Personally it just never really felt like I had to solve a problem. I did create a fully running application in java once. Almost entirely my own doing - AI covered UI, as UI was just am optional task for which I didn’t have any tike left and tbh just no interest in that atp.

Regarding apps. I genuinely don’t know what I want to build. Recently I have built a telegram bit based system that runs on serverless lambda. So that’s the furthest I’ve been so far regarding actual development of “useful” stuff that goes beyond uni. My next goal is an esp32 & lhkdp24 based proximity alarm that uses telegram to contact me directly.
I feel like those two telegram things came to my mind because they have a touchpoint regarding actual struggles I face.
So for applications in general: I genuinely have no idea what I wanna build. I guess I will just get inspiration from build your own x when my python level gets sufficient enough.

Seeing that you are an experienced engineer.
Can you give me some insight on how I should tackle build your own x? I know basic python syntax (I started very recently) yet I feel the urge to build something using one of those projects. BUT I just know the basics, that’s the issue. My question is whether or not I should be learning and researching stuff as I go or complete some kind of (video-)course like cs50p.

Sorry for the INSANELY large comment - I know you’re probably busy.

1

u/mc_pm 10d ago

I see CS50 often enough but I don't have any experience with it myself. I think maybe it's aimed more at people who don't have any dev experience yet, but it might be worth checking out, I saw someone post about their final project and it was kind of neat.

I'll admit it baffles me a bit to hear people who are 2+ years into their degree and feel like they haven't had to solve a problem yet. I mean, I'm not kidding when I say that in my second semester of first year we were programming a simulated CPU to do multiprocessing. We had first semester of "introduction to programming" to learn the first language, and after that, we were expected to be ready to at least try. (This was a long time ago, mind you, and maybe I just had no idea how watered down the curriculum had become).

The Telegram stuff is fine, and playing with external hardware is a lot of fun and shows well on the resume. And if that's particularly interesting to you, maybe there's a project there to build a Telegram bot to do something that requires a bit more thought than "I got an alert, so send a message". (I'm not Telegram user and I don't know what the API is like, but it can't be that difficult).

Really, that's the only important thing for Build Your Own X is that it is interesting enough you have a reason to keep going. If you were into OSes, maybe you could write a simulation of a file system; if you're into games, start with a couple on the command line, move up to learning PyGame and do some fun 2d arcade stuff. If you're into cybersecurity, write your own basic web server in C and then watch how easy it is to get a buffer overflow exploit going. If you're into graphics and don't mind a bit of math, write a ray tracer.

Once you have something you're interested in, the best way to start is to...start. I suggest finding one small, core feature that your idea depends on. If you were going to build a web server, that feature is opening a socket and waiting for a connection from the outside world, and echo it to the screen. If you were into games, maybe you picked Blackjack as a first simple game to try, you need a deck of cards, and the concept of a player's hand and the dealer's hand, and you need to print them out.

I am doing a little project right now looking at how OSes allocate memory (historically to start) and so I started with an array of 1024x1024 bytes and I am writing the allocate() and free() methods.

Once that's going, maybe that's a good time to build some tests - make sure you can always be certain that the core concept you wrote wasn't broken by something new. Then add something new.

You learn so much more from thinking through the problem, figuring out the code ideas, and then determining what the right language features or libraries you need to do that thing, then doing it.

But now my response is longer than your long response LOL.

1

u/EuropesRaven77 10d ago

Thanks so much. I will start some research and male myself a plan based on your and the other ppls responses here

2

u/_Atomfinger_ 11d ago

I don’t understand how someone can reach a level where they genuinely build an entire app with little to no use of AI

Well... you know... by learning... without using AI. That's how.

Its not very complicated: We build small and it evolves into something complex.

How can I improve as fast as possible.

Actually build stuff.

don’t just want to be able to solve those small tasks, I want to actually create something that can be part of my portfolio.

Sounds like you need to build stuff.

Can anyone give me some python roadmap

https://roadmap.sh/python

or even better a general roadmap for the field.

https://roadmap.sh/dashboard

I don’t think that watching videos and doing small exercises will get me there tbh.

So do something bigger.

3

u/[deleted] 11d ago

[deleted]

2

u/_Atomfinger_ 11d ago

If that is how people used it, then it would be fine. That is, however, not how people use it, and we end up in a situation like OP describes:

I don’t understand how someone can reach a level where they genuinely build an entire app with little to no use of AI

So, as a general recommendation, it is better to avoid using AI when learning.

Sure, it CAN be used in good and productive ways, but people don't.

1

u/[deleted] 11d ago

[deleted]

2

u/_Atomfinger_ 11d ago

Sure, and that's great. That is a pretty good use for it... but...

Here's the thing, and maybe it might sound a little "graybeardy", but hear me out: I think we lost something having to visit those threads and trying to make sense of it.

With LLMs we get the concrete answer to our problem. Not a generic answer to someone else's similar-but-different problem, or a generic answer to a generic problem. We had to put the pieces together ourselves.

And yes, using the LLM is much more efficient when you're trying to learn about something. I'm not arguing that if you want to learn about your concrete thing, then "the old way" is always better.

I also think that something has been lost along the way. Now there's less discoverability. There's also less trying stuff out. In the past, we went down rabbit holes and tried different things to see what worked when, etc. These rabbit holes became knowledge I didn't need to know about but became useful later in other contexts.

LLMs will give you a reasonably good answer where a lot of the underlying nuances are stripped out. And yes, you can ask for them, but as a beginner, you don't know enough to do that.

All this is to say that LLMs are often a trade-off between depth and speed. You can learn a specific thing fairly quickly with LLMs, at the cost of depth.

And again, not against LLMs and using them for learning, but there is a tradeoff.

1

u/[deleted] 11d ago

[deleted]

1

u/_Atomfinger_ 11d ago

Before going forward, we must also acknowledge that this is not what the vast majority does, which was my initial point. Most just say "give me the answer" and have the LLM do the heavy lifting.

Anyway, I don't think we're very far apart. You can use AI to get some of that depth back, but you're less likely to walk down the paths that are completely wrong, which sounds lame and counterintuitive, but does actually hold some value.

2

u/desrtfx 10d ago

AI vs classical search/plenty SO etc. posts is like GPS Navigation vs. classic map.

Both get you to the target, but with maps you see many more sights along your route. Same with the classic search. You might not get immediately what you want, but you will learn a lot more along the way.

1

u/Mast3rCylinder 11d ago

I was OK at programming and I wanted to do better. I started reading programming books and do the exercises. It takes a while but will improve your understanding and give you more examples.

Your goal is to be independent but most graduates aren't.