[PYTHON] Roadmap for beginners

I started programming after entering university (non-informatics department), and now I am like a part-time mentor who is studying while making various products with Python and JavaScript by various people from elementary school students to adults. I'm doing that. (Poor Japanese)

I personally think that I have a lot of trouble studying, so I hope it will be helpful for beginners.

1. Beginner's attitude

Please watch this video first. https://youtu.be/5MgBikgcWnY

Not limited to programming, beginners should study with a mindset such as ** "Do not aim for perfection, if you can do 60 to 70%, proceed steadily!" **.

As you can see in the video, it takes about 20 hours to reach a level that you understand to some extent. To put it the other way around, you should proceed with this amount of learning as a guide.

If you need more specialized knowledge, I think you should study at that time.

I used to study in a way that I understood properly before proceeding, so after I entered university and started studying more specialized things, my learning efficiency dropped tremendously. And the motivation goes down.

I don't know if you guys are, but the impression that it tends to be unexpectedly.

2. Roadmap (provisional version)

For now, if you study by a route like this, it seems that you can study relatively efficiently.

2.1. Study method

I've been studying so far, and except for ** "I will study while making products using what I have studied" **, my motivation has dropped and I can't continue studying ...

2.2. Understand the type of engineer and the language used

https://www.indeed.com/career-advice/finding-a-job/types-of-software-engineer

First, look at this to get an overall picture of what kind of engineers are there and what language they are using.

First of all, the world of computer science is so deep that I get hurt when I try to reach out to various places.

Especially for beginners, I feel empirically that narrowing down what to do is quite efficient.

2.3. What you absolutely need as an engineer

2.3.1.Git This is a system that manages the version of program source code.

2.3.2.Docker When developing, it is necessary to prepare the development environment. There is not much problem in building directly in the local environment, but local software may conflict with each other and an error may occur, and above all, you can build the environment anywhere by just typing a few lines of commands. It's pretty convenient to be able to do it.

I hear it in many places, but now that Docker is a technology adopted by various companies and has become an industry standard, it is necessary to do it.

2.4. Learn basic grammar (Python, Ruby, PHP)

Programming languages ​​also have basic grammar. If you understand the grammar of one language, there are many things that are common to other languages, so it will be enough for the time being to study by choosing one of Python, Ruby, and PHP. If anything is fine, Python is recommended. (Because I was)

2.5. Select what to do for each field

The site you saw in 2.2. Describes the necessary technology for each field, so it is best to focus on that.

2.6. Updated from time to time ...

3. Recommended teaching materials

Summary of resources I learned

Udemy

Courra

Kame @ US Data Scientist's Blog

・ Overseas sites (you can find things that you couldn't find on Japanese sites)

4. Summary

・ Perfectionism is the cause of low motivation. (I will definitely be frustrated) Let's go ahead.

・ Study while shaping.

・ Do not overdo it.

I hope it will be helpful as much as possible!

Recommended Posts

Roadmap for beginners
Spacemacs settings (for beginners)
python textbook for beginners
Dijkstra algorithm for beginners
OpenCV for Python beginners
Learning flow for Python beginners
[For beginners] kaggle exercise (merucari)
Linux distribution recommended for beginners
CNN (1) for image classification (for beginners)
Python3 environment construction (for beginners)
Roadmap for publishing Python packages
Overview of Docker (for beginners)
Python #function 2 for super beginners
Seaborn basics for beginners ④ pairplot
Basic Python grammar for beginners
100 Pandas knocks for Python beginners
Python for super beginners Python #functions 1
Python #list for super beginners
~ Tips for beginners to Python ③ ~
[For Kaggle beginners] Titanic (LightGBM)
Reference resource summary (for beginners)
Linux command memorandum [for beginners]
Convenient Linux shortcuts (for beginners)
[Explanation for beginners] TensorFlow tutorial MNIST (for beginners)
Pandas basics for beginners ① Reading & processing
TensorFlow MNIST For ML Beginners Translation
Decision tree (for beginners) -Code edition-
Pandas basics for beginners ⑧ Digit processing
Python for super beginners Python # dictionary type 1 for super beginners
Seaborn basics for beginners ② Histogram (distplot)
[For beginners] Django -Development environment construction-
[For beginners] Script within 10 lines (1.folium)
Logistic Regression (for beginners) -Code Edition-
What is scraping? [Summary for beginners]
Python #index for super beginners, slices
<For beginners> python library <For machine learning>
TensorFlow Tutorial MNIST For ML Beginners
Frequently used Linux commands (for beginners)
[Must-see for beginners] Basics of Linux
Python #len function for super beginners
Beginners use Python for web scraping (1)
Run unittests in Python (for beginners)
What is xg boost (1) (for beginners)
Beginners use Python for web scraping (4) ―― 1
Python #Hello World for super beginners
Linear regression (for beginners) -Code edition-
Python for super beginners Python # dictionary type 2 for super beginners
Pandas basics summary link for beginners
[For beginners] Process monitoring using cron
LSTM (1) for time series forecasting (for beginners)
[Deprecated] Chainer v1.24.0 Tutorial for beginners
TensorFlow Tutorial -MNIST For ML Beginners
Ridge Regression (for beginners) -Code Edition-
[Explanation for beginners] TensorFlow tutorial Deep MNIST
[Kaggle for super beginners] Titanic (Logistic regression)
[Python] Minutes of study meeting for beginners (7/15)
Programming environment for beginners made on Windows
First Steps for Machine Learning (AI) Beginners
Challenges for the Titanic Competition for Kaggle Beginners
[Linux command summary] Command list [Must-see for beginners]
Let's put together Python for super beginners