Preface: Last year, I wrote an article titled 2019 Annual Summary – 647, which is my first year in the industry. Of course, 2020 is also a must. 2020 is my second year in the industry. A lot has happened this year, and I have grown and learned a lot personally. Of course, there are also many shortcomings will be summed up here.
This year, for me, two things happened:
- I have changed my job.
- I’m off single ~ > <, is the hao Hao in the 19 year summary.
A, work
Those who have read my annual Summary of Last Year (2019) should know that I am a student of qihoo 360 – Qihu Dance Troupe for the 19th year (2018.07 ~ 2020.05).
Including the internship time, I have studied/worked in 360 big front end team and Qi Dance Troupe for two years. These two years, I harvest a lot, also grew up a lot. I also got to know many famous leaders and seniors inside and outside the company, which gave me a lot of inspiration and help.
To be honest, 360 was one of my favorite companies when I was in junior high school. (10 years of 3Q war, in fact, I personally side with 360).
But because of my personal reasons, maybe after two years in 360, many places are familiar. (It feels like my personal comfort zone has formed, and it has nothing to do with the company.) For a developer who has just graduated from the workplace for a year, the familiar and comfortable personal comfort zone will soon make us hit a growth bottleneck.
For starters, my advice is to avoid the comfort zone as much as possible. While young, learn more growth and precipitation technology is good for their future. Learn as much technology as possible and as little workplace skills as possible. The Internet industry we are in is technology-driven. The only way to actually make a company better is to have good technology that can help the company solve real problems. At the same time, get some technical sense of accomplishment. Try to avoid the short-term influence of fame and income, rather than choose to learn technology. Young less fame and wealth, more growth, more harvest, more technical precipitation is the most important.
So, on the recommendation of my idol (bestswifter), I jumped ship.
Here’s an advertisement for Bytedance-Client Infrastructure. We are the “client Infrastructure” team, focusing on “underlying technology” and “infrastructure”. Simply put, bytes are known in the industry as “App factories.”
Iteration cycle of App:
App development => component CI => component combination code => component release (source code & binary) => multi-warehouse combination code => App integration => App test => App release => App online monitoring.
What we do is this whole assembly line. Just like a factory, an App goes through the assembly line and is produced. Developers only need to worry about fulfilling requirements and improving code quality, and the platform will do the rest. Our job is to build this factory.
Of course, there are many other jobs besides DevOps. If you are eager to grow and gain, you are welcome to send me a message.
Again, byte’s growing environment has the following advantages for me:
- Flat management
Almost everyone on the team reports to a big leader, with much less hierarchy and skills in the workplace. (However, it will be harder for the leader, after all, he has to manage so many people)
- No upward management
We just need to focus on fulfilling our needs and don’t have to deal with a lot of things in the workplace. (That is, you can happily write your own code, reap the benefits of technology and growth.) Managing up may be a problem for many large companies, but it’s almost never a problem for byte. (At least for us entry-level developers, just focus on learning and fulfilling our needs.) Those skills in the workplace can slow down Internet companies, wasting a lot of communication/human and so on. So use these skills as little as possible in your organization. (concentrate on doing business, writing code) outside the company, competing with friends is another story. (Give it to the leaders)
- Leading edge technology stack sedimentation and technology solutions
Bytes are called “App factories.” There are too many apps to count. Therefore, for client developers, the technology and solutions are industry leading. So, here, you can develop with the world’s top engineers (lots of foreign developers) and discuss solutions together. At the same time, there are internal course videos of various technology stacks (all of which are recorded by business leaders), which will bring us analysis and technical explanation from different angles.
- Salary and benefits (not to mention…)
It’s also important to understand that… But for new developers, the first three are more important.
Ii. Growth (Technology Stack)
At the beginning of 20 years, I taught myself the Go language at home. In June 20, DUE to the need for byte side to understand the backend development of “client technology”, I did switch to the backend because of the job opportunity.
Currently, my personal technology stack is mainly as follows:
- Client:
Objective-C
+Swift
(1 year experience) - The backend:
Go
+MySQL
+MongoDB
+Redis
+ES
(0.5 years of experience)
Because of the nature of the work, I don’t write much about iOS now. But the work is still in close contact with the client.
A lot of technology, is to do demand, while learning. Byte has very rich documentation and course video, can let you quickly recharge, grow to meet your needs. Don’t give yourself labels that define who you have been. Give yourself a reason not to step outside your comfort zone. During the six months in Byte, I felt as if I was back to myself when I just walked out of campus.
Third, reading
1. IOS Programming straightening out the core Knowledge points (Mr. Daiming)
To be honest, this book, in conjunction with Mr. Daming’s geek Hour lessons, is almost a must-read for iOS developers. It can be said that this book explains a lot of basic knowledge and principles of iOS from simple to profound.
- OC -> Swift progression?
- Symbolic analytic principle?
- How to do iOS monitoring system?
2. Illustrated HTTP (second brush)
In April, WHEN RESEARCHING WebSocket, I found that I forgot a lot of knowledge related to network. (probably didn’t get it all right in school), so I spent some time reading diagrams HTTP twice. Also to prepare for the interview.
3. Programmer Self-Cultivation (20%)
It’s a little thick. I read it, but I didn’t finish it. But this book is very helpful for understanding the underlying principles of computers. And many of the technologies at the bottom of the stack are very similar.
4. Go Language from Entry to Actual Combat(70%).
This is my entry at the beginning of the year Go to see some, feel before a little Go/ back-end basis of the students, you can refer to.
Author: CAI Chao, Vice President of Technology and Chief Architect of Mobvista, former Chief Software Architect of Amazon (China)
5. Core 36 Lecture of Go(30%).
This advice to Go language practice students look, if the beginning of the word, or sound will be difficult to write.
Author: Hao Lin, “Go concurrent programming combat” author, former easy to raise big data in charge
6. Core Technology and Actual Combat of Flutter(20%).
Although I do not write about Flutter at present, I have learned some techniques and principles of Flutter. Kind of know, broaden your knowledge.
Author: Chen Hang, senior technical expert of Meituan Dianping
4. What did I do in 2020?
In the first half of 1.
In the first half of this year, the epidemic broke out in Wuhan and cities were closed down. More time at home. While praying for Wuhan 🙏, while at home to learn some of their own interested in technology.
Go basis
Got an introduction to the Go language and produced a series of basic Go blogs: Go Language Basics (1) — Introduction, Environment Configuration, Hello World Go Language Basics (2) — Basic Common syntax Go language Basics (3) — Object-oriented Programming Go language Basics (4) — Excellent fault tolerance Go language Basics (5) — Concurrent programming
I originally planned to write eight, but I ended up writing five. The last three are missing. But not too much, the core is concurrent programming, which is chapter 5. Suitable for students preparing to enter the Go reference.
WebSocket
Also, because of my background as an iOS client. At the time, I was cleaning up websockets. Therefore, I also wrote two articles related to Go.
- Today we are going to talk about WebSocket (iOS/Golang)
- WebSocket Two-end Practice (iOS/Golang)
Swift, Flutter, WatchOS
After the outbreak improves, I return to the company. Wrote about some internal efficiency gadgets (Swift, Flutter). At the same time, I put this little tool on the ground of the Apple Watch and wrote an iOS Watch App. (Please refer to my blog: An Apple Watch App Development Experience)
Basic iOS technology
After that, I bought Mr. Daming’s “new book” and “course”. I have learned some basic iOS technologies and landed some blogs that I am very satisfied with:
- IOS On GPU and “App Rendering Process”
- How does Flutter Actually render?
- How does iOS crawl a thread’s “method Call stack”?
The second half of 2.
When the epidemic stabilized, I personally left 360 and joined Bytedance. In bytes, it feels like there’s something new every day. Growth is also rapid. Working with bestswifter and the big boys, I learn a lot every day.
Gradually completed a lot of requirements, a little bit of upgrading, a little bit of growth. The only regret is that IN the second half of the year, I barely wrote a blog. Reflect on why:
- Lazy.
To tell you the truth, bytes work hard. If you insist on demand, you can’t finish it. I spent most of my energy on completing the requirements and didn’t do a lot of summarizing.
- Food,
As a back-end “cute new”, their precipitation technology is not much. A lot of understanding is not comprehensive, afraid to directly write out a lot of things misleading. So, still want to wait for some precipitation and then write a good point.
I have written some half-finished works that are not worth mentioning, which I would not recommend to you here.
5. Plans for 2021
Before making plans, let’s briefly review last year’s (20 years) plans.
Last year’s projects included: 1. In-depth understanding of RunLoop? 2. IOS Performance optimization? Scripting languages? 4.Go? 5.Vue.js? 6. The Flutter/SwiftUI? Among them, the better points are: 1,2,4. Not so well done: 3,6. Almost no progress has been made.
So, the plans for 2021 are: Since my current work is mainly in the “back end” direction. As a result, the plan may focus on strengthening the “back-end technology stack.”
- Deeper understanding of Redis?
Not only use it, but also understand the essence of Redis. Learn another caching scheme if you can.
- Deep understanding of “back-end storage”?
Not only use MySQL, MongoDB, mainly understand their storage nature and performance advantages and disadvantages, and landing related blogs.
- Understanding ES?
I hope I can complete a complete set of ElasticSearch search solution, understand the principle of search engine, and land related blog.
- Understand the MQ?
RocketMQ or Kafka, and applied to the actual project. I have always been curious about message queues. Now I know some of them. I have never used them.
- The front end? JS?
Hope to understand the front end, it is best to actually do a front end demand, to the real full stack development.
- Continue to learn basic client-related technologies
If the client needs, it can be picked up at any time.
Sixth, other
In 2020, I will stay at home and play a lot of games.
Original God (iOS/Android/PC) — Score 10
I have to say, my best reviewed game of 2020. I mean, there’s a zelda thing going on. But I have to say, pretty good copy. Story design, in-game map/story exploration, rich combat design, and portability of data between iOS, Android, and PC. I have to say, it’s a new peak of domestic gaming. Full score recommendation.
The Legend of Zelda — Breath of the Wild (NS) — 10
On November 3, 2020.Finally save Zelda by defeating Gainon with 120 temples. (Total time: 180 hours) Needless to say, buy what you haven’t played.
Zelda: Apocalypse (NS) — rating 8
Read as a prequel to The Legend of Zelda: Breath of the Wild, it tells the story of Zelda’s long-ago war with Gaynon and why he lost. The game some drop frame, the story can also, but without double cutting grass, play for a long time will feel boring. I played 70% and sold it.
Xenoblade Chronicles 2 (NS) — 9.8
Japanese JRPG, a story-heavy game. For those who like anime, cutscenes are really good.
On November 19, 2020.Finally completed Alien Blade 2 (One Week). (Total time: 90 hours.) From The first chapter, Encounter “Flame.” To encounter “light”, and finally climb the world tree. The plot is good. A bit like watching an anime feeling, and a sense of game participation. In other words, a single player game can also play fun with cards in the early stage, but it is the story that makes me stick to playing through customs in the late stage.
Zelda Dreams of Islands (NS) — 7.5
Its old exclusive game quality is generally not low, or zelda series. (As anyone who has played Zelda knows, “Zelda is the best in the world! HHH “) is very cute, with a little bit of puzzle solving and exploration. I borrowed sister Jing’s cassette to play. Mow the lawn and play a little game with a lot of Nintendo IP memes hidden in it. It’s kind of fun. It takes about 20 hours to clear the customs. I’m dropping frames a little bit. After finishing the game, the gameplay is not very much. (I didn’t play through it…)
“Alien Chains” (NS) — rating 8.0
I’m underscoring this because I’m not personally sensitive to 3D action games, and the red and black style of the game is not my cup of tea. But produced by Platinum Studios (” Neil’s “team), the quality of the game itself is very high. Suitable for friends who like 3D action games.
Sword and Crusade (iOS/Android) — 6.5
Chinese New Year when the hanging game, very suitable for office workers, the real hanging game. Produced by Lilith (the original Legend of dao Tower team). I’ve played Sword and Home before (it sold for 800 pieces) and it wasn’t very playable, it was just a hang up game. But it’s made by Lilith, so the quality is guaranteed. Office workers can refer to it.
The Awakening of Nations (iOS/Android) — Score 7.0
Lilith’s games have done well internationally, and the characters in this work have heroes of all ages. While playing the game, you can learn about historical figures in the world. The playability is average, probably played about 1 month. (Simplified version of “civilization”)
Onmyoji • Baowen (iOS/Android) — 8.5
I played it for about a month, played season 2. Netease card new tour really gave me a little surprise. Hearthstone’s environment makes it more and more difficult for old players who like strategy card games. If they don’t play in a season, they will pull a lot of cards, and they will have to reissue cards in the new season, which is slightly troublesome. As a result, the game makes up for a playable card game. The setting is the onmyoji setting, with hearthstone mechanics, but not hearthstone. It took a little bit of time to get started (it took me about a day or so, which was a bit long, but once I got to know the general mechanics of the game, I could feel the fun of card games: brain work, logic, personality of making cards) and it was nice to see my favorite cards in front of me. The game itself is a puzzle card type +0.5 collection type of game. All in all, it was interesting.