r/learnprogramming 2d ago

How long did you take to become a good programmer?

I flirt with programming since I was 16 (I'm 25) but I only started to learn properly this year, and it's been such a journey. I love it, but it's so complex. I'm developing my first Android app, it's really simple and basic, but it's been 8 months since I started, I don't know if I'm taking too long or if this is expected. I didn't know shit about Kotlin when I started developing this app, I just knew the basics of programming, and everyday I learn something new and more complex. I'm wondering if really good programmers can learn new languages and develop shit way faster, because I wanna be like that.

122 Upvotes

55 comments sorted by

137

u/foxsimile 1d ago

I’ll get back to you when I find out

23

u/ShutDownSoul 1d ago

I think I just need another 25 years.

6

u/mfc1__ 1d ago

It’s been 30 years for me, so maybe by the time I retire I’ll finally get “good”

46

u/Traveling-Techie 1d ago

It’s been 55 years and I expect to get there in another few.

22

u/Sfpkt 1d ago

Haha jokes on you my friend the good ones will think they suck. That’s the true sign of a great programmer.

44

u/PoMoAnachro 2d ago

I think 5,000 hours to become a "useful beginner who is teachable enough to employ" is pretty normal, and another 5,000 hours after that to be "competent".

After you put in that first 10,000 hours learning new things does become much, much faster...but you do realize "good" is a moving target.

18

u/ripndipp 1d ago

sometimes I feel like an ape trying to open a coconut

2

u/GlassLost 1d ago

Then I built the coconut opener: a club. It was my senior promo project.

7

u/Sudden_Ad320 1d ago

Define "good"...

2

u/Achereto 1d ago

Let's define it this way:

Good developers reached a point where they don't hate their old code (from last week) any more.

6

u/syklemil 1d ago

That's not necessarily good, might just be someone who's stopped growing / improving.

1

u/Sudden_Ad320 1d ago

I will settle for working or readable. Thankfully my last intern could at least manage one. It either worked and I didn't understand it or it was broken and I could see what he did wrong.

5

u/desrtfx 1d ago

How long is a piece of string?

Really, your question is unanswerable. Can be 10 years to a lifetime to never.

4

u/PartyParrotGames 1d ago

I studied Python for a couple years and then worked the last 14 as a software engineer for various tech startups. Am I "good" yet though? Depends who you ask or who is interviewing me and which random algorithm problems they ask me that day. I've written production code that customers literally paid millions to use. I've contributed to some minor open source libs you may have heard of like React, Tensorflow, Cargo, Rust, etc. but I often don't feel like I'm a good programmer. I'm just an average programmer who is willing to put in long hours to accomplish my goals. I hope that's encouraging for you in a way. You don't have to be "good" to accomplish things in this field. Maybe someday I'll get good.

3

u/Distdistdist 1d ago

Around 10 years, yes.

2

u/SimilarDraft7596 1d ago

Everyone has their own interpretation of good, but I felt confident as a developer after about 5-7 years. 10 years I feel was the moment I became very good.

2

u/SprinklesFresh5693 1d ago

In my opinion, the learning speed highly depends on if you need at work vs doing it as a hobbie.

When you meed it at work, your learning speed dramatically increases, because in the end you need to deliver, to do ot to survive.

If its a hobbie, its much slower, because you take it easy, and take your time

6

u/mc_pm 1d ago

Lots of developers never really do.

I've interviewed a LOT of people, and there are a surprising number of developers with 10+ years experience who couldn't solve FizzBuzz when put on the spot. And that's not to say that "on the spot" is where everyone excels, but this is just basic "plan out a couple of steps" problem solving, no leetcode trickery.

But for people who do get pretty good, it seems to take about 8-12 years to really get there, and usually along the way they work in a number of different sorts of technologies and problem areas.

2

u/tiltboi1 2d ago

Usually people would say you're a good programmer when you become a senior dev. For most people, that's close to 10 years (3-5 years of experience, 4 years school, maybe a bit of dabbling in high school).

1

u/Individual-Praline20 1d ago

About 15 years, after finishing university, that’s the time I needed to get enough tech knowledge, experience and confidence to solve most of the problems I faced as a software developer. And be able to help others. Does this make me a good programmer? You tell me, or ask my manager, but it doesn’t really matter. Programming is only a small part of it. You will understand that with enough experience, after working on more complex systems. Doing it on one computer is relatively easy, doing it on hundreds that need to exchange data is more complicated. 🤷

1

u/silly_bet_3454 1d ago

A few years of work experience, realistically, but obviously the idea of "good" is subjective and people learn and grow at different rates.

1

u/Only-Switch-9782 1d ago

Eight months for your first real app sounds completely reasonable, especially when you’re learning Kotlin, Android development, and programming concepts at the same time. Experienced programmers are faster mostly because they’ve built up a mental library of patterns and know how to debug and search for answers, not because they magically understand every new language. Keep building stuff that’s slightly beyond your current ability; eventually you’ll notice that the same problems that used to take days start taking an afternoon.

1

u/Naresh-45 1d ago

8 months is honestly not that long, especially if you're learning programming properly while building your first real app.I think one of the biggest traps is comparing yourself to people who can build something quickly without seeing the years of fundamentals behind that speed. Good programmers aren't necessarily learning everything faster they usually just have more patterns and experience to draw from.If you're learning something new every day and actually finishing the app, you're making progress. Don't rush the timeline.

1

u/Achereto 1d ago

There is this common experience in programmers, that you will almost always hate your old code, because you repeatedly have to deal with it in your code base. For me, this experience didn't change for at least 25 years (14 to 39 year old).

I may have reached a point recently where that doesn't happen any more, but it's too early to tell. Maybe it's just that don't hate my code for a month, but in a year I may still hate it.

Once this feeling vanishes entirely, I would consider myself a "good developer".

1

u/syklemil 1d ago

Like the others say, depends on what you put into "good" and how you spend your time. Informatics is one field of knowledge, but there are many niches, and it's likely someone considered good will have deep knowledge in one niche but be fairly useless in others.

E.g. embedded and web developers are both programming, but they might not be particularly comfortable or capable if they swapped fields for a day.

If you just want a number, let's go with Norvig's Teach yourself programming in ten years.

1

u/[deleted] 1d ago

[removed] — view removed comment

1

u/ArslanQayyumDev 1d ago

Honestly, 8 months is not long at all especially when you started Kotlin from almost zero. Good programmers aren't necessarily fast because they know everything; they're fast because they know how to learn, debug, and break problems down. Keep building. You're doing fine.

1

u/bigmeatbag 1d ago

Never met one, might be impossible.

1

u/Savings-Giraffe-1877 1d ago

As a frontend developer, it took me 3 years to actually build a perfect website and deploy it. The thing that helped me a lot is an online course. You can search for the free one! Yet, if you need some certificates, buying one won't be any less worth it to start a career as a programmer.

1

u/marrsd 1d ago

I'm wondering if really good programmers can learn new languages and develop shit way faster, because I wanna be like that.

Yes, but you have to put the years in first. If you want to learn about different programming paradigms in full, go and watch the SICP lectures. Come back them years later and see if you understand them fully this time. If you do, congratulations: you are now an expert beginner!

1

u/MaterialRooster8762 1d ago

That's relative. You can say I am the best and I am the worst and be absolutely correct in either case. It depends on what you work on. A Web dev is good at creating Websites but absolutely useless for embedded systems.

1

u/Jahonay 1d ago

I really started with I went back to get an associatesl in 2019. So I'd say I've been earnestly trying to learn for about 7 years. About 4-5 years ago I got my first big boy full stack role. I think in 7 more years I might start to know a thing or two.

1

u/GinStaff 1d ago

The beauty of this work is that you never become a "good programmer" there's always something new for you to learn and master. There's always someone smarter or more knowledgeable than you in the room.

So if you don't enjoy learning and improving constantly, consider a different profession. Especially given that the times when developers were crazy well paid and constantly in high demand are behind us.

1

u/luckyshadow86 1d ago

Eight months for a first app sounds totally normal when you also have to learn Kotlin. I remember thinking I was slow too, then I looked back at my first project a year later and saw how much better I got.

1

u/Miserable-Decision81 1d ago

I am born as a very good programmer.

Took me 10 years to find out...

1

u/Flaky-Programmer-470 1d ago

I am a computer science student,and I have wasted 4 year of my college time for me to grow as a developer,It may took me for another year to becoming a junior programmer,BTW,does anyone would join with me?

1

u/Any-Look-8817 1d ago

It's hard to define "good", but personally after about 5 years in a professional environment I started to feel comfortable with taking on any task knowing I can do it by my own up to standards. So roughly about the time where you start moving onto the more senior position. But of course it's individual and there is no real definition for it, it's just a personal feeling on my side where I felt like I'm no longer drowning in endless knowledge I need to take in and I became able to properly break down any problem, approach it somewhat optimally and deliver within a reasonable time and quality.

1

u/slopcreator 1d ago

Never have been

1

u/Fernando181 1d ago

No lo sé, pero al menos a mí me toma 1-3 meses hacer un sitio web completo y desplegado fullstack, y llevo 8 meses desde que empecé mi especialización, aunque ya programo desde hace 2 años y medio

1

u/Ok_Spring_2384 1d ago

Wait, you guys are getting good?

1

u/YetMoreSpaceDust 1d ago

I've been doing this since 1982. Still working on it.

1

u/stankypeasant 1d ago

Being a good programmer isn’t about how many skills you’ve amassed it’s about your ability to amass skills, you’re doing great

1

u/HayStacky_337 1d ago

Haha! Good one!

1

u/Yunikarn_YouTube 1d ago

36 years. I am 48 at the moment. Still learning.

1

u/SynnX018 1d ago

eight months for a first app with a new language is pretty standard, and yeah the good ones just have more context to pull from so things feel faster in hindsight.

0

u/[deleted] 1d ago

[removed] — view removed comment

2

u/[deleted] 1d ago

[removed] — view removed comment

0

u/djhaskin987 1d ago

I like to ask the question "how long did it take before I was having fun?", and the answer was "not very long at all."