So I am studying Stats, Math, and Comp Modeling (A blend of CS, Math, and Stats in a big data integrated curriculum) in undergrad right now, with aspirations to become a data scientist after graduation of graduate school. While I have excelled in my math and stats classes thus far, I am enrolled in my first programming class now and I have found it very challenging. I will most likely finish with a B, because I do very well on the programming projects, but I don’t do very well on the tests. I know it’s early, but I’m stating to feel like I will never be a great programmer. My statistics professor has admitted that I seem to have a natural gift for data visualization with R though. She even said that some of my visualization ideas are better than things she could have came up with herself. But I’m not sure that’s a great substitute for being crappy with Java. Is it possible to become a data scientist with great math and stats skills, and average coding skills? Really reevaluating my career options at the moment. (Still considering trying to get into a nice graduate program for Statistics or AI like the University of Washington).
I’m not an expert on the subject, but I’ll respond just to bump you.
I think you would just end up in positions that more on the Analytics side than on the Big Data side. There is such a huge demand, I think you will be very successful.
Absolutely.
Of course programing skill is very valuable. But it is just one of many skills needed to become a great computer scientists. You can’t be totally ignorant, but you don’t have to be great at everything.
Case in point: my D, who is a 2nd year PhD student at one of the top 5 CS programs in the US, claims herself a “lousy coder.” She has no problem with abstract thinking and visualization, but doesn’t like coding. Of course she can code, but it takes her more time and effort than it does many of her cohorts.
By the way, she is in high performance computing and numerical analysis.
Given the demand for data scientists today, I would actually say most of the data scientists I know have excellent math/stats skills and come from quant backgrounds but are pretty average at the programming part. There’s a lot more to data science than coding, and arguably the math/stats is the stuff that is harder/longer to learn and is more important to get right.
Boy I am glued t this thread. I forsee the same problem for my d in the future.
If you are doing well on the projects, then I would definitely not worry about it. What are the tests like (I personally find the idea of a written test for programming nonsensical :P)? Is it CS theory questions, or writing pseudocode? Also , what is the course title?
To be honest, the likelihood of you using Java for anything in your career is verrrrry slim. If you are doing scripting/data analysis you will likely be using R, MATLAB, Python, etc. Java is taught in intro programming courses because 1) most intro courses were designed before Python became as popular as it is today 2)teaching C/C++ (the current “workhorse” low level language) requires significantly more overhead for professors (mandating build environments to make sure TAs can run code, etc). Students are also significantly more likely to accidentally brick their computers using C/C++ vs Java.
I’m an average ability coder who just finished a PhD in robotics. My core coding skill is searching stackoverflow. You don’t need to be a magical code guru to make it in applied CS fields.
There’s two types of data scientists you will often find in industry: the CS major and the math major. Very few are able to master both, and as long as you have decent understandings of both and a knack for one, you can find success in data science. The best, of course, are mastering both, but if you can just do one well and the other well enough, there will be plenty of jobs waiting for you. I wouldn’t be worried in the slightest.
Not to mention that a B in an intro CS class is just fine!
Haha the tests are usually composed of 7-10 multiple choice questions that contain a block of complex code and we have to enter what the output should be. And then two or three coding parts where we are presented with some question and asked to create a program that works for multiple situations. I’m pretty strong with the MC, but the coding always gives me fits because of syntax errors that won’t allow my code to run, and by the time I have fixed them all and prepare to work on a logical solution, time is up. The class is called “Intro to Software Design” by the way. It’s considered a weed-out class for incoming CS majors at my uni.
^You haven’t truly experienced programming until you’ve spent a full workday stuck because of a missing semicolon…
Getting comfortable with syntax is really a matter of time spent. I recommend CodeWars (https://www.codewars.com/) for practicing short (interview/test length) coding problems.
I wish I could like the above comment multiple times. So many times I have been stymied by a semicolon.
Try programming in assembly language, especially for a digital signal processing application, and telling 0 from O ~X(
I think it’s easier to pick up coding than statistics. For example, you’ll see people using a t-test for everything, without first evaluating whether the assumptions behind the t-test are valid for that application.
Bad coding is as easy to pick up as bad statistics. Good coding, like good statistics, takes a while.
The OP does not have problem with coding. She does well on programming projects but does not do well on the test of the first programming class. After this first programming class which concentrates on syntax, the OP probably will not see many tests of this nature in other CS classes. In higher CS classes, testing on concepts is far more important than on programming syntax. On some tests you just draw pictures to show the answers.