I once knew some Java, but that was close to 10 years ago. Assuming I can learn a language to get into data analytics.... what language do you recommend?
First of all, the fact that you have known some Java, even ten years ago, already means that you don't "know nothing about programming" (I suggest you update the title of your question to reflect that - change "nothing" to "a little"). I'd like to make several points, which I hope will be useful to you.
- In terms of the level of programming proficiency, which is expected (needed) for a data scientist, the following popular definition says it all:
A data scientist is someone who is better at statistics than any software engineer and better at software engineering than any statistician.
- Another perspective on the role of programming abilities in a data scientist's skill set can be found in a popular visual representation of data science, using Venn diagrams. The original data science Venn diagram was presented by data scientist Drew Conway (see this blog post):
- Since its original introduction, the original diagram was modified by various people for various reasons. The two interesting adaptations are for data science in the social sciences domain (http://www.datascienceassn.org/content/fourth-bubble-data-science-venn-diagram-social-sciences), as well as data science Venn diagram V2.0, where data science is represented not as an intersection of knowledge domains, but as their union (http://www.anlytcs.com/2014/01/data-science-venn-diagram-v20.html). Another very interesting and useful visual perspective of data science skill set, also based on Venn diagram, is the following Gartner's diagram, mapping specific skills to business intelligence (BI) or business analytics knowledge domains:
An alternative perspective for a data scientist's skill set and domain knowledge is a taxonomy of data scientists, such as this taxonomy, which classifies data scientists, according to their focus (or the strongest skill set): mathematics, data engineering, machine learning, business, software engineering, visualization, spacial data (GIS) or others.
If you're curious about the meaning of the "Danger Zone" in the original data science Venn diagram, this Quora discussion, containing, among other nice answers, also an answer by the original diagram's author, can be very helpful.
If you're interested in learning about a range of skills and knowledge domains, useful for a data scientist, check this open source curriculum for learning data science: http://datasciencemasters.org, or on GitHub: https://github.com/datasciencemasters/go. Of course, popular and research papers, lectures on YouTube, MOOC courses, online and offline bootcamps as well as a wealth of other resources is only an Internet search away.
Finally, a note on programming languages for data science. I think that it is important to understand that this aspect is really of secondary importance. The focus should be on two words, which the term "data science" consists of: data and science. Focus on data means that it is important to think about data science (or BI, or analytics) tasks in terms of the corresponding domain knowledge as well as to pay attention to data quality and representativeness. Focus on science means adhering to scientific approaches to data collection and analysis, of which reproducibility plays an important role. A programming language for data science is just a tool and, therefore, should be chosen to match the task at hand. Python and R represent very good and the most popular programming languages and environments for a data scientist, however, you should be aware of other options (tool set).
Data Scientists code every day. However, just because you don't have background doesn't mean you can't pick it up! The level of programming you need to know to start doing Data Science isn't very high, but you will at least need:
- the logical mindset to phrase the solution to your problem in procedural code
- to know the programming language, functions, and libraries needed in this field.
1st point is the most difficult of the two. Hopefully, you have taken enough math and physics by now to wire your mind to think programmatically. If so then yes, you absolutely can learn a language! There are guides out there that teach out the syntax and functions. For example:
- R - Pluralsight
- General Python - http://www.codecademy.com/en/tracks/python
- DataSci Python - https://www.kaggle.com/c/titanic-gettingStarted/details/getting-started-with-python
Personally, I would recommend Python first. To me the language places more emphasis on readability and cleanliness, making it a great first language. It's also a general-purpose language so it's good to know. I did start with R though and it's also good but is more function-over-form IMO. Try both out and see which feels best first, since you'll likely have to pick up both if you delve into this field anyway.
Based on this infographic and other things I've read, it sounds like you need to know some coding to be a true data scientist. http://blog.datacamp.com/how-to-become-a-data-scientist/ But you could still be a data analyst without compsci - basically a statistician.
Johns Hopkins University as a set of course on Coursea that is gear on Data Science. Here is the link to the classes https://www.coursera.org/specialization/jhudatascience/1?utm_medium=courseDescripTop. You can also take the classes for free.
This is a set of 9 classes that would give you a good foundation to build-on and to start a career.
Data science, being a new term, covers a broad spectrum of jobs. At one end you are expected to write production code. At the other end you do statistics in packaged software. They also call such people statisticians or analysts. So decide what you enjoy doing before you leap. If you just want to analyze data, you could definitely get by with R or python as long as you're mathematically proficient. I find that in these kind of jobs, your communication and social skills matter too, since you have to explain the data to executives and the like.