Answers.Body: <p>It's hard to know what you really know from just your assertion that you've "learned to code and know the basics of Machine learning as well." Do you mean that you can write a script/notebook in Python/R using libraries like sklearn or tensorflow? Can you do a full ML pipeline - preprocess data, train a model, then test and evaluate it's performance (oh, and then actually deployed it in an app/website)? Have you written any of your own classes/algorithms from scratch, even as an exercise? Do you know the basics of <em>machine learning</em> (including classics like SVMs and Decision Trees/Forests), or only more specifically <em>deep learning</em> (just neural networks)? Have you written code to tackle a problem <em>without</em> ML to see if it could be simpler and more effective? If the answer to any of these things is "not yet," those are certainly gaps in your basic coding and ML expertise that you'd probably need to convince an employer that you'd be an asset. </p>
  
  <p>Most of the specific topics that you mentioned are 98% of the time not too relevant to the daily work of machine learning practitioners, but understanding the basics of memory management and (as Buffy mentioned) the space/time efficiency of Algorithms and Data Structures will be pretty important once your ML projects get bigger: ML often uses a LOT of processing and memory resources, especially if you're not careful. I'd say definitely take a proper Algorithms and Data Structures course if you have not before (there are several good ones on Coursera). </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-11-27T14:00:04.397Z
Answers.LastActivityDate: 2019-11-27T14:00:04.397Z
Answers.UserDisplayName: Matthew W.
Answers.Body: <p>The first two paragraphs of the <a href="https://en.wikipedia.org/wiki/Machine_learning" rel="nofollow noreferrer">Wikipedia article on Machine Learning</a> will give you a good outline of the things you need to know. Algorithms and Data Structures are key from CS, but you also need quite a lot of things like Statistics, Mathematics, Pattern Recognition and such. </p>
  
  <p>It is a pretty long road if you start out <em>only</em> knowing how to program. It is also a field with a lot of current activity and a lot will change before you get very far along that road. It is good to have a goal, but if you start late in a <em>hot</em> area you need to keep a flexible outlook so that you have options if that field <em>cools off</em> while you study. But those same things needed for ML are also good for other things as well. </p>
  
  <p>So, the courses you mention probably aren't especially necessary but your statement that you have trouble with documentation is a bit worrying. Perhaps that will change with practice. </p>
  
  <p>If you are a young person starting out, don't commit too deeply to any one path. Learn the basics so that you can choose later when you know more, both about yourself and about the state of research at that time. </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-11-27T11:07:16.153Z
Answers.LastActivityDate: 2019-11-27T11:07:16.153Z
Answers.UserDisplayName: Buffy
Body: <p>I am a non-cs graduate and would love to be a <em>machine learning</em> engineer.</p>
  
  <p>I have learned to code, and know the basics of Machine learning. Now I would like to know what "basics of CS" I should learn to be completely job ready. </p>
  
  <p>I sometimes have difficulties reading CS documentations, and don't know how programs and computers work in the background. I am also naiver on topics like <em>memory management</em>, <em>operating systems</em>, <em>networking</em>, <em>electronics stuff</em> like <em>microprocessor</em>, <em>compiler design</em> etc. Are these all necessary for my transition to AI? If they are, would you please recommend me a short learning path or books or videos. I hope I wouldn't need to go deep in these areas.</p>
  
  <p>Thanks!</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-08-31T17:42:43.883Z
Comments.Text: A lot of this also requires a working background in mathematics, i.e. you don't need to be a mathematician, but you should be able to apply mathematics to solve your problems. In machine learning there's a lot of linear algebra and basic calculus, so I'd say that you should plan on acquiring these skills. Some people learn best in the abstract, i.e. math in isolation, applications once the math is learned. Other people (like me) find most abstract math a big bummer and learn the theory best through the applications. Whatever works for you is OK, but math here is not avoidable - it's funamental
Comments.UserDisplayName: Kuba hasn't forgotten Monica
Tags: <self-learning><artificial-intelligence><machine-learning><documentation>
Title: What are the basics of CS that I should know, before I start my journey into machine learning
ThreadText: # What are the basics of CS that I should know, before I start my journey into machine learning
  
  (Asked by: username_0 on 2019-11-27)
  
  I am a non-cs graduate and would love to be a *machine learning* engineer.
  
  I have learned to code, and know the basics of Machine learning. Now I would like to know what "basics of CS" I should learn to be completely job ready.
  
  I sometimes have difficulties reading CS documentations, and don't know how programs and computers work in the background. I am also naiver on topics like *memory management*, *operating systems*, *networking*, *electronics stuff* like *microprocessor*, *compiler design* etc. Are these all necessary for my transition to AI? If they are, would you please recommend me a short learning path or books or videos. I hope I wouldn't need to go deep in these areas.
  
  Thanks!
  
  **Tags:** self-learning, artificial-intelligence, machine-learning, documentation
  
  > **Comments:**
  > **username_1**: A lot of this also requires a working background in mathematics, i.e. you don't need to be a mathematician, but you should be able to apply mathematics to solve your problems. In machine learning there's a lot of linear algebra and basic calculus, so I'd say that you should plan on acquiring these skills. Some people learn best in the abstract, i.e. math in isolation, applications once the math is learned. Other people (like me) find most abstract math a big bummer and learn the theory best through the applications. Whatever works for you is OK, but math here is not avoidable - it's funamental  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_3 on 2019-11-27. Score: 3
  
  The first two paragraphs of the [Wikipedia article on Machine Learning](https://en.wikipedia.org/wiki/Machine_learning) will give you a good outline of the things you need to know. Algorithms and Data Structures are key from CS, but you also need quite a lot of things like Statistics, Mathematics, Pattern Recognition and such.
  
  It is a pretty long road if you start out *only* knowing how to program. It is also a field with a lot of current activity and a lot will change before you get very far along that road. It is good to have a goal, but if you start late in a *hot* area you need to keep a flexible outlook so that you have options if that field *cools off* while you study. But those same things needed for ML are also good for other things as well.
  
  So, the courses you mention probably aren't especially necessary but your statement that you have trouble with documentation is a bit worrying. Perhaps that will change with practice.
  
  If you are a young person starting out, don't commit too deeply to any one path. Learn the basics so that you can choose later when you know more, both about yourself and about the state of research at that time.
  
  
  ---
  
  ### Answer by username_2 on 2019-11-27. Score: 2
  
  It's hard to know what you really know from just your assertion that you've "learned to code and know the basics of Machine learning as well." Do you mean that you can write a script/notebook in Python/R using libraries like sklearn or tensorflow? Can you do a full ML pipeline - preprocess data, train a model, then test and evaluate it's performance (oh, and then actually deployed it in an app/website)? Have you written any of your own classes/algorithms from scratch, even as an exercise? Do you know the basics of *machine learning* (including classics like SVMs and Decision Trees/Forests), or only more specifically *deep learning* (just neural networks)? Have you written code to tackle a problem *without* ML to see if it could be simpler and more effective? If the answer to any of these things is "not yet," those are certainly gaps in your basic coding and ML expertise that you'd probably need to convince an employer that you'd be an asset.
  
  Most of the specific topics that you mentioned are 98% of the time not too relevant to the daily work of machine learning practitioners, but understanding the basics of memory management and (as username_3 mentioned) the space/time efficiency of Algorithms and Data Structures will be pretty important once your ML projects get bigger: ML often uses a LOT of processing and memory resources, especially if you're not careful. I'd say definitely take a proper Algorithms and Data Structures course if you have not before (there are several good ones on Coursera).
  
  
  ---
  
  