From getting started to getting better——Remember my experience of the 6th Byte Youth Training Camp

Why participate

Before participating in the 6th Byte Youth Training Camp, I also participated in the 5th Youth Training Camp from May to June this year. I first saw it in a studio group in our school. It was posted by a senior. At that time I was very interested when I saw it, thinking I wanted to learn some new knowledge, because at that time I was pretty good at Python, but there were very few factories using it for back-end development, or they were all small factories. Out of judgment of the current market, Many major companies are gradually moving their business closer to golang. Even Byte has fully embraced the Go language, and has also developed its own HTTP framework hertz and microservice framework kitex. At that time, I felt that Byte was very powerful. If I could come to youth training, I would definitely be able to do it. To broaden my horizons, I signed up for the 5th Youth Training Camp. At that time, I was still a novice in Golang, and even Chun Chun didn’t know anything. I believe everyone who has watched Byte’s internal classes knows that the overall rhythm of internal classes It is faster and more suitable for students who are familiar with golang, or students with a very solid foundation in other languages. The efficiency of watching Byte internal classes will be correspondingly higher. I was watching the first class taught by wkc teacher. I couldn't keep up, so I took a second look at the class, not to mention how painful it was, so I chose to go to station b to look for an introductory golang class. The class I watched was Qianfeng's teacher Han Ru's class. At that time, I was still in school from May to June, and before the final exam, I was still learning the Go language. I almost spent my fifth year in the introductory Golang. Although I "scrambled" to get the camp certificate, There is still some regret in my heart, why? The first is that the Nuggets membership has expired before watching many exquisite Byte internal lessons. The second is that there are no big projects. When I heard that the sixth youth training camp had big projects, I was attracted. I resolutely gave up the school's practice of going to a company for practical training in my sophomore year (but I heard from my seniors that this was very useless and a waste of time, and it was still very different from an internship, so I used the competition to compensate for the practical training). On balance, the youth training camp is much more valuable than practical training, and I can learn skills with peace of mind.
Secondly, if you perform well in the sixth youth training camp, such as winning relatively high awards for major projects, it will be very helpful for future internships at Byte. Hahaha, I initially plan to go to Byte in my junior year. Internship (now I have to deal with algorithms and stereotypes ┭┮﹏┭┮), plus I am still the Douyin up master (loyal user), so I have to make a breakthrough.

Before camp starts

After the final exam in our school, I stayed in school and continued to learn about golang. This time I learned more advanced content, such as Goroutine, channels, etc. I later found it on station b. I took two online courses and practiced on two small projects. One used Gin+Gorm. I have put the learning materials and source code on Github . The other one used beego and I also put it in the warehouse . These two The projects are still worth practicing. After completing these two projects, I almost have a general understanding of the language Golang. It is still very interesting and I am quite interested. In addition, I signed up as a publicity ambassador. Hehe, I finally entered the program without taking the exam. For the upper class, a month of Nuggets membership and air-conditioning blankets are also given away, which is really cool.

After opening camp

After the camp started, I had to mention the big project team formation. This time the project is a minimalist version of Douyin. It is said that it is the same as the fourth big project. At that time, I thought that it would be very challenging to make a Douyin. I thought that I couldn’t be careless about forming a team, I had to find some big guys to help me do the project. I was forming a team in the Feishu group, and when I saw a team from our school, I joined without hesitation. Finally we Two or three more people came to the team, a total of eight people, all of whom were clay electricians. I really wanted to cry with laughter. I was the youngest in "seniority", and almost all the others were graduate students. I felt a lot of pressure at the moment, but actually there was no pressure later. So I think so. After the team formation was completed, a difficult problem arose, which was to choose a team leader. The group leader asked who was willing to be the team leader, but there was still no response from the group. I finally said that I had been a project leader for several times before, so..., so I am the tool captain. After the camp started, I followed the progress of internal classes. The feeling at this time was completely different from the fifth class. I could almost keep up and take notes. Sure enough, it was different after I got started with golang. I remembered my fifth class. , it’s hard to stretch hahaha. Of course, while following the progress of the youth training camp, I was also doing other extracurricular things, completing issues given by the open source instructor, becoming more familiar with GitHub, and studying for the Tencent Rhinoceros Talent Plan (the topics in this were not suitable for me, so I didn’t newspaper, mixed with an open source talent certificate), reproduced a relatively good blog project on github, and wrote blog articles every day...

To do the project

I hold regular group meetings for team members, and arrange tasks reasonably through Tencent meetings, such as database design, understanding and selection of frameworks, and so on. Finally, we initially selected beego as the http framework for our project, and arranged the division of labor, such as who will write the basic interface, who will write the interactive interface, etc., and who will finally write tests, document ppt, etc. At the beginning, everyone in our team was quite serious. After about a week, we completed the entire project. It seemed to be August 14th. However, we were not satisfied with the status quo, or I was not satisfied with the status quo. I know very well that this The work will definitely not get a higher ranking in the final defense evaluation, so I held another meeting to discuss the next step of technology selection and arrangements. After about two meetings, we had a preliminary result, such as adding microservices, message queues, etcd, redis, etc. on the existing basis. So I looked for tutorials and online courses on the Internet, and found that there were very few examples of beego combined with microservices. The only few I found were unclear. I probably spent nearly two days on trial and error. That kind of state where I spend 24 hours a day reading and writing code except the necessary time. Finally, through my continuous trial and error, I came to the conclusion that I gave up beego+microservices and switched to gin+gorm+microservices. I promptly informed the team members Said that they also agreed with me, so our minimalist Douyin project officially changed from version 1.0 to version 2. Version 0 is advanced. But unfortunately, three team members cannot participate in the next iterative development. They all said that they are very busy. Of course, as the team leader, I can only express my understanding and cannot force others. After all, I am the youngest "seniority", you say right? Later I thought about using grpc as a microservice framework, but grpc is a relatively pure rpc, while go-micro is a better encapsulated microservice framework. The learning cost is correspondingly lower, considering that iterations need to be completed in a short time. , and many problems may be encountered in actual development, so we selected go-micro as the microservice framework of the project. Since everyone has never learned it and has little experience, I took the lead in working overtime to learn go-micro, so that other team members can learn. After a day or two of hard work, I finished writing a microservice. I also met to explain to them the architecture of the entire project and where to start writing code. One of the team members didn’t even have any back-end development experience, so I could only sit next to them. Next, I carefully explained what each folder and each file meant, as well as the steps to complete a microservice, so that he would not have to spend time learning go-micro. What I first thought was that I had to first After writing some examples, they can imitate and write. It turns out that such development is much more efficient in a short period of time. I was really busy in those days. In the ten days from 8.15 to 8.25, I almost didn’t do anything. I wrote code day and night, and searched for related usages through Google and chatgpt, such as etcd, jaeger, etc. I knew that as long as I could figure it out, our other team members would definitely be able to figure it out. I still remember one night when I wrote code until five in the morning. Don’t be too crazy. I’m used to going to bed at one or two o’clock every day. Of course, my body also had certain reactions, so I won’t go into details here. Although I have been very busy in the past ten days, I have also turned down the tasks given by the instructor, and I have no time to watch internal Byte classes (because I became a publicity ambassador and became a member for an extra month, I can continue to study after the semester starts, which is really embarrassing) , but I really learned a lot, and my ability to solve problems independently has been greatly improved. I will also remotely connect with team members at any time to help them solve problems. Every connection is very meaningful. My ability to write code for projects has also improved to a certain extent. Google, copilot and chatgpt are really my programming assistants (no wonder it will be difficult for programmers to lose their jobs in the future). I enjoy every coding process very much. The team members are also very capable, able to complete the assigned tasks quickly and perfectly. It is no exaggeration to say that version 2.0 and 1.

Prepare for defense

As of now, our 2.0 version is still being optimized and some minor bugs have been resolved. The overall progress has been completed by more than 95%. The next step is to write tests, write documents, prepare PPT and demonstration videos, and prepare for the defense. To be continued...

Guess you like

Origin blog.csdn.net/m0_63230155/article/details/132525430