This article aims to ** "Develop services with Python from inexperienced programming" ** We have organized the skills to be acquired as a learning roadmap.
** 2-3 hours every day (+2 hours on Saturdays and Sundays) ** We have narrowed down the content to be completed in a minimum of 3 months if you continue. It is okay to skip the skills you have already acquired.
Since the general flow is the same for other languages such as ** Ruby **, It's okay if you just read the part that says Python as Ruby.
First of all, there are 10 types of skills required for service development.
In each chapter, explaining what each skill is useful for, We will introduce reference articles and books that you can acquire sufficient skills.
First, perform ** "environment construction" ** required for programming. Follow the reference article to install ** Editor (Atom) ** and ** Python **.
-Install Editor (Atom) --Install Python -Windows: Install Anaconda -Mac: Install Homebrew -(Windows only) Install GitBash
If you have no programming experience, it is recommended to start with HTML at first.
The ** various websites we usually see "always use HTML" ** points, The reason is that it is okay to make some mistakes, so you can proceed with your studies comfortably.
--HTML: Build a website skeleton -How to write HTML ① -How to write HTML② --CSS: Add decoration to the skeleton -Site decoration by CSS ① -Site decoration by CSS②
As I get used to HTML / CSS, I feel ** "I want to make a more beautiful website" **.
It is possible to make a beautiful design with CSS if you gain considerable experience, Everyone is studying to ** "create a service" **, so let's move on as soon as possible.
A useful tool that appears there is ** Bootstrap ** developed by Twitter. ** Even if you don't have CSS skills or design experience ** It's an excellent way to create a stylish site.
There are various versions, Use the latest ** Bootstrap 4 ** as of February 2020.
--Boobstrap Basics: Add Design to Your Website -Learn how to design ① -Learn how to design ② --Bootstrap application: Responsive web design (smartphone compatible) -How to use the grid system
Since I was used to programming, Python is finally here. Even if you say Python in a word, there are so many elements that you can't study enough.
Therefore, in this article, we will focus only on ** service development **. I will introduce ** essential skills that you can use even if you don't like it **.
-Get used to various data types --int type (integer) --Floating type (number including decimal) --str type (character string) --list type (list) --dict type (dictionary) --Get used to the control syntax -For sentence -IF statement --Make system parts (modules) -Function -Class
Next is the database (hereafter DB) that is inseparable for service development.
If you use the ** Web application framework "Django" ** that I will introduce later, You don't need to know the DB language such as MySQL.
That said, ** what kind of processing is DB doing internally **? If you do not understand the concrete image, you will definitely have a hard time at the service development stage.
So, let's focus on the minimum elements and study efficiently.
-[Reference book](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% 9F% E3% 83% 83% E3% 82% AF-ebook / dp / B01HD5VWWO / ref = zg_bs_712806_1? _Encoding = UTF8 & psc = 1 & refRID = W5ABD22S47XTVNK56N71) --Understanding the basic processing of DB (CRUD processing) --Understanding the concept of foreign keys -Understanding how to draw ER diagram (DB blueprint)
If you clear this far, you will have the basics to start service development. However, it will be useful later if you do not rush and understand the concept and usage of ** virtual environment **.
I hope you can check the details in the reference article, The purpose is to prevent the programming environment from getting messed up **.
--Need for virtual environment -Reference article ① -Reference article ② --Try to create a virtual environment -How to use venv
Let's finally get into service development. Keep in mind that it is officially called ** Web application development **.
In most web application development, ** "Web application framework" ** is used.
Roughly speaking about web application frameworks, you don't have to program from scratch yourself ** Prepared in "Most of the parts required for development are completed" ** You can think of it as a convenient development assistance tool.
However, just coding the ** "last superficial part" ** can be a daunting task. This is the most difficult thing to do, so let's do our best.
There are two well-known web application frameworks in Python.
It depends on your preference for studying, but There are cases where I made it with Flask but remade it with Django. I recommend ** Challenge Django from the beginning **.
In addition, if it is Django, there is a Qiita article that I wrote originally It is organized so that you can learn the necessary elements in the shortest time.
—— Differences between Django and Flask - Django: ――There are many things to remember first. Difficult as an introduction --A lot of optional functions, once you remember it, you can't let go - Flask: ――There is little to remember and it is relatively easy to develop --Since there are few options, it will be difficult for full-scale development. --In practice, you're often asked for Django -Article that can be a human resource who can develop systems with Python (Django) _Introduction --Understanding the big picture of web application development --Actually coding a web application
Next is ** "Requirements Definition-System Design" **, which is often overlooked.
No matter how much you can program ** "What should I make? If you can't decide **, you can't start anything.
I will introduce the articles I wrote in the past, so ** Make sure you master the "process of drawing blueprints from ideas" **.
-Requirements definition-Articles that can be human resources who can design systems --Requirement definition process --Screen design --Functional design --Data design
If you study so far, various source codes will be accumulated. It's a time when it becomes difficult to manage even the most meticulous people.
** "Where did you save that program?" ** ** "I have overwritten and saved .. I want to return to the previous state." ** ** "It is troublesome to share the program with other people (zip it up and attach it to an email, etc.)" **
** GitHub ** is a tool that solves these problems. Be sure to learn it as it will be used in practice.
-Create Account -How to use GitHub
Finally, let's publish the developed service. ** Preparation for publishing the service (server preparation) ** is roughly divided into 5 types.
In this article, we will introduce the specific procedure for ** "⑤: Cloud server" **.
Also, to use the cloud server You need to master ** Linux commands **, so let's learn it as well.
-Features of various server services / Merideme -① Buy your own server -② Rent a rental server ――③ Rent a VPS -④ Rent a dedicated server ――⑤ Rent a cloud server -Create AWS account -Publishing services using AWS (EC2) --Contract with AWS --Rent a server --Publish the service --Get used to Linux commands -Reference article ① -Reference article ②
Creating a service on your own requires a wide range of skills. It's a difficult task, but I've seen many people actually overcome it.
Recently, the environment that makes programming easier has been set up, so There is a growing tendency that good jobs cannot be obtained with partial skills such as ** "I am good only here" **.
Once you get over it, it becomes ** "a powerful skill that is second to none" **, so We support everyone who read this article so that they can survive the three months.
Please do not give up until the end and do your best to create a good service.
【P.S.】 Last but not least, Twitter also publishes programming information. If you like, please follow Twitter account "Saku731".
Recommended Posts