3
头图

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

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

1. Introduction

Xiao Fu, a first-line Internet Java engineer and architect, has developed transaction and marketing projects, implemented operation and activity projects, designed middleware, organized system reconfiguration, and wrote technology patents. Not only engaged in the development of business systems, but also often design and implementation of some bytecode instrumentation classes, and have rich experience in architecture design and implementation. While enthusiastic about the Java language, he also likes to study repeaters, I/O boards, C# and PHP, and is a technically active tosser.

and most of my friends who graduated at the same time have experienced; 160b43c2424112 school-enterprise cooperation training, traditional outsourcing job hunting, square meter snail house, job-hopping application, and gradually working in big Internet factories Take on the responsibilities of a Java engineer and architect. These experiences have allowed me to continue to accumulate, precipitate and grow in the development of the technical career, until now I have completed the publication of my first technical book.

I hope that my subsequent sharing of these experiences and experiences can also help you avoid some detours in job search and career development, and increase some growth lessons.

2. University

moves for Junior Brother and Junior Sister!

If some of my readers are college students, or have your younger brother or favorite younger sister in school, then you or he likes programming, but has not found a direction on the way of learning. The next paragraph of content may be There are some help and guidance for you.

How do I learn this sudden technical programming in college? Looking at the C++ in the textbook, I have been a little trembling. The content of the course taught by the teacher is not like evangelism but more like persuasion. All other programs that can already be run by others, as long as you write them yourself. Various problems have occurred. Where should I start, how should I start, the teacher asked me to ask if I can’t, I don’t know where I can’t.

Maybe this is the experience of most students learning programming. Based on the learning experience of people who came here, this stage will actually leave some students with hobbies, and cleverly get rid of a group of partners who are learning pain. This is not the result of who is smart, who is good at math, and who is strong in English, but is caused by persistence in learning and personal interests.

Just like when we bought a new bicycle, we should take it apart to see how the wheels can be removed to make it more elegant or ride it for a few laps. Of course, you must know that you have to get up, let the bicycle run under your butt, feel the spring breeze in the sand, and return to your house.

Therefore, the most important thing for the new programming is to run the code first, and to exclude the bugs, problems, exceptions, and blue screens encountered, then you have to change the computer, and all of them are solved one by one. Well, now I have passed the first stage, that is, I learned how to Ctrl+C, Ctrl+V, copy other people's code, and run it. The next step is the need for a lot of writing phases. How much is it? In my experience, the entire university has typed no less than 200,000 lines of code. It is really easy to find a job after graduation.

A lot of 200,000 lines of code? In fact, the amount of code is not much at the stage of your study, especially the various attributes, methods, calls, presentations you write, and the APIs and method fragments of different functions that you need to master in the process of learning programming, just like asking for a Daffodils, rabbits and rabbits, Yang Hui triangle, etc., are all the things you start at the beginner programming stage. Then this stage is the accumulating stage of learning programming, which is mainly to consolidate the foundation of programming technology, and to learn more about mathematics, such as; data structure, algorithm logic, and these knowledge will contribute to the future technical improvement and attainments. It is a very good cornerstone.

When you can persist in doing one thing, do one thing well, and you must do everything by yourself. It is possible to "do whatever you want" in the future.

3. Training

Are you willing to participate in the training?

I have participated, participated in the employment training of school-enterprise cooperation, participated in the pre-employment training of the pre-employment period, and the other time was the training of external engineers with development experience hired by the university during the school. It seems that only the first training is to let I have learned the most. The following trainings keep repeating the basics of Java. Maybe this kind of course is helpful for students who have not started Java several times, but for a large number of students who want to improve their skills, there are still some It's a waste of time.

Through this kind of experience, I want to express to everyone that training is not necessarily good or bad. If you can participate in some training during school, it can still improve your personal learning ability and develop your knowledge and understanding of technology. Viewable range. However, if you can't find a job right after graduation, and register to participate in Java training, you will be very rushed to participate in the training at this stage of graduation, and there will be a lot of pressure. You feel ashamed because you need to spend a lot of money at home for training, and you are out of balance because other students in the same class find a good job.

In fact, it is reasonable that 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 or not to be a programmer. 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 that 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. !

So how do you learn to get a job after graduation without the need for additional training?

If this "extreme" is measured by a unit of quantity, it is to complete the development of 200,000 lines of code during the university. More than 200,000 lines? If you complete 200 lines of code development every day from the freshman year, you will count 6000 lines in a month, 60,000 lines in a year, and 180,000 lines in three years. When you look for a job on the eve of college graduation, you will be the face of your classmates. Tyrant. Because of these 200,000 lines of code, you have basically become a junior R&D engineer.

Some people may think that they haven't written 100,000 lines after working for more than ten years! Does it make sense to write these 200 lines of code forever?

In fact, for a person who is studying at the university level, in the process of learning programming, you have to try to develop various books, videos, and materials about the use of APIs in Java, even if it is a simple list now. Use, it may be a huge obstacle for you who are new to programming. After all these basic knowledge are studied carefully, you will have to write a huge amount of code.

Those days when we are unspeakable, silent, and secretly exerting power are not the life we want, but the road leading to the life we want.

4. Employment

I have experienced internships in two companies, how about you?

In the winter of 2012, after the school-enterprise cooperation training, I interviewed management trainees from National Science and Technology and Chinasoft International, and finally chose Chinasoft with a monthly salary of 7k. Because of this choice, an interesting experience happened.

After the interview with Chinasoft International, after the oral offer is communicated, the formal employment notice is not issued for a long time, and the internship is not allowed. After the telephone communication, it was said that it would be necessary to wait until April 2013, and the specific time was to be determined. What to do? I can't keep renting a house in Beijing to eat steamed buns, right? When there was no way, I went out for an interview again and found a Zhongkesoft for an internship. Until mid-April 2013, when I received Chinasoft, I "come to participate, pre-job training". Okay, it's another training.

After the training was over, I finally officially started working in the company, but something went wrong again. I was a Java developer, and my job at the company turned out to be C#. I also need an inverted repeater, IO board, PLC, etc. Camera and so on, just like that, I added many other skills. Fortunately, the first leader I met at that time was very good and took me to learn a lot, otherwise I might have run away early!

Five, job hopping

On August 25, 2015, I moved to a big factory to do Java!

In fact, when it comes to job-hopping, it may be the only way for every programmer's career development. How long you accumulate and how much you accumulate will pave the way for your next job.

The biggest reason for my job change is that I want to go to the Internet from a traditional industry and I don’t want to write C# anymore. After all, I have written Java language from the beginning of the university to the training several times, but not for C# language. So much enthusiasm. In order not to abandon the learning of the Java language, during the first company, I also took the projects written in C# in many companies and rewritten them in Java, just to learn the Java language.

Later, because the first company needed to build a data collection software, it happened to talk about Java and Netty to the leaders, and the leaders were very supportive. Go ahead! Formally because of the experience of this technical practice verification, in the later interviews with Internet companies, Netty is still quite a plus.

In this way, from a seemingly outsourcing and traditional industry, I quit a big Internet company and started Java development, and it took more than 5 years to do it. Often for job-hopping, choose an industry and technology you like, and you will still do a lot of things you want to do, and you will be satisfied with your kind of happy growth.

Six, sideline

"side business", am I a person who can toss?

I have opened a small shop that sells mobile phone cards, worked on Taobao to sell data lines, took over private work as a website, gave lectures to people online to make money, and did technical forums for a period of time. But without exception, these things haven't been done for a long time, some are because of job-hopping, some are not due to lack of spare time, and some are not linked to user traffic, all of them are gone!

All these tossing things, although I didn't make much money, but such a share of experience has also made me feel the way that should suit me, that is, to do long-term value accumulation. This requires finding a direction in which you are good at, with sustainable output content, close to your own work content, so that you can settle yourself and help others.

owners. It took nearly two years to accumulate nearly 80,000 fans on all platforms before I slowly made the "160b43c242438a everyone knows", say people foes known to be exaggerated, ha ha ha, but now you go search of small Fu brother, search re-learn Java design patterns , search bytecode program , search plane by manual , etc., will I saw my figure. Of course, it’s not how good my technology is. It’s just that I hope to output all the technical content that belongs to my cognition in the continuous accumulation of precipitation. At least this can improve myself and help the technology at this stage.

But currently this sideline does not make much money, because it has not received any advertisements. Of course, I don’t object to technical account owners receiving appropriate advertisements. After all, technical output is also very time-consuming and experience-consuming. It took me nearly two years to get into this circle, and I also know every technical account owner’s hard. like whether you have ever thought that you have to give up almost the whole year’s weekends and holidays, or you may need your family to bear more, so that you have free and full time to think, write, design, and publish the articles you want to do And content? Every long text with pictures and 4D technical texts you see, as long as it is original, you must think about it in at least 3-4 hours, output it in 6-8 hours, and publish it in 1 to 2 hours, which means it’s a weekend All the time is devoted to this passion!

The reason why I am not receiving more advertising revenue now is mainly because the technical output of my official account is mainly because of my great interest in technical content, and the operating cost of my official account and blog, including: domain name, Servers, gallery VIPs, etc., rely on longer holidays to write some paid technical columns, collated PDFs and appreciate the recovery of these costs. However, the situation has improved since 21 years, and some less money can be made. knew that Brother Xiaofu used to feed his fans with wool!

So for me, technology precipitation is a sideline with long-term value, and I also hope to use technology output to feed myself!

Seven, publishing

On April 23, 2021, at the Book Festival, my first book "Relearn Java Design Patterns" officially on sale on JD.com.

Publishing the book is my personal check-in on the road to technological growth. I want walk the road I haven't walked, climb the mountain I haven't climbed, see if the rainbow after the wind and rain is as gorgeous as others said.

On July 12, 2020, Xiao Fu’s "Relearn Java Design Patterns" PDF version was first published on the public account, but I didn’t expect this design pattern to be completely popular from that day. What kind of ghost is the fire? Almost all Without the knowledge of the owner of the network, the advertisers have put "the design pattern PDF of ByteDance Summary is on fire, and the full version is open for download!"

  1. In those three months, the link I provided for this book once exceeded 300,000 downloads across the Internet, and there are still many that cannot be counted!
  2. The public account can increase 600 fans a day+
  3. Everyday people ask Brother Xiao Fu, are you byte beating?
  4. Baidu searched Xiao Fu and even added the hot word "Xiao Fu's design pattern" to me
  5. The code base corresponding to the GitHub design pattern continues to dominate GitHub Trending
  6. Maybe it was from that time that many people knew about me. Although I didn’t like to be promoted like this at the time, it became so inexplicable.

It was also from the time when it became popular. Every day there was contact with the editors of the publishers. Whether or not to publish a book, I was not excited at first. I also felt that my writing was not good, and there were many typos.

The reason why I got in the car later was because I met Song Yadong, introduced me, explained it, and analyzed it for me, okay! From the holiday on October 1, 20, I began to reorganize the design pattern manuscripts, reorganize articles, collect fan feedback, draw technical drawings, complete all the content bit by bit and add new chapters, and hand it over to publication around November Society, the road ahead is long...

The publication of a book requires topic selection, submission, review, followed by revision, review, revision, and review over and over again. Finally, it feels like it’s going to be finished, and then three reviews and three proofreadings are started. If you can’t pass it, you won’t succeed. ! Fortunately, it was passed in about a week, and then I applied for the book number, published and printed, dried, and bound, um, how long? It took 7 months from submitting the editor to putting it on the Jingdong Mall, plus the creation time of my editor. , This book took a year and a half to be published!

In fact, publishing a book is not particularly difficult, and it will not swell. Publishing a book is only a testimony of the result of the personal growth and hard work, but it is not the ultimate goal. We can use our long-term accumulation of personal abilities to accomplish more of what we want to do.

8. Inheritance

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

I spent all my late nights and holidays in the time of the code text in the past, from four years of university to five years of work after graduation, and wrote 12 major practical topic articles; "Implementing JVM with Java" , "Netty4.x Topics", "Domain Driven Design", "Full Link Monitoring", "Java Manual", "Byte Code Programming", etc. and nearly 240 original articles, and published books "Relearn Java Design" Mode" and online column "SpringBoot middleware design and development" , "Netty imitation PC end WeChat" and so on. These columns and articles have corresponding source code, which can be verified while learning.

Also created the first CodeGuide | Programmer's coding guide , covering; articles, source code, cases, books and other materials for learning and expanding skills.

My Github summarizes all the content I wrote, thank you for giving Star support:

  • Content : This code base is a summary of the author's Xiao Fu's years of learning history and technology in the development of first-line Internet Java. 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 - point we went to a Star!

Nine, summary

👣 world in mind, the sensual dog "code". There is enthusiasm, Tibetan and commonplace.

Sometimes I’m really grateful that I can continue to do original technology output, and even if I’m busy and tired, I still give myself a current explanation. In the process of writing an article, I almost never spend such a big time on weekends, nor do I have a long vacation. But every time I finish each article, the precipitation of my hard work will also spread to other people's knowledge, which can make me happy to forget my worries.

All efforts are due to: ability , is the greatest guarantee for you to move forward. Even if you are a conscientious worker, you must have the ability to stay and the ability to jump out in order to profit from relatively frequent changes and uncertainties.

Good, I wish everyone on the road in the future: is as desired, and 160b43c24246b6 is . glow, engraved with grace!


小傅哥
4.7k 声望28.4k 粉丝

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