I'm self-taught and a relatively late starter. I've also never studied computer science in a formal setting (i.e. at a university).
I started programming when I was studying for a PhD (in mathematics) around 2006-07. I was 23 at the time. That was mainly in Matlab and Fortran. My code from those 3-4 years is, frankly, pretty horrifying.
When I got my first job in industry (quant at an investment bank in 2010) I had to learn Java, and a language called Q[0], which is a very fast array-processing language with a functional feel and a built-in query language for the KDB database. I also picked up a little bit of R, mainly because I was building a lot of statistical models and it was far easier than doing it in Java.
That piqued my interest in functional programming, and I subsequently learnt Haskell using the book Learn You A Haskell[1]. I picked up Python around the same time when I was trying to write a web scraper, and finding it painful in any of the languages that I currently knew. For that I used Learn Python The Hard Way[2].
When I started a new job in 2011 I started writing Matlab again, causing me to finally learn it properly. Around that time I decided to try and learn a low-level language, so I picked C, mainly because there was an interesting edX course [3] that I wanted to try (the Harvard course CS50).
I'm at a weird in-between stage now. I can write comfortably in half a dozen languages, but there's a whole swathe of programming that is completely alien to me (web design, networking, and any kind of formal software architecture). I've written a lot of heavily numerical and mathematical code, but never written a CRUD app or a web page. I still don't know Javascript.
I started programming when I was studying for a PhD (in mathematics) around 2006-07. I was 23 at the time. That was mainly in Matlab and Fortran. My code from those 3-4 years is, frankly, pretty horrifying.
When I got my first job in industry (quant at an investment bank in 2010) I had to learn Java, and a language called Q[0], which is a very fast array-processing language with a functional feel and a built-in query language for the KDB database. I also picked up a little bit of R, mainly because I was building a lot of statistical models and it was far easier than doing it in Java.
That piqued my interest in functional programming, and I subsequently learnt Haskell using the book Learn You A Haskell[1]. I picked up Python around the same time when I was trying to write a web scraper, and finding it painful in any of the languages that I currently knew. For that I used Learn Python The Hard Way[2].
When I started a new job in 2011 I started writing Matlab again, causing me to finally learn it properly. Around that time I decided to try and learn a low-level language, so I picked C, mainly because there was an interesting edX course [3] that I wanted to try (the Harvard course CS50).
I'm at a weird in-between stage now. I can write comfortably in half a dozen languages, but there's a whole swathe of programming that is completely alien to me (web design, networking, and any kind of formal software architecture). I've written a lot of heavily numerical and mathematical code, but never written a CRUD app or a web page. I still don't know Javascript.
[0] http://en.wikipedia.org/wiki/Q_(programming_language_from_Kx...
[1] http://learnyouahaskell.com/
[2] http://learnpythonthehardway.org/
[3] https://www.edx.org/