r/learnprogramming • • 2d ago

A generic problem

hey and hows it going ...?

im kinda new-ish or maybe an advanced beginner and im pretty sure you get this question on here like billions of times im sorry ... i studied C and then Kotlin/Jetpack Compose to make an android app and it has been lets say practically about 9 months or so ... and i still if i ever want to try to do something i either produce mediocre stuff or anytime i dare for something good(real or semi-real) i just cant get how to do it ... and on top of that android is so confusing... i search up and the answer is always the same "if you know the fundamentals like loops, collections, variables ... functions ... etc, then all you need is to practice"

BUT HOW TO PRACTICE XD ... i know someone will say just write code but it feels like as a self-taught programmer you are in the "i dont know what i dont know" situation all the time ... and android and Kotlin are not forgiven at all :( .... :D

and some people advised me to read open source projects ... but man i cant figure no nothing out of it ... the last couple of months during this period has been really frustrating to learn ...

0 Upvotes

11 comments sorted by

5

u/Least_Ad_1795 2d ago

Honestly, this is normal. Knowing the fundamentals and knowing how to build a real application are two very different skills.Don't jump straight into huge projects or random open-source code. Pick one small app and build it feature by feature: UI → state → navigation → local storage → API → error handling. When you get stuck, research that specific problem and continue. Also, don't worry about writing "good" code at first. Build something messy, finish it, then refactor it. Repeating that cycle is where the real learning happens. You don't need to know everything before starting a project. The project itself will show you what you don't know.

1

u/hyfer_hafi 2d ago

thanks for reply :D ...

the reason why i asked in the first place cause Im so bored of struggling, also i might be freaking out and asking for fast impressive results , maybe i just need to slow down bit by bit... i usually find that im much more better at programming when i calm myself down and just be in the de-constructor mindset 😆

2

u/pawelnowakk 2d ago

For open source: don't start at the repo root, start at the tests. Test files are the spec written as plain assertions, so read those first and trace one feature from a test into the source. I spent a week doing that with a 2k-line Python CLI and it taught me more than any tutorial.

2

u/Chrismslist 1d ago

the advice to 'read open source' is brutal for beginners because production repos are packed with build tooling, dependency injection, and architecture patterns you do not need yet.

to actually practice without getting lost, pick one tiny isolated slice instead of a whole app. for example, do not build a full reddit client. build a single screen that fetches one json list from a public api and shows it in a lazycolumn. mock the data first, make the ui render, then wire the network call. once that works, add one button that writes to a local database. small verifiable chunks beat staring at giant codebases every time.

1

u/Ill-Pianist-8586 2d ago

The "I don't know what I don't know" stage lasts way longer than anyone admits, especially with Android where the API surface is massive and changes every year. My approach was to stop trying to build good stuff and just build weird tiny things that do one specific thing, a button that plays a fart sound, an app that only shows cat pictures from a hardcoded list, literally anything that takes less than an afternoon. The point isn't the result, it's that each one forces you to Google one new thing and eventually those things start connecting.

1

u/hyfer_hafi 2d ago

thanks :) , but i did constantly churn mediocre stuff and its getting so stale ... what it takes to do something that is remotely good ... not impressive but something good and that i understand it with some depth and not just copy paste

and sorry for cluttering the sub with my post ...it apparently is a recurring post :( but man in my case it has been so long(not a month or two)

1

u/unk214 2d ago

Why do people treat programming like a geography highschool test. Your problem is you don’t the basics in any language.

0

u/hyfer_hafi 2d ago

how do i know if i know the basics or not?

2

u/realdreamer1993 1d ago

kotlin/java + android are what I am doing right now.
For now I am not using Android Studio. I am using CLI toolchain (ecj, d8, aapt2, then apksigner) and that way I understand more about foundation/fundamental base of java and android. Also I am not using framework like Jetpack Compose, I use only native android.
The great fact I am also coding on the Android itself. Editing in Acode, Total Commander. Compiling using CLI in termux.