Other Is learning C necessary for becoming a data scientist?

AI Thread Summary
Starting a journey in Data Science often involves learning programming languages, with Python being highly recommended due to its relevance in the field. While some suggest learning C first for foundational programming skills, many data scientists find that Python suffices for their needs. A solid understanding of mathematics, particularly calculus, linear algebra, and probability, is crucial for success in Data Science. Resources like online courses and textbooks can provide valuable knowledge and skills. Ultimately, focusing on Python and essential math concepts may be the most efficient path for aspiring data scientists.
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 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 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 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 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 austinuni and atyy

Similar threads

Replies
2
Views
2K
Replies
4
Views
2K
Replies
68
Views
10K
Replies
2
Views
3K
Replies
3
Views
2K
Replies
8
Views
2K
Back
Top