Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There's no way to properly learn a language in a year. Even for an advanced programmer who understands many concepts, getting up to speed and understanding idioms takes notably longer. I'm talking someone who has a few years of in depth experience which is usually focused practice, not coding the same thing over and over or playing around. You cannot learn those things at work nor doing algorithmic challenges - maybe someone can actually make a set of such exercises.

The advanced programmer in other language can fall into many traps and produce non-idiomatic (usually overcomplicated) code.

Goes the same when learning a big enough framework.



There is definitely enough time to master a new programming language in a a year. This is not rocket science, programming languages are purposely designed to be easy to grasp. I'd say less than a month for most languages, perhaps only more if it's a family change.

Most people can learn to speak a new (human) language from the same "larger family" (e.g. french from english) in less than 25 weeks.


> There is definitely enough time to master a new programming language in a a year.

I've been using Go for middlin' size projects for several years, and recently wrote about a 10K SLOC program in it. I still don't believe I have mastered the language, not by a long shot.

I've been writing C since the late 1970s, and I still discover things about the language. And I don't know anyone who claims that you can master C++ in a year.


You can be reasonably competent quite quickly but “mastery” is something else and takes much longer. I have done C# for a decade now but I still discover new stuff all the time or finally understand things I knew about but didn’t really get.

Same with languages. You can be conversational pretty quickly but to truly understand a language takes many years.


Bear in mind that all programming languages are not created equal. The surface area for a language with a lot of history like C# is much larger than the surface area for a younger language like Go, for example. I've been writing production Go for about three years now, and I feel like I have a solid grasp on it. I've been writing production Python for more than twice that long, and I still learn new things every few weeks.


You cannot ever reach a level of mastery in which you'll never ever discover anything new. Even the people who came up with the language come up with errors from time to time.

But you can definitely reach a level similar to these people in a couple months full time. If you think the people who design languages have decades of experience, you will be surprised.

I personally would consider it a failure of the language if it really took more than a couple months to master. We are not talking about computer programming in general here; we are talking about a specific programming language: a programming language is an _artificial_ construct whose sole intention is to be easy for humans to work with it. If humans are generally terrible slow with it, then, what is the point of such language?


Perfect example. French and English are not in the same "larger family". French is a Romance language and English, while influenced by French, is a Germanic language. Learning it in 25 weeks depends on your definition of learning. You might be able to communicate basic ideas in 25 weeks but very few people are going to ever master a language in that time.

The same goes for programming languages. The syntax may be easy, depending on your language of choice, but mastering it is another story.


They are in the same "larger family" in the sense they even use mostly the same structure and alphabet. Compare with Korean, which will surely require more than a couple of months.

The CEFR/EU consider you only need around 800h to reach Advanced/C1 french level as an english native speaker, which is around 30 weeks full time. That is way more than "communicate basic ideas", which is more like an A. In fact, the oft-shared [1] map from the US' FSI considers than 24 weeks is enough for a US diplomat to reach _proficiency_ in French.

[1] https://img.theculturetrip.com/1440x/wp-content/uploads/2017...

I think people seriously understimate the amount of hours a single month has. Programming languages are much easier to learn. Very likely you can even memorize the entire specification of your average programming language (save for a couple exceptions) in such time.

Which I wouldn't do to learn a language, but just saying to prove the point.


Many of us are no doubt coding in the equivalent of trader's pidgin - good enough to get the job done on a day-to-day basis, but not really mastery.

There's more than enough examples of people writing C or Java in other languages.


Well, this all depends on:

* Whether you're learning in your spare time outside of your work and other commitments

* Whether you're learning something radically different to anything you've used before to teach you a totally new way to think about solving problems

* Whether you want to reach the level of "yeah, I've used it" or "go ahead, technical interviewer, try to stump me, your large production codebase won't contain anything I haven't seen before"


There's a difference between mastery and whatever it is you think you're doing in a month. Learning syntax is simple enough, but learning to write software in the language's idiomatic style and using common libraries without looking them up every time is a longer task.

It's not like anyone would say the vistor who looks up words in a travel dictionary has mastered the language...


Month of what, though? How much time is that in actual activity-hours?


It's a nice idea, but I would contest the idea that it's even necessary. Maybe it's good for someone with the potential of being a 10x developer, but most people don't have that potential. Some of us don't even want to be a 10x developer.

With some exceptions, most language people were using a decade ago are still around and have paying jobs. There's no reason why everyone should go berserk trying to eat, breathe, and think in code. Life is more than just computers. Personally, I'd rather spend that time tinkering, hanging out with friends and family, working on my side business, making moonshine, traveling, etc. Programming languages suck and I don't want to use them more.

> The advanced programmer in other language can fall into many traps and produce non-idiomatic (usually overcomplicated) code.

Kind of reminds me of when I came to JavaScript from Ruby and overcomplicated the code by treating it like Ruby.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: