How to get into software development

  ——Do you think I go to work every day just for a few bad money! ?

  — Yes, you are right...

  IT is an industry that is somewhat envied and hated by colleagues outside the industry. According to statistics, the average salary should be second only to the financial industry, far higher than other traditional industries, with a gap of double or even several times. A mid-to-senior programmer in a first-tier city may already be at the salary level of a company executive in some traditional industries. In terms of probability, working in IT is indeed a reliable way to turn the poor boy Xianyu over and change his life.

  During his working process, Uncle Guo has gone through various types of enterprises, and met many students who are interested in joining the IT industry, and consulted them about entering the industry. At work, I actually met many colleagues who entered the industry without majors or even changed careers. So I decided to write an article to share with you some experience, knowledge, and internal job division in the software development industry.

  1. Common Q&A

  1. Does software require a high degree of education?

  It is necessary to enter the company that everyone wants to go to. If you just want to join the software industry and find an errand in a general company, it is actually not necessary. Some high-paying "big factories" will set up rigid undergraduate 985 and 211 conditions in order to improve the screening efficiency because they receive too many resumes. And most companies do not have such critical capital. It is expected that the recruits are all computer-related majors, and undergraduates are recruited uniformly. However, the actual resumes submitted are all kinds of training institutions, privately run and adult education, and the work always needs to be done by someone, so we can only face the reality and focus on experience and ability.

  2. Do you want to graduate with a computer-related major?

  It’s not necessary, I’ve met some who graduated from high school and went to a training course such as Dane and Dark Horse to enter the industry, some who changed their careers three times as a seaman, and had a bottle of beer for lunch every day:-), and some who majored in English Those who took the computer test by themselves, some who sold clothes before and wanted to change their careers as a test... All roads lead to Rome, as long as the faith is firm.

  3. I am not good at English and mathematics, can I be a programmer?

  Uncle Guo often heard such sayings when he was a child, and it happened that he was not very good at mathematics and English, so he was deeply worried. Later, I found that it was difficult to use mathematics knowledge beyond the scope of primary school in the work -_-||. Of course, the requirements for mathematics and English are not groundless. Probably in the previous understanding, computers are more inclined to the scientific research field, and programmers are more inclined to scientific research personnel. In the current situation, in fact, most developers develop applications and solve engineering problems rather than scientific research problems.

  Therefore, their weight depends on the field of your work. If you want to do algorithms, machine learning, game engines, etc., then mathematics is very necessary. If you are doing information management systems such as inventory, library management, etc., it is basically at the level of elementary school application questions. enough. In a company with a detailed division of labor, algorithm engineers and development engineers are two different positions.

  4. I don't think I'm very smart, can I make software?

  For any profession, talent is very important, and sometimes determines the highest height you can reach. But diligence can make up for one's weakness is applicable in a wide range, and it is not enough to fight for talent. Not being smart enough is not a big problem, it is more important to be humble and studious.

  5. How can I find my first software development job?

  For students who become monks halfway, finding their first job is usually the most difficult. As long as they have 2-3 years of work experience, the follow-up question is often how much money to find, not whether they can find it.

  A common solution is to sign up for a training class to guarantee a job arrangement. After you finish your studies (of course you have to study hard) you may be exported to a cooperative unit, or there may be an employment instructor to help you make suggestions. A fictional one has already had 2 -Resume with 3 years of work experience-_-||, to guide you how to interview. Training institutions will also have simulation projects to let you understand how a project is developed in actual work. Reliable training courses and hard work are very important.

  Another method is to write some works by yourself for display. For web developers, you can make some websites by yourself, and participate in some open source projects. It is best to be more refined and in-depth, so as to demonstrate your technical capabilities and enhance your self-confidence. Heart. When Uncle Guo is interviewing junior personnel, if the other party has spontaneously written something out of interest, it will be a big plus.

  6. Is there frequent sudden death and a high casualty rate?

  -_-|| , de-involution is the general trend, and the situation should get better and better. Even if there is no change, there are still many choices, and it is not necessary to enter the 996 Internet giants. Make money and life to balance.

  7. In addition to programmers, what other positions are there, and what are the job contents?

  It is a team that develops software, not one person, and the division of labor of the team is becoming more and more refined. In addition to development, there are also major directions such as requirements, testing, operation and maintenance, and algorithms. A brief overview will follow later.

  2. Brief introduction of software industry positions

  1. Demand Analysis & Product Manager

  The person responsible for outputting requirements documents. Although the product manager has the word manager, there are also a small number of large product managers with greater autonomy. Most of them can only decide how the function is realized, and have no right to decide whether the function will stay or not. For example, the big boss or the product director said that I need to develop a chat tool that can add friends, send text, pictures, voice, and video. After that, demand analysts or product managers will implement the specific software interface to clarify how to display the friend interface, how to add it, and how to operate the voice.

  I personally feel that the requirements for junior demand personnel are not high. The main requirements are to be good at communication, able to understand product requirements (such as adding friends, the meaning of sending voice), and being able to use prototyping tools (drawing a sketch of what the software looks like), which is basically enough. competent. At the advanced stage, what is accumulated is mainly the understanding of specific industries, such as the composition and process of medical informatization, fire informatization, live broadcast software, social software, how to play, how to operate, etc.

  2. UI design

  Responsible for defining the appearance of the software, whether a software looks good or not usually reflects the level of this person. Uncle Guo has always felt that this is a position that has certain requirements for art. Students who have received art training have a much stronger sense of color and composition than ordinary people. And also have the ability to draw when necessary. The main requirement is to be able to draw renderings, the tool may be PS? Learn about general UI specifications.

  Students engaged in graphic design can get started relatively quickly, just need to consider the dynamics of the program (the number of menus and the length of the content are different from a static picture). I have also encountered UI without art foundation, which feels stronger than interactive logic, but the visual effect is still worse.

  3. Development

  According to the product prototype and UI effect, the person who actually writes and delivers the software is a coder in a narrow sense. The daily work is mainly to use the keyboard to code codes. You must have programming skills, be able to develop and complete the development tasks assigned by the leader, and ensure the quality. Programming can be taught by yourself, through professional colleges, or even training courses. Different platforms belong to different types of work, such as Java programmers, .Net programmers, and Android programmers. Primary development is usually only required to be able to complete the general function development of a platform. Advanced development will have higher requirements for breadth and depth.

  4. Test

  The person responsible for verifying the correctness of the developer's work results checks whether the functions are implemented according to the requirements of the prototype, and whether the appearance is achieved according to the UI renderings. Test cases need to be written, which can be understood as the content and expected results of the planned test. Although it sounds relatively simple, in fact, the testing work has a systematic testing theory. Because the input is difficult to exhaust, the bugs are difficult to exhaust, and cost constraints need to be taken into account. According to different testing methods and scopes, it can be divided into functional testing, performance testing, automated testing, etc. Functional testing is relatively basic. In layman's terms, it is to try whether it is easy to use, and you can be competent if you master a certain basic theory of testing. Performance and automated testing requires more learning and certain programming skills. ·

  5. Operation and maintenance

  Responsibilities include server management and maintenance, production system operation monitoring, operation and maintenance tool writing, etc. Junior operation and maintenance personnel are usually required to be familiar with the use of server operating systems, be able to perform routine account configuration, firewall operations, and complete routine service building such as web services, ftp services, and server management. Monitoring operation and maintenance requires the use of operation and maintenance tools to monitor the operating status of the production environment software system, detect abnormalities, and give timely warnings. It usually requires the ability to use monitoring tools and script writing capabilities. Development operation and maintenance requires development capabilities, and you can write more complex operation and maintenance tools by yourself.

  In the end, action is worse than heartbeat, water is here, happy weekend~!

Guess you like

Origin blog.csdn.net/qq_25148525/article/details/124472689