Monday, July 9, 2012

Learning a programming language as an adult. - Computers, Math ...


yellowtamarin
Velociraptor
Velociraptor

Joined: Sep 06, 2010
Age: 31
Posts: 401
Location: Melbourne, AU


PostPosted: Sun Jul 08, 2012 2:47 am?? ?Post subject: Learning a programming language as an adult. Reply with quote

I was good at programming back in high school, and nearly followed that career path, but things got in the way. Now I can still understand how programming logic works, but I can't remember any actual code beyond IF THEN ELSE.

Has anyone out there taken up programming for the first time as an adult? Or forgotten it then taken it up again? Was it tricky, or do you think I'd find it as easy as I did when I was young? I mean, I have tried to learn other languages (e.g. Spanish, Portuguese) recently and really struggled, even though I was good at learning French in high school. I'm hoping this is completely different, more like riding a bike.

I think there's other threads on here about which languages are good to learn, but feel free to suggest something if you like. I don't have any specific career goals in mind or anything, it's just something I'm thinking about pursuing.

Cheers Smile

Back to top
one-A-N
Phoenix
Phoenix

Joined: Mar 03, 2010
Posts: 550
Location: Sydney


PostPosted: Sun Jul 08, 2012 5:56 am?? ?Post subject: Reply with quote

I first learned to program when I was about 30. At 33, I took a break for a year and half to pursue post-grad studies (philosophy, not computer science) and had to relearn the particular language I was using at work afterwards. It took a while to relearn (hmmm, it was a rather complex language), but programming has been one of my special interests. In my own programming time, I keep trying to do the same things over and over, gradually improving, but never fully succeeding (perseveration?). I am really interested in simple compilers and simple operating systems, so I keep thinking up designs and ideas, starting on them, running out steam when they get too complicated, putting them aside, then getting a new idea a while later...

Learning a foreign language is harder, in my opinion. I taught myself to be a lot more fluent in another language by reading (of all things) the early Harry Potter books in translation. Got some funny looks on the train, but my language skills improved markedly. Still, I am not really fluent. And some of my vocabulary skills are really "useful" (like, I know the words for wand and potions).

Programming languages are simpler and much more regular than natural languages. So they should be easier to learn. As it happens, I originally learned Basic, and these days do a lot of programming in PHP (dynamic web pages). My "core" language is C. I would not necessarily recommend any of these languages as a first language, though. Java is not too bad a choice - it is in many ways a "clean" language - it does not teach you too many bad habits (unlike Basic and PHP). Java does have a huge library of classes in which you can feel a little overwhelmed, but a good tutorial book will prevent that.

Back to top
FMX
Snowy Owl
Snowy Owl

Joined: Mar 17, 2012
Posts: 159


Back to top
polarity
Velociraptor
Velociraptor

Joined: Feb 16, 2006
Age: 34
Posts: 412
Location: P(erson)EBKAC


PostPosted: Sun Jul 08, 2012 9:10 am?? ?Post subject: Reply with quote

While I too am going to recommend a programming language, I'm going to recommend that you not learn a programming language.

A programmer becomes good, not by knowing all the intricacies of a single language, but by becoming familiar with the concepts that are common to all forms of programming, regardless of the language. In fact the more languages you learn, even to just a basic level, the more concepts you come across, and the more methods you will be familiar with which to solve problems. With many languages having a focus on solving certain tasks, knowing several provides insight into solutions that wouldn't be apparent to someone who only knew one language.

Similarly, learning from several people is better than learning from just one source. Excessively formal education of programming doesn't give you access to code examples from many different programmers, and will limit you. You can learn early on by reading other people's code, then adapting it and fixing it. Instead of having a specific problem defined, and then the whole of a solution set out in a textbook, go out and find a problem, and attempt to solve it. Then attempt to improve on the solution, several times if necessary.

What you need to do with your computer is set up an environment on it, where you can find problems to solve, and probably one of the best ways is to set up a web server, and then use programming in web design. That will give you something to use Python (PHP, Java, PERL, Ruby, etc.) on, as well as the slightly more accessable Javascript (it could also give you access to database programming which is a great skill to have, seeing as a lot of programming is all about manipulating data).

Another way is to play some computer games. MMORPG games like WoW and Rift allow players to customise the user interface by writing addon programs. These can be incredibly simple, and in the case of WoW are sometime only slightly more complicated than the macros used by most non-programming players. You don't need to subscribe to either of those games, as they have unlimited duration trials. WoW has a huge amount of quality documentation on writing addons, as well as a massive library of other people's addons that you can look at, over at wow.curse.com, and while Rift, being newer, has slightly less documentation, it's made quite a few improvements over WoW in it's Addon system, that make it easier to use, if not as easy to find some kinds of information.

The language used by both games for their Addons is Lua, and after programming BASIC (spectrum 48k, BBC Micro, and QBASIC under DOS), Javascript, PERL, Python, PHP, and even assembly language (PIC microcontrollers), it's easily my favorite language to use. Python comes joint second because it too is relatively easy to learn and use, alongside PIC assembly language, because although it's something most coders these days wouldn't dream of doing, on account of the language and concepts being so far removed from what a lot of them expect from a language, there's nothing like coding as close to the hardware as possible to learn how to optimise your code.
_________________
You aren't thinking or really existing unless you're willing to risk even your own sanity in the judgment of your existence.

Back to top
guitarman2010
Blue Jay
Blue Jay

Joined: May 13, 2012
Age: 28
Posts: 76


Back to top
noname_ever
Deinonychus
Deinonychus

Joined: Dec 26, 2011
Posts: 349
Location: Indiana


PostPosted: Sun Jul 08, 2012 6:26 pm?? ?Post subject: Reply with quote

polarity wrote:
While I too am going to recommend a programming language, I'm going to recommend that you not learn a programming language.

A programmer becomes good, not by knowing all the intricacies of a single language, but by becoming familiar with the concepts that are common to all forms of programming, regardless of the language. In fact the more languages you learn, even to just a basic level, the more concepts you come across, and the more methods you will be familiar with which to solve problems. With many languages having a focus on solving certain tasks, knowing several provides insight into solutions that wouldn't be apparent to someone who only knew one language.


The intricacies and idioms of each language are important, but not in the beginning. The language specific things (precedence rules, short circuiting conditional rules, pointer manipulation in C/C++, the way each language handles global values, multiple inheritance implementations, exception handling) are important as you become more advanced. If you don't respect the idioms of a language, the code that is written looks extremely odd. An example is using a struct in C as an object of a class. A proper class has data members and function members. You can do the same thing in C (adding functions to a structure by making a fields that are pointers to the functions. It works, but looks really odd.
Back to top
MyFutureSelfnMe
Phoenix
Phoenix

Joined: Feb 27, 2010
Posts: 816
Location: NYC


Back to top
MyFutureSelfnMe
Phoenix
Phoenix

Joined: Feb 27, 2010
Posts: 816
Location: NYC


PostPosted: Sun Jul 08, 2012 11:42 pm?? ?Post subject: Reply with quote

one-A-N wrote:
I first learned to program when I was about 30. At 33, I took a break for a year and half to pursue post-grad studies (philosophy, not computer science) and had to relearn the particular language I was using at work afterwards. It took a while to relearn (hmmm, it was a rather complex language), but programming has been one of my special interests. In my own programming time, I keep trying to do the same things over and over, gradually improving, but never fully succeeding (perseveration?). I am really interested in simple compilers and simple operating systems, so I keep thinking up designs and ideas, starting on them, running out steam when they get too complicated, putting them aside, then getting a new idea a while later...

Learning a foreign language is harder, in my opinion. I taught myself to be a lot more fluent in another language by reading (of all things) the early Harry Potter books in translation. Got some funny looks on the train, but my language skills improved markedly. Still, I am not really fluent. And some of my vocabulary skills are really "useful" (like, I know the words for wand and potions).

Programming languages are simpler and much more regular than natural languages. So they should be easier to learn. As it happens, I originally learned Basic, and these days do a lot of programming in PHP (dynamic web pages). My "core" language is C. I would not necessarily recommend any of these languages as a first language, though. Java is not too bad a choice - it is in many ways a "clean" language - it does not teach you too many bad habits (unlike Basic and PHP). Java does have a huge library of classes in which you can feel a little overwhelmed, but a good tutorial book will prevent that.

Last I heard, most university CS programs start people in Java these days (University of Wisconsin switched to it from C about two years late for me, I already knew C going in) and I understand that is because Java doesn't have pointers and does have a garbage collector and more extensive built in class library including GUI functions. However, I'm not convinced that makes it a better place to start. I think starting in a non-OO language like C, with its very limited standard library and *lack of* a garbage collector, makes you more aware of what you are doing which is actually valuable to beginners. There's also the issue that you will most likely *not* be developing in Java as a professional, and you may want to start closer to where you want to go.

Incidentally I suspect I get better job offers now because universities aren't churning out C++ coders and I am a very good one. Less competition. Fewer C++ shops too though.

Back to top

Source: http://www.wrongplanet.net/postt203216.html

conversion disorder the chronicle spinal stenosis the forgotten man mike jones just friends chronicle

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.