Is learning C necessary for becoming a data scientist?

In summary, the conversation discusses the best approach for someone interested in becoming a Data Scientist. The general consensus is to first learn C programming and master sequential programming before delving into object-oriented concepts, as it provides a solid foundation for understanding more complex languages. Additionally, a strong understanding of mathematics, particularly finite math, is recommended for success in the field.
  • #1
Kroenen
8
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
  • #2
Learn C first. Ignore OO completely until you have mastered sequential programming.
 
  • Like
Likes Dr. Courtney
  • #3
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.
 
  • #4
(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
  • #5
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?
 
  • #6
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?
 
  • #7
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?
 
  • #8
Kroenen said:
Finite math?
Do you know how to use Google?
 
  • #9
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

1. What is self-learning data science?

Self-learning data science is a branch of data science that involves using algorithms and machine learning techniques to enable computers to learn and improve from experience without explicit programming. It involves training machines to recognize patterns and make predictions based on large datasets.

2. How does self-learning data science differ from traditional data science?

Traditional data science involves manually analyzing data and creating models to gain insights and make predictions. In self-learning data science, machines are trained to automatically analyze and learn from data, without the need for human intervention.

3. What are the benefits of self-learning data science?

Self-learning data science can handle large and complex datasets more efficiently than traditional data science methods. It also reduces the need for human involvement, saving time and resources. Additionally, self-learning algorithms can continuously improve and adapt to new data, leading to more accurate and reliable results.

4. What are some real-world applications of self-learning data science?

Self-learning data science has a wide range of applications, including natural language processing, image recognition, and fraud detection. It is also used in industries such as healthcare, finance, and marketing to analyze data and make predictions.

5. What skills are required to work in self-learning data science?

To work in self-learning data science, one should have a strong foundation in mathematics, statistics, and programming. Additionally, knowledge of machine learning algorithms and data analysis techniques is essential. Good problem-solving and critical thinking skills are also important for success in this field.

Similar threads

Replies
15
Views
2K
  • STEM Career Guidance
Replies
4
Views
1K
Replies
30
Views
4K
  • STEM Career Guidance
2
Replies
68
Views
8K
  • STEM Career Guidance
Replies
2
Views
2K
Replies
4
Views
2K
  • STEM Career Guidance
Replies
5
Views
2K
  • STEM Career Guidance
Replies
29
Views
3K
  • STEM Career Guidance
Replies
8
Views
2K
  • STEM Academic Advising
Replies
3
Views
925
Back
Top