3
头图

Author: Xiao Fu Ge
Blog: https://bugstack.cn

Precipitate, share, and grow, so that you and others can gain something! 😄

I. Introduction

After writing 200,000 lines of code, finding a job after graduation is not a problem!

There are many people who have to sign up for Java training as soon as they can't find a job after graduating. It's not that attending training is bad, but attending at the time of your graduation will make you feel particularly rushed. Because your pressure comes from the training and the need to spend a lot of money at home, there are also comparisons with classmates who have found a good job and started to make money.

In fact, four years of university have enough time for you to learn programming, and from a longer period of study, you can know whether you are suitable for being a programmer or not. For example, although my classmates are all majors in computer or software engineering, not all of them are engaged in software development after graduation, or after a period of time, they find that they are not suitable for this industry and choose to develop in other fields.

So if you really like programming, then you will be very happy to work in this industry. If it is not so long, the promotion, salary increase, job-hopping may become obstacles. At present, you may still be a newcomer who doesn’t know whether you like programming and development, so you can experience in the future study whether you are willing to adjust and adjust for a running result, tossing about research and analysis, and only excited for the last running. !

When you can write 200,000 lines of code in excitement and happiness, you can almost call you , or you may be left directly by the company during your internship, . Talent organization needs you!

200,000 lines of code looks like a lot, but it will not be too difficult to put it in a 4-year university study. On average, there are 200 rows per day, 6000 rows per month, 60,000 rows per year for 10 months, and 180,000 rows in three years. These 200,000 lines of code will take you from a programming novice to proficient use of Java-related APIs, and can also bring you to the level of a junior engineer.

When you are a beginner in programming, you may want to type a complete sentence of code is not easy, let alone run the results. Therefore, at this time, your brain and hands cannot quickly understand what the line of code you see in your eyes is and what you want to do. This is like a newly-purchased piano. It must be blunt to touch with your fingers, and the sound of the knock is not consistent. At this stage, you can only write a lot of examples according to examples, and you can learn better through a proficiency period.

In order to let more friends understand this matter, I will at school, training, outsourcing, , , 1609c73143ae42 stage growth and what kind of work I am looking for as a reference. Sort out the information and share it with everyone.

2. Experience

On October 25, 2012, a post posted on CSDN got two offers, one is 7k, and the other is 4.5k after tax. Ask for advice! is now. At that time, it was also because of the entanglement of the choice of two offers, so I posted a post to ask. so angry that I didn't even know I went to interview an Internet company at the time. The information was too blocked, and the training place did not mention the information of some Internet companies.

Tell me about my 7k experience;

  1. In July 2012, school-enterprise cooperation came to a small county in Changping, Beijing to participate in Chinasoft training
  2. In October 2012, the training came to an end, and I started looking for a job. Chinasoft, with a monthly salary of 7k, was the last choice, and gave up the national science and technology in Beihang University.
  3. In December of 2012, although I got an offer from Chinasoft, I was delayed in entering the job. I contacted many times by phone and said that I could go for an internship first, but I said that I would wait for notice. No way, it’s impossible to just stay in Beijing. If you go home, you will also have to worry about luggage and accommodation, so I went to a Zhongkesoft to go in for an internship for three months to earn some money to support myself.
  4. ’s notice finally came, but it turned out to be a pre-job training. 1609c73143af25 was trained again. At that time, I really hated the training. Every time I talked about Java basics, I almost got angry at teacher
  5. In September 2013, he officially became a regular employee at Chinasoft, which means that he was an intern after his training. After graduation in July, he was hired as a full-time employee in September. I felt a little unhappy and planted the seeds of a subsequent job-hopping. How can an internship for so long!
  6. In April 2015, I was prepared for job-hopping for the first time. After all, I had written enough C# for two years. I interviewed the first Internet company, LeEco Zhixin, but I didn’t go there and was stayed by the company.
  7. In August 2015, the previous talks stayed for a salary increase, but in the end the increase was reduced by 1,000 yuan. So I continued with the interview, and I met the two companies smoothly, and finally switched to the Internet on August 25 to complete.

The above whole process is a phased experience of my internship school to to to find a job and finally switch jobs. I have also stumbled on this road. Just like

  • Although I met Zhonghui Pearson, I missed the choice of Beijing Hukou, and instead asked for 400 yuan of housing subsidy.
  • in September, and missed the condition that the salary of the second year was increased after a full year of employment (1609c73143b01c but I think this is a bit deliberately )
  • Obviously learned so much Java, but wrote C# for two years, you still have to choose your favorite language to work, otherwise it will be very troublesome
  • When it comes to resignation, basically don't think about staying again, no matter what the conditions are. Even if the money and position are satisfied, there is still a gap in my heart and a personal expectation that I have never experienced things
  • It is not so easy to switch jobs from traditional outsourcing to the Internet. With different technology use, different development scenarios, and different organizational relationships, everything may start from a lower position. You need your own skills to be good, and you also need a good person to bring
  • But there were also good points in the tradition at that time. For example, I could leave work at 5:30, the manager who took me was very good, the company was not so tired, and sometimes I could go on a business trip.

Three, study

A college student will go through the stages of school, internship, and employment. Among them, studying at school is a stage of accumulating energy, and it is necessary to learn a lot of knowledge to support future internships and stable employment.

The learning in the accumulating stage is mainly to consolidate the foundation of programming technology, and to learn more about mathematics, such as; data structure, algorithm logic, these knowledge are very good cornerstones for future technical improvement and attainments . The following are the stages that need to be experienced in the process of programming learning throughout the university process, as shown in the figure;

  • Familiar with tools : After learning programming, you will probably be exposed to a series of R&D tools, including IDEA, Eclipse, Navicat, Maven, Git, Tortoise, SourceTree, Visio, Xmind, etc. The proficiency of the tools will make programming more smooth.
  • write code : At this point you need to write a lot of code to write a lot of code, because you almost need to write code on the whole have learned to use the programming language proficiency. I can’t write it by hand until I finish writing public and I can’t write a class. It’s like I don’t know how to play the piano. After I hit 1, I don’t know where to find the next note♪.
  • Function Development : Small function development is the stage of using comprehensive exercise technology, such as making a calculator, finding a narcissus number, extracting the information you want from an HTML, and so on. This experience will solve the pain you felt that the technology was useless before. Now you can imagine various scene problems, and then use code to deal with them. English department to crawl the words she needs to recite from the website, and summarize all kinds of hot words, sentences, abstracts, etc.
  • project development : After practicing the small functions, you can then do the project. For example, you often hear about library management systems, teacher teaching management systems, and so on. If it’s not interesting, where can you get the project? From the various apps you use, simplify the functions used here, and then do some project development. For example, a simple shopping mall, lottery, full logistics order number query. In addition, you can also github , to refer to learning and practice by yourself.
  • Data structure : Maybe a beginner in programming doesn't think much about the data structure, nor can I imagine where this type of content is used. But in fact, this kind of technical content has been used by you every day, such as: LinkedList, ArrayList, HashMap, here includes array, linked list, stack, queue, hash table, tree, and other data structures. , When you want to develop some larger Internet applications in the future, all your logical design will take into account how the data is stored and how the data structure can be designed to be used by the program more reasonably.
  • Algorithm logic : After learning the data structure, the next thing to do is to learn the algorithm logic. This is not just a simple problem, but the use of algorithms on the data structure to store and read the data more reasonably. The corresponding operation. As you can learn step by step; sorting, dicing, rotation, shuffling, etc., and in the future, you will see in reading the JDK source code, perturbation function, load factor, zipper addressing, open addressing, hash hashing , Division hashing, square hashing, Fibonacci hashing, etc.
  • design pattern : After you develop a lot of program codes, you will gradually think about how to make these codes reusable, how to write them so that more people can understand them, and how to implement them so that they can meet the needs. Time can take it faster. These will be gradually felt as you start your internship and really come into contact with company-level code. Writing code is not a one-off sale, nor is it showing off technology. When you have a wider field of vision, you will think more. It is recommended to read "Re-learning Java Design Patterns" This is a Java design pattern practice book based on real Internet cases. The whole book takes the solution as the core, extracts 22 real scenarios such as transaction, marketing, rule engine, middleware, framework source code, etc. from the actual development business, and conducts a comprehensive and thorough analysis of the design mode. Help readers to flexibly use various design patterns, calmly respond to complex and changing business requirements, and write easy-to-maintain and expandable code structures.

Judging from my personal experience and experience, the biggest motivation to get the scope and content of these learning is from the love and toss about programming. Just like I have done many soil projects, as follows;

  • Serial communication, online exams, exam drawing questions, lottery management, score management, real-time chat, calculators, and the imitation WeChat chat that was later tossed, these items can continuously consolidate personal technical skills, and make new ones every time A project will toss again the problems encountered before and consider new implementation methods.
  • What is important in programming learning is not the result, but what is experienced in the process. It doesn’t matter if you make a lot of mistakes, because every time you make a mistake is an opportunity to learn, you can find more information, and each information may teach you other knowledge.

4. Employment

It’s not just me. Maybe many companies didn’t know that they were doing Java development when they were in school. The companies employed are also divided into traditional industries, state-owned enterprises, semi-state-owned enterprises, outsourcing, foreign companies, Internet, etc., especially when I graduated in 13 years. At the time, there is neither so-called employment guidance nor experienced friends to understand, so I can only follow everyone. Fortunately, now that everyone can obtain this information on the Internet, they can also help graduate students to choose careers early.

1. Traditional industries

  • Difficulty: ⭐⭐
  • Company: Kingdee, UFIDA
  • Development: In traditional industries, it has strong technology accumulation and product precipitation. Generally, other companies also have products developed by traditional industries. In addition, the current traditional industries gradually include Internet field development and technology use, but there will be fewer high-concurrency scenarios than pure Internet, because most of this kind of software does not face the C-end crowd. Therefore, it is relatively stable for individuals to enter such companies, but if it is more troublesome to change jobs later, there will be technical faults.

2. State-owned enterprises & semi-state-owned enterprises

  • Difficulty: ⭐⭐⭐
  • Company: Lenovo, BOE, Chinasoft International, State Grid
  • Development: In the past, fresh graduates who joined state-owned enterprises or semi-state-owned enterprises generally had their Beijing registered permanent residences, but now the number of places may continue to decrease. For example, some of Chinasoft's own things are also part of its outsourcing content. The work content of such companies may be relatively single. Sometimes a project will take many years, but at the same time it may not be too busy, have some time of its own, and benefits such as Lenovo and State Grid are also good.

3. Outsourcing

  • Difficulty: ⭐⭐⭐
  • Company: Outsourcing to Japan, outsourcing to enterprises
  • Development: For example, there will be some specialized outsourcing companies in Dalian, and they may also need to travel in Japan for a long time. Two of my classmates were good at Japanese when they were in school. Now they have been working in Japan. As far as they are concerned, they are quite used to living outside. Another part of outsourcing is enterprise outsourcing. For example, if you join an outsourcing company, you may be assigned to Huawei, Tencent, Alibaba and other companies to develop their outsourced work. Such work is generally relatively short-term and non-core. . But if you do a good job, you have the opportunity to become a regular employee, and you can directly join a big factory, but it's more difficult. who are outsourced to the company are not treated as regular employees.

4. Foreign companies

  • Difficulty: ⭐⭐⭐⭐
  • Companies: Amazon, Google, Microsoft
  • Development: The work of foreign companies is still very fragrant. Relatively speaking, there is no such strong overtime, and the benefits are relatively good. For example, companies like this will clearly write no overtime, as well as various holidays and travel. However, it may have been squeezed by the domestic Internet in recent years, and some domestic foreign companies have also layoffs.

5. Internet

  • Difficulty: ⭐⭐⭐⭐⭐
  • Companies: Baidu, Ali, Tencent, Byte, JD, Meituan, Didi, etc.
  • Development: There are many such companies in Beijing, Shanghai and Guangzhou. Although there are many, the difficulty of interviews is still not low. Especially in the current situation of internal scrolling, you need a lot of knowledge and data structure or algorithm to find a good one. work. The salaries of such companies are good, and the salaries are rising every year. Perhaps a key university that has just graduated, college students, and the salary of all kinds of old employees will be upside down. Except for a small amount of involution, the others are pretty good.

6. Go abroad

  • Difficulty: ⭐⭐⭐⭐⭐
  • Company: Shopee in Canada, Facebook in the US, Google, Apple, etc.
  • Development: If you like living abroad and have the ability to go out, that is also a very good choice. Like a Peking University partner whom Xiao Fu is familiar with, he is very satisfied with his income and the pace of life as a shopee who has joined Canada.

The above is a brief introduction to various types of companies. Everyone has their own choices when getting a job, such as wanting to be safer, wanting a hukou, wanting a high salary, wanting not to work so overtime, etc., as long as you can be responsible for your choice. , Plan your career development reasonably, then that's it.

5. Information

1. Technical content

In fact, there are already a lot of documents, materials, books, and videos on the Internet, but it may also be because there are too many, so that novice programming people can not find the stage, freshman, sophomore, junior, senior, and graduation After working for a few years, what kind of materials should I look for to learn.

So I integrate all kinds of materials here, and divide the materials into different folders according to the learning scope of different stages, so that readers at different stages can have a relatively accurate learning scope.

2. Actual content

If you have passed the initial stage and need to do some practical projects, you can follow my Github, as follows:

  • Contents : This code base is a summary of the author's Xiao Fu's years of learning history and technology in front-line Internet Java development. It aims to provide you with a clear and detailed learning tutorial, with a focus on writing Java core content. This part of the information is also the source code of the practical project in the blog I wrote. Here you can learn Netty, bytecode programming, design patterns, domain-driven design, rule engine, interviews, architecture, and sharing of workplace experience.
  • Address : https://github.com/fuzhengwei/CodeGuide/wiki

Six, summary

  • If a college student doesn't pay much attention to technology blogs and doesn't know which technology blogs there are, there is a high probability that you will not know what technology you want to learn, and there is no channel for you to expand your knowledge. And especially when the current software is recommended based on the preferences of the crowd, the less you know, the less you know it. So active and conscious learning is almost the fastest way for your personal growth.
  • Do one thing, do one thing well! Take it seriously and persist for a long time. You will gain a lot on the way you walk. Don't rush for success, otherwise you will get very little. When one day you really want to take these cards in your hand and go out to fight, you will be blown up and cry.
  • In addition, don’t do some part-time jobs that will not bring you long-term value when you come to college. If you really lack the money, let’s talk about it. Otherwise, try to spend this time on the knowledge you need for the job you are looking for in the future. Learning. There is not much time, and doing valuable things is more beneficial to personal growth.
  • The aroma of wine is not afraid of the depth of the alley, it is almost impossible to put it now. Because wine is no longer in your family, whoever has more exposure, more publicity, and better display will have more chances to become the best. Otherwise, the person on the stage who is not necessarily better than you, may have a better life than you.

Seven, series recommendation


小傅哥
4.7k 声望28.4k 粉丝

CodeGuide | 程序员编码指南 - 原创文章、案例源码、资料书籍、简历模版等下载。