How do you learn a new computer language?
-
in a professional setting, the answer is usually: figure out what the existing program is doing, and then figure out where the problem is, then figure out how to fix it. learn enough of the language to identify and fix the problem. learning "aspects" of the language is not in scope. basically, not being a student anymore, i would only learn a new language if there was a need for it. ex: the web isn't a good place for C++, so i had to learn ASP. but ASP isn't useful on Unix servers, so i learned PHP. and then, i would learn just enough to get the job done, because i have better things to do with my time than learning the subtleties of languages i'm not going to use. languages are means to ends, not ends in and of themselves. IMO.
I don't fully agree with your second paragraph. I think that as professionals, we have (at least try) to learn continuously, maybe not learn all the subtleties of a new language or technology, but enough to be able to keep up with them. I agree with you that there are better things to do than to learn, but in our busines companies to think it is profiterable (sp?) to invest in continuous education like other professions do (medical, law, engineering, ...) so it is up to us, either on company time or on personal time to do as much as possible. (and I usually fail to do so).
Watched code never compiles.
-
I don't fully agree with your second paragraph. I think that as professionals, we have (at least try) to learn continuously, maybe not learn all the subtleties of a new language or technology, but enough to be able to keep up with them. I agree with you that there are better things to do than to learn, but in our busines companies to think it is profiterable (sp?) to invest in continuous education like other professions do (medical, law, engineering, ...) so it is up to us, either on company time or on personal time to do as much as possible. (and I usually fail to do so).
Watched code never compiles.
well, i get your point. but i really don't have the time at work to spend learning languages i'm not using on the off chance i'll need to use it someday, maybe. if i want to learn something on m own, it's because i find it interesting, not because i want to keep up with anything. but that's just me.
-
I would like to know how you learn a new computer language. If you are completely new to programming, how do you learn? If you have programmed in some other languages before, how do you learn? Do you learn as many aspects of the language you can? Or do you just learn what the project requires you? When I started programming (in C++), I took a course. In there I learned even the advanced level of the language. Right now I am using C#, I want to learn as many aspects of the language as possible, but find out it is very time consuming. :doh:
I learned programming through trial and error. And reading a lot of books. And CodeProject. -Z2
ztgreve-brain$ createCProgram segmentation fault please wait while ztgreve-brain reboots.
-
I learned programming through trial and error. And reading a lot of books. And CodeProject. -Z2
ztgreve-brain$ createCProgram segmentation fault please wait while ztgreve-brain reboots.
That's a nasty signature block... pass the eye bleach!!
Silence is golden... but duct tape is silver!! Booger Mobile - My bright green 1964 Ford Falcon - check out the blog here!! | If you feel generous - make a donation to Camp Quality!!
-
I find the only way to learn is to do and then, preferably, teach. Little known fact - your knowledge retention when teaching can be as high as 90% compared to 10% sitting in a classroom being lectured... I have normally learned new languages because of a need or desire to use them, rather than just as a desire to learn them. So I have a project in mind, and start programming. I usually do a few 'test' programs as I go - just testing out concepts and then, when I feel I understand them sufficiently to make an informed decision, I use them (or otherwise) in the project. I also find that I continue to learn by not reusing code without question; so, when not time critical, I will look over existing libraries that I or my employer has, and investigate other methods that could be used - this often leads to new pastures where I feast upon the lush, fresh grass of knowledge (sorry, waxed lyrical there for a moment) What I find I can't do is just read (or watch videos) about some technique or other without doing. Personally I also find I need to understand what's going on in order to feel comfortable using new methods. Learning something as big as a programming language is necessarily time consuming, so I generally try to concentrate on one area at a time, until I am reasonably comfortable with it. Small steps give you a better feeling of progress, and you can always re-engineer stuff that uses a familiar technique. Example: When I was first learning Linq (and I am still no expert) I still wrote a lot of
foreach(droid in collectionOfDroids)
{
if(droid.name = theDroidImlookingFor)
{
foundDroid = droid;
}
}Rather than using the equivalent Linq, because although I knew it was possible, and approximately how to do it, I wasn't comfortable enough that I knew it well enough to risk life code on it. But I did tend to comment it so I could come back later and re-do it if it turned out that Linq would be 'better'.
MVVM# - See how I did MVVM my way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
You are assigning theDroidImLookingFor to droid.name. == I sure wouldn't take your class;O} Just kidding, I know it's just a typo
-
I would like to know how you learn a new computer language. If you are completely new to programming, how do you learn? If you have programmed in some other languages before, how do you learn? Do you learn as many aspects of the language you can? Or do you just learn what the project requires you? When I started programming (in C++), I took a course. In there I learned even the advanced level of the language. Right now I am using C#, I want to learn as many aspects of the language as possible, but find out it is very time consuming. :doh:
When I was in high school, I took a programming class that involved Visual Basic, but I didn't like VB much so I learned QuickBasic on my home computer by reading the documentation built into QuickBasic. Lots of playing around (making games, visualizations, and so on). Years later, I now laugh at my best QuickBasic code, but it served its purpose to get me thinking about the right things. When I learned WPF (because it seemed interesting), I read a book on WPF and played around (making a code migration utility). When I learned XSLT, I did so because it was required of my job and I didn't read any books. I just stumbled through some examples laid out by the Umbraco community and Googled and tested when I ran into problems. I still haven't learned all the aspects of C#/VB.Net. I need to look more into LINQ and I'm curious about expression trees. I bought a book on LINQ that has a section on expression trees and I'll work my way through that as time permits. I'm sure I'll be Googling a bit as well. What I do know of LINQ I've gathered from coworkers and online sample code. So there are many ways I learn. Unfortunately, they are all time consuming. Such is the nature of the beast of learning. I find the hardest part of learning is being motivated enough to devote time to a subject... if you've got that covered, I wouldn't worry about it being time consuming, as your time is being well spent.
-
That's a nasty signature block... pass the eye bleach!!
Silence is golden... but duct tape is silver!! Booger Mobile - My bright green 1964 Ford Falcon - check out the blog here!! | If you feel generous - make a donation to Camp Quality!!
Why? Color (un)coordination?
ztgreve-brain$ createCProgram segmentation fault please wait while ztgreve-brain reboots.
-
I would like to know how you learn a new computer language. If you are completely new to programming, how do you learn? If you have programmed in some other languages before, how do you learn? Do you learn as many aspects of the language you can? Or do you just learn what the project requires you? When I started programming (in C++), I took a course. In there I learned even the advanced level of the language. Right now I am using C#, I want to learn as many aspects of the language as possible, but find out it is very time consuming. :doh:
Also I prefer books. And CP articles. BTW here more than couple of ways to learn anything in Internet. Education Needed[^]
thatraja
FREE Code Conversion VB6 ASP VB.NET C# ASP.NET C++ JAVA PHP DELPHI ColdFusion
HTML Marquee & its alternativesNobody remains a virgin, Life screws everyone :sigh:
-
I would like to know how you learn a new computer language. If you are completely new to programming, how do you learn? If you have programmed in some other languages before, how do you learn? Do you learn as many aspects of the language you can? Or do you just learn what the project requires you? When I started programming (in C++), I took a course. In there I learned even the advanced level of the language. Right now I am using C#, I want to learn as many aspects of the language as possible, but find out it is very time consuming. :doh:
1 Read 2 Do 3 GOTO 1
Will Rogers never met me.
-
That's a nasty signature block... pass the eye bleach!!
Silence is golden... but duct tape is silver!! Booger Mobile - My bright green 1964 Ford Falcon - check out the blog here!! | If you feel generous - make a donation to Camp Quality!!
This sig better?
Attempting to load signature... A NullSignatureException was unhandled. Message: "No signature exists"
-
I would like to know how you learn a new computer language. If you are completely new to programming, how do you learn? If you have programmed in some other languages before, how do you learn? Do you learn as many aspects of the language you can? Or do you just learn what the project requires you? When I started programming (in C++), I took a course. In there I learned even the advanced level of the language. Right now I am using C#, I want to learn as many aspects of the language as possible, but find out it is very time consuming. :doh:
Simply by doing it. Start simple and move on to complexer things. A book is a very good starting point. In the end most languages boil down to the same things with more or less the same functionality and remember, anything you want to do, chances are, someone already did it before you, google is your friend.
V.
-
I would like to know how you learn a new computer language. If you are completely new to programming, how do you learn? If you have programmed in some other languages before, how do you learn? Do you learn as many aspects of the language you can? Or do you just learn what the project requires you? When I started programming (in C++), I took a course. In there I learned even the advanced level of the language. Right now I am using C#, I want to learn as many aspects of the language as possible, but find out it is very time consuming. :doh:
I just added "Javanese" to my languages at facebook. Easy as that.
regards Torsten When I'm not working
-
I would like to know how you learn a new computer language. If you are completely new to programming, how do you learn? If you have programmed in some other languages before, how do you learn? Do you learn as many aspects of the language you can? Or do you just learn what the project requires you? When I started programming (in C++), I took a course. In there I learned even the advanced level of the language. Right now I am using C#, I want to learn as many aspects of the language as possible, but find out it is very time consuming. :doh:
What I do is I decide on a project which I know I cannot possibly accomplish with my current level of understanding - then I get started and don't stop until I have accomplished the project. I mainly use google and particularly articles from CP if there is a particular area I do not understand - for me books tend to be more something I browse to get an understanding of general principles. This has worked very well for me - I think having as a goal 'learning a language' is going to feel time consuming as this is such a broad and frankly impossible goal(just look at all the new developments in C# every few years) that you may never really feel satisfied by your accomplishments. This is why I like projects - they give me a goal, I learn something new, if I feel it will be of use to others I can then maybe write an article and most importantly it turns learning into something enjoyable...
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
-
This sig better?
Attempting to load signature... A NullSignatureException was unhandled. Message: "No signature exists"
-
I just added "Javanese" to my languages at facebook. Easy as that.
regards Torsten When I'm not working
wow. I think you are talking about Japanese... :)
-
I would like to know how you learn a new computer language. If you are completely new to programming, how do you learn? If you have programmed in some other languages before, how do you learn? Do you learn as many aspects of the language you can? Or do you just learn what the project requires you? When I started programming (in C++), I took a course. In there I learned even the advanced level of the language. Right now I am using C#, I want to learn as many aspects of the language as possible, but find out it is very time consuming. :doh:
I prefer taking a class. When I started learning C# (after 10+ years of C with a dabbling of C++) I understood the language well enough but didn't have anything to do with it. Taking a class meant I was given assignments and feedback on my solutions. Books I've seen are dreadful and don't teach very much -- in particular, the VB book I bought when I took a VB assignment didn't get to VB syntax until chapter eighteen, everything up to there was on Visual Studio.
-
I find the only way to learn is to do and then, preferably, teach. Little known fact - your knowledge retention when teaching can be as high as 90% compared to 10% sitting in a classroom being lectured... I have normally learned new languages because of a need or desire to use them, rather than just as a desire to learn them. So I have a project in mind, and start programming. I usually do a few 'test' programs as I go - just testing out concepts and then, when I feel I understand them sufficiently to make an informed decision, I use them (or otherwise) in the project. I also find that I continue to learn by not reusing code without question; so, when not time critical, I will look over existing libraries that I or my employer has, and investigate other methods that could be used - this often leads to new pastures where I feast upon the lush, fresh grass of knowledge (sorry, waxed lyrical there for a moment) What I find I can't do is just read (or watch videos) about some technique or other without doing. Personally I also find I need to understand what's going on in order to feel comfortable using new methods. Learning something as big as a programming language is necessarily time consuming, so I generally try to concentrate on one area at a time, until I am reasonably comfortable with it. Small steps give you a better feeling of progress, and you can always re-engineer stuff that uses a familiar technique. Example: When I was first learning Linq (and I am still no expert) I still wrote a lot of
foreach(droid in collectionOfDroids)
{
if(droid.name = theDroidImlookingFor)
{
foundDroid = droid;
}
}Rather than using the equivalent Linq, because although I knew it was possible, and approximately how to do it, I wasn't comfortable enough that I knew it well enough to risk life code on it. But I did tend to comment it so I could come back later and re-do it if it turned out that Linq would be 'better'.
MVVM# - See how I did MVVM my way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
_Maxxx_ wrote:
Rather than using the equivalent Linq, because although I knew it was possible, and approximately how to do it, I wasn't comfortable enough that I knew it well enough to risk life code on it. But I did tend to comment it so I could come back later and re-do it if it turned out that Linq would be 'better'.
Yes, we move to new techniques step by step. In C++ I remember moving to STL where my initial use amounted to no more than using basic_string, vector, etc., instead of MFC CString, CArray, etc. Then some algorithms, then algorithms plus function objects. Re: C# LINQ and lambdas, I now find that having gotten over the learning curve I find such code easier to read and understand than traditional loops and conditionals! That's because it reads in a more declarative manner.
Kevin
-
When I was in high school, I took a programming class that involved Visual Basic, but I didn't like VB much so I learned QuickBasic on my home computer by reading the documentation built into QuickBasic. Lots of playing around (making games, visualizations, and so on). Years later, I now laugh at my best QuickBasic code, but it served its purpose to get me thinking about the right things. When I learned WPF (because it seemed interesting), I read a book on WPF and played around (making a code migration utility). When I learned XSLT, I did so because it was required of my job and I didn't read any books. I just stumbled through some examples laid out by the Umbraco community and Googled and tested when I ran into problems. I still haven't learned all the aspects of C#/VB.Net. I need to look more into LINQ and I'm curious about expression trees. I bought a book on LINQ that has a section on expression trees and I'll work my way through that as time permits. I'm sure I'll be Googling a bit as well. What I do know of LINQ I've gathered from coworkers and online sample code. So there are many ways I learn. Unfortunately, they are all time consuming. Such is the nature of the beast of learning. I find the hardest part of learning is being motivated enough to devote time to a subject... if you've got that covered, I wouldn't worry about it being time consuming, as your time is being well spent.
> I find the hardest part of learning is being motivated enough to devote time to a subject... Agree. Well maybe while I was a college student, I was interested in the subject. After working for sometime, I find out programming is boring. I can do the job, but find out I don't want to touch it (programming) after work. (That means my learning, at most of the time, was from studying source code my coworkers have transferred to me.) If I want to, I could have taken a course in ASP.NET almost 3.5 years ago after I started a new project in ASP.NET. Right now as I have a book on C# 2.0 (yes). I don't want it to collect dust, so I pull out and read from time to time. But find out reading it while taking transit back and forth workplace is both boring and hurt my arms.