# How long did it take you to learn a programming language?



## ScienceNerd361

Greetings my fellow architecture enthusiasts 

I was just wondering, what's the shortest amount of time it took you to learn a programing language, and what language was it?


----------



## Cromewell

The quickest was about 3 days. It was PERL. Granted I didn't know every last nuance but I went from never having heard of it to being able to write my own and modify other people's scripts.


----------



## S.T.A.R.S.

It depends on what you exactly mean.Because you can never completely fully learn any programming language.


----------



## AE7

I started with Visual Basic, terrible language to start with might I add. It was only when I learned Java and C++ in high school that I knew what in the Hell was actually going on.

Modern languages are so C-like now that it's easy to pick up anything and write it. I have been working with Python, I got through the basic stuff in about a week. Back in the day, I picked up PHP in a couple weeks, when I had a project dumped in my lap. There is one language I don't care to learn, that's Ruby. Seeing that I don't care for Ruby, I don't really care for Rails either. I am a Web App Designer and I am saying that I don't care for Rails, go figure.


----------



## NyxCharon

Java took me 3 months to understand all the basic fundamentals. From there, it was a month to understand more advanced topics like databases, applets, etc.


----------



## ScienceNerd361

S.T.A.R.S. said:


> It depends on what you exactly mean.Because you can never completely fully learn any programming language.



If you can never completely fully learn any programming language, than how could anybody ever possibly create one?
The reason it's impossible to never completely learn a human language is because there's different dialects and new words springing up in isolated areas where one instance of a dialect is spoken. This makes it impossible to keep track of a human language's development. Whereas programming languages are well documented and do not suddenly split into other dialects.

So I would disagree, and say it's a perfectly reasonable goal to think a person can learn a programming language in totality, given programming languages are not subject to arbitrary changes like human languages are.


----------



## apj101

Cromewell said:


> The quickest was about 3 days. It was PERL. Granted I didn't know every last nuance but I went from never having heard of it to being able to write my own and modify other people's scripts.



wow...just wow. I can understands something like java or even c is you new basic already....but perl! that took me a month to learn..wow!


----------



## tlarkin

It depends on your willingness to learn, and how well you learn at first.   I tend to get basic concepts down almost instantly but then plateau for a while and then gain another step in my knowledge and then repeat.   Also, the language depends too.  Like for example, you don't really need to know how to write code in Python, more so just use all the Python modules.   I can pick up and use python very easily, almost instantly, but that doesn't mean I am writing my own modules and bridging python to C, C++, obj C, or any other language.

I am always learning so I really cannot tell you how long it took me to learn a language....


----------



## Dropkickmurphys

It is a difficult question to answer, I have done 3 modules in my degree that "taught" us programming -- VB.NET, Java and Advanced Java. Each of these were ~3 months, 4 - 6 hours a week.

The "quickest" I have ever picked up a language was 1 week. I did C# on my industrial placement, and it is similar to Java and uses the .NET framework, so it didn't take me long to get the hang of it.


----------



## tlarkin

I would say most languages are easy to learn hard to master.   Even later down the road as you get really good at coding you will go back and look at your earlier stuff and see all sorts of inefficiencies.


----------



## AE7

tlarkin said:


> I would say most languages are easy to learn hard to master.   Even later down the road as you get really good at coding you will go back and look at your earlier stuff and see all sorts of inefficiencies.



Definitely agreed! I am taking an algorithms course right now, and those things start to jump out at you. Take for instance, sorting algorithms, it drives me nuts when I see someone using something other than merge or quick. I am also really obsessive compulsive about binary trees, it seems that AVL are the only correct, and practical implementation. But that's just me.


----------



## MayaLocke

Once you know one language it is typically fairly easy to pick up other programming languages.


----------



## Cromewell

apj101 said:


> wow...just wow. I can understands something like java or even c is you new basic already....but perl! that took me a month to learn..wow!


I think knowing PHP and C helped a lot. The syntax is very similar and I had a fairly current O'Reilly book on it.


tlarkin said:


> I would say most languages are easy to learn hard to master.   Even later down the road as you get really good at coding you will go back and look at your earlier stuff and see all sorts of inefficiencies.


For sure, those PERL scripts I wrote after day 3 did what they needed to do but looking back at them there's things I could have done better. I think the pinnacle of my PERL days was writing an FTP server and client and yet, I look at it now and there's so much that I should have done but didn't think of at the time.

Even stuff I've written somewhat revently I can go back and improve on, it's kind of a function of crazy deadlines or users who constantly change their minds, but it's so easy to push out something functional and worry about fixing it's inefficiencies later.


----------



## arsenish

man you guys are damn fast. week, two months, 3 months thats just incredible. Java took me about 3 months + just for the basics since it was my first language, and after that since its pretty similary with C++ so didnt took that long, just for basics here again. Did took Assembly Language too, but didnt get a thing about it. well, you gotta keep learning, and reading from you guys have just made me realise how slow i have been moving.. c# is my next plan and then HTML and CSS willl say about 45 days for each then hehe.. cheers fellow enthusiast


----------



## tlarkin




----------



## Dystopia

Uh, learning c++ right now. Been in the class for 12 weeks or so, twice a week, one hour a session. I haven't learned everything yet, not even closed.

There are so many different things you can do, even if you got each concept first time, it would take months, if not years, to learn everything.


----------



## Motoxrdude

It took me about 3 semesters (so about a year) to get a decent understanding of C++. I switched my major so I don't really have a use for it, but sometimes I'll screw around and make little games with opengl and c++.


----------



## bengal85

S.T.A.R.S. said:


> It depends on what you exactly mean.Because you can never completely fully learn any programming language.



I have heard this exact same thing you will never fully learn a language but thats what google is for


----------



## tlarkin

bengal85 said:


> I have heard this exact same thing you will never fully learn a language but thats what google is for



That is kind of a catch 22.  If no one ever learned a whole language, then how did the whole language come to be?  While an individual may never memorize every aspect of every language out there, but at the same time that is what manual pages are for.   That is why syntax examples are for.   

That is like asking someone to memorize every word in the dictionary, if that were the case then what is the purpose of the dictionary?

I would say any individual can completely learn a language in the sense given the manuals they can figure it out.   Even when I write stuff in shell to automate jobs, I may be using a set of commands I have written down 1000s of times.  However, I still open up the manual page to test it out, and I also test it out on the command line interpreter as I go.


----------

