This article was first published in
Ou LeiLiu. As I will be adding, revising, and polishing articles from time to time, please read to ensure that you are seeing the latest version
The original.

When you read the title, you already know that this is a summary of your professional experience — as you would expect!

This is a series of articles covering work experience, work style, career vision and more.

The purpose of writing this series is threefold: to review as completely as possible my career experience so far, to see what I have achieved and what I need to improve on; I hope my bad parts can be avoided and my good parts can be learned. I want to let the people who may cooperate with me know something about me, so that I can judge whether I am a cooperative object, so as to save some time of inquiring and testing and improve efficiency.

I have written about my career or life review before, such as “A Front-end Career Track” (2016) and “The First Half of My Life: Settling Down” (2018). . They complement this article and will give me a more complete understanding of my experiences and thoughts.

Let’s start with some conclusions — everyone’s experience may be similar, but never the same, no matter success or failure is their own, “success” can be shared with others, but “failure” can only be swallowed with tears; A person’s ability is not necessarily related to “time”, such as “age”, “work experience”, the real influence factors are experienced “things” and related “thinking”, in fact, is “knowledge” and “wisdom”; “Old” is the stereotype of me based on my age. I think I am still “young”.

Looking at the resume, after coming to Hangzhou, so far has served 5 companies, counting up before Hangzhou is 6, has been doing front-end development related work. While every experience has its pitfalls, I am grateful for them because they have somehow helped me grow and become a part of me.

This article is the first of three stages based on the role these working experiences have played in my career.

Unknown workshop

Because I have introduced the general experience in this company in my previous article, so I directly quote —

Through my cousin’s introduction, I went to work in his classmate’s company. It was a real front-end development job that really kicked off my career.

To do front-end development, HTML, CSS, and JS are the three must-have skills. Although I’m not perfect at it, I’ve added a lot of skill points to HTML and CSS in my previous blog experience, but I don’t know anything about JS. In order to successfully pass the interview, I went to the bookstore to buy two JS-related books catch up with a few days ago: one JS Basic and one JQuery.

I was very nervous during the interview, answer questions stuttered hesitantly, all anxious to get a sweat…… I didn’t expect it, but I didn’t expect it! I think it’s because I was introduced here, and it’s a small workshop.

At the time, the company was doing a self-help platform. Probably because I don’t have much experience in developing complex web applications, I was asked to do testing related work. After a month, I couldn’t bear to do something I didn’t have any interest in, so I asked my boss to let me do my job.

Although I started to do front-end development work as I hoped, I still didn’t have some complex functions assigned to me, they were all edges and corners that didn’t have any challenge.

I quit before I had been working there for a year. There are two reasons for this: the money is not forthcoming; Little room for growth.

– the ray”In the first half of my life, I stop.”

This is the first of three jobs I’ve had so far that have been more or less involved in visual construction. Because I was just starting out, I didn’t understand the value and significance of these kinds of systems…

I remember that the real boss of this company should be an ethnic Korean, there is a company in Japan, and the “boss” I said above is actually the person in charge of my company; I work for a company that makes things for the company in Japan, but sometimes I do other things as well.

In addition to the “boss”, there are a Japanese translator, a financial officer, an artist, a backend developer, and a tester, including my front-end developer, a total of three. The “boss” is also writing back-end code, so there are two back-end developers. The front end uses jQuery and the back end uses.NET.

This is a bit of a strange way to develop, I don’t remember the code version management tool, but via remote desktop or something to log in to Windows Server, I don’t remember exactly.

There’s always some time left when I’m not assigned more complex or challenging features, so I use that time to continue learning HTML, CSS, and JS online, and then practice with my own blog.

At that time, the resources on the Internet were completely uncomparable to today. I remember going to Script Home, Blue Ideal, CSS Forest and Zhang Xinxu’s blog, etc. Or is in the CSS, JS QQ group diving, silently see all the great gods “Huashan sword”. At that time even Zhihu all have no (maybe I don’t know? I was registered around 2011), not to mention SegmentFault and Nuggets.

In this company, there was very little technical communication between people, and there was very little experience, so I left after a few months… I heard it closed down soon after I left… Not counting the “boss”, the other three developers, one went to Beijing, one went to Wuxi, and the other changed careers.

Looking back, what this company meant to me was, one, solace after a bad time, and two, a glimpse into what it’s like to be a real software developer and how to collaborate.

Arnhem information

In 2011, April Fool’s Day, I joined a security field in Hangzhou company, its business scope includes Web security, application security, database security, etc., the customer groups are the telecommunications industry, government agencies, etc. Those who know it may know that it has been featured in major events such as the 2008 Beijing Olympic Games and the 2016 Hangzhou G20 Summit — ANHENG Information.

The working hours in this company are from 8:30 a.m. to 5:30 p.m., which is much better than waking up around 6:00 every day when I worked in the small workshop in my hometown. Coincidentally, as soon as I got off work at 5:30 in a few days, I started to leave work at 9 or 10 PM every night, because I had a project with China Mobile.

At that time, I was the only front-end of the project team. I used a project they had done before to make me familiar with it, and then made a new project with reference. Some of the features were explained by the back-end developer I worked with, and he should be my boss. In addition to the two of us, there is a test for this project.

Our project is a B/S architecture Web vulnerability scanning application, called “Ming-Jian ® Web Application Vulnerability Scanner”, which provides vulnerability scanning modules such as Web vulnerabilities, web Trojan horses and web tampering, so that users can comprehensively detect the security situation of the website in real time. The scan results will show the vulnerability name, level, classification and other information, as well as detailed repair suggestions to help users avoid the same vulnerability in the future. The site address can choose the industry and classification, users can more quickly manage and search the site address.

In this project, the front end uses jQuery, the back end is Java, and the lower level is a vulnerability scanning engine developed by another group using C++. There is already a C/S architecture version, we are doing the web version. What exactly looks like, as well as the interaction is what kind of, can be compared with those security guards, anti-virus software to imagine.

The code versioning here is using SVN, and it seems that you have to apply for permission from the administrator to submit the code, which is really hard to use compared to Git… After that, I worked for a company that used Git. Maybe the choice of code versioning tool was related to the industry of the company?

After a month or so of overtime fighting, finally through… I didn’t know I would work so much overtime, and that taught me a great lesson. During that period, my spirit has been tight, for fear of not being able to deliver on time, psychological pressure is great; Fortunately, the result is not bad, after a period of normal 5:30 off work days. Although I work overtime very late every day, I still guarantee my double break. Compared with the current environment of Hangzhou, it is still good.

I have been working on the web application vulnerability scanner for about half a year since I joined the company, but the previous month or so was for the project of China Mobile, which was customized. Later, based on that version, it was transformed into a more general version, with some enhanced functions and more stability.

At the end of 2011, in order to prevent the new security threats brought by the rapid development of the Internet, the company decided to develop a new product – Ming Kam ® website security monitoring platform.

This is a set of software and hardware integration monitoring platform, is the “Ming Jian ® Web application vulnerability scanner” upgraded version. Remote monitoring technology is adopted to provide 7 × 24 hours real-time safety monitoring service for Web applications. It has the monitoring module of Web vulnerability, webpage Trojan horse, webpage tampering, website availability and webpage keyword. Users through the Web page to create, modify tasks and other operations, the data to the server, and then the instructions to the underlying engine, so as to carry out periodic detection of the specified website.

Since the project was started from scratch and there was a lack of interaction designers, the prototype design of the product fell on my shoulders, allowing me to experience a role outside of development and have a deeper understanding of each link in the production process. Then there were two more Java developers on the project team, and I was still the front end…

I still remember that at the end of 2012, the company took over the project of China Mobile again, and we also started to work overtime until 9 or 10 PM for about a month. Because has had this kind of experience, the state of mind is relatively good, after all, the ability of people to adapt is very strong.

However, during the acceptance, the contact person of China Mobile always repeated — they said that some functions were wrong, and then said they were wrong after they changed them as they said, and they changed them repeatedly for many times. It felt like they were deliberately finding fault. Originally, working overtime every day on the psychological pressure, coupled with the client like playing with us, the state of mind some collapse. May be the work is too tired and mood problems, that time a little chest pain, with the project team leader joking like to say: “I this count industrial injury?”

I’ve done a lot of things in this company, but nothing challenging. In addition, the nature of the company, long hours of concentrated high-intensity overtime and that kind of difficult customers, I can not stand; In addition, although there are about five people in the front of other project groups, there is no communication except occasionally talking in the group, and there is basically no sharing and training. Finally, in 2013, nearly two years into the job, I quit.

During my work here, the only challenge I had was how to pass the data when I was looking at the monitoring data report. It was still my job to find something for myself

During the development of the work, there is a need to view the report — click a button from a page to open the report page (the new window). The entry to a report page is not a fixed page, nor is it a fixed button, so different types of reports pass different parameters, and there is little commonality between each group of parameters. The original implementation is to pass the parameters to the report page via the queryString of the URL. As mentioned earlier, different types of reports pass different parameters, so the report page may have the following problems:

  • The URL is too long and looks ugly.
  • You need to parse and judge QueryString to determine what type of report it is.
  • If there are more types of reports in the future, judgment will increase, which will not only increase the amount of code, but also a little difficult to maintain, and affect performance.
  • The security is poor. If you use queryString to find a pattern, you can get the data you want by randomly entering a URL that fits the pattern through the browser address bar.

Given the above points, I took advantage of the fact that parent-child pages can access each other’s window objects and came up with an “implicit argument passing between pages” approach.

– the ray”Parameters are passed implicitly between pages”

What Anheng brings to my growth is: let me understand what is called “work pressure”, exercise the psychological quality to deal with the high intensity of overtime; Increased work experience in addition to testing and development; So I’m very skilled with jQuery.

To be honest, looking back at the company’s welfare is still OK: five social insurance and one housing fund, statutory annual leave, annual physical examination, annual gifts, annual travel, department activities, double holidays, etc.

Attending the first annual meeting, being named “Outstanding Newcomer Employee”, getting a trophy (actually a disc that seems to be made of copper) and a Swatch watch, and winning the project award for the team I worked for. President Frank said excitedly in his speech: “We want to have our own office building!” After a few years, it really happened!

Perhaps because the president is an overseas returnee from the United States, everyone in the company has to take an English name, sometimes colleagues are called by English first names. Mine, of course, is called “Ourai,” as it is on Twitter, GitHub, and other foreign sites.

It suddenly dawned on me that the first two companies in my career were totally project delivery (not outsourcing) oriented! The biggest characteristic of this type of company is that deadline is basically dead and cannot be postponed. When you’re working on a project, you have to do everything you can to get it delivered before the deadline.

Because this kind of company is living by taking on projects, so if there are no projects, the employees will be relieved, but the company will die. If the project receives a soft hand, the company lives moist, but the employee is about to be busy, work overtime basically every day, yali big hill.

It occurred to me that someone once asked me a question: “Would you rather work on a project? Or would you rather work on a product? — Oh, I see.

conclusion

This phase is where I begin to understand what a “front end engineer” is and the state of the industry. Due to the monotonous business or the lack of complex requirements assigned to me, I felt that neither company had much challenge in what I did, and there was no technical communication between colleagues, which limited my growth.

In my spare time, I mainly do three things: I look for technical materials on the Internet, read technical problems on Zhihu, and use my own blog to practice my skills. I went to a Japanese school to learn with foreign teachers. Sometimes the courses were arranged on weekdays, so I had to go directly after work. Watch anime and play games.

During this period, I also participated in some offline activities, such as the 6th and 7th D2 Forum, as well as the China International Cartoon and Animation Festival and Fan Exhibition.


Please follow WeChat official number “Coding as Hobby” (search for “Coding as Hobby” in WeChat) and read the latest technical articles. -)