Starting from the similarities and differences of software companies, let’s talk about how future programmers should choose companies and plan

    After the new year, a new round of spring recruitment is about to begin again, so an urgent question is placed before the majority of computer-related graduates, that is, how to choose a company when looking for a job? How to avoid pits?

    In this article, the author will talk to you about this topic as an IT technical interviewer with many years of school recruitment experience, and will also share some career planning experience on this basis.

1 What do college students who just graduated usually do?

    Many future programmers have unlimited vision for the upcoming job, but there may be more graduates who are worried about whether they will be competent for the future job? Their worries are not unreasonable.

    1 Many university courses may be more theoretical, and there are very few courses in software development. For some graduates in automation and other related majors, there may be fewer relevant courses.

    2 For many graduates, they do not understand the organization of the company, the composition of the software project team, and the daily work of software development. Because they do not understand, they do not know whether they will be competent in the future.

    3 For many college students, the software development projects they come into contact with are learning projects, such as graduation design or course design, and they may not have experienced a software development process in person.

    But this kind of worry can actually be avoided, because many companies do not have high expectations for newly recruited programmer graduates. Specifically, for software graduates with zero work experience, what do they usually need to do?

    Mainly follow the current project to do some basic additions, deletions, corrections and inspections. The technology used by each project team is different. There are spring series frameworks, hadoop big data frameworks, or python, but if there are employees who have just graduated, they will give some sample codes after basic training, so that they can be written accordingly. . For example, a risk control module will be written to imitate the addition, deletion, modification, and check code of the order module. In detail, it can be divided into the following task points.

    1 Configure the environment, such as setting up pycharm, idea and other development environments on your own computer, then building mysql or oracle clients, and configuring some jenkins, jira and other environments. As long as people are more diligent, willing to ask and learn, these jobs are generally not Question, the big deal, just be sweeter and ask some seniors for help.

    2 After the environment is set up, pull down the code from svn or git, and then combine various environment variables to make the program run. This is not a big problem, and the big deal is also a matter of asking people.

    3 The following is to imitate the code writing. In this process, you may encounter various new technologies, such as unfamiliar API calls, unfamiliar parameters, and various frameworks. But it can be said that even if a veteran with 5 years of experience joins a new company, he will encounter similar problems because there are too many software technologies. Therefore, in the first job, software-related graduates must learn a lot. In fact, it means more Baidu asks and writes according to other people's codes. Moreover, this new technology is definitely not unattainable. Every programmer is Come here like this.

    4 For fresh graduates, writing code is definitely not the only thing. It also includes testing, participating in various meetings (requirements review framework design and code review), troubleshooting, and project launches. 

    Fear comes from the unknown. Here, I describe the possible daily work of the future software for college students who are about to graduate. I dare not say here, you will be able to adapt and be competent, but for most graduates, as long as you put in the necessary effort, study more, ask people more, and even work more overtime, you will definitely be able to do this kind of work in a short time. .

2 Similar daily work, the same project team composition form, and the same project development model,

    There are different types of software companies, but for these different companies, the project development model, the organization of the project team, and the daily work in it are roughly the same. The daily work has been described in the previous article, here are the remaining two points.

    Let's talk about the composition of the project team. The scale of the project is generally different, but don't equate the size of the department with the size of the project team. For example, a department has 50 people or more, but generally there are several project teams in the department.

    For example, a department where the author has worked is called the "offline service department", with about 60 people, divided into several project groups such as offline acquiring, search services, front-end projects, and app projects. In most companies, the scale of each project is generally not too large, usually composed of 10 people, usually composed of a project manager, a number of programmers, and a number of testers. For some project teams, a front-end may be introduced. Design, database management and operation and maintenance positions.

    The role of the project manager is to meet the external requirements, and then formulate the development cycle and release cycle according to the requirements, and then use requirements design, detailed design and other work to split the business tasks into development tasks and assign them to programmers. Then ensure or urge the programmer to complete the development within the specified time, and then deploy the code to the production line after the test passes. In some project teams, the project manager often still plays the role of technical leader, but there are also technical architects who are assigned to a project.

   The most common role in the project team is the programmer, which is what you will be engaged in. In addition to development, programmers usually communicate with testers and communicate with other groups of programmers about interface design and debugging. If you are more advanced, it is best to wait to troubleshoot and debug various online problems.

    In the project team, testers are generally deployed. In most cases, there will be senior programmers concurrently. For example, a programmer who is familiar with business and technology also performs testing in addition to development.

    Most project teams are composed of project managers and programmers. There are dedicated database management teams, operation and maintenance development teams, and front-end development teams in the department. These teams serve all project development teams in this department, of course, if there are any Upon request, the project team will also configure additional positions such as front-end or database development.

    For most companies, the process of project development and release is roughly the same, and the current agile development model is generally adopted.

    1 The development and release cycle of each project is one month, of course, it can also be one and a half months or two months. Often at the beginning of the year, the release date of that year will be set.

    2 At the beginning of each release day, each project team receives various development requirements from the business side and other channels. This often has a deadline. For example, one week after the start of the development cycle, no more new requirements can be received. Yes, if it is urgent, you can adjust the task appropriately, if it is not urgent, you can move to the next development cycle.

    3 After receiving the task, develop various meetings, such as through the architecture design meeting, determine the development architecture, through the detailed design meeting, determine the module, through the interface meeting, determine the interface with other groups, and after everything is determined, develop and develop When you encounter any problems, you can solve them by yourself or through discussion. Of course, there is a deadline for development.

    4 The developed code will be submitted for testing. Testing is generally divided into module testing and joint debugging with other groups. General testing and corresponding modifications will be completed one week before release.

    5 The last is the release, which is often the most stressful on the release day. Each team deploys the code in turn. If there is a problem, first investigate the cause, and then the counterpart must quickly solve it.

    At the end of a development cycle, after the code of the current cycle is released online, the work of the next cycle begins, and so on.

3 Different company types and different project types

    Although for software companies, the project development model and project team composition may be similar, but for different types of companies and different types of projects, the experience of programmers varies greatly. In this article , I will talk about the work experience of foreign companies and Internet companies when I take the opportunity to talk about being positive, and I will give the different work experiences of foreign companies and Internet companies. Here I will talk more about the relevant ones. difference.

    1 For the majority of graduate friends, it is more suitable for large Internet companies, such as Alibaba, Tencent, Baidu, etc., or Pinduoduo. In this type of company, the pace is generally relatively fast. For example, a one-month task in a foreign company is usually completed in a week (or even shorter). In this kind of company, during a project development cycle, new tasks may be inserted at any time. For example, if you encounter a problem, you have to fix it quickly, and the technical challenges are relatively high, such as the need to deal with high concurrency and high data pressure. Challenges, and the technologies used will be relatively new, such as big data, machine learning or distributed components. Of course, working overtime may also be more stressful.

    In this type of company, individuals may improve faster and have more money, but correspondingly, people may be more difficult.

    2 The second category is state-owned enterprises or more traditional companies. In this type of company, the task development cycle may be relatively long, and relatively reliable technology is used. You can imagine other characteristics.

    3 There is also foreign companies. At present, the attractiveness of foreign companies may not be as great as before, but because they are generally large in scale and culturally diverse, they are still a better platform. In foreign companies, people may be more relaxed, but perhaps the speed of technological improvement is not as fast as that of Internet companies.

    4 Or some start-up companies, in which, due to cost, etc., one person may need to master multiple skills at the same time. For graduates, they may also be exposed to various skills.

    As for the types of projects, as far as the majority of graduate friends are concerned, it is particularly necessary to pay attention to the types of projects of outsourcing and outsourcing companies.

    An outsourcing company is a company that does not have its own products, and then accepts various outsourcing activities from other companies, or accepts various activities from Japan and other places. Among them, it is mainly customized development. For example, the other party allows the development of a certain functional module in a certain product. In this kind of project, the technology that may be used is relatively single.

    Compared with outsourcing companies, there is another kind of manpower dispatch company. For example, a company signs an agreement with a graduate and then sends him to another company. In this type of project team, personnel are generally divided into two types, regular employees and expatriate employees. The two types of employees may perform similar tasks, but their status and salary may not be the same.

4 Don’t underestimate yourself, which companies should be cautious

     After introducing the company and the project, here are specific suggestions for graduates in software-related fields.

     For you, you are college students anyway, so you have a certain choice. For the following companies, you need to be more cautious.

     1 Some companies may use the name of recruiting workers, and then cleverly set up a name to let you pay for training. This is actually a training course in disguise. Even if you want to improve yourself through the training course, you can find some more formal and well-known ones.

     2 If you are a manpower dispatch company, you will be dispatched to Party A's company to do the project. At this time, you have to look at the expatriation agreement. If the expatriation is to a large company or the money is more formal, then this is also an option for graduate friends, but if the expatriation agreement is more demanding, or multi-level subcontracting, or a If the Fang company is not formal, you must be cautious.

    3 Or do other professional work. For example, it’s normal for a graduate of computer science to do development, and it’s okay to do testing, and it’s okay to do product design or software training teachers, but if you go to work in sales or sales, then you can say that you read before. Books will not help you much in your future work, and if so, it may be more difficult to return to the software industry later.

    4 Companies that may be thunderous, such as some p2p companies. This kind of company may have the risk of running away, which may be a big taint for graduates who have just embarked on a career.

    5 For start-up companies or relatively small companies, this need also requires caution. Not all companies of this kind have risks, but if the company is small, or it is a start-up, there may be financial and operational risks in the later stage. Once the company goes bankrupt, for everyone, it may fall on your resume." Bad records such as "do not work long".  

5 How to improve your ability in a short time so that you can enter the company you like

    So relatively speaking, for the majority of software graduates, they should be able to pay attention to the following companies.

    1 Large Internet companies 2 Foreign companies 3 Larger companies 4 Or some are unicorn companies 5 Or you can consider entering a large company as an expatriate 6 Or you can consider some small and medium software companies.

    Graduates generally start looking for work from the senior year, and the time range for finding a job is generally from September to May of the year when the senior year just started. Even if you haven't touched any software development projects before, if you are more concerned during this time, you still have the opportunity to enter a large company, or a better company. What should I do?

   1 Generally, there are internships in the senior year, so I took the opportunity of the internship to actually work on a software project, let alone experience the real software development process, and do some real additions, deletions, and corrections for specific business needs. Things.

   2 Then write this experience into your resume in the form of a business project, and be careful not to write it as a learning project. Of course, if you have done software work in your sophomore and junior year, such as helping a teacher, or doing part-time work outside, you can also write your resume. In short, the more experience in commercial projects in your resume, the better.

   3 Try to operate a platform that can showcase your skills, such as using this time to be an official account, or to publish a series of articles on a technical website. These articles do not have to describe too in-depth techniques, and even clicks do not need to be involved, but you can use it during the interview.

   4 On this basis, go to the Internet to search for various interview questions, written test questions and algorithmic questions. In short, you must have project experience first, and be able to tell relevant project experience during the second interview.

   After accomplishing the above four points, the impression that graduates give to the company is that first they have at least half a year of relevant project experience, second are familiar with basic development, and they have some familiarity with strong sense of responsibility and strong learning ability. This is enough to help graduates I have found a company, and the company I can find should have a scale of more than 500 people, and the business is stable enough to help graduates start a good career. If you add the factor of a prestigious school, or you have won a programming award, or you can prove your ability through an official account, you are even more likely to enter a big company directly in the school recruitment.

6 Don’t bully young people into being poor. It takes only two or three years to enter a big factory.

    After all, the number of places recruited by major factories every year is limited, and not all software-related graduates can enter the big factory at once, but as long as you pay attention, for the majority of graduate friends, working for two or three years to enter the big factory is not What is difficult. This is the same thing when I enter a large factory, and I will give specific suggestions in this blog post about the operation guide for entering a large factory 2 to 3 years after work .

    1 Even if you are a small company or an outsourcing company, first you have to do basic development work in half a year and understand the basic process of software development.

    2 You can't just confine yourself to your own job, let alone pass it by. After doing your job, you have to pay attention to matters such as testing and project release.

    3 Solve more online problems, because troubleshooting can best improve your skills and analytical problem-solving capabilities.

    4 Pay more attention to valuable skills, such as distributed component development technology, or machine learning and deep learning related technologies.

    5 After working, you have to prove your abilities by writing blogs, etc. It is best to publish a book in some aspect.

    In fact, you can achieve the above points, even if your ability is average when you just graduate, and the company's general salary after graduation is average, you can at least achieve a big salary increase in 2,3 years.

7 Summary and preview: This series focuses more on resumes, interviews and recruitment issues

    This article is aimed at the majority of software graduates. It introduces the daily work of project development and the experience and development prospects of doing projects in different types of companies, and on this basis, it gives suggestions for rapid improvement in a short period of time. In a word, as long as you work hard, no matter what stage you are, you will always be rewarded.

     I have a long time experience as a technical interviewer, so I will give programmers a series of resumes, interviews and recruitment related matters in subsequent blog posts. Please pay attention.     

Guess you like

Origin blog.csdn.net/sxeric/article/details/111603110