At 33 years old, I began coding to help me with my day job as it became more and more helpful. Whee I left the role, I was an advanced beginner with a basic grasp of OOP and functional coding skills. My languages were VB, SQL and F#.
I left, took time away from computers for about a year. When I restarted I completed a Coursera qualification in R programming. My first proper junior developer role started in November 2015 and it involved: Oracle and SQL Server databases, legacy coding and updating in VB/C#.
During this role, I used a lot of stored procs, dynamic sql and queries from sql server to oracle including the use of the dreaded curser.
Current skills:
VB, C#, F# Metaprogramming using T4 templating (I modified ReversePoco, a C# project to allow me to use it in VB) T-SQL, Oracle R ASP.net webforms, with enough HTML, CSS, Twitter Bootstrap etc to get into trouble. Addition, I've used T4 templating, plenty of LINQ, entity framework, WPF in addition to Winforms, F# type providers and written a generic dynamic rules engine that generates a list of lambda predicates using expression trees in VB.
I've an increasing interest in machine learning and AI. Currently I'm learning the basics of neural networks with a view to implementing a fractal one that is a neural net composed of neural nets. Part of this is investigating whether a genetic algorithm can be used by the higher levels of the NN to spawn neural net nodes on demand. May be a rather tall, naive order but that's ok; setting out to find out if it's possible will no doubt lead to interesting skill sets regardless.
I don't think people should have to just adapt to software. I don't think software can be quickly made to adapt to people either but I do think there is a solid balance to be struck and it should be biased towards the people NOT the implementation.