[PYTHON] Learning roadmap and recommended books taught by alumni of the Department of Information Systems ~ No.2 ~

Introduction

In the previous article, we summarized the learning order and recommended teaching materials for basic academics as a "learning roadmap taught by alumni of the Department of Information Systems". If you haven't seen it yet, please read the following articles before this article. In addition, I will write this content alone in a useful way.

Learning roadmap taught by alumni of the Department of Information Systems

In the previous article, I wrote how to learn computer communication technology. I think it is in the order in which information students are actually learning. (I'm sorry for the shabby figure ^^;) 学習ロードマップ.png

This time is finally applied science. I will explain computer graphics and beyond.

"Computer Graphics / Computer Vision"

First, let's talk about the famous CG / CV. If you are an information student, you probably learn once.

Computer graphics

Since I was a Sony PlayStation generation, I have the impression that there are quite a few students called CG when it comes to information. As you can see when you start learning, you can see that CG is basically a "combination of physics".

If you want to learn CG, I think that understanding will deepen if you master it from mathematics anyway. Basically, I think it's better to learn from 2D CG. In particular, the first technique I learned was ** ray tracing **. The following sites are easy to understand.

-[What is ray tracing?](Https://knowledge.shade3d.jp/knowledgebase/%E3%83%AC%E3%82%A4%E3%83%88%E3%83%AC%E3%83% BC% E3% 82% B7% E3% 83% B3% E3% 82% B0% E3% 81% A3% E3% 81% A6% E4% BD% 95)

If you understand ray tracing, you can understand the depiction of objects by physical calculation, so I think that it will lead to the creation of graphics in the future. Software that works on CG is important.

For books, I think it would be good to work on these teaching materials with the goal of obtaining a CG test.

-[Computer Graphics](https://www.amazon.co.jp/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC% E3% 82% BF% E3% 82% B0% E3% 83% A9% E3% 83% 95% E3% 82% A3% E3% 83% 83% E3% 82% AF% E3% 82% B9-% E6 % 94% B9% E8% A8% 82% E6% 96% B0% E7% 89% 88 / dp / 4903474496 / ref = pd_bxgy_img_2 / 358-9591839-0428648? _Encoding = UTF8 & pd_rd_i = 4903474496 & pd_rd_r = 9862b5a8-e27c -1c581f4cfd7c & pd_rd_w = NN9Qz & pd_rd_wg = SXDKv & pf_rd_p = e64b0a81-ca1b-4802-bd2c-a4b65bccc76e & pf_rd_r = PTKP8RJCFDRZFNKQ3G9P & psc = 1 & refRQ3G9P & psc

-[CG Engineer Certification Expert Basic Official Questionnaire [Revised Third Edition]](https://www.amazon.co.jp/CG%E3%82%A8%E3%83%B3%E3%82%B8 % E3% 83% 8B% E3% 82% A2% E6% A4% 9C% E5% AE% 9A% E3% 82% A8% E3% 82% AD% E3% 82% B9% E3% 83% 91% E3 % 83% BC% E3% 83% 88% E3% 83% BB% E3% 83% 99% E3% 83% BC% E3% 82% B7% E3% 83% 83% E3% 82% AF% E5% 85 % AC% E5% BC% 8F% E5% 95% 8F% E9% A1% 8C% E9% 9B% 86-% E6% 94% B9% E8% A8% 82% E7% AC% AC% E4% B8% 89% E7% 89% 88-CG% E3% 82% A8% E3% 83% B3% E3% 82% B8% E3% 83% 8B% E3% 82% A2% E6% A4% 9C% E5% AE% 9A% E5% 85% AC% E5% BC% 8F% E5% 95% 8F% E9% A1% 8C% E9% 9B% 86% E7% B7% A8% E9% 9B% 86% E5% A7% 94% E5% 93% A1% E4% BC% 9A / dp / 4903474593 / ref = pd_bxgy_img_3 / 358-9591839-0428648? 4802-bd2c-a4b65bccc76e & pf_rd_r = BGDBN2XJMN8KB3PZH354 & psc = 1 & refRID = BGDBN2XJMN8KB3PZH354)

Computer vision

What is computer vision in the first place? I'm sure there are people who think that. What the professor said when I learned it reminds me of the phrase "CG and CV are inverse operations".

Computer graphics is basically a technology that creates a single picture from 3D information, but a technology that restores the amount of information in 3D space (for example, depth and positional relationship) from the resulting single picture is I think it's computer vision.

Nowadays, in addition to this, the technology to obtain more complementary information may be included. For example, object detection would be one of them. (I'm not a specialist, so this is about it.) I'm sorry, but I don't know the recommended book I actually used. However, I remember that the following books were used for journals in the laboratory.

-[Computer Vision](https://www.amazon.co.jp/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3 % 82% BF% E3% 83% 93% E3% 82% B8% E3% 83% A7% E3% 83% B3-David-Forsyth / dp / 4320121570)

"Database"

The next genre of application is databases. Have you ever heard of the word database?

As the name implies, it is software that stores data (to be exact, middleware). The word middleware does not interfere with understanding, so I think you can learn it as software.

There are so many different types of databases that new web app engineers will be confused. In particular, databases such as MongoDB are very well known, so some people may think that these software are examples of databases.

However, I think the first thing to learn is ** relational database (RDB) **. In fact, information students will definitely learn from now on. Prescribe a relationship with a relational database (RDB) and think of it as a data bang for a data collection of that relationship. For example, when managing student data in Excel, you would set item names (id, name, age, grade, etc.) in each column and describe detailed actual data. Imagine that.

The dedicated language for retrieving data from this relational database (RDB) is called ** SQL (Structured Query Language) **. Whether you are a web engineer or an application engineer, you will be laughed at if you don't know SQL, so I definitely want to keep it here.

At my time, I learned from the teacher's slides, but the following is a good study book. Also, after learning these study books, it is a good idea to use a programming language such as PHP to create a simple web application (one that requires data recall / save / edit / delete operations from the DB). ..

-[Introduction to Relational Database](https://www.amazon.co.jp/%E3%83%AA%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7% E3% 83% 8A% E3% 83% AB% E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 83% 99% E3% 83% BC% E3% 82% B9% E5% 85% A5% E9% 96% 80% E2% 80% 95% E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 83% A2% E3% 83% 87% E3% 83% AB% E3% 83% BBSQL% E3% 83% BB% E7% AE% A1% E7% 90% 86% E3% 82% B7% E3% 82% B9% E3% 83% 86% E3% 83% A0% E3% 83% BBNoSQL-Information-Computing-% E5% A2% 97% E6% B0% B8-% E8% 89% AF% E6% 96% 87 / dp / 4781913903 / ref = sr_1_2? __mk_ja_JP =% E3% 82 % AB% E3% 82% BF% E3% 82% AB% E3% 83% 8A & dchild = 1 & keywords =% E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 83% 99% E3% 83% BC% E3% 82% B9 & qid = 15996990533 & s = books & sr = 1-2)

-[Database operation starting from zero](https://www.amazon.co.jp/SQL-%E7%AC%AC2%E7%89%88-%E3%82%BC%E3%83%AD%E3 % 81% 8B% E3% 82% 89% E3% 81% AF% E3% 81% 98% E3% 82% 81% E3% 82% 8B% E3% 83% 87% E3% 83% BC% E3% 82 % BF% E3% 83% 99% E3% 83% BC% E3% 82% B9% E6% 93% 8D% E4% BD% 9C-% E3% 83% 97% E3% 83% AD% E3% 82% B0% E3% 83% A9% E3% 83% 9F% E3% 83% B3% E3% 82% B0% E5% AD% A6% E7% BF% 92% E3% 82% B7% E3% 83% AA% E3% 83% BC% E3% 82% BA-% E3% 83% 9F% E3% 83% 83% E3% 82% AF / dp / 4798144452 / ref = sr_1_1? __mk_ja_JP =% E3% 82% AB% E3% 82% BF% E3% 82% AB% E3% 83% 8A & dchild = 1 & keywords =% E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 83% 99% E3% 83% BC% E3 % 82% B9 & qid = 15996990533 & s = books & sr = 1-1)

However, I think that many cool programmers have already adopted new technology in this area, so I will talk about the technological outlook after that. Due to its nature, RDBs also had issues (especially when dealing with big data, considering a distributed environment ..). NoSQL (Not Only SQL) is being developed with the intention of getting rid of RDB / SQL as a result of facing these challenges. Since it was operated by companies such as GAFA, the name recognition increased at once.

The data management method of relational databases is not bad, but it is an issue based on the properties held by the origin RDB, and there is also New SQL that is trying to evolve in the form of RDB by relaxing these properties. And it seems.

While RDB / SQL handles structured data, the use cases for storing unstructured data such as Image / Movie / Audio data have increased, which may be the reason for accelerating public awareness.

I think there are pros and cons, but I personally think that relational databases are the first choice for a normal app development database, unless there is a great deal of trouble. Let's definitely learn SQL.

in conclusion

This time, as a sequel to previous article, I dealt with applied science. Next time, I will introduce pattern recognition and interfaces, which are fields of application.

We welcome your comments. It will be an encouragement for writing, so please do not hesitate to contact us! I also do Note ⇒ Notes

Recommended Posts

Learning roadmap and recommended books taught by alumni of the Department of Information Systems ~ No.2 ~
2020 Recommended 20 selections of introductory machine learning books
Beginning of machine learning (recommended teaching materials / information)
Parallel learning of deep learning by Keras and Kubernetes
○○ Solving problems in the Department of Mathematics by optimization
A concrete method of predicting horse racing by machine learning and simulating the recovery rate
I tried to verify the yin and yang classification of Hololive members by machine learning
I considered the machine learning method and its implementation language from the tag information of Qiita