Newcomer training program by Python

This article is the 11th day of TIS Engineer Advent Calendar 2015. That's why I would like to write about the new employee training program that was held this year. By sharing these contents, I hope that eventually the trouble of creating a training program for each company will be eliminated, and that interested people will be able to study by themselves.

Training program

The training program was roughly divided into two stages, and the overall schedule was about two months. Which language do you use for training? There were various discussions (Java was also a candidate), but considering the ease of writing and the convention (style check by PEP8 etc.), and the frequency of use in business after assignment, I chose Python. ..

Training program menu

I think that the rare one is the "Pururiku" edition in the team development exercise edition. Team development exercises are divided into several teams, but in the pull request edition, you try using applications developed by other teams, create and send pull requests for bugs you find and features you should have. is.

Because of this pull request, each team has to maintain the documentation, refactor the source code, and test it properly. You can also practice reading people's code and sending pull requests on GitHub someday.

After that, I put in a phase to write a proposal properly before making an application. This time, the theme of the team development exercise was "Developing a Web service / tool useful for communicating with colleagues who work remotely", but during the development, the following points were summarized in a proposal and announced. I got it.

The first issue is a SIer-like feeling, but when actually working, the above-mentioned point, "Why is it necessary and cost-effective?" Is a part that requires explanation, so here. I had you experience it at. After all, at first, there were points that the assignment setting was unsatisfactory and that we could not express our thoughts in words, so I think that many teams were having a lot of trouble. Not to mention the code, but I also made sure to include a review here. During the development period, we also held a UI / UX course so that people would be aware that the services they would create would actually be used.

The overall picture of the training looks like this. Below, I would like to introduce the materials that I actually used for the ones that can be published (I will add them as soon as they are confirmed).

Programming basics

NLP100 knock had a lot of basic processing by Python, so I created an assignment with reference to that.

icoxfog417/python_training

As an Extra, I added hitting the Web API and asynchronous processing (asyncio). This area is a frequently used process. We also try to teach you how to write test code here.

The points pointed out here were as follows.

Web application

First I explained the MVC architecture.

Web Application Tutorial

(I got information that some people in the Heisei generation do not know Slam Dunk, and if that is the case, communication will be difficult in business, so I unified it with Slam Dunk material)

After that, as it was a practical version, I asked him to develop it using Django/PostgreSQL under the theme of "daily report management" (the company-wide daily report system is sane. It was so difficult to use that I couldn't believe it, so I asked him to make something like this).

The following functions are required to be implemented.

If possible, add the following functions. I felt that I could add more functions as I like.

Here is what I made as an implementation example.

Nippon no Nippou

Team development exercises

We proceeded with a system in which two people are in one team, and a total of two people in charge of OJT are assigned as support. From here, the OJT side did not give any special instructions, and the newcomers were asked to adjust the number of thoughts and schedules for all review timings. The same applies to how to manage tasks and check progress within a team. For the operation around that, I had you refer to SCRUM BOOT CAMP THE BOOK. However, since I only handed it this year, I thought it would be better to have a little more explanation here (in fact, there was such an opinion in retrospect).

The following is the application actually created by the three teams. Please refer if you like.

lecture

How to use Git / GitHub

Introducing Atlassian tutorials. I saw various sites during this period, but this was the easiest to understand.

Git Tutorial

After that, the following is the overall picture of the command.

Git to understand with 1slide

How to write easy-to-read code

We received an explanation from our experienced engineers.

What is good code

UI / UX course

It was done based on the following materials. This was very easy to understand and was helpful to me.

UI / UX design easy for IT engineers

Introduction to CI

Refer to the following materials.

in conclusion

How was that. We would appreciate it if you could use it as a reference when training new employees, and you can use the materials as they are. Also, if you have any questions about this, please feel free to comment.

Recommended Posts

Newcomer training program by Python
Prime number generation program by Python
[Python] Shopping program
Primality test by Python
Visualization memo by Python
Training data by CNN
Beamformer response by python
Speech recognition by Python MFCC
EXE Web API by Python
Parameter setting by python configparser
Pin python managed by conda
Axisymmetric stress analysis program by Python (square element) [revised edition]
Homebrew Python --Youtube Search Program
[Python] A program that creates a two-dimensional array by combining integers
Keyword extraction by MeCab (python)
Separate numbers by 3 digits (python)
Markov switching model by Python
Image processing by python (Pillow)
Python started by C programmers
Platform (OS) determination by Python
Sort by date in python
[Python of Hikari-] Chapter 07-02 Exception handling (continuous execution of the program by exception handling)
[Python] Sort iterable by multiple conditions
Expansion by argument of python dictionary
Machine learning summary by Python beginners
Debug python multiprocess program with VSCode
Learn Python by drawing (turtle graphics)
Python development helped by Jenkins-Unit test
Compatibility diagnosis program written in python
python sql statement extracted by time
Make Python dict accessible by Attribute
OS determination by Makefile using Python
Typing automation notes by Python beginners
Interval scheduling learning memo ~ by python ~
Behavior of python3 by Sakura's server
100 Language Processing Knock Chapter 1 by Python
Story of power approximation by Python
When writing a program in Python
Sorting files by Python naming convention
[Python] A program that finds a pair that can be divided by a specified value
Python learning memo for machine learning by Chainer Chapter 13 Neural network training ~ Chainer completed
[Ev3dev] Let's make a remote control program by Python with RPyC protocol
[Python] Try to make a sort program by yourself. (Selection sort, insertion sort, bubble sort)