Ask Slashdot: Can an Old Programmer Learn New Tricks?
An anonymous reader writes "I have been programming in some fashion, for the last 18 years. I got my first job programming 15 years ago and have advanced my career programming, leading programmers and bringing my technical skill sets into operations and other areas of the business where problems can be solved with logical solutions. I learned to program on the Internet in the 90s.. scouring information where ever I could and reading the code others wrote. I learned to program in a very simple fashion, write a script and work your way to the desired outcome in a straight forward logical way. If I needed to save or reuse code, I created include files with functions. I could program my way through any problem, with limited bugs, but I never learned to use a framework or write modular, DRY code. Flash forward to today, there are hundreds of frameworks and thousands of online tutorials, but I just can't seem to take the tutorials and grasp the concepts and utilize them in a practical manner. Am I just too old and too set in my ways to learn something new? Does anyone have any recommendations for tutorials or books that could help a 'hacker' like me? Also, I originally learned to program in Perl, but moved onto C and eventually PHP and Python."
You have 18 years of learning by doing.
Classes and tutorials are not what got you there. You did things.
Name a program you could make in C or perl that you know well. Now try one of the new languages you wish to learn and set the goal of making that program in that language.
Then do it.
You'll have to look up syntax etc for every little operation. But you'll learn. And once you know how to do that you'll have the confidence and core knowledge to bootstrap yourself further.
I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
maybe that's your problem. just taking a framework and using it for nothing leaves you with nothing.
most "frameworks" are just gobbled up shit anyways, quite often now consisting of other frameworks which consist of other frameworks and so you end up with something that serves a tcp/ip connection, serves 100kb of files but somehow manages to take up 300mbytes of disk space and 600mbytes of ram...
so whats a hip framework today? is it hip because it's actually good? unlikely. as proof just check what was hip and cool 10 years ago, 9 years ago and so forth.
world was created 5 seconds before this post as it is.
I'm in about the same situation, except that I'm not 100% autodidact (I *did* learm programming at school, back in the 1970's), and I sometimes feel the same.
There's one observation though: we've got a number of 'junior programmars' here, fresh from school.
They're all extremely good at what they do, much better at using a framework than I am, but at the same time they're not even competent in stuff I consider elementary.
Among them are 4 (four) Flash developers. As a test, when we moved to another building and they all got new computers last year, I made them configure their mail reader (MS Outlook) by themselves. Just gave them each a piece of paper with everything they needed, set them loose, and observed.
One immediately came back asking for help, and two of the others wouldn't have got it working without assistance from the fourth.
Those same four are proficient in Perforce (source management) because they were taught how to use that that at school, and when they were hired, the person who hired them (who left the company since) installed a Perforce server especially for them. When I tried to make them switch over to Subversion because that's what I and everyone else uses here, three out of four complained that it was too difficult. Even with Tortoise as a client.
I've been a programmer (mostly) for the past 25 + years.
At 16 I wrote my first computer game, love it and then... Stopped.
Used Fortran, Cobol and stuff and eventually Java Enterprise stuff.
Realised I HATED IT!!
At 46 decided games were my passion (should have continued from my first game at 16).
Fast forward 3 years I feel proficient in Objective-C, Cocos2D and other game frameworks - I absolutely love it. 3 published games later and a pile of other stuff - Having the time of my life.
Do what you love is all I can say to anyone readying this.
And if you want to learn IOS there is NO BETTER COURSE out there (yeah I like capital letters) than the free Stanford CS193P course on iTunes - Google it.
Paul Hegarty rocks as an instructor.
Embrace it, I am living proof its never too late!
Games Programmer And Designer
I started to learn programming at the age of 11, and two years later had a 'summer job' writing software for a contracting firm in central London. That was in 1984. I'm now 43 years old, and am still learning new things. I stopped contracting a couple of years ago for a simpler life, and my software development is more about scratching my itch rather than a clients, and it is certainly more interesting that way. If you're not motivate to learn something new just for the sake of it (I'm a big fan of Duolingo and Khan Academy) then you're going to have to find that itch for yourself.
Any fool can talk, but it takes a wise man to listen.
Yes, you can learn new tricks, but like everything else you have to work at it. I've been programming in some fashion for close to 30 years but I'm still learning new stuff all the time (getting employed on the basis of the new skills is a bit harder, but not giving up yet).
If you are struggling to come to grips with frameworks, might I suggest that you are probably not getting 'why' they are written, or what they are trying to achieve. Not getting that means you are trying to memorize a whole bunch of stuff that doesn't seem to make any sense, and that is basically impossible.
The easiest way to understand the 'why' of a framework is to start trying to write equivalent things yourself from scratch.
Once upon a time I installed Django and worked through the tutorial. Admittedly I was pretty impressed with the inbuilt admin interface that you got for very little code, but beyond that it all seemed too long-winded and abstract for what I wanted to do. So I decided to not use Django and just write my own application directly using wsgi.
I spent a day or two happily coding up a number of functional pages and a rudimentary menu system. Then I realized that some of my code was getting a bit unwieldy. Functions to parse the url and call the appropriate function were getting too long, and code that produced the output was starting to be duplicated in numerous places. I sat down and had a good think about how I could refactor stuff to be more maintainable when suddenly it hit me... "I'm re-writing Django (though much more poorly)".
Once I realized that, and I understood the problems that Django was trying to solve it all suddenly made a lot more sense and I found it easier to get my head around it all.
Someone broke Betteridge's Law. That's quite a lot more interesting than the actual question, which is, of course, dumb.
That only young people can learn is one of those myths that get debunked all the time and no one ever pays any attention. You know that bullshit about language and how children pick up languages (including their mother tongue) magically while adults struggle so much? Yeah, it's total bogus, in fact adults learn languages faster and better than kids with the same investment in time and dedication.
The main difference is that young people in practice learn faster because they have little else to do. If you'd get the same exposure and personal teacher attention as a small kid does, you'd pick up a new language in half the time.
So the real question is: How much time and effort are you willing to expend? Is it something you really want and are willing to spend a few hours a day on?
Assorted stuff I do sometimes: Lemuria.org
It's possible that you are experiencing symptoms of burnout. I get this from time to time, I can't focus enough to learn new stuff. Try taking a few weeks off (at least evenings) and do something completely unrelated, like play video games or just concentrate on your sex/love life for a while. Eventually you'll be chomping at the bit to get back to the computer, and then you'll be fresh and better able to move your mindset onto unfamiliar ground.
But you better believe that learning new stuff is the bread and butter of a programmer's career; you don't just stop, ever. I mean I've been programming since 1982 but only last year I learned the theory of Kalman Filters and this year I'm diving into some Support Vector Machine stuff, as well as ramping up on the PS4. Mind you, this is pure CS stuff; learning frameworks-du-jour has never really interested me all that much. This also may be an issue for you - you may suspect in the back of your mind that learning these modern frameworks is a waste of time, and you may be right ...