All Projects → dron-dronych → self-made-data-scientist

dron-dronych / self-made-data-scientist

Licence: other
My concrete study plan to become a data scientist

Projects that are alternatives of or similar to self-made-data-scientist

Design Patterns For Humans
An ultra-simplified explanation to design patterns
Stars: ✭ 32,376 (+202250%)
Mutual labels:  computer-science, software-engineering
Algorithms Leetcode Javascript
Algorithms resolution in Javascript. Leetcode - Geeksforgeeks - Careercup
Stars: ✭ 157 (+881.25%)
Mutual labels:  computer-science, software-engineering
Constant Vigilance
Learn this if you want to be a software engineer. Constant vigilance means being continually aware of areas that need improvement. For me, I am constantly searching for valuable resources to ensure I am able to solve any problem that comes my way.
Stars: ✭ 30 (+87.5%)
Mutual labels:  computer-science, software-engineering
P1xt Guides
Programming curricula
Stars: ✭ 6,054 (+37737.5%)
Mutual labels:  computer-science, software-engineering
Coding Interview University
A complete computer science study plan to become a software engineer.
Stars: ✭ 204,859 (+1280268.75%)
Mutual labels:  computer-science, software-engineering
Tech Refrigerator
🍰 기술 냉장고입니다. 🛒 기술 면접 , 전공 시험 , 지식 함양 등 분명 도움될 거예요! 🤟
Stars: ✭ 699 (+4268.75%)
Mutual labels:  computer-science, software-engineering
Design Patterns And Principles
A collection of a number of design patterns and principles written in Kotlin
Stars: ✭ 56 (+250%)
Mutual labels:  computer-science, software-engineering
Learn Something Every Day
📝 A compilation of everything that I learn; Computer Science, Software Development, Engineering, Math, and Coding in General. Read the rendered results here ->
Stars: ✭ 362 (+2162.5%)
Mutual labels:  computer-science, software-engineering
OpenUnivCourses
FREE university courses in ML from Top Universities in CS
Stars: ✭ 220 (+1275%)
Mutual labels:  computer-science, software-engineering
Programming Notes
Lecture notes on Computer Science, Full Stack Development, and Software Engineering Philosophies.
Stars: ✭ 171 (+968.75%)
Mutual labels:  computer-science, software-engineering
Pointers For Software Engineers
A curated list of topics to start learning software engineering
Stars: ✭ 5,447 (+33943.75%)
Mutual labels:  computer-science, software-engineering
wps-se
Software Engineering Basic for Web Developer
Stars: ✭ 59 (+268.75%)
Mutual labels:  computer-science, software-engineering
Techinterview
💎 Cheat sheet to prep for technical interviews.
Stars: ✭ 454 (+2737.5%)
Mutual labels:  computer-science, software-engineering
Cs study plan
一份硬核(hardcore)计算机科学CS自学计划,偏向软件工程和系统架构方向
Stars: ✭ 837 (+5131.25%)
Mutual labels:  computer-science, software-engineering
Courses
Quiz & Assignment of Coursera
Stars: ✭ 454 (+2737.5%)
Mutual labels:  computer-science, software-engineering
Algos And Data Structures
Collection of Test Specs and Implementation of various algorithms and data structures from the Princeton Coursera course: Intro to Algorithms part 1 and 2
Stars: ✭ 31 (+93.75%)
Mutual labels:  computer-science, software-engineering
books
A collection of online books for data science, computer science and coding!
Stars: ✭ 29 (+81.25%)
Mutual labels:  computer-science, software-engineering
coding-interview-guide
A systematic coding interview guide
Stars: ✭ 76 (+375%)
Mutual labels:  computer-science, software-engineering
Awesome Learning Resources
收集最优质的学习资料。专治“学习资料不足恐惧症”。
Stars: ✭ 166 (+937.5%)
Mutual labels:  computer-science, software-engineering
awesome-backend
🚀 A curated and opinionated list of resources (English & Russian) for Backend developers | Структурированный список ресурсов для изучения Backend разработки
Stars: ✭ 826 (+5062.5%)
Mutual labels:  computer-science, software-engineering

Precise plan on becoming a data scientist

After reading tons of literature and forum questions, I've determined a path I need to follow which is pretty much what most of those answers have in common. This plan essentially covers three parts, math, computer science, and practical knowledge (e.g. of tools). Theoretical part is focused on gaining math skills and knowledge in probability, statistics, optimization, and machine learning theory. Practical part, on the other hand, has its focus on programming skills and getting known with the analysis tools. Finally, the computer science part is geared towards obtaining skills that are helpful in working as a practical data scientist, for example, effective implementation of an algorithm. Unlike most of the resources and guides, this guide is to be very concise with regards to literature and resources, abundance of which is overwhelming and confusing.

If there is one thing I have learned in the last few years after following this plan is practice, practice, and practice. Practice until you know how to apply theory you have learnt; theory without practice is worthless. Do the finetuning of pretrained models, deep dive into specifics such as NLP, f.e., and see how you can use the most recent research in your predictions; whatever it is - as long as you practice it, you are taking that thought process you need to the next level.

You can always learn the tools to help you in your DS journey, but building that thinking process and developing an experimental mindset is what I bet on mostly. You can often find a few tricks here and there, and so instead of continuously learning them, isn't it better to learn how to generate them yourself?


Take time to revise your learning and get away from studying by giving yourself a little break every once in a while. As I recently read in one of the articles on self-development, look back and revamp on the knowledge you have gained and succeeded, not where you have come up short as this is what we're inclined to more naturally.

Completed items marked with ✔️.

Contents

Math

Items to be followed in the order provided

  1. ✔️ Single variable calculus Course page
  2. ✔️ Multi variable calculus Course page
  3. Linear algebra Course page
  4. ✔️ Introduction to Combinatorics Andrey Raygorodskiy on Coursera (to be taken in parallel with multi-variable calculus)
  5. ✔️ Introduction to Probability Andrey Raygorodskiy on Coursera
  6. Probability and Statistics Course page
  7. Selected topics from the Probability and Random Variables course MIT Spring 2015
  8. Introduction to Stochastic Processes MIT Sprint 2015 ## TODO find materials on Markov Models
  9. Matrix Methods in Data Analysis, Signal Processing, and Machine Learning Course by Gilbert Strang
  10. Introduction to Graph Theory Andrey Raygorodskiy on Coursera
  11. Mathematics for Computer Science MIT / Fall 2010 or MIT / Spring 2015
  12. Differential Equations Spring 2010
  13. Logic
  14. Introduction to Numerical Analysis MIT's 18.330
  15. Analytical geometry (determine the resources)
  16. Algebra I MIT's 18.701
  17. Algebra II MIT's 18.702
  18. Number Theory MIT's 18.781
  19. Analysis I MIT's 18.100B
  20. Analysis II MIT's 18.101
  21. Introduction to Functional Analysis MIT's 18.102
  22. Convex Optimization Stanford Course by Stephen Boyd

Applied part

  1. ✔️ Acquaintance with Numpy Numpy Tutorial on Scipy-Lectures
  2. ✔️ Pandas tutorial Official tutorial
  3. ✔️ Matplotlib Intro to Matplotlib

Machine Learning

  1. ✔️ Machine Learning Open Course (https://github.com/Yorko/mlcourse.ai)
  2. CS231n: Convolutional Neural Networks for Visual Recognition (http://cs231n.github.io/)
  3. Fast.ai - sequence of 4 practice-oriented courses Courses page
  4. Good theoretical overview of ML fundamentals (in Russian)
  5. Machine Learning lectures by K.Voroncov videos in Russian

Deep Learning

  1. ✔️ Deepearning.ai (specialization on Coursera https://www.deeplearning.ai/)

Natural Language Processing

  1. Best NLP competitions on Kaggle to learn from: video by Abhishek Thakur
  2. Understanding Unicode and Charsets: bare minimum

Computer Science and Software Engineering

This is where I refer to a collection by jwasham's coding-interview-university
Special courses to take listed separately:

  1. Introduction to Computational Thinking and Data Science MIT's 6.0002
  2. Algorithms: Design and Analysis Stanford Course
  3. Machine Learning Stanford Course by Andrew Ng
  4. Data Structures and Algorithms Specialization (a sequence of 6 courses; specialization on Coursera https://www.coursera.org/specializations/data-structures-algorithms)
  5. Object-Oriented Programming and Design Patterns in Python (https://www.coursera.org/learn/oop-patterns-python/)
  6. C++ learning by doing
    I have found these sources to be useful especially used in conjunction with each other:
  7. Java
    • Cool in-depth coverage of Java Core: Golovach Courses (in Russian)
    • Effective Java (3rd. ed) - Joshua Bloch
    • Clean Code - Robert C. Martin
    • The Clean Coder - Robert C. Martin
    • Optimizing Java - Benjamin J.Evans, James Gough & Chris Newland
    • Test-Driven Development - Kent Beck
    • The Art of Unit Testing - Roy Osherove
    • Optimizing Java: Practical Techniques for Improving JVM Application Performance - Benjamin J. Evans, Chris Newland, James Gough
  8. Learn to work with the command line
  9. Shell scripting lessons

System Design

  1. System design - engineering approach very cool collection
  2. Real world systems explained by those who build them Architecturenotes
  3. Infrastructure explained blogpost

Other interesting courses

Some of the courses with the useful material to get a grasp of:

  1. Topics in Mathematics with Applications in Finance (topics include stochastic calculus, stochastic differential equations, time series analysis, and direct applications to finance) MIT's 18.S096

Useful Resources

Books

Interview Questions & Brain Teasers

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].