Aite Tribe Story Collection (12): Habits lead to skill improvement

Aite Tribe Story Collection (12): Habits lead to skill improvement

[51CTO.com original article] As an ordinary person, a senior otaku, and a programmer, Kuangjue likes to read books, listen to music, and meditate in addition to work. He has a deep understanding of government projects and is currently a member of the CMS core development team and a team leader of ordinary programmers. After graduating in 2013, Kuangjue began to engage in Java CMS product development. His current company is a subsidiary of the Aerospace Group, and all the projects he develops are government projects. He has participated in the development of the intranet of a certain national confidential unit (three-level treasure, information migration, data ferry, information confidentiality authority), the upgrade and transformation of the State Grid intranet, the upgrade of the WebLogic cluster of the China Industrial Network system, the Ministry of Water Resources (financial portal, water resources monitoring application portal, single sign-on system, information portal), the internal welfare system of the State Administration of Science, Technology and Industry for National Defense (pseudo e-commerce) project and the Java CMS system, etc.

[[186025]]

Kuangjue Java CMS product development

Young and frivolous

It was a chance that made him decide to learn programming. When he was in high school, he randomly entered a string of addresses on his computer and happened to enter the website of an IT training center. After a brief understanding, he was deeply impressed by its magic and thus became attached to IT. He planned to apply for a computer major in the future (in fact, he was tempted by the high salary in the advertisement at that time). Later, the learning process was the same as that of many students. After three minutes of enthusiasm, he became extremely bored. He worked hard for three days and then stopped for two days. He spent his life in a daze until graduation.

The first job was found in December 2013. When he first applied for the job, Kuangjue was full of energy and felt very awesome. He lowered his salary from 10K to 4K. During this period, he constantly reviewed what he had learned and finally got an offer from *** company. During the nearly half-year job hunting career, Kuangjue was ruthlessly criticized by the social university. Perhaps it was because of his self-esteem. He had secretly planned to live independently after graduation and no longer ask for help from his family (his family was in the countryside and life was not easy). Therefore, he had a very difficult life during that half year. He watched his wallet become less and less every day, but he could not ask for help from his family. For Kuangjue at that time, he was at the end of his rope. For this hard-won opportunity, he could only catch up. All the reasons and regrets were irrelevant. He had only one goal: survival.

Work hard and devote yourself to it

Since I joined the project team, I have learned that the first project that Kuangjue participated in developing was the survey system for the top 500 enterprises of the All-China Federation of Industry and Commerce. This system needs to generate annual survey topics, collect survey data, and display them in DataGrid, with more than 200 columns (the number of topics each year is uncertain). It is required to export them in Excel and display various statistical data in reports. On the ***th day after joining the company, Kuang Jue went to the client's site to carry out development work after completing the formalities. He was assigned to the statistical report module, and the JasperReport report component was used at that time. However, he had never been exposed to it before. This was very stressful for him as he had just entered the workplace, and there were many things he needed to learn. In order to quickly find a place, he drank Red Bull for half a year and only slept 6 hours a day. The rest of the time was either to familiarize himself with project requirements and understand the calculation methods of various statistical items (total asset turnover rate, asset-liability ratio, net profit margin, return on assets, net asset profit margin, labor productivity, per capita profit margin, etc.), or to study the JasperReport component required for the assigned task, learn relevant knowledge, and overcome various problems encountered in the iReport reporting process, including obtaining the current time and display format, judging whether an attribute is empty, printing out data in a field only under specific conditions, nested sub-reports, automatic line wrap, highly automatic, paging settings, font settings, Chinese garbled characters, report variables, dynamic value passing of SQL in the report, etc. Writing SQL statements in reports, in order to satisfy the information display of a report, it is necessary to perform various complex SQL queries on multiple tables, using many advanced SQL queries, until the project goes online. In half a year, nearly 200 reports were completed independently by Kuangjue. Later, he also participated in the development of other modules, the display of DataGrid, excel export, etc. These six months were a turning point in his life. His efforts, the help and trust of his colleagues were all a wealth for him to enter the society. These six months allowed him to have the capital to survive in this society, master a skill, pick up what he had learned in the past, and more importantly, the pressure of life made him recognize himself and this cruel society, instead of being arrogant and confused when he first started. When it comes to 6 hours of sleep a day, Kuangjue thinks this is already a luxury. "People are forced to come out. In the first year, I didn't do work, but treated work as a career. So I forgot to eat and sleep and devoted myself to it."

There are countless problems encountered in reporting and development work. I have compiled some notes and the original works are all written in the blog. Click to view >>. Good habits start from now on.

Develop good habits and quickly improve development skills

The development skills of Kuangjue are improved through continuous learning. The basic process is as follows: first learn to use it and know what functions it has; then get familiar with the program and know which function program corresponds to each package and folder; then read the code of the specific functional module to see how the function is implemented and whether it has any correlation with other functional modules; finally look at the database table design to know what data is stored in each table, what each field means, and what the value in the field represents, such as what the values ​​1234 of the status field status represent. After this set of processes, you will have a general understanding. On this basis, it is easier to carry out later development or function optimization.

After more than three years of work experience, he has also developed some work habits:

1. The code has detailed comments to facilitate the generation of API (including entity fields, method functions and parameter meanings of each layer, database class meanings and field descriptions, etc.);

2. Unify the code format (I have encountered a mess of code and felt sad at that time);

3. Follow the naming conventions (I feel like smashing my computer when I see field names like a, a1, a2, b, b1, b2 and method names like aa(), bb() without any relevant comments);

4. SVN submissions must have detailed modification logs (this is very important. In team development, explaining what problems your submissions have modified or what modifications you have made will save a lot of trouble for others and yourself. After all, you are not a computer and you will not remember all the modifications);

5. Write a work log every day after get off work to summarize and analyze the day's work;

6. Write notes to record problems encountered at work. For some problems, pioneers have already solved them and shared their solutions with everyone. He will record the problems and solutions in his personal notes, and publish his own problems and some important problems as blogs;

Every time I learn a new technology, I will follow these 3 steps:

1. When learning a new tool, you can refer to its official documentation and demo, which are generally provided. If not, you can search for resources on the Internet.

2. Implement the Demo's functional effects locally and try to understand its reasons.

3. Try to implement advanced functions based on the Demo. In the absence of a documented API, you need to constantly experiment, search for information, or read the source code directly.

Some advanced requirements also require modifying the source code for operation, such as Baidu's UEditor editor, the upload mechanism will save the image attachments to a folder. UEditor's upload mechanism does not meet the requirements of CMS. The images and attachments of each CMS article will be saved in the "/site id/column id/article id" folder, and sometimes there is a date folder on it. This requires modifying its source code, finding and tracking its upload and save logic code, and implementing your own logic. This is a learning process.

Outstanding performance in development, recognized by Boss

Kuangjue's workplace experience is only one point, work hard. He should have an estimate for the task and himself. He always exceeds or even exceeds the progress every day. If he fails to complete it during the work, he will work overtime to get it done (if he really can't do it, ask colleagues or leaders). Don't delay the overall progress, don't make excuses for your own failures, and don't impose your subjective ideas on the code. Use your spare time to discuss ideas with project developers. After all, many requirements are a vague concept of users. Not all users understand technology. They will only express their dissatisfaction and needs on the basis of your version after you make it. These are often worse problems in the eyes of programmers. After fully understanding the user's intentions, you can come up with a suitable solution based on your own experience or discuss with colleagues, and negotiate with the user.

These habits have brought outstanding performance to Kuangjue's work and greatly increased his efficiency. It was precisely because Kuangjue exceeded the task every day that the company was very satisfied with him. The leader directly found him to give him a raise. In this way, Kuangjue's salary increased by 50% in half a year, and he was transferred to the product development team for learning and training. He cherished this hard-won opportunity. In the subsequent product development and support, Kuangjue was diligent in thinking and quick in action. His ability was improved again, and it was almost the same as that of old employees. The company increased his salary by another 60%. He received full salary during the probation period and became a regular employee in one month. Looking back now, Kuangjue still feels that he needed high-intensity work at that time to integrate into the workplace, find back his wasted time, and enrich himself with real experience. After all, apart from asking his family for help, he had no other way to go.

But such high-intensity work is very tiring, so much so that he can no longer work as hard as he did when he first entered the workplace. Kuangjue believes that this is only suitable for programmers who have just entered society and the workplace, and they need to use this to find their own direction and their own value. Today, Kuangjue just completes his work (actually, he has no worries about survival, and human laziness kicks in), and then uses the remaining energy to learn more. Through the work and CMS development experience in the past few years, Kuangjue tries to write an ideal CMS product in his spare time. At present, he is still in a state of developing it only when he occasionally thinks of it. He has built the framework and developed some basic functions such as sites, columns, and information.

Life is always as plain as water. Just be able to endure loneliness and do your best. The essence of a programmer is to solve problems, so the reason for everything is naturally your ability. Temporary dissatisfaction may be just a test of work or in the eyes of others, you are not as good as you think. Put aside "what you think is what you think", and face yourself.

There is a kind of gap, that is, you are not worthy of your ambition and have failed the suffering you have endured. Kuangjue uses this motto to always remind himself and challenge the limits on the road of development.

If you are also willing to share your story, please join the 51CTO developer QQ exchange group 312724475 and contact the group owner. We look forward to your wonderful story!

[51CTO original article, please indicate the original author and source as 51CTO.com when reprinting on partner sites]

<<:  "The best time, never seen before" Cisco's three brand transformations

>>:  iOS: How to catch exception?

Recommend

How was the world's highest meteorological station built?

|||| At about 12:46 on May 4, an automatic weathe...

Three ways and strategies of bringing goods to new media Douyin

5,000 orders of Shiseido red kidneys in 3 minutes...

How does product operation improve user retention rate?

I saw a very cute metaphor on Zhihu some time ago...

Take every step carefully and build a user growth system from scratch!

Recently, I have received a lot of inquiries abou...

Google and Apple's strategic race: updating the system to "manage everything"

In the early morning of June 26, Google held its ...

The void is calling you! This strange feeling actually exists!

Audit expert: Taozi National Psychological Counse...

Just 3 steps to help you become an expert in APP promotion!

Are you still worried about the poor results of A...

More than three years later, the loving penguin dads are still together!

Almost all of the young penguin lovers at a Sydne...