How Many Programming Languages Is It Possible To Know?
As I go about learning to develop with ASP.NET I can't help thinking what I think about every time I start learning a new programming language or skill -- does my head have the space for all the new information?!
While I'm sure the amount of knowledge currently stored in my head doesn't even come close to pushing the limits of the human brain I do sometimes feel a bit over-whelmed when I consider how much knowledge I need to retain in order to do my daily job.
It all makes me think of the age-old saying:
Does adding yet another skill to my tool belt mean I'll be just a little less able at one of those I already use?
Or, just as worrying, does learning something new mean something else is forgotten. Gotten rid of to make space. I remember reading that Einstein used to try and forget the phone numbers of people he no longer called, so that space was freed-up for something else.
Perhaps we each have our own amount of RAM that can be used. Perhaps this decreases with age. Perhaps I should consider stopping trying to learn more than I really need to and concentrate on getting better at the ones I do know.
Anybody ever think like this or, as I expect, am I just weird?
Of course you can learn more programming languages. Most are the same after all. Function, Sub, iterator, loop, encapsulation..
The only difference is the libraries.
---* Bill
Reply
I guess you're right. I'm using C# with my ASP.NET learnings and it's just Java really. Only a few differences to remember and I'm away. What I need to learn are the various concepts of ASP.NET, the cans/can'ts of it and all the bugs and nuances that I'm bound to uncover. Maybe I worded it wrong above. Maybe it should say "How many programming environments is it possible to know". Either way the question still stands - does the mind have a limit of what can be learnt?
Reply
I agree with you Bill. Once you have the mechanics down the rest is just semantics. Many times when you start a new programming language it's just a matter of figuring out what the equivalent function/sub procedure is to use in a particular situation. I find myself spending more time on those types of items initially versus understanding what's next.
Reply
Doesn't matter how many you know. What does matter is the concepts behind the languages.
I've met a few programmers who couldn't distinguish between the differences of do/while, for/next or repeat/until type loops. Couldn't write simple bubble sorts. And these were folks straight out of Uni. :(
You've already proved you can program. The rest is just the semantics and quirks of the language in question.
Reply
I couldn't write a simple bubble sort. Not without my mate Google.
Reply
Show the rest of this thread
The trouble is, once you start learning a technology, to get proficient in it you have to dedicate a lot of time to understand all it's cleaver functions and more than usually it quirks. I find that I start to forget what I knew previously. Not only that, technology is always moving forward as are new tricks so by learning something else at a lower level you are losing time that you would be using to learn the new tricks of the old technology. I definitely go for that 'jack of all trades and master of none'.
I moved away from notes development in the commercial world to become a business analyst but I love lotes and still dabble at home. I'm still learning though now I'm often relearning. The reason I moved to being a BA was actually to get away from the constant need to learn and to stay on top of the tree but domino development is still in me. Having said that, you have to know a number of languages to be a top notes developer (and I know nothing about Java nor had the time to learn). Moving to .NET was something I just wasn't willing to do especially as I had tried and thought it was a complete nightmare compared to developing in the notes enivironment.
I suspect you are getting to that point where job security is on your mind and want to branch out. That's what I got to and thought it far safer to just leave the development industry.
Reply
Sure you can. The question is will you have the time to stay current on all the technologies you know? Keeping up on changes becomes more difficult as you expand on the tools. I sometimes feel like my brain has a finite amount of space (like a hard drive). In order to make room for the new stuff. Some old stuff needs to be archived.
Reply
Learning the MS tech stream is time consuming. Being in the tech side you are the CIO's "biatch" when they, (whimsically?), decide to migrate away from Notes.
If you don't move away from the technology then you either learn the new technology, or your employment viability starts to diminish... rapidly..
I like to learn new stuff, but the ramp up is frustrating, like learning to walk again..Unless i have a good IDE I find myself writing a mish mash of languages in the one line sometimes.. hmm.. perhaps more medication will help..
Reply
...as one gets older
was the unsaid continuation I heard in my head.
I think that as we get older, our capacity to learn new stuff does decrease with time, but is more than offset by experience and non-technical skills, such as being able to talk to a customer, or make a realistic estimate of work to be done.
Reply
I have to say it, yes you are weird :)
just kidding!!!
I read an article some time back where it was talking about a master violinist who had played nearly everyday since childhood. But he was noted for saying that if he missed a day of practice even with all the years of practice beforehand he could tell a difference in his playing when he started back.
I guess technology can be the same way. Like several others have said if you aren't using the tool regularly you will forget some aspects of it. But as you've seen, learning new technologies can help you learn more about ones that you already use. ex. Adding Flex to Notes, or mimicking features into your code in Notes that you learned elsewhere
Even if you forget some things you probably aren't going to forget it all. So if you use .net for a while, you aren't going to forget Notes overnight.
For me I've forgotten more than I'll ever know :)
Reply
If you're weird, I'm bonkers.
There are some really fascinating concepts concerning the brain, it's ability to learn, remember, forget and so on. Most athletes are familiar with "muscle memory", as would be most musicians who have taken the time to master an instrument. I read a great paper on this theory that our consciousness is made up of interconnected and overlapping neural nets. Each net represents a sphere of the physical world around us. For example, you have a layer of your brain dedicated to the space around your physical person. It knows where the mouse is when your hand isn't upon it, knows where the floor ought to be when you take that next step, etc. There's also the layer of our immediate senses. Then there's the layer of short term, still being processed, memory. I think our ability to learn depends on the thickness of this region and the strength of it's connections to our long term memory and senses determine how quickly we learn and how well we remember. Most memory can be indexed by the brain with sensory input or associative imagery. So as we learn new things, our brain is amazingly abstracting them and connecting them to familiar concepts. That's why it's easy to pick up a new language once you've trained your brain to learn new languages. Learning that first one though falls on a concept known as neural plasticity.
Our brains are amazing in that we can rewire them almost at will by forcing ourselves to learn new things. I had a great experience with this 6 years ago when I started getting symptoms of carpal tunnel syndrome in my left wrist. Turns out the Qwerty key map is very left hand intensive. A little research led me to the DVORAK key map, which was designed to balance the keyboard use between left and right hands for the English language. It took me 3 months of every day use to get proficient and another 3 to get my speed back up to where I was with Qwerty. Now I am past the speed of Qwerty as the layout is 20% more efficient.
So I had to rewire my brain, force feeding it new muscle memory, to get where I wanted to go. I believe, because of this experience, there is nothing we can not learn with sufficient persistence. It took me 8 hours on a Saturday to become proficient at throwing mud on a course of brick with a trowel. It took my daughter about 20 - 30 minutes to learn how to flip a pan cake with a spatula "just right". But in both cases it will take us many days of repetition to really solidify those pathways in our brains and achieve any level of mastery.
Taking this all into account, I have come to two conclusions. You can learn as much as you want and the more you push your brain to learn new things, the more nimble it is. So I think it's particularly important, as we age, to keep learning new things - programming languages included.
Reply
How did I know the man who knows something about just about everything would have ideas about how much it's possible to know.
One day I'll find a topic you know nothing about...
Reply
Show the rest of this thread
Yes, other people think like this and yes, you might be weird. I believe that there are things you forget. I've used, I think 27 different languages in my career. Two of which I invented. However, I don't remember anything about COBOL but there are periods which are very important.
Reply
I feel it's good to know as many languages/tools as you can. But often you may confuse with the syntax. For example, sometimes I use Alert.show in JavaScript and LS for loop syntax in Flex. Yes it's easy to correct but sometimes it's embarrassing :)
Reply
I do. So does Homer Simpson - "Everytime I learn something new it pushes something old out of my brain." :-)
Reply
I'm with you Jake. At any time I think I have enough space in my mind to develop in two back-end languages, along with three front-end "languages" (HTML, CSS, Javascript).
I know about five back-end languages but if I do not use them regularly I forget about them. That's fine, because if I go back to them, I'll recover them from long term memory quickly. Plus, there are so many ways now to get help, things like type-ahead coding, Stackoverflow, etc.
My advise is to be really good in the front-end, which you are, since that is needed for every modern platform. On top of that, be really good in at least one, preferably two back-end technologies for which there is demand. If time allows, do play around with all major platforms so that you at least understand them.
I find both a strategy of specialization or generalization to be risky, that's why I try to combine them. Know a bit about all platforms, be good in one or two. It costs a lot of time, but I consider it worthwhile.
Reply
You sound just like me Ferdy!
"Know a bit about all platforms, be good in one or two. "
That's exactly my approach.
Reply
The sky is the limit :-) (well, and the available time, too...)
Reply
Hi Jake..
Yep - the sky is the limit - or in my case - the edge of the solar system - no matter what age ! Five years ago I decided I was terminally bored with programming (yes - it can happen :) ... endless business applications of the same old thing, regardless of language) ... so I enrolled part-time for a BSc in Planetary Science - got it - and started a PhD in Planetary Physics last October.... Anything is possible.. Congrats on the birth of your third child btw...
What a long journey from the MLM days !
Gillian
Reply
Hi Gillian,
Long time no hear. It is a long journey since then. Must be 11 years ago now. Your journey sounds a lot more interesting than mine though.
Not heard from the Merrill lot for a while now. Matt Clarke came on my stag do, but not heard of the others for years now.
Good luck with the PhD!!
Jake
Reply
The language is secondary, the ability to help people achieve their aim is primary.
All oop languages are roughly the same n'est pas?
Reply
Agreed.
When I used the word "languages" I should really have said platforms though. Learning one language over another is fairly trivial. What normally takes most time (memory space) is the DOM and class structure for any platform.
But, yeah, you're right. It's much more important to make a usable application than it is one that's expertly coded.
Reply
Show the rest of this thread
I think your thinking is weird...
You assume that learning ability is a zero sum game. I believe (and observe) that this is not the case.
Time IS of finite amount, however. Human brain is a beautiful tool, whose greatest strength is correlating abstract unrelated information. I believe that levering that makes learning a non-zero sum game.
I have a lot of varied interests (beyond computers mind you) and I'm always amazed how improving on one field actually positively impacts others - seemingly unrelated activities.
Reply