Hello, this is Hikaru. I joined a manufacturer as an in-house SE as a new graduate. I had never done programming when I was in college, and I packed up my knowledge in the training after joining the company, but it doesn't work well in the field ... This time, I will introduce some of the tasks I received from my seniors at that time. I thought that this kind of "work that beginners can get" is similar in every workplace, so I hope it will be helpful. In addition, my workplace is a legacy environment with Java as the language, Struts as the template engine, Ant as the build tool, and CVS as version control, so I would appreciate it if you could take that into consideration ...
Senior "I received a request from a user to be able to add a product inventory category, so please implement it." First year I "Yes (white eyes)"
It's a common task. It is an implementation that increases the input items on the screen and registers them in the DB. This task requires the following knowledge:
Beginners can't hear the words template engine and O / R mapper. To put it plainly, the ** template engine is a mechanism that takes the value entered on one screen to the next screen **, and the ** O / R mapper is a mechanism that connects the database with the entered value **.
Without these two, the contents entered by the user will disappear cleanly when the next screen is displayed, and even if the registration button is pressed, the contents will not be reflected in the database.
In other words, all you have to do is understand the basics of typical CRUD processing. To do this, we recommend that you try creating a simple application yourself. Now you can learn how to do it with Qiita and Udemy as much as you want, so why not copy the code and enjoy the joy of moving. The key to learning is ** to understand after the program runs **. If this is the opposite, the output will be slow and you will not be able to acquire practical power. Maintaining motivation is also difficult.
If you are a fledgling engineer, you should focus on such a "mechanism that retains the value on the screen". It's okay, I didn't understand at all at first, but now I'm trying to remember how it works.
Senior "There are many cases where the user inputs an incorrect value. To prevent such a situation, please provide a check function before moving to the next screen." First year I "Yes (white eyes)"
This check function is very important. Since users are humans, they do not always type correctly on the screen. For example, you might enter ** "OGEHOGE2012" ** instead of the product name ** "HOGEHOGE2012" ** without the leading H.
So how can you prevent that?
I said "HOGEHOGE 2012" where I should ** enter **. In other words, there must have been a correct answer in the input. This means that you can register the correct answer on the system in advance, and in some cases, collate the correct answer with the input.
Providing validation is a basic part of system development, but the important thing is ** how to define the correct answer criteria in the application **. Speaking of the product name mentioned earlier, the correct product name ** "HOGEHOGE 2012" ** is registered in advance in the master (≒ template), and the correct answer and the content are compared when inputting. And if you make a mistake even a little ** "OGEHOGE 2012" isn't it! ** and an error is displayed. That's where the user notices the mistake.
Specifically, it searches the database by product name, and if there is no hit, an error occurs. Even if it hits, if it is not the data that should be entered on that screen, an error will still be issued. For example, in this process, ** "HOGEHOGE 2012" ** is the correct answer, and ** "FUGA FUGA 2019" ** is wrong. In order to make that decision, it is necessary to connect the process and the product in advance.
However, if you do that much, there is no mistake in pulling the required value (product name) from the database and letting you select it in the pull-down format. This time, I focused on the point of validation, so I'm ignoring that method ...
If you are a beginner, it is important to understand how to use If statements and the characteristics of types, but please also pay attention to ** where to pull the correct answer **.
I think that beginners are full of things they don't understand. I still do that (laughs) However, as I gradually understood it, my horizons expanded and I was convinced that "Oh, that was the case." Please don't give up until then!