I'm interested in majoring in statsitics in my university as an under-grad. I am wondering whether I need to be a good programmer to do statistics because I really struggled in python and java even though I studied them for 1.5 years.
-
What do you mean by job for "statistician"? This could range from "data scientist" that does lots of coding and "big data" stuff, to person who makes all the time the same PowerPoints with tables and graphs from SPSS... It really depends on industry and your aspirations. Moreover: people who are good at programming usually aim at the positions that require it, and the ones who are not, do not. – Tim Jun 05 '16 at 19:49
-
This is pretty opinion-based: **maybe we should make it wiki**? – Tim Jun 05 '16 at 19:51
-
Closely related thread: http://stats.stackexchange.com/questions/195034/what-is-a-data-scientist – Tim Jun 05 '16 at 20:09
-
1@Tim, I can't think of a statistician position in the industry that requires no programming whatsoever. Maybe in academia? – Aksakal Jun 05 '16 at 20:14
-
@Aksakal academia, marketing research, some positions in some research companies (surveys) etc. But usually if you want to do more advanced stats, some programming is needed, I agree. – Tim Jun 05 '16 at 20:21
-
31) What is a statistician's job, is it strictly defined? 2) good programmers in a specialized statistical language/syntax or in a general / low level one (such as С++)? 3) Is good programming an ability to implement anything or to implement something efficiently (fast code etc.)? – ttnphns Jun 05 '16 at 20:36
-
"Do statisticians need to be good programmers/coders to do their job well?" is a very opinion-based title and question, but I think this *could* be converted to being an on-topic question, if you asked something along the lines of "Are there job roles as a 'statistician' which do not involve programming?", since that seems to be the main intent of your question. – Silverfish Jun 06 '16 at 18:52
1 Answers
You increase your chances of getting hired in the industry very significantly if you can code well. You will also be able to ask for much higher salary. Overall, if you keep struggling then your options will be very limited not only at the start but throughout your career.
Now what is a "good programmer"? You don't have to be as good as professional programmers, but you must be able to code any algorithm you came up with. It may not be the best written code, but it must do what's required in terms of the logic of the algorithm. For a statistician that's the definition of "good" in my opinion. You should be able to implement any statistical algorithm and method that you studied so far, that's your measure of how good you are.
UPDATE: To your struggles with Java: that's not a typical stat language, so I wouldn't hold this against you. Python is used in data science a lot, but look at who uses it: mainly people with some kind of a programming background. Some statisticians like Python, of course, but it is (like Java and C++) a system programming language. I'd call it a "proper programming language", i.e. one that even pro programmers use without reservations. What I'm trying to say is that mere fact that you're struggling with these two particular languages is not yet a sign of an issue. However, if you struggle with programming in any language (any that you tried) then you have to think about the future in this profession seriously.

- 55,939
- 5
- 90
- 176
-
3As about "good" programmers: actually some argue that statisticians are usually very bad programmers and many statistical packages are badly written ;) – Tim Jun 05 '16 at 19:52
-
1I would add that having good programming and computer skills more generally, like understanding [closures](https://en.wikipedia.org/wiki/Closure_\(computer_programming\)) and [JSON](https://en.wikipedia.org/wiki/JSON), is really useful. For anybody, really, but especially for anybody who does data analysis (as opposed to purely mathematical statisticians). – Kodiologist Jun 05 '16 at 19:52
-
@Tim, one could argue then that if they are bad programmers, then they are not "doing their job well" as the OP described. I think being a decent programmer is essential in modern statistics. – StatsStudent Jun 05 '16 at 19:53
-
@StatsStudent if you define statistician as a person who is good at applied programming, that indeed you *need* to be good at programming by the definition you adopted. In essence statistics is *not* about programming, but in many areas it may be ***very*** useful, or even vital skill. – Tim Jun 05 '16 at 20:08
-
I agree statistics is not about programming, but much of modern day statistics is accomplished through programming (i.e. bootstrap). And I'd argue that statistics are essentially worthless without the need to apply them. – StatsStudent Jun 05 '16 at 20:11
-
@StatsStudent modern software for stats is very rich, most of the methods are already available out-of-the-box. Yes, in some cases you need to code complicated problem-specific bootstrap algorithm by hand, but in many areas you don't since the tools are already available. This really depends on what you do. You can apply vast majority of stats with no programming at all. – Tim Jun 05 '16 at 20:16
-
1The acme of achievement for many statisticians is being able to write a script that works for a specific problem, runs from start to finish, & is clear & non-redundant. Then the code serves as a document of precisely what was done, & we ourselves or knowledgeable colleagues can use it to help explain the analysis or easily adapt it to similar problems. But anything like writing *software* requires anticipation of what the program will do in a wide range of circumstances; & it's not, or shouldn't be, surprising, that we're not often very well prepared for it. So I'd reply to @Tim that ... – Scortchi - Reinstate Monica Jun 06 '16 at 12:06
-
2... statisticians are often quite good programmers, but usually very bad software engineers. – Scortchi - Reinstate Monica Jun 06 '16 at 12:10