One of the growth of technical engineers

Source: Internet
Author: User
One of the growing technical engineers has recently been discussing some of my work methods with some friends in the industry. I have been chatting about some of them. today I have nothing to worry about. I simply use text, briefly describe how I work (Alien style ). Of course, every engineer has his own unique path to growth. Therefore, if you are interested in the following, you should take a look at it.

1. identify points of interest: Know Yourself

As a novice programmer, you must first be aware of the starting point to make yourself feel that work is a very happy thing!

As a technical engineer, there are also many options for career orientation, such:

  • Web front-end engineers (also known as FE, some companies have finer points, such as Html/Css engineers and Javascript engineers)
  • Backend engineers (also known as RD, such as PHP engineers and Java engineers)
  • Client engineers (many companies also classify them as RD engineers, such as iOS engineers and Android engineers)
  • Data Analysis and Mining (some companies are called BI or DI, which usually have fewer product services, mainly for big data analysis and processing, and more scripts such as C or Shell)
  • Testing engineers (QA, also known as white-box/black-box testing for various product functions, to discover potential bugs, namely quality testing)
  • Database Engineer (also known as DBA, which is a type of online O & M engineer, but focuses on the management of various databases)
  • O & M engineers (also called OP) are mainly responsible for O & M of various development, testing, and online environments to ensure the stability of online services. it is also the most widely used role in command line)

For each role, the normal working status is inevitably different, and the sense of accomplishment obtained through code writing is also different.

As a new code farmer, if you want to write your own code, you can intuitively change what users can see and feel, so you can get a sense of accomplishment at work, and therefore fall in love with this job, it is better to select a Web front-end engineer or a client engineer.

If you want to switch between servers online and through command lines every day, and write a bunch of scripts that others cannot understand, as a result, the sense of accomplishment is more advanced, so the choice of O & M engineers must be correct!

It is necessary for some new students to understand what they want to do before submitting a resume for a job. of course, most of the students enter the company through school recruitment, what will be done after entry may be randomly allocated by the company; for this part of students, if they cannot find interest points at work within a period of time after entry, it is time to apply for transfer to another Team.

Work should not only be a tool for earning money to support the family, but also a pleasure for people to do things and grow. It's worth doing what you like. (don't misunderstand: It's not recommended that you work overtime. haha ).

2. focus on accumulation: enrich yourself

Precipitation is the most direct way to prove your gains. it can be document precipitation, technical precipitation, etc.

During our work, we will certainly do some technical research, solution analysis and review, and these things can be carefully organized into documents, to a unified summary in one place (such as under the team's wiki column), you can review it yourself, and other students in the group can also view it.

During the development of some large projects, a superior solution will be created for a certain type of problems, which may be a high-performance implementation method or an efficient debugging technique, these things can be used as a class library or tool to provide to other students in the group as technical points.

To put it simply, you can grasp the following principle:

  • Do not rely on word of mouth for the way you can use text records! I passed it over with my mouth, and it slowly went away. as the saying goes, good memory is not as good as bad writing!

  • If a useful and practical technical implementation method can be extracted into components or class libraries, try to reuse them to the maximum extent and use documents as detailed as possible! Don't keep building wheels in the group for similar functions!

  • Read more, write more, and research (sometimes you need to learn with a playful mindset). However, if there is no actual output in technology, it's just a waste of time, but I don't know why, poor performance

As far as I am concerned, whether in Baidu or Meili, all things that I can accumulate or help you accumulate together will certainly not be missed.

For example, we have set up a team-specific documentation platform, there are review documents for project design and implementation solutions, shared documents with project summaries, scheduled pace follow-up documents for large projects, technical research documents, documents with team-level technology sharing, and more archive columns for weekly reports.

In terms of technology, there are integrated solutions, compilation tools, development tools, frontend and backend online service monitoring and alarm systems, and backend service performance monitoring and analysis platforms that comply with the team's development specifications.

In this aspect of playing Technology, for example, the Web front-end Assistant (FeHelper) is playing Chrome extension when Baidu is working on the front-end. I remember that CSDN held a Chrome browser plug-in development China competition, and FeHelper also won the third prize.

Later, the rise of the public account, and the overwhelming forwarding in the circle of friends were all subject to only one title, very earthy. during that period, 2048 games were particularly popular on PCs and Wap, so I also wrote a public account and applied it to my own game in the spirit of letting everyone play together. so I developed a public account sharing SDK; this is the WeixinApi that we have been using. WeixinApi has benefited many people until official js-sdk is released.

Anything that can be visible and touched by others in any form is called precipitation, and it is also a reference for measuring value.

3. be a project leader: experience yourself

By accepting the Leader command and launching the product functions with a single click, this can be regarded as something that is far from doing things and understanding things.

If one day you feel that you can take charge of a product function on your own without the assistance of your mentor and Leader, it is time to experience yourself in a more comprehensive dimension: start a project on your own, as the project owner, implement it to the end!

You can get more gains from these aspects and find more sense of accomplishment:

  • Analyze the requirements and determine the roles involved in the project

  • Organize roles to review project requirements and analyze technical feasibility and time costs of product functions.

  • Split functional modules to implement the work scope of front-end engineers

  • Organize front-end engineers to review technical plans and determine whether to carry out technical plans in batches by priority based on the release time specified by the requirements

  • Reasonable division of labor, production of R & D schedules, and summary of joint debugging, self-testing, and QA testing periods, unified output of project schedules

  • Follow up the project progress and check the project output in combination with the scheduled Review, promptly discover risk points, adjust and notify

  • For large projects, it is more necessary to organize regular standing meetings to ensure the overall progress of the project is smooth.

  • In the project process, there are temporary new requirements, demand changes, or technical implementation scheme Adjustments. In addition, it is necessary to analyze all roles in a clear and clear manner, and look at the overall launch requirements of the project, output the final adjustment scheme to ensure the stable development of the project

  • In the early stage of the test, we need to clarify the core test points with QA. in the case of complicated technical implementation, we need to clearly inform the Test team to avoid incomplete coverage of test cases.

  • Before the project goes online, you need to deploy and configure all the online environments with the O & M engineers to ensure that the project goes online without any obstacles. for projects involving a large number of edge products, you need to consider the disaster recovery plan.

  • After the project is tested, if there is a large demand for the product, you need to discuss with the product team about whether to perform the internal experience of the company or the online small traffic (grayscale) test; provide reasonable problem feedback channels, collect and sort out user feedback, and quickly optimize

  • After the project is launched, you need to pay close attention to service stability and user feedback. after the project is stable, you can publish the project.

  • Organize all the roles of the project team to summarize the project, analyze the problems occurred during the project coordination process, and summarize the experiences and lessons. Also, record the good troubleshooting methods in the project, finally, share the project summary with the team to end the entire project!

As long as you are the Leader and have any problems with the project, Leader will inevitably ask you only. the whole project process will inevitably lead to pressure! However, if you never dare to take this step, how can you know your capabilities?

So, do it boldly. The team must be more willing to take the initiative to take responsibility!

4. become a mentor: Learn to educate people

Teach all mature work methods and reflect on new people.

Excellent ways of doing things should be spread, so that more people can spend less time to become excellent. At work, the best way is to become a mentor after you grow up to help new people grow together, for example:

  • Analyzes the actual resistance (or blind spots) in Ta's growth process based on the work ability, business scope, and technical interests of new students)

  • Tailored short-term, mid-term, and long-term growth plans for new students, regularly Review growth gains and losses, and timely correction

  • Take the new students to try something that is better than Ta's current working ability (business functions, technical topics, etc.), to help the new students challenge themselves and gradually break through the limits of their own capabilities

  • Learn to Let Go, do a good job of guidance and back-up support, and let new students finish one thing. it doesn't matter if they keep up with each other. during the process of growth, anyone should experience some ups and downs, how can we see the rainbow?

  • Guides and urges new students to accumulate documents and technologies, assists new students in identifying their own positions in the team, and establishes a firm foothold.

  • Instruct new students to share and learn communication skills with other roles, and gradually learn to control the overall view of projects.

Of course, you also need to constantly reflect on yourself as new people grow up. Is it my reason why new people are not doing well? Newcomers are doing well. do I do my best?

  • If a new employee does not have a good function, does he fail to Review his project implementation plan in advance? Or is there a problem with the solution itself?

  • A newcomer has a very serious project Delay. isn't he having to Review the progress of his project? Or do you have no idea what the project's launch plan is?

  • A new employee has too many bugs in a project. didn't he give a mentor the blame and Review the Code for him? Or is there a frequent Bug in your usual projects, and new people just follow suit?

  • New people are always speechless in front of other roles. should they express their ideas without telling them? Or do you dare not speak in front of others, and you are afraid of being photographed?

  • When a newbie communicates with other roles, does the newbie fail to teach him a better way of communication? Or do you not communicate with others, and you often get upset with other roles?

  • A new employee uses some clever methods to make things very beautiful and get everyone's praise. Did they give him good guidance? Or from the above, you find that you are not as good as new students. do you need to learn from each other?

  • New students take the initiative to contact you one-on-one for Growth Summary and self-criticism. Is this your usual way of doing things that allows him to actively understand? Or, do you need to think about whether you have such initiative and can criticize and criticize yourself?

  • Do you know enough about your new classmates? Do you know yourself well?

A good mentor should never worry that Qing will win the blue because it is a good thing. this is his ability and skill! If he is really better than blue, it means he is good enough. we must learn to be with excellent people so that we can grow faster.

5. pay close attention to industry trends: stand high to be far-fetched

Technology innovation is very rapid. we must not enrich and improve ourselves by Project production alone. there are too many smart people in the code farming industry, so we must absorb good technical ideas.

Gradually, you need to regard yourself as a technical director. Of course, if conditions permit, the team can be technically responsible. if the team is divided into different directions, the team can be the technical director of a certain business direction.

I have summarized and classified some technical difficulties encountered by multiple analysis teams. The vast majority of problems encountered by your team since the development of the Internet industry have certainly been experienced by other companies. I jumped out and tried to learn from various channels how mature companies and technical teams have used to solve such problems. although they cannot be copied, but at least we can get more inspiration from it.

New technologies are rapidly updated, especially in the Web front-end. However, a new solution will be available soon. As a technology enthusiast, you should pay close attention to the dynamics of the industry and see why there are so many new frameworks, class libraries, and tools. For example, you can understand:

  • Before jQuery is available, you can use the native DOM to develop functions well. Why does jQuery come out? What problems does it mean to solve? What is the difference between using it and not using it in projects?

  • JQuery is already very useful. Why does Baidu WebFE need to build a Tangram in the company before? Is it a mere wheel building, or is it possible to implement customized packaging of various APIs? What are the differences between jQuery veterans and Tangram?

  • Later, what are the ghosts of AngularJS, Backbone. js, and Ember. js? Which company and team are created based on what problems? They only use these tools because of a product function, or does this product exist as a common solution? If you want to introduce them to your project team, is it true? What do you get and what do you learn from it?

  • Why does Nodejs appear? Why does io. js develop independently as its branch? Why did merge get together?

  • Another example is the cross-platform mobile development tools, such as PhoneGAP, Titanuim, Xamarin, and React Native which will be on fire this year. why are there so many things to solve the same problem and the updates are so fast? Have all the things finally come out with the excellent qualities of our predecessors? What are the user groups they target? Why is it favored by the masses? What is the difference between them and Native?

  • PHP 7 has been released. why are you still using PHP 5.3.29 first? Upgrade PHP to the latest version. Do I need to be compatible with the code? Are there any changes in development? Can the performance improvement greatly reduce the number of servers?

  • What are full-text search engines, sphenders and Solr? What are the differences between index efficiency, search performance, support for Chinese word segmentation, and support for real-time indexes? If the project needs to be used, which one is more appropriate based on actual needs?

  • For example, if your team needs to perform multi-dimensional monitoring of online services and Zabbix, Nagios, Open TSDB, or Open Falcon that already exists on the market, do you know which level these items can be monitored? What are the costs of online deployment and application? What is horizontal scalability in the future? If you want to write one by yourself, can you first draw a clear monitoring chart?

In short, in your spare time, you can broaden your technical horizons, visit Github more, or visit blogs from domestic and foreign cool people to see what problems have been encountered by others and what problems are being solved, make more assumptions: if this problem occurs, what would you do?

6. think more and do things: more opportunities to prove your abilities

If your company is not a nursing home, you will have to create value if you pay your salary. Any job (a product function, a technical system, a set of development specifications, or a set of work processes) must have its own problems. think more, analyze more, discovering and solving problems can create value and grow!

Maybe your team is a mess, and my colleagues are too tired to complain. you only need to wait until your work can be done online. Maybe your team is enjoying the smooth sailing of everything. my colleagues are very angry and have a smile after work. I am very happy and satisfied.

However, if there are no 100 people in the world, there must be no 100 teams; if there are only people, there are shortcomings and teams. Don't be scared by a mess of teams, or think the team looks great, so you can't start!

  • What is the usual development method? are you doing repetitive physical work? If yes, can I automate it by developing some tools?

  • If every student has a self-developed system, such code will inevitably be difficult to maintain. old people in the team will come to new people and look at all kinds of code. why? A unified standard must be set for the development process and specifications to promote and assist in implementation!

  • Is an online technical system always patched for new features because it is a giant and cannot be easily adjusted? Over time, every member of the team must only know the patch, but not its real functions and working principles! Therefore, we must take the first step to take the lead to reorganize and reset the core part and display its functions! Accompanied by detailed instructions!

  • Is it because everyone is used to the current development, testing, and deployment methods of a bloated business system, so they are reluctant to perform vertical splitting? If such a system has slowed down the work efficiency, you must sort out and rectify it to make it a sub-system with multiple independent functions. The system is small and beautiful, and the business is clear, project conflicts are not easy to generate, and the maintainability can be greatly improved! At the same time, push the team to arrange different owners for each subsystem!

  • If the problem of the above technical team does not exist, you can start from the online service stability of product functions. Is there frequent online alarms? Are all business logs normal? Do users frequently report or complain about some common functions? In short, if you can use tools to automatically monitor alarms, you must not solve them manually. If you can use the tool platform to enable operations or product personnel to query the cause of the problem, you must not manually perform the operation.

As long as you are willing to calm down and start analyzing from a small point, discover problems, and use all available resources to solve them, you are not afraid of small issues, as long as one piece is accumulated gradually, it will reflect its own value. what bosses need is: because of you, the team will become better! However, you cannot simply use only money to measure such gains, but also the wealth that others cannot afford.

7. bringing a team: standardized and streamlined

Of course, not everyone has this opportunity to be promoted to a Team Leader. there is no bid in their work. if they have a good feeling, they will leave the Team to you; it must be that your usual work has fully proved that you have the ability to lead the Team together!

Of course, in my opinion, the more important thing is to do things, rather than the Title in the administrative position; as long as you are doing something, it is to bring a team, as to whether it is a manager Title, not important at all. Sometimes the technical director of a small company has to honestly do first-line R & D when it comes to a large company, isn't it. If you are really awesome, the company will treat you badly again. if you leave, it will only be the loss of the company. So, let's do things honestly. it's time to come.

As the manager of a business and technical team, at least these things need to be done:

  • According to the business of the team, we should make clear planning. we should not eat a big pot, but we should do well for small teams. a brilliant army will have a stronger sense of responsibility and everyone will know what to do.

  • Each business line has a clear scope of requirements and cross-department requirements, so that the work of each Team in the group can be smoothly carried out.

  • Each small Team in the group must have a uniform development specification, which must be safe. if the development specifications within the Team are messy, how should we unify the interfaces provided to third-party departments?

  • Each small Team in the group must have a unified project full process, and pay attention to actual output (precipitation) at each stage)

  • The group requires a public component library, class library, and public service layer, which will surely form the backbone of a team, and most of the development work can be centered around it. If there is a requirement that no one in the team needs to think about, it can be done directly. that's enough.

8. team training and development: healthy and sustainable development

A team of more than 10 members must consider effective echelon construction and business and technical personnel in all directions.

  • Train the team leader in various business directions and ask the leader to train their own Backup

  • Train the technical director in the team and continuously output more technical solutions available to the team.

  • A good mentor system is formed in the team. Leader is directed to the Leader and the Leader is directed to the first-line R & D. at the same time, the team also needs to flat the echelon to create a barrier-free communication and reporting mechanism.

  • There is a weekly meeting system for the team, and at least one opportunity is guaranteed every week, so that everyone can gather together to know the overall situation of the team's projects in the past week and the pace of work for the next week.

  • A good technical sharing mechanism must be established within the team at least once a week, it can be the sharing and review of technical implementation solutions for large projects, the project summary and sharing of large projects, the in-depth analysis and application of a certain technical point on the project, or a tool platform. it can be a must-have skill (odd sex skills) in your work) it can also be an analysis of research reports on cutting-edge technologies in the industry, a taste of some new technologies, or cross-team or cross-company technical exchanges. In short, we need to make everyone feel that in this team, there are things to do and things to learn!

  • Conducts one-on-one communication with students from time to help them solve problems. if you have any problems, you must point them out and give them a try! It is the role of a mentor to help students grow!

  • Clear and reasonable rewards and punishments principles, the company does not raise idle people, but also does not raise growth people; with excellent people, the team can be healthy and sustainable development

  • Team Building is not scheduled. it can be large or small and requires some conditions to allow everyone to get together and discuss things outside of work. I am so happy that I am afraid the code is not well written?

No matter which Level you are working on as a Leader, you should think about: when will you hand over all the things you are doing to your Backup?

Only when you can get rid of the current tasks of the team can you have the opportunity to consider more and more important tasks for the team. this is an opportunity for Backup, it is also an opportunity for you.

9. learn other technologies: cross-border and full-stack

As the saying goes, technology is not overwhelmed, and more technical knowledge is used to arm yourself. one day, a strange battlefield will be launched, and it will not be feared at all.

Of course, during the growth of technical engineers, the full stack is not a path that must be taken. However, it is always a good thing to gain a better understanding of one of the technologies.

Assume that you are working on the front-end. a front-end Team can be fully held, and you can gradually get involved in the backend, server, client, and work in the same way. You don't have to worry about learning every technology again. you just need to familiarize yourself with the core technologies in the field, master the working principles, and understand the differences with other fields, that's enough.

If you have limited capabilities and fields, you can use the same way of doing things. other technical fields will not be too difficult.

I think back to my years of work, first Java and then VB. net, in the C #. NET, and then the Web front-end, one is three years; later I learned iOS, and then switched to Android; back and continue to bring the Web front-end Team, and then the PHP back-end Team; to be honest, the method is correct, and the task is easy to handle.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.