Page 1 of 2 [ 29 posts ]  Go to page 1, 2  Next

yellowtamarin
Veteran
Veteran

User avatar

Joined: 5 Sep 2010
Gender: Female
Posts: 3,763
Location: Australia

08 Jul 2012, 1:47 am

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 :)



one-A-N
Veteran
Veteran

User avatar

Joined: 2 Mar 2010
Age: 71
Gender: Male
Posts: 883
Location: Sydney

08 Jul 2012, 4:56 am

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.



FMX
Veteran
Veteran

User avatar

Joined: 16 Mar 2012
Gender: Male
Posts: 1,319

08 Jul 2012, 6:13 am

While I don't know what it's like to first learn programming as an adult (I started at 10 myself) I agree with one-A-N that programming languages are much easier than human languages. I think if you're good at certain ways of thinking (logical, abstract, problem-solving...) then you should do well at it - and chances are your way of thinking hasn't changed. I'll acknowledge that I find it harder to memorise stuff now than as a child or teenager, so it's probably harder to learn as an adult than as a child or teenager, but definitely doable. Go for it. :)

When it comes to languages I'd recommend Python and C#, in that order. I read this comic before I learnt Python:

Image

... and now that I did I think it's very true (programming being fun again). See http://www.wrongplanet.net/postp4558624.html for a discussion on it. I learnt it using the free book at http://www.diveintopython.net/ which I recommend because of it's approach of showing code first, then explaining it. That fits my learning style well - not sure if that's true for you, but there are plenty of other (free) resources on it.



polarity
Veteran
Veteran

User avatar

Joined: 15 Feb 2006
Age: 47
Gender: Female
Posts: 502
Location: PEBKAC

08 Jul 2012, 8:10 am

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.


guitarman2010
Veteran
Veteran

User avatar

Joined: 12 May 2012
Gender: Male
Posts: 578
Location: Erie, PA

08 Jul 2012, 4:35 pm

I also did programming in high school learned a lot. Now 10 years later I find myself yearning to code but have found I've forgotten much of the concepts. I've tried to go back and refresh my brain but no success. I also spent the last ten years heavily abusing drugs and alcohol but have 4 months sober now so maybe it'll get better. I'd like to write standalone apps for Android :) I've got the tools for it, now its just a matter of putting my brain to work


_________________
When u hit the walls of sanity, u have no-where to go....


noname_ever
Veteran
Veteran

User avatar

Joined: 25 Dec 2011
Age: 50
Gender: Male
Posts: 500
Location: Indiana

08 Jul 2012, 5:26 pm

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.



MyFutureSelfnMe
Veteran
Veteran

User avatar

Joined: 26 Feb 2010
Age: 45
Gender: Male
Posts: 1,385

08 Jul 2012, 10:35 pm

If you were good enough in high school to almost choose it as a career path, I think you will be fine. Programming languages share a lot of linguistic properties with spoken languages, but all of them have far fewer exceptions than spoken languages do so it shouldn't be as difficult as Portuguese. I'd like to say the language itself is almost a nonissue and the logic is everything, but I'm an experienced and active programmer so what goes for me may or may not go for you.



MyFutureSelfnMe
Veteran
Veteran

User avatar

Joined: 26 Feb 2010
Age: 45
Gender: Male
Posts: 1,385

08 Jul 2012, 10:42 pm

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.



yellowtamarin
Veteran
Veteran

User avatar

Joined: 5 Sep 2010
Gender: Female
Posts: 3,763
Location: Australia

09 Jul 2012, 3:37 am

Thanks all! Great help. I think my memory issues will make it a bit harder than when I was a spritely young thing, but I can see the logic in it being easier than Portuguese.

FMX wrote:
See http://www.wrongplanet.net/postp4558624.html for a discussion on it. I learnt it using the free book at http://www.diveintopython.net/ which I recommend because of it's approach of showing code first, then explaining it. That fits my learning style well - not sure if that's true for you, but there are plenty of other (free) resources on it.

Thanks for the links. I have a lot of experience with pythons, but know absolutely nothing about Python. This should be fun. :)



FMX
Veteran
Veteran

User avatar

Joined: 16 Mar 2012
Gender: Male
Posts: 1,319

10 Jul 2012, 1:31 am

Let us know how it goes, yellowtamarin, and feel free to PM me with Python questions. :)



zxy3cpn
Veteran
Veteran

User avatar

Joined: 7 May 2012
Age: 40
Gender: Male
Posts: 934
Location: London, UK

12 Jul 2012, 3:03 am

This book may also be good for those new to programming.


_________________
If my username is annoying to type, shorten it (e.g. z3n)!


yellowtamarin
Veteran
Veteran

User avatar

Joined: 5 Sep 2010
Gender: Female
Posts: 3,763
Location: Australia

12 Jul 2012, 7:53 am

FMX wrote:
Let us know how it goes, yellowtamarin, and feel free to PM me with Python questions.

Will do...though this could take a while ;)

zxy3cpn wrote:
This book may also be good for those new to programming.

Thank you :)



zxy3cpn
Veteran
Veteran

User avatar

Joined: 7 May 2012
Age: 40
Gender: Male
Posts: 934
Location: London, UK

12 Jul 2012, 10:48 am

You're welcome, yellowtamarin!


_________________
If my username is annoying to type, shorten it (e.g. z3n)!


SpazzDog
Raven
Raven

User avatar

Joined: 4 Jul 2007
Age: 44
Gender: Male
Posts: 119

12 Jul 2012, 12:06 pm

I'm 31 myself and I'm not only relearning the programming languages I knew from childhood - C/C++ - but I'm also learning Python and I'm going to pick up a bunch of other languages like php, perl, java, simula-67, forth, any many others - there's a lot of new languages being developed right now and it's all very exciting. For me the initial investment in any new endeavor is always great. It takes a lot of energy to get those new connections made. But once that initial hurdle is over come it's like I'm a teen ager again and I learn new stuff with ease. A good way to learn programming again is the website inventwithpython.com. I went through the first ~200 pages of the first book in a couple weeks (that was with small bits at a time) and I have picked up python pretty easily.

Most important of all: Do not stop doing new things because you are older! That's the worst thing you could do for your brain!


_________________
LadybugS's boyfriend


yellowtamarin
Veteran
Veteran

User avatar

Joined: 5 Sep 2010
Gender: Female
Posts: 3,763
Location: Australia

12 Jul 2012, 9:15 pm

SpazzDog wrote:
I'm 31 myself and I'm not only relearning the programming languages I knew from childhood - C/C++ - but I'm also learning Python and I'm going to pick up a bunch of other languages like php, perl, java, simula-67, forth, any many others - there's a lot of new languages being developed right now and it's all very exciting. For me the initial investment in any new endeavor is always great. It takes a lot of energy to get those new connections made. But once that initial hurdle is over come it's like I'm a teen ager again and I learn new stuff with ease. A good way to learn programming again is the website inventwithpython.com. I went through the first ~200 pages of the first book in a couple weeks (that was with small bits at a time) and I have picked up python pretty easily.

What is programming for if not to create your own cheesy games? I was so proud of my first game back in high school, a King's Quest type adventure game made with the most ridiculously painful program, I think it was called Logo or something.

SpazzDog wrote:
Most important of all: Do not stop doing new things because you are older! That's the worst thing you could do for your brain!

It is excellent advice. I am most hesitant about language though, because that is one thing that can be particularly difficult to learn once the brain has developed. I'll just think about this as a computing/IT skill rather than a language, though, and that should help.



SpazzDog
Raven
Raven

User avatar

Joined: 4 Jul 2007
Age: 44
Gender: Male
Posts: 119

13 Jul 2012, 12:39 pm

It's not like learning a language proper at all. All programming languages do the same thing. Once you break it down it actually becomes quite disappointing that it's so simple. All computers do is add and compare logic gates. So all you have in programming are variations of that theme. When you break down all programming it is composed of the basic formula of arithmetic calculations, data flow and data abstractions like functions, classes, structs. The different schools of programming- functional, OOP, modular, structural are simply organizational abstractions of the very basic operations computers do. Once you get past that abstraction you'll realize the only difference between learning one computer language from another is the different organization of text.


_________________
LadybugS's boyfriend