Is learning C necessary for becoming a data scientist?

Click For Summary

Discussion Overview

The discussion revolves around the necessity of learning C as a foundational programming language for aspiring data scientists. Participants explore the relevance of programming languages like Java and Python, the importance of object-oriented concepts, and the prerequisites for entering the field of data science, including mathematical knowledge.

Discussion Character

  • Exploratory
  • Debate/contested
  • Technical explanation
  • Homework-related

Main Points Raised

  • Some participants suggest learning C first to build a solid foundation in sequential programming before tackling object-oriented programming (OOP) concepts.
  • Others argue that learning Java and Python simultaneously could be beneficial, especially since both languages incorporate OOP principles.
  • One participant emphasizes that many modern programming languages, including Java and Python, have syntax based on C, which could make learning C advantageous.
  • There is a discussion about the importance of mathematical knowledge, particularly finite math, logic, data structures, and statistics, as prerequisites for data science.
  • Some participants express uncertainty about the best path to take, given the variety of opinions on programming prerequisites for data science.
  • One participant raises the distinction between becoming a data scientist versus a machine learning engineer, suggesting that the advice given may be more suited to the latter.
  • Resources for learning programming and mathematics are shared, including specific courses and books recommended by participants.

Areas of Agreement / Disagreement

Participants do not reach a consensus on whether learning C is necessary before other languages like Java or Python. Multiple competing views remain regarding the best approach to learning programming for data science.

Contextual Notes

Some participants express uncertainty about the definitions and scope of programming prerequisites, as well as the specific mathematical concepts required for data science. The discussion reflects a range of experiences and backgrounds among participants.

Who May Find This Useful

Aspiring data scientists, individuals transitioning from other fields into data science, and those interested in programming language foundations may find this discussion beneficial.

Kroenen
Messages
8
Reaction score
0
Greetings people from PF!

I want to start my journey as a Data Scientist and currently I'm doing baby steps. I heard from people that every Data Scientist should learn Python, but problem is that I'm currently learning Java from the book Head First Java where they intuitively explain object oriented concepts. I'm really satisfied with the way they're explain them! Searching a bit through Google I've found out that Python is object oriented too. Short story, should I keep learning Java+OO concepts from the book Head First Java and at the same time start learning Python and incorporating those OO ideas into it, or should I first learn Java from that book and then start learning Python? Also, I would be really thankful if you could give me some advices and list of prerequisites for thoroughly learning Data Science. I come from mechanical engineering background (B.Sc) but I would really like in future to be good at cutting edge of Data Science.

Thank you!
 
Physics news on Phys.org
Learn C first. Ignore OO completely until you have mastered sequential programming.
 
  • Like
Likes   Reactions: Dr. Courtney
phinds said:
Learn C first. Ignore OO completely until you have mastered sequential programming.
Hey, thanks for the advice! Can you elaborate a bit more on that? I heard advices that it was better to first learn C, because Java later would be easy-peasy but I found this book I'm currently reading and I was hooked onto it. I have some background experience in programming (IF statements, FOR, While etc.) but I don't understand concept of sequential programming, so a bit of an explanation would be awesome! Any good book you recommend for learning C properly? I presume you are experienced professional in all off this but there are so many different opinions on the Google about what should I learn that now I feel I don't know whose opinion I should follow. I came on this forum because I think people here are real signals in the "Internet information" noise, so I think you are pointing me to the right way. I would be thankful if you could tell me a bit more about this so I can have a bigger picture in my mind.
 
(1) Many modern programming languages have syntax that is based on C
(2) C is closer to actual machine language than any other high level language
(3) OOP concepts are REALLY great, BUT ... they are advanced concepts that are best learned as a layer on top of a solid foundation of "normal" programming, which is what C is.

I recommend the "white book" https://www.amazon.com/s/?ie=UTF8&keywords=c+programming+language+2nd+edition&tag=pfamazon01-20

Also, see here, my discussion of languages:
https://www.physicsforums.com/insights/computer-language-primer-part-1/
 
Last edited:
  • Like
Likes   Reactions: Kroenen
phinds said:
(1) Many modern programming languages have syntax that is based on C
(2) C is closer to actual machine language than any other high level language
(3) OOP concepts are REALLY great, BUT ... they are advanced concepts that are best learned as a layer on top of a solid foundation of "normal" programming, which is what C is.

Ahhh prerequisites I see, thanks for the advice! Any opinions about other non-programming prerequisites for future Data Scientist?
 
Kroenen said:
Ahhh prerequisites I see, thanks for the advice! Any opinions about other non-programming prerequisites for future Data Scientist?
math. lots of math. Finite math in particular. Where are you now in math?
 
phinds said:
math. lots of math. Finite math in particular. Where are you now in math?

Undergraduate maths but would definitely need a good refresher on it. Finite math?
 
Kroenen said:
Finite math?
Do you know how to use Google?
 
phinds said:
Do you know how to use Google?
okay, okay no hard feelings just want to be sure wikipedia covers it all! any good insights here about learning finite math?
 
  • #10
Kroenen said:
okay, okay no hard feelings just want to be sure wikipedia covers it all! any good insights here about learning finite math?
Anything that looks to be useful towards understanding (1) data structures, (2) logic, and (3) statistics.

Depending on the type of programming you end up doing, statistics may not be directly applicable but I find that it exercises programming type brain muscles.
 
  • Like
Likes   Reactions: Kroenen
  • #11
phinds said:
Anything that looks to be useful towards understanding (1) data structures, (2) logic, and (3) statistics.

Depending on the type of programming you end up doing, statistics may not be directly applicable but I find that it exercises programming type brain muscles.

That's neat, thanks!
 
  • #12
Kroenen said:
Greetings people from PF!

I want to start my journey as a Data Scientist and currently I'm doing baby steps. I heard from people that every Data Scientist should learn Python, but problem is that I'm currently learning Java from the book Head First Java where they intuitively explain object oriented concepts. I'm really satisfied with the way they're explain them! Searching a bit through Google I've found out that Python is object oriented too. Short story, should I keep learning Java+OO concepts from the book Head First Java and at the same time start learning Python and incorporating those OO ideas into it, or should I first learn Java from that book and then start learning Python? Also, I would be really thankful if you could give me some advices and list of prerequisites for thoroughly learning Data Science. I come from mechanical engineering background (B.Sc) but I would really like in future to be good at cutting edge of Data Science.

Thank you!

Do you want to be a data scientists or a machine learning engineer (i.e. programmer)? The advice you've gotten is heavily skewed toward the latter.
 
  • #13
StoneTemplePython said:
Do you want to be a data scientists or a machine learning engineer (i.e. programmer)? The advice you've gotten is heavily skewed toward the latter.

Data scientist, but the story unfolded towards "programming prerequisites for learning Python" which I must master in order to start learning Python, and that would I presume be one of the steps of becoming DS. Also, I presume I have to learn those math concepts along the way whether I want to become ML Engineer or Data Scientist. Any tips, opinions, advices?
 
  • #14
Kroenen said:
Data scientist, but the story unfolded towards "programming prerequisites for learning Python" which I must master in order to start learning Python, and that would I presume be one of the steps of becoming DS. Also, I presume I have to learn those math concepts along the way whether I want to become ML Engineer or Data Scientist. Any tips, opinions, advices?

My view on starting programming is here:

https://www.physicsforums.com/threads/where-to-start-computer-science.903126/#post-5687288

depending on what you want to do, starting with C (esp if you want to be an ML engineer at a bigish company as you'll end up doing an awful lot in C++) could be smart.

If you're not going to be quite as deep in the weeds in final product coding, you could just start with Python. This would be more toward data science end of things and startups. A fair amount of startups run only in Python + Cython (which is basically a light form of C running via python in more of a python style).

At some point you should check out things like 6.00.1x and 6.00.2x on edx.

key math to hit is calculus up through multivariable, and hit linear algebra hard, and take a probability course (6.041x from MIT on edx is excellent). This is for data science. There are a lot of ML engineers who don't know this stuff, from what I can tell.

After you have all the pre-reqs, check out Learning from Data here: http://work.caltech.edu/ (the edx version is offered once every 1 - 3 years and is really great).

It's kind of shocking how many really great free resources are available on the Internet. (This forum is one of them, btw.)
 
  • Like
Likes   Reactions: Kroenen
  • #15
StoneTemplePython said:
It's kind of shocking how many really great free resources are available on the Internet. (This forum is one of them, btw.)

and also how people are helpful and willing to show you how to pave the road which leads to something you want to become in the long run, so thanks!
 
  • #16
IMHO C is being over emphasized in this thread. I work with a lot of data scientists, and very few of them know C. Very few people in my network at other companies know C.

C is just not necessary for 99% of data science work.

If your goal is to be a programmer, go learn C. If it's to be a data scientist, you're better off using that time to learn something else.
 
  • Like
Likes   Reactions: austinuni and atyy

Similar threads

  • · Replies 15 ·
Replies
15
Views
4K
  • · Replies 30 ·
2
Replies
30
Views
6K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 68 ·
3
Replies
68
Views
11K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 5 ·
Replies
5
Views
3K
Replies
4
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K