In China, there are many people think that IT behavior is to eat youth, if over 30 years old IT is difficult to have the opportunity to develop further! In fact, the reality is not like this, here I want to rely on their own experience, and we discuss it together.
Know what you’re doing
A lot of people do IT this line is directed at “high income” this point, because as long as you learn a little HTML, DIV+CSS, to do a page developer is not a difficult thing, and do a page developer is easier to find a job, income is higher than ordinary work, so IT has become a lot of college graduates choice. If you just take such a mindset into the line of words, that your excellency really need to be careful. Because the IT industry is competitive, especially page design, can develop a lot of people, so in order to save costs, most companies will only recruit such personnel when needed; When there are no orders, some small companies may find all kinds of excuses or pay cuts to fire such employees. It’s common to see “Page designer wanted. Condition: under 30… Welcome fresh graduates to apply for “such a, because this kind of workers on the technical requirements are not high, looking for fresh graduates can save costs. So I think “IT industry is to eat youth” this sentence is only for the above people, if you lack the “enterprising heart”, and only hold the “high income, easy to find a job” such attitude to enter the industry, then “IT industry is to eat youth” will be fulfilled.
Choose the right tool
JAVA, C#, PHP, C++, VB… With over 10 popular development languages, which one has the most potential for growth? In fact, the development language is just a tool, “rather than spread the attack, it is better to attack”, no matter which development language, as long as you try to learn, to have a certain degree of familiarity, to learn another language is easy. Development languages fall into three main categories:
1. Network development
Nowadays, the Internet has become a bridge of communication in the world. It seems that Javascript, PHP, Ruby and other development languages are mostly used for web development.
Enterprise software development
JAVA, C#, VB these development languages have realized the object oriented development goals, more often used in the development of enterprise systems.
3. System software
C language, C++, Objective-C software are more used in system software development, embedded development.
Of course, this classification is not absolute, as JAVA, C#, VB are often used for dynamic website development. In many development projects will use integrated development, the same project inside the use of a variety of development languages, their strengths, synchronous development. But so in the beginning, it is recommended that you choose a suitable development tool for yourself, “focus on learning, full play”.
Clear development direction
When you’ve learned a little bit about a development language and start to feel like you’re “walking dead” as a development tool, it’s time to figure out where you want to go.
In a typical company, you can see that most of the developers working on the UI layer are in their 20s, they’re very motivated, they don’t have families, and two years ago when ASP.NET MVC, Silverlight and so on came out, they could go home at night and buy a couple of books or go online and do research for three or five weeks, You already have some understanding of the technology that needs to be used. The majority of people over 30 are already married, and their only hope of going to work at 9:00 every day is to get to 6:00 so they can go home for dinner. After dinner, I just want to play with my children and see their homework. I lack the desire to learn new technology. So a lot of programmers in their late 20s (including myself in my 30s) feel a sense of compulsion. What should I do in the next few years? At this time, you should be more clear about the goal, efforts to their own development direction forward. Sum up, can choose from the following several suitable for their own path:
1. Transition from technology to business
Abroad, many developed countries attach great importance to talents, and the income difference between a senior programmer and a Project Manager is generally no more than 15%. However, China is the most populous country in the world and has a large number of talents, so the situation of talent abuse is often seen. A small company’s development department often sees new faces, but PMS don’t change that often. Because the boss knows nothing about technology, in their opinion, only to hold the PM’s heart, that technical aspects can be settled, as for the technology department to replace, they do not need to bother to manage. So transitioning from a technician to a PM is an option to move forward, but developers also need to know that becoming a PM is not just about using technology, but more about understanding the management side. The main work of a PM is to organize the team, control the cost, manage the business, control the project schedule, communicate with customers, coordinate the work, and make regular work reports. Therefore, to become a successful PM, more attention should be paid to organizational ability. PM must be able to improve the enthusiasm of the team, give full play to the team’s strengths, and maximize profits for the company under the premise of limited development resources. After becoming a PM, I usually do not need to directly contact with technology development, but focus on business development management, but PM also needs to have a certain understanding of technology (I once wrote an article about the necessity of UNDERSTANDING technology for PM, which got a lot of support but also caused a lot of controversy). Here I want to emphasize my point: To be a successful PM is the most important management capabilities, but the technology also should have enough understanding, because it is the bridge to communicate with team members, only in this way can combine with members of the team closely, make team members feel the significance of their existence, so as to arouse the enthusiasm of the team, not ignore the existence of technical personnel. Technology is not a sufficient condition for being a successful PM but it is a necessary condition!
2. From programmer to technical management
In fact, the responsibilities of a Team Leader are similar to those of a Project Manager, but the Team Leader focuses more on technical development. Usually, a large Project will have one or two development teams led by the Team Leader, responsible for the development of core parts. Other parts are assigned to different development groups or to outsourcing companies. I often see a few words on the Internet, which aptly describe the difference between PM and TL: “Technicians are happy to be led; But they don’t like to be managed, driven or directed like cattle. Managers force people to follow their orders, while leaders bring them along. Management is objective and impersonal. It assumes that the people being managed have no thoughts or feelings and are told what to do and how to do it. Leadership is to lead, to guide, to motivate people to achieve goals. “Leadership is intensely personal. It’s not something you can dictate, measure, assess or test.”
Both PM and TL should have an in-depth understanding of business and technology. However, PM focuses more on business management, profit and risk, while TL focuses on project cost, difficulty of development, software architecture and other technical issues. In some people’s eyes, technology and management are like having your cake and eating it, but in my opinion, they are inseparable. As long as they timely improve their understanding of technology and management, and continue to develop to a deeper level, it is only a matter of time to upgrade from programmer to technical manager. For example, a regular guy. NET programmer, may be limited to ASP.NET page development at first, but once he has the heart of development, he will naturally be interested in ASP.NET MVC, Silverlight, WinForm, WPF and other UI development techniques. He might realize that these UI developments are just tools, and that there is no difference in the principles of development. Then he dives into the deeper communication modes, TCP/IP, Web Services, WCF, Remoting, and other commonly used communication modes, and he probably feels he has a better understanding of the development technology. Move to higher levels of workflow, design patterns, object-oriented design, domain-driven design, service-oriented development, and eventually become a technology leader. The above is just a metaphor, but it should be noted that during the learning period must pay attention to communication with colleagues, many developers like to work alone, development projects always want to be done by one person, without external interference. But understand that even if you have the greatest talent, you can’t handle a big project all by yourself. Therefore, teamwork and communication between colleagues are necessary, which is also a prerequisite for a successful TL.
3. Move unilaterally toward technology
A cutting-edge talent who can successfully develop technology is the most desirable job for me, but I don t have the ability to get this position. Many developers believe that business has the “smell of money”, that bosses never care if the development conforms to development principles and has been tested as necessary, and that they brag endlessly to customers that the project will be delivered when it’s due, and that the project will be a success as long as nothing goes wrong. In fact, we should also understand that the ultimate goal of the development project is to make money. It is also necessary to limit the project cost and control the efficiency in the development process, so it is necessary for managers to manage the project. But developers also want to get out of the “money crowd” and get into the technology world. Therefore, people who have a strong interest in technology tend to study a certain technology in depth and become technical elites. But here’s a less heartening note: China is already the world’s second largest economy among allied nations, but its GROSS national product comes mainly from third-party processing industries. China may be said to be rich in talents, but it lags behind developed countries in high-tech industries. In recent years, it is true that Our country has made a qualitative leap in high-tech, but there is still a long way to go with developed countries in Europe and the United States. Therefore, it is undeniably harder to become a high-tech talent in China than abroad. In my opinion, to be a cutting-edge developer, you must have a deep understanding of C, C++, assembly language, embedded development, Windows API, Linux API, and other underlying technologies. To understand JAVA,.NET… These so-called high-level development languages do not mean that they are more advanced than C, C++, assembly language, but that they encapsulate the functions of C, C++, etc., which are more suitable for enterprise software development and make development easier. However, if you want to develop some low-level software, large-scale systems, you must use C, C++, assembly and other development languages, which is a condition for successful sophisticated talents.
Identify future goals
People grow from experience. As the ancients say, standing at 30 is not a person’s social status or economic source, but a person’s goal for the future and intention for life. To become a successful person, it’s important to set long-term goals for yourself, as well as for yourself as a developer. As people’s personalities and orientations vary, so do the paths they choose for themselves:
1. Start your own business
In their late 20s, many people think that in order to really make money, they need to start their own business and build a foundation. Level, such as Beijing, Shanghai, guangzhou city, want to buy a house, skill building basic in 20000 ~ 40000 yuan/square metre, and on a common IT company as a project manager, basic income is generally between 15000 ~ 30000 (unless working in large multinational companies, the another matter), want to buy a house of about 100 square meters, Even without food and drink, IT is almost 10 years’ annual salary, so choosing to start a business is a future goal of many IT developers. In order to achieve this goal, they should focus more on business. There is no denying that Chinese society often talks about “guanxi”. Even though China’s economy has developed vigorously in the past 30 years of reform and opening up, the unhealthy habits left behind by thousands of years cannot be completely eliminated. Therefore, personnel who want to start a business suggest that you should play a good relationship with customers and maintain a mutually beneficial interaction mode with partners, which will be conducive to the development of the future career.
2. Take a back seat
This is also the choice of many people. After having a family, many people feel too much pressure. Their life is not just about career. They want to spend more time on taking care of their relatives and children. So many people will choose a job such as system analysis, system maintenance, university teacher, professional college lecturer. Revenue is steady and often not as stressful as front-line developers.
3. Make unremitting efforts to make further progress
Whether you are a Project Manager or a Team Leader, if you want to move up another level, there will still be polarization. From a PM to the management of a company, there are many different events facing it. The general manager of a company no longer has to manage the cost of one or two projects, but the operation of the whole department and the business process of the whole company, so he has to shoulder more heavy tasks. I once had a boss, Dr. Peng, who was the top leader of the enterprise with an annual salary of more than three million yuan and was once featured in newspapers and magazines. Usually, he will only show his face gently in some meetings and make two speeches. Ordinary company operation and business management do not require his direct execution. This is not to say that a manager is very idle, because they have to face more social relations with the company partner enterprises. This is very different from the work of a PM, so it takes more effort and sweat to get promoted from a PM to a management level.
If you move from Team Leader to technical director, the direction of work will change. As mentioned earlier, a TL may be more technical, more collaborative with the team, and more focused on development. However, a technical director does not need to directly participate in the development of a project, but pays attention to the efficiency and results of development, how to make reasonable use of limited development resources, and control the risks and possible effects of development.
The development of feelings
Has experienced more than eight years time, the next from a programmer to a project manager, between after many twists and turns, but because each person’s fate is different, the way there are different, the so-called all roads lead to Rome, the road to the success of more than one, I don’t want to make you misunderstanding, and just want to say to you about my direction. If you are a developer, “Programmer -> Architect ->Team Leader (Project Manager) -> Technical Director” is a good way to go, and this is the way to go next. In China, if you want to further improve yourself, no matter you want to focus on technology or business, you can’t do without management. In some large enterprises, a team is usually equipped with a PM and an architect. Although the two people are responsible for different tasks, you will see that the income of one architect is often less than that of the PM, and the PM is often the core leader and key person of the team. PM plays an important role in making money. There is no absolute difference between PM and TL, and in small and medium enterprises, where a development team is only 3-5 people, a TL often combines multiple tasks such as business processing, cost control, architectural design, development management, etc. Therefore, I will place the Team Leader and Project Manager at the same level. The boss of a company often does not know who the architects and programmers of the Team are, but will only ask the PM about the progress of the Project. Therefore, only when you are promoted to this level can you have the opportunity to further improve your management ability and have room for advancement. As for becoming a technical director, the requirement is not only the management of a single project, but also the introduction of emerging technologies, the rational use of development resources, and the agility of development projects, etc. I am also testing this, and I dare not say more.
Hand in hand with programming and sleeping with code from programmer to cTO
I have been working in IT for ten years, from programmer to technical director. Now looking back, I can see that this road has been accompanied by the domestic IT industry for ten years. As for IT technology, IT is pure software development, I would like to share my views with my friends who are going to be engaged in software technology research and development:
I. Recognize the current IT situation and choose the appropriate technical direction and starting point
IT is estimated that everyone knows more or less that the knowledge of the IT industry is updated quickly and the competition is fierce.
If you have a clear plan or understanding of your future development direction before starting your career, I believe that you will go better, go farther, and make more money than others. Ha ha
Opportunities for IT software professionals include: pre-sales (marketing, business), product development (coding, design, testing), after sales (support, implementation), product management (project management, etc.)
A. Pre-sales (market, business)
To engage in this piece of work, mainly in the early stage of software development (no product), or contract signing (product).
The general requirements are high for the relevant business and technical requirements, which are not just interpersonal and communication skills.
If you want others to buy your products, you have to professional product quality as the background, with professional speech, professional technology and professional business understanding ability to win.
Practitioner requirements:
The practitioner is required to have certain social experience, technical experience or business experience, or certain social circle and communicative ability.
Advice:
Just graduated from school friends or do not meet the above conditions of the friend had better consider clearly. Of course, nothing in this world is absolute. It’s up to you.
Reality:
As far as I know, the people who do this part are always some senior executives (with connections and experience) and business experts or people with special backgrounds.
B. Product development (coding, design, testing)
This piece of work, of course, is the main force of the ARMY of IT practitioners, but also have to consider clearly.
If you’re going to be a designer, if you’re going to be testing, it’s best to code for a while,
It is impossible for a good designer not to be proficient in relevant technology platforms!
Foreign good testers are almost selected from the developers, based on software development masters.
A. Code writing
Coding is a good place to start in this field. And of course you can test it out and see how people write code and how they build the software,
You can also borrow someone else’s testing experience, or come back to code for a while when you have the opportunity.
Sometimes it’s ok to write your own software, so coding and testing are a two-way interaction. Instead of coding first and testing last.
The compilation of code had better look at other people’s software first, or by some masters with guidance, now the study of technology is not a problem, the key is to connect a line to study and thinking will have certain limitations.
Therefore, to be familiar with the whole project process or business process is not to rely on personal coding or learning in training courses can be solved, personal technical learning and training courses can mostly solve the problem of learning technology, but software is not only to technology
It is true that three points of technology and seven points of business. Business learning is also a must for a developer. If you are not familiar with business details before advising you not to write code in a hurry, it will certainly have a great impact on the future software. Familiarize yourself with the business first.
Therefore, it is necessary for software developers to master a technical platform and language, but at the same time, they must have certain business knowledge, so as to be a qualified software developer. Of course, software developers who are proficient in software coding, design, business and software project development process are excellent, which is a prerequisite for senior research and development personnel.
If you are just starting out or changing careers or just graduated from college, it is recommended to start with the basics of code writing, learn from experts or find some mature projects,
B. Software design
Of course, this occupation requires industry experience, technical experience should have a certain basis, the salary is generally a lot higher, so it is also the goal of some developers to enthusiastically pursue. But a good designer is not one or two years can be trained, proficient in coding, design patterns and the technology platform used by the company, skilled in some design theories and practical use, skilled in the company’s business, in fact, this level of pressure is also the biggest, a good software in the design of the proportion of almost 70%.
Suggest just graduated friends or software beginners do not in this piece to join in the fun, even if you made a designer, but in my eyes you are not a qualified designer… Of course, congratulations on your ability to be a designer.
C. Software testing
Proficient in various theories or practical application of software testing, but also familiar with coding technology and related technology platform, proficient in business.
Software testing generally includes:
Unit testing, which requires you to be skilled in development techniques for tracking debugging, is also known as white box testing
Integration test, the test of the whole project process, requires the mastery of business knowledge, the design of software can be functional test or pressure test, is a black box test
Confirm testing, be familiar with the business, and test whether the software fully meets the customer’s business needs.
General recommendations:
1. Be familiar with a technology platform and a business
Just entering a friend is easy to make a fault is, skilled :VB,VC,.NET,JAVA,C++,C,Dephi,PB, almost the market to use all of his will, alas, if I see his resume there is such a sentence, this person certainly will not be in my scope.
There are three most widely used technology platform systems in the world:
Sun’s J2EE technology architecture (JAVA): A step ahead in high security, high performance, used in the mid – to high-end market
Microsoft software technology system (C++,.net,c#,VB): in the middle and low-end market, is the world’s largest PC operating platform users.
CORBA Technology Body System (a distributed technology system and standard),
Common Object Request Broker Architecture: A Common Object Request Broker Architecture that can be written in different programming languages, runs on different operating systems, and exists on different machines.
It is generally between low-level and upper-layer management software,
Others will also include the bottom development :C, assembly, pure bottom development, of course, the starting point of technology and business background is stronger, it is best to learn professional: electronic and electrical, embedded industry, machinery manufacturing, data acquisition and so on…
Take a look at the technology system you want to work on, pick a language tool, and hit the road… 🙂
Always remember: you want to learn anything, you learn nothing good
2. Start from the basics, don’t be too ambitious, ambitious and low, to combine with the reality
B. After sales (support, implementation)
This part is not so obvious for the requirements of development technology, mainly work after software development, and deal with customers, but more requirements are reflected in the grasp of business and customer communication.
Some software products are relatively mature. If you participate in this stage of work, you can quickly learn a lot of business knowledge and accumulate experience in customer communication
Advice: just entry or just graduated friends, you can choose more in this job, wait for the opportunity to mature, immediately into the software development or design stage, of course, this piece of work is not easy, if suitable for you to do,
If the working conditions or salary are good, you don’t have to think about it…
C. Product management (project management, etc.)
This part of the work is mainly reflected in management, of course, suitable for people with certain experience or management ability to take on.
The final summary of technical career direction:
Technical type: first choose a good technology platform, skilled in a development language and database… Keep it professional and focused for a few years
Technical + managerial: If you have some technical experience and good interpersonal and managerial skills, you may be in this direction
Technology + business type: proficient in a technology platform, proficient in a business, do well, this talent is the most popular…
Management type: if you have certain social experience, work experience, if interpersonal communication, management ability can also, the boss also like, do this
Business type (market): If you are interested in the business, the relationship with customers and so on is good, you can choose, have the right expertise can even more icing on the cake
Technology + market + management: the position of the boss…. 🙂