One of the technical engineers growing up

Source: Internet
Author: User
Recently, there are friends in the industry with me to discuss some of the methods of work, chat to break some, today idle to no matter, simply again in the way of words, simple description of my working methods (Alien style). Of course, every engineer has his own unique way of growing up, so if you are interested, take a look at the fun.

First, to find a point of interest: Know yourself

As a novice program ape, the first to understand clearly, from what start, can let oneself feel, work, is a very happy thing!

As a technical engineer, can choose as a career direction also a lot, such as:

    • Web Front-end engineer (also known as FE, some companies are more granular, such as HTML/CSS engineers, JavaScript engineers, etc.)
    • Back-end engineers (also known as Rd, such as: PHP engineers, Java engineers, etc.)
    • Client engineers (more companies also classify it as Rd, such as: iOS engineer, Android engineer, etc.)
    • Data analysis and mining (some companies are called bi or DI, usually the product business will be less, mainly do some big data analysis and processing, C or shell and other scripts used more)
    • Test Engineer (also known as QA, mainly responsible for various product functions of the White box/black box test, found that the potential bug, that is, quality testing)
    • Database Engineer (also known as DBA, one of the online operations engineers, but focused on managing the various databases)
    • Operations Engineer (also known as OP, mainly responsible for a variety of development, testing, the operation of the online environment, the stability of online services to provide protection; is also the command line with the most one role)

Each role, usually the work state is not the same, by writing code to get the sense of accomplishment is not the same.

As a new yard, if you want to write your own code, the most intuitive to become visible to the user can see the touch of things, and therefore get a sense of accomplishment in the work, and therefore fall in love with this job, then choose web Front-end engineer or client engineer, it will be better.

If you prefer to go through the command line every day to jump between the servers on the line, and knock a bunch of other people can not understand the command, write a bunch of other people do not understand the script, and therefore get a sense of accomplishment, feel more high force lattice, then choose Operations Engineer, must be right!

Some of the newly graduated students, it is necessary to cast a CV to find out what they want to do, of course, there are most students through the school recruit into the company, specifically in the future to do what, it may be the company randomly assigned, for this part of the students, if after a period of time in the job can not find points of interest, It's really time to consider applying transfer to the other team.

Work should not just be a means of earning a living, but should be a kind of fun on the road of doing things and growing up. Do your favorite things, and then hard, also worth (don't misunderstand: not recommended everyone overtime, haha).

Second, focus on precipitation: enrich themselves

Precipitation, is the most direct proof of their own harvest is a way, can be a document precipitation, technical precipitation, and so on

Work process, we will certainly do some technical research, program analysis and review, these things can be carefully organized into documents, unified into a place (such as the team's wiki column), can go to review, the group of other students can also see.

In some major projects in the process, more or less to create a better solution for a certain type of problem, may be a high-performance approach, or it may be a high-efficiency debugging skills, these things, a little bit of thought, can be used as a class library or tool for other students in the group, as a technical point, Precipitate down.

To put it simply, one can grasp the principle that:

    • Can use the word record way of doing things, you must not rely only on words of mouth! With the mouth of the transmission, slowly also went out of shape, as the saying goes, good memory than bad pen!

    • Easy-to-use and practical technology implementation, can be extracted into a component or class library, as far as possible to maximize its reuse, and accompanied by the most detailed usage of the document! Do not aim for similar functions, in the group also constantly build wheels!

    • Read more to write more research (sometimes need to play the mentality to learn), but do technology, if there is no actual output, it is called the blind toss, know it but do not know why, the effect is not good

As far as I am concerned, whether it is in Baidu, or beautiful said, all I can to precipitate or help everyone together to precipitate things, certainly will not let go.

As for documentation, we have built a team-specific documentation platform, review documentation for project design and implementation, shared documentation with project summaries, scheduled follow-up documentation for large projects, technical research documentation, documentation for team technology sharing, and archive columns for Team weekly reports.

In terms of technology, there are integrated solutions that conform to team development specifications, build tools, development tools, front and rear end service monitoring and alerting systems, backend service performance monitoring and analysis platforms, and more.

In the play technology, such as the Web front-end assistant (Fehelper) is the front-end of Baidu, play Chrome extension, step by step precipitation down. Remember when CSDN also hosted a Chrome browser plug-in development China competition, this fehelper also stumbled to take a third prize.

Then the rise of the public, in the circle of friends of the overwhelming forwarding are only a title, very Earth; it's going to be a while. 2048 small games in the PC and WAP special fire, so I also wrote a put to their own public number, in the spirit of let everyone together to play up the mentality, So a set of public share based SDK, applied to this small game, this is what we have been using the WEIXINAPI. Before the official version of JS-SDK had been introduced, Weixinapi benefited many people.

Anything that can be seen and touched by any form is called precipitation, and it is a reference that can be used to measure value.

Third, do a project leader: experience their own

Accept the order of leader, and can alone the product function to finish on-line, this can at most can be able to do things, away from work, understand things are far away

If one day you feel that you can independently to take charge of a product function, no longer need to mentor and leader assistance, then, it is time to experience themselves from a more comprehensive dimension: take the initiative to provoke a project, as the project leader, the implementation of the end!

You can at least get more out of these areas and find more sense of accomplishment:

  • Analyze requirements and identify relevant roles to be involved in the project

  • Organize the role of the project needs review, and analyze the technical feasibility of product function, time cost, etc.

  • The function module of the requirement is reasonable split, and the working range of the front and rear engineer is implemented.

  • Organize front and rear engineers to conduct technical program review, and determine whether the need to be prioritized in batches according to the time-to-live

  • Reasonable division of labor, output research and development scheduling, and summary of the joint, self-test, and QA testing period, unified output project scheduling

  • Follow up project progress, combine schedule review project output, identify risk points timely, adjust and inform

  • Larger projects, it is necessary to organize regular standing meeting to ensure the overall progress of the project smoothly

  • The project process has temporary new requirements, or changes in requirements, or technical implementation of the program adjustment, but also to be able to clearly and all the role of the analysis, looking bigger picture, combined with the project's overall on-line requirements, the output of the final adjustment program, to ensure that the project robust development

  • Pre-test, need and QA clear the core test point, for the technical implementation of the more complex areas, need to clearly tell the strength of the test, so as not to cover the test cases incomplete

  • Before the project goes online, it is necessary to complete all the online environment deployment and configuration with the operations engineer to ensure that the project is on-line without any obstacles; for projects involving more marginal products, it is more necessary to consider the situation of disaster preparedness plan

  • After the completion of the test, if it is a large product demand, and the product needs to discuss, whether the company internal experience, or online small flow (grayscale) testing, and provide a reasonable feedback channel, collect and organize user feedback, quickly optimize

  • Project on-line, need to pay close attention to service stability, focus on user feedback, stable, can carry out project on-line advisory

  • Organize all the roles of the project team to carry out the project summary, analyze the problems of each role in the process of project cooperation, summarize the experiences and lessons, and also record the good problem handling methods in the project, and finally share the project summary to the team; end the whole project!

Sean, as long as you are the lead eldest brother, the project has any problems, leader will be the only you are asked, the whole project process, will inevitably produce pressure! But if you never dare to take this step, how can you know how big your ability is?

So, bold to do it, the team must be more like the courage to take the initiative to provoke the burden of the people!

Four, to be a mentor: learn to educate people

All the mature ways of working, and also from the new people to do self-reflection

Excellent way of doing things, should be spread, so that more people spend less time to become excellent. The best way to work is to be a mentor and help new people grow up, such as:

    • Combined with the new students ' ability to work, business scope, technical interest points, together to analyze the growth process of TA real resistance (or blind spots)

    • Tailor-made for new students short-term, medium-term, long-run growth planning, regular review growth gains and losses, timely rectification

    • With new classmates to try some more than ta at this stage of work ability of things (business functions, technical topic, etc.), to help new students challenge themselves, and gradually break through their own ability limit

    • Learn to let go, good guidance and back-up support, so that the new students complete a whole to fix a thing, planted a somersault also does not matter, any growth in the process should experience some bumpy, not face, how to see the rainbow?

    • Guide and supervise the new students in the documentation and technical aspects of the precipitation, to help new students in the team to find their own position, a firm footing

    • Guide new students to learn to share, learn and communicate with other characters, and gradually learn to control the overall view of the project

Of course, you also need to grow from the new process, constantly reflect on themselves, the new people do not good enough, is my reason? The newcomer is doing well, am I active?

    • The new person does not have a function well, is not himself in advance review his project implementation plan? Or is the solution that you give him a problem?

    • The new person a project delay is very serious, is not oneself not much to review his project progress? Or do you not understand the project's on-line plan?

    • A new project bug too many, is not oneself do not do a mentor's accusation, for him to do code Review? Or their usual project is the bug frequency, the new people just follow it?

    • The new person is always quiet in front of other characters, is not he told him, should be bold to express their ideas? Or do not dare to speak more in front of people, they are afraid of being photographed?

    • The new people in the process of communication with other characters, conflict, is not his own to teach him a better way of communication? Or do you not communicate with others, and often do not have fun with other characters?

    • The newcomer uses some very ingenious method to accomplish a certain thing to be very beautiful, obtains everybody's approbation, is not oneself gave him very good guidance? Or do you find yourself having a better place than your new classmates, and you need to learn from each other?

    • New students take the initiative to find you a one-to-two communication, growth summary, self-criticism, this is not your usual way of doing things, let him learn positive understanding? Or, you need to think about whether you have such an initiative, and can criticize and self-criticism?

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

A good mentor, never worry about the blue will win Bluetooth, because it is good, this is his ability, but also your skills! If he can really win the blue, he is good enough, we must learn to be with good people, so that we can grow faster.

Five, pay close attention to the industry news: stand High to see far

Technological innovation is very rapid, we must not rely on the output of the project to enrich and improve themselves; yards the farmers have too many smart people to absorb good technical ideas.

Gradually, you need to regard yourself as a technology leader. Of course, if the conditions allow, can be used as a team of technical responsibility, if the team of the Division is more detailed, can be used as a business direction technology leader.

Multi-Analysis Team work encountered some technical problems, summary and classification, the Internet industry development so far, your team encountered most of the problems, in other companies must have experienced. Jump out, think of ways to understand the development of more mature companies from various channels, more mature technology team have used the way to solve this kind of problem, although can not copy copy, but at least can get more inspiration from it.

New technology has been updated very quickly, especially in the Web front end, but how long it has come out with a new solution. You should be a technology addict, keep a close eye on the dynamics of the industry, see what people are doing, why there are so many new frameworks, libraries, tools, etc. For example, figure out:

  • In the absence of jquery, you can also use the native DOM to develop the function is very good, then why do you come out jquery? What kind of problem does it appear to solve? With it and without it, what will be different on the project?

  • jquery has been very useful, then Baidu Webfe before why in the company to engage in a Tangram? Is it a simple wheel, or is it true that it can be packaged in a variety of API customizations? For the veteran of jquery, what would be different if you used Tangram?

  • Then we all AngularJS, Backbone.js, ember.js, what are these ghosts? Which company and which team is based on what kind of problem? Do they use these tools simply because of a product's functionality, or do they exist as a common type of solution? If they were to be introduced into their own project group, would it really apply? What inspiration can you get from it and what can you learn?

  • Why does Nodejs appear? Why would io.js, as its branch, develop alone? Then why did the merge come together again?

  • Again such as cross-platform mobile development tools, PhoneGAP, Titanuim, Xamarin, after this year fire up React Native, why solve the same problem, will come out so much, update so fast? Do the last things come out that have the good qualities of the ancestors? What are the user groups they are targeting? Why do you get the public's favor? What is the difference between them and the native native?

  • PHP 7 has been released, why do you use PHP 5.3.29 for service first? Upgrade PHP to the latest version, do you need to do some code compatibility? Is there any change in development and before? Does the performance increase significantly reduce the number of servers?

  • What are the full-text search engines, sphinx and SOLR? What is the difference between the efficiency of the index, the performance of the search, the support for Chinese word segmentation, and the support for real-time indexing? If the project needs to be used, the actual needs, choose which one is more appropriate?

  • For example, does your team need to monitor multi-dimensional online services, Zabbix, Nagios, open tsdb, or open Falcon that already exist on the market, and do you know that these things can be monitored at that level? What is the cost of online deployment and application? What is the level scalability of the latter? If you want to write one yourself, can you draw a clear monitoring layout first?

In short, leisure time, the technical horizon to relax a little more, go to Github, or some domestic and foreign cattle Blog, see what other people have encountered what problem, are solving what kind of problem, more do some assumptions: if this problem is you met, how would you do?

Six, more thinking, more work: more opportunities to prove self-ability

The company is not a nursing home, you pay, you have to create value. Any job (a product function, a technical system, a set of development norms, or a set of workflow) are bound to have its problems, think more analysis, find problems and solve problems, so as to create value, we can grow!

Perhaps your team is like a lump of paste, a mess, colleagues have been too lazy to complain, only care about the work can be finished online. Perhaps you are in the team all the wind, colleagues harmony, after work, laughing, happy, very satisfied.

However, there are no 100 points in the world, there must be no 100 points of the team, mortals have shortcomings, as well as the team. Do not be frightened by the mess team, do not think the team looks too good, will not know!

    • What is the usual way of development, do you do some manual work in repetition? If so, can it be done by developing some tools to automate it?

    • If each student has become a set of development system, such code must be difficult to maintain, the team of old people to new, looking at a variety of code, which have not complained about the rationale? In the development process and specifications must have a unified standard, to promote and facilitate the effective implementation!

    • A technical system on the line, is not all because it is a monster, not easy to adjust, so for the new features are constantly patching? Over time, every student in the team must only know the patch, and do not know its true function, the real working principle! So we must take the first step to re-comb, co-located, the core part of the Independent, to show its due function! and accompanied by a detailed document description!

    • For a bloated business system, is not everyone because they are accustomed to the current development, testing, deployment, and so on, so reluctant to do vertical splitting? If such a system has slowed down the efficiency, it must be hands-on grooming, let it become a number of independent subsystems, small and beautiful, business is clear, the project is more difficult to create conflict, maintainability can be greatly improved! At the same time push the team to arrange different owner! for each subsystem

    • If the problem of the above technical team itself does not exist, it can be considered from the online service stability of the product features. Are there frequent alarms on the line? Are the business logs normal? Does the user have frequent feedback or spit slots for some common functions? In short, can use tools to automatically monitor the alarm, you must not use physical solution. Through the tool platform to let the operation or product students self-help query the cause of the problem, we must not let the development of manual to operate.

As long as willing to calm down, from the small point to start analysis, find the problem, and use all available resources, promote to solve it, not afraid of small, as long as a piece of gradually accumulated down, will be able to reflect their own value, the bosses want is: because you, so the team become better! However, your harvest, is not simple to use only the money can be measured, but also others cannot take the wealth.

Seven, with a team: standardize the process of

Of course, this is not everyone has the opportunity to be promoted to Team Leader, the work can not be nepotism, twins feelings good to the team to you, must be your usual work has been able to fully prove that you have the ability to lead the team to develop together!

Of course, in my opinion, the more important thing is to do things, not in the administrative position of the title; As long as you are doing now, is to bring a team, as to whether it is a manager title, it is not important at all. Sometimes a small company's technical director, to the big company, also have to do a line of research and development, is not it. If you are really good, the company again treat you, you go, it can only be the loss of the company. So, be honest and do things, the nature will come.

As a manager of a Business & Technology team, at least these things need to be done:

    • According to the business of the team responsible for clear planning, not general, or small team work good, an elite force, a stronger sense of responsibility, everyone will be more aware of what they want to do.

    • Each line of business, a clear range of requirements, cross-departmental needs, must have a clear boundary, to ensure that the team team within the work can be more smoothly carried out

    • Group of small team must have a unified development norms, outward will first, if their team internal development norms are all messed up, provide to the third party department of how to unify the interface?

    • Team of small teams must have a unified project-wide process, in each link should focus on real output (precipitation)

    • The group needs to precipitate the public component library, the class library, the public service layer, it will form a team of backbone, most of the development work can revolve around it. If there is a need, no one in the team needs to think, and can do it directly, that's enough.

VIII. Team training and development: healthy and sustainable

A team of more than 10 people, must consider effective echelon construction, all directions of business & Technical leaders Training

    • team formed a good tutor system, leader with direction, direction leader with a line of research and development At the same time, we also need to flatten the Echelon to create a barrier-free communication and reporting mechanism.

    • There is a team week meeting system, at least once a week to ensure that there is a chance to get everyone together, Be aware of the overall project status of the team over the past week, and the pace of work next week

    • The team must form a good technology sharing mechanism, at least once a week, can be a large-scale project technology implementation program sharing and review, Can be a large project summary sharing, can be a technical point on the project in-depth analysis and application, can be a tool platform for the construction of ideas or working principle analysis, can be the work of the necessary small skills (odd kinky skills) of the divergent discussion, can also be the industry's leading edge technology research report analysis, It can also be a taste of some new technology, more can be cross-team or even cross-company technical exchanges. In short, need to let everyone really feel: in this team, there is something to do, there is something to learn!

    • with the students to conduct irregular one-on-one communication to help them solve problems, there are questions to point out directly, and to grant to fish! Help the students grow up, this is to do the mentor to do leader duty!

    • clear and reasonable reward and punishment principle, the company does not raise Idlers, also does not raise the person who does not grow; together with the best people, the team can be healthy and sustainable development

    • Team building is not regular, but it can be small and requires creating conditions that will allow everyone to get together and discuss things outside of work. The body and mind joyful, which still feared the code to write not well?

Do leader, no matter what level, you should think: When you can do these things you are doing now, to your own backup?

Only you can get out of the team right now and you have a chance to think about more important things for the team, this is the opportunity for backup and the opportunity for yourself.

Nine, learn some other technologies: cross-border, full stack

As the saying goes, the technology does not pressure body, with more technical knowledge to arm themselves, really one day to on a strange battlefield, it is not afraid at all.

Of course, while the technology engineer is growing up, the whole stack is not necessarily the way to go, but after mastering one of these technologies, it is always good to see more.

Suppose you are doing the front end, a front team can completely hold, can gradually involved in the back end, the service side, the client, the way things are actually the same. Do not have to spend your mind to re-learn every technology, as long as the core technology in the field is familiar, the working principle of which mastered, and other areas of the difference to understand, enough.

If the ability of their own limited, the field, a good enough, with the same way of doing things, mastery, other technical areas will not be too difficult.

Think of their work for so many years, first do Java, then do vb.net, do c#.net, and then do the Web front end, one is three years, and then learn IOS, and then to Android; back again with the Web front-end team, and then with the PHP back-end team; honestly, By the way, things are going to be okay.

  • Related Article

    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.