It's not too late to learn how to code
jeanhsu.com
jeanhsu.com
Fast forward to present day, where I'm writing linear classifiers in a Lisp dialect I had never seen before this weekend. I've previously built scrapers in Python, a website with Django, side projects with a bunch of technologies (R, JS, SQL, Redis, MongoDB, etc. etc.). I enjoyed working on all of these enough to start a graduate program in CS.
People start writing, running, painting, and working on other awesome trades at all ages. Coding shouldn't be any different. Click on pg's link to Codecademy, go check out MIT's introductory CS courses on OpenCourseware, and don't worry about how old you are!
It's never too late to do anything.
And it's never too late to get good at almost anything, especially programming.
My story:
Age 21 - graduated college
Age 23 - graduated graduate school
Age 24 - got my first job programming
Age 24 - touched my first computer (that's right)
Age 27 - touched my first personal computer
Age 30 - purchased and set up my first personal computer
Age 31 - wrote my first framework
Age 32 - did my first start-up
Age 36 - did my second start-up
Age 46 - build my first web page
Age 50? - wrote my millionth line of code
Age never - got as good as I wanted to be
Age always - loved it!
A few other thoughts about OP:It’s easy to think that it’s too late, because look at those people who spent four years in college learning to code!
Don't look at anyone else. That's your problem. Just look at the problem at hand and your approach and solution. It's just you and your computer, mano-a-mano. Pretty primitive. That's when you stop worrying about the negatives and just go ahead and build something. And that's when you know nothing else really matters.
It is difficult!
Not really. Difficulty is relative. Start out by copying a "Hello World" program and getting it to run. Then add one new capability and get that to run. Then another. Then another. Always saving your last good version so that you can go back and start each step over, just in case you really fudge things up. Hey, you're programming! It wasn't that hard, was it?
I used to think I was cursed, because every time I tried to setup something new (new development environment, tool, library, etc), something would always go wrong.
There's a difference between systems administration (which all of this is) and programming. I hate the former (which I view as a necessary evil and takes 1% of my time) and love the latter (takes the other 99%).
Do you like it? ...do you feel a rush of excitement?
Yes! Nothing else I've ever done gives quite the same feeling as experiencing something I've built working for the first time ever. Happy dance!
While I started programming at 13, I didn't become a pastor until age 40. I suppose I could have said that I was too old to add such a different activity to my life, but I wanted to do it and dove in with enthusiasm. Was it difficult? Yes thank you. It's a small congregation and I still have to work the day job as a programmer, but coming up on five years now and we are close to doubling the original size of the congregation (was just over twenty people). It's the best job I've ever had and my dream is to eventually go full time ... just gotta get Ramen sustainable!
I began programming at age 36. Shortly after, having been so inspired by how exciting it was, I enrolled in a university. I am now just a few classes short of a Computer & Information Science degree. I will be 40 when I have an actual degree in my hand.
What I can contribute to others from my experience is that you will have greater determination, focus, and perseverance to learn something you really enjoy. This is especially true when you get older.
I don't believe I would have done as well or learned as much if I had pursued programming in my 20's. I wasn't as focused; I had far too many distractions.
My advice on getting started. Start at CS101. Learn the basics to a degree were it becomes second nature. Solve small problems, when you can do that easily solve larger ones. Don't cheat yourself; don't skim over bubble sort because it is boring, everything will teach you something. And most of all, enjoy yourself.
In linguistics, the conventional wisdom is that native-language acquisition is fundamentally different from non-. Anyone besides a small child will quite likely never develop native fluency in a new language, no matter how long they speak it.
I often feel that way about programming-- I started learning C at an incredibly young age, and while I sure wasn't very good at it, I do think it patterned my brain somehow.
I get the sense when I work with other developers, people who learned to code in their teens or twenties, that there's something different going on. They're fluent in the language, they probably know more about it than I do, but they're thinking differently. I'm certainly not a genius or a savant, I've never taken a programming class in my life that taught me something, and I don't brag about my code, but I often experience a near-effortless acquisition of new languages, styles, even paradigms that other, talented devs seem to struggle with. I'm sure there must be many other people out there who share this experience.
So this is just speculation, but is it possible there's some underlying aspect of code-thinking which, sadly, it is too late to learn?
I also am highly skeptical of your claim you are more native in programming, but I started when I was in my early teens so I'm not sure I can comment.
I think your skill at learning languages rises when you are very young, and you face diminishing returns after that, so adults never get that much better at learning a language than when they were young. With other things you begin later in life, you start at the bottom of the learning curve and improve much more. So adults and kids are usually about as good at language learning, unlike most things, so people think kids are magically gifted at learning languages because they are about as good as adults. And of course, adults are actually much better because they already know all the real world concepts from their L1. I've also seen it asserted many times that children learn languages faster, and I've only seen research supporting the opposite, so I think your claim is just the programming version of that fallacy.
There's also solid evidence that learning two or more languages as a child, while being slightly slower, sets you up better to learn more as an adult, as well as just making you a cooler person overall.
That aside, though, I share your skepticism. I was just relating my experience, and hoping maybe we could, you know, have a conversation about it :)
Now it may be that's more about our techniques for second-language acquisition than brain structure differences, but it's sure interesting, innit?
It is indeed never, ever too late to program.
That, and there's a serious shortage of programmers around here.
And read lots of different code from low-level to SICP.. from early 80s to the present day. Get ( legit ) access to closed, commercial code as well.
Also, its really weird, but learning in these sorts is rather non-linear.. you will feel like there is no hope for 10 months, then the 11th month comes and suddenly you are freaked out about what you can do.
p.s. there is an additional "to" that you can drop, then its perfect.
I feel like I'm missing so many basics, like a major 'a-ha' moment. I've done the codecademy & codeschool tuts, the MIT and Stanford online courseware and built a few bits and pieces.
When I build things I just sort of hack it together from whatever resources I have available. I've got no idea of how to build robust systems from scratch.
I still don't feel even remotely capable. I think spending time with established (and patient) coders would be really useful.
Even just videos of folks explaining what working environment they have set up for themselves, some good practices and how they leave projects ready to work on again would explain so much.
I want to balance the enjoyment to frustration ratio out a bit more! :)
It feels like the bits in portal where you find a crack in the shiny polished walls & go exploring in the grungy maintenance areas outside. There isn't anyone guiding your hand anymore (for good or ill).
If your program doesn't work (or you can't even install the programming language to begin with) you are often left with arcane, generalised instructions or nothing at all. There's no button you can click that will fix buggy program logic & sort out your unique mess of dependancies.
You need to be able to thrive outside the comfy embrace of the user ecosystem, & it can be scary out there ;)
If only one could sell them the joy of coding.
Of course they are forgetting that it's fun right from step 1. (Read: The Joy of Building)
Learning to code is like learning to write. You can do without it but learning it opens a new world for you. Time to write "Ruby / C / XYZ for babies".
At 32 I took CS101 at a local university, never had the money to go before so my first time in Uni, first formal programming training and felt like I was 1,000 years older than my classmates.
I had to drop out do to work problems (laid off), money problems and just the level of stress from the social part of it. Each day I was soaked when I left class I was so nervous just being in that environment I felt like I had just run marathon.
Probably at least twice per week I was in the professor's office getting help. Years later I learned most people in class just copied samples off the Web, some assignments I handed in practically blank after being up until 4am trying to figure it out then have to go to work at 7am.
My mark was 60% for the first part of semester that I completed.
I haven't touched Java since then but I did like it maybe a different environment would have been better.
Its easy to 'code', harder to design, debug, structure, deconstruct, architect.
So sure, code away, make that webpage or service. But you know who's creating the ecosystem you're 'coding' in? Somebody that started as a kid, dedicated their life to computers and software, lives and breathes multiprocess automata or whatever.
So everybody is right, sure, and there's lots of money to be made in coding so don't be afraid to jump right in. But like athletics or physics or whatever, either be a savant or study all your life, but don't fool yourself.
I don't get your point but it sounds vaguely insulting.
Its Pollyanna to say "you can be a programmer! Anybody can!" without explaining the layers of the onion. You can be a (passable) applications programmer with a little effort. The rest takes sweat and study, sometimes years of it.
Here's the link for Land of Lisp. (http://landoflisp.com/)
But the problem now is when I have an idea for an app, I can't develop it since I don't know any back-end language. I have developers I work with but they don't have the time to develop my little ideas. My JS is also weak. I'm 23, I don't think I'm too old to learn but it would have been easier a few years ago.
I think the problem for most people (including me) is constantly thinking of how long it would take to reach mastery.
After the initial brush up with a language your coding potential will be increased exponentially. I build a iOS app, XNA game within next 1 year, and Currently in the process of creating a web application on rails.
A good example would be how terrible the code the Google Founders wrote. Their initial engineering hires had to rewrite everything from scratch.
And the Google Founders did have a background that would lend well to coding.
Sure you need a doctor if you are very ill, but plenty of people can self-diagnose smaller problems using the internet.