I’ve finally finished my Mathematics Masters, and after an exciting internship at Amazon, am transitioning to work for a Consultancy as a Data Science Consultant.
One of the issues that came up in my work at Amazon was when I realized that although I could code, I knew very little about real world software development – so I knew very little about Make, code documentation, project management, debugging.
So I did what I normally did, I turned to Twitter! I’m a huge Hilary Mason fan, I think she is one of the leading thought leaders in Data Science.
She tweeted – “Aside from lots of JS, this Coursera Startup Engineering class could help people go from academia to data science: http://bit.ly/1gJJ6Oe “
I asked why and she responded “Because most academics know little about real-world software engineering, which they will need to learn if they want a job.”
So I then looked up the course and decided to follow it.
What I learned:
I’ve not finished it all but have learned the basics of Emacs and version control.
One of the most pertinent points I felt was talking about the need for dev/stage/production environments as they solve the problem of editing on a server directly.
Editing on the production website (typical of academics) makes it difficult to:
* test features before end users see them
* roll back code that has introduced bugs
* restore code or data from catastrophic crashes of the server
* incorporate contributions from multiple engineers
* perform A/B testing of diﬀerent incompatible features
Challenges of Real World Software Development
One of the challenges of real-world software development (and data science) is that in academia you often code without understanding the fundamentals of IT. These include the dev-ops things such as Command Line Interfaces, dot files, version control, scalability. These things are often not taught to STEM graduates, who may be coding for many years yet know nothing about staging environments, development environments, setting up VM’s (one of the things taught in course I mentioned) and other things such as documentation!
A challenge for tech companies and labs at Universities
One reason why organizations such as Amazon, Facebook etc implement bootcamps is that they realize that even good undergraduates from STEM backgrounds or CS backgrounds know very little about real-world software development. So one of the challenges for these companies is to get people up and running with new technology, these may include different programming languages, configuration, internal software that one can’t learn anywhere else.
I’m looking forward to my on-boarding at my next job – but the lesson here for all institutions is that if you want your new talent to get up and running as soon as possible, copying Facebook isn’t a bad idea.
See this for further details http://venturebeat.com/2013/03/02/facebook-bootcamp/