Graduation season: Cocos, a post-90s developer, talks about how to enter the industry and how to make progress

Graduation season: Cocos, a post-90s developer, talks about how to enter the industry and how to make progress

It's graduation season again. Are the young developers who are about to join the ranks of programmers ready? Today we are honored to invite Xue Peng, a post-90s developer, to share his experience with the graduating young developers.

Speaking of Xue Peng, most people probably haven't heard of him. However, those who often hang out on the Cocos forum may have heard of the name "Hanjiang Guye". He is a veritable die-hard fan of Cocos.

Recently, the cocos team had the honor of inviting Xue Peng, a popular post-90s developer in the cocos forum, to talk about the stories before and after the development of the game.

Cocos: When was the first time you came into contact with Cocos? Why did you choose Cocos?

Xue: I came into contact with the Cocos engine when Cocos released the Cocos2d-2.1 beta3-x-2.1.1 version. At that time, a few friends in school wanted to develop a small game together to participate in the school's CodeJam. When we were making the game, we also struggled between several engines, but after horizontal comparison, the Cocos engine stood out. Its advantages of open source, easy to use, and free made us decisively choose it. It was this choice that made me enter the palace of Cocos.

When we started to learn the Cocos engine, we found that it was really easy to get started with Cocos. With just a few lines of code, we could achieve very cool functional effects. The one-stop solution for Cocos released since 3.x makes the entire process of the game, from project creation, UI design, logic writing, to final project debugging, packaging and publishing, easy and simple.

Cocos: Why did you become a popular figure in the Cocos forum?

Xue: When I first started using Cocos, I was absolutely a rookie and didn't know what to do, so I joined the Cocos forum. The atmosphere of learning and mutual assistance in the forum is very good. Some doubts encountered during the learning and development process can always be solved through discussions here. It can be said that I grew up with the help of these forum friends. The Cocos forum is my first teacher.

At the same time, there are often some experts in the forum who share their development experience and codes. You can always learn a lot of knowledge and increase your insights from their articles. I hope that my younger classmates can also develop a good habit of learning technology in the forum. Learning knowledge and helping others is also a shortcut to improving your abilities.

Cocos: Please share with us your process and experience of learning Cocos!

Xue: Some friends always ask me how to learn the Cocos engine. I hope my experience can help everyone.

First of all, I assume that you have mastered the C++ language (if you haven't mastered it yet, go and make up for it!). To learn an engine, you first need to have an overall understanding of it. If you start by learning how to use Sprite and what Label is, you will feel like a blind man touching an elephant. This overall understanding includes how to build the cocos development environment, the cocos tool chain, the main functions of cocos, and the directory structure of the Cocos2d-x source code. The next step is the core classes of Cocos2d-x, such as Node, Scene, Layer, Director, Sprite, etc., and then try to write some relatively simple UI interfaces through these basic classes. The next step is to learn various Actions, Schedulers and event handling mechanisms. At this time, you can already complete some simple games, such as Snake, 2048, etc. (Do you feel a sense of accomplishment?) Next, you can master various other classes and UI controls that are very commonly used in project development by reading the Test in the Cocos2d-x build directory. Everyone has their own different learning methods, and it is best to find a method that suits you.

During the learning process, when you encounter problems that you don’t understand, you can consider asking questions in the CocoaChina forum I mentioned above, or going to the Chinese website of Cocos to check out the tutorials, or asking questions to the engine development team and CVP team through the developer platform. Making good use of these resources will make it easier for you to learn and use Cocos.

Cocos: What development examples can you share? What is the current status of this project? What problems did you encounter during the process and how did you solve them?

Xue: I am currently developing a chess and card game project, which will be released soon. It combines some common chess and card games, including Texas Hold'em, Landlord, and the well-known "staring eyes", "catching black crosses", and even "pulling a cart". I am grateful to the leaders for their trust in me and giving me the position of project lead. During the project development, I encountered many problems, such as the Scheduler in Lua will not be automatically removed, the memory and IO optimization of sequence frames, and the return of cc.TABLECELL_SIZE_FOR_INDEX of tableview is the problem of height and width (isn't it normal to be width and height?). However, with the help of the cocos community and all the enthusiastic moderators, they were all perfectly solved. I would like to thank those enthusiastic friends!

[[134762]]

(Development process using Cocos)

Cocos: How did you get the position of lead programmer so quickly?

Xue: After joining this company, I followed two projects in total. One is a card game and the other is an RPG. During the development of the project, I quickly became familiar with the overall project framework. I asked questions when I didn’t understand and tried to understand every part I didn’t understand. Since I have a good grasp of C++, during the development process, I was able to read the source code of cocos for some unfamiliar classes and spaces in cocos and deepen my understanding of the controls. The ability to understand and learn by yourself is very important. Being able to learn how to use a method by reading the code is especially important for this open source engine. In addition, my good communication skills have maintained a good relationship with other programmers, artists and planners, which has also brought great benefits to my subsequent project work. Two months ago, the company decided to develop a chess and card game. Since chess and card games are relatively simple and easy to control, the leader decided to let me be responsible for this project. So far, I have not disappointed the leader!

Cocos: Advice for junior students who are about to become programmers: I personally think that what is important to learn or master, and the changes and adjustments in mentality:

Xue: A tall building starts with a foundation, so solid basic skills are particularly important. Before learning Cocos, you should first master C++. I recommend a very well-known book, C++ Primer, which is a must-have for in-depth learning of C++!

I think if you want to learn C++, you can consider learning C first. C++ is a general programming language developed based on C. Mastering C provides great convenience for learning C++. When learning C, it is important to understand and master pointers. Pointers are the soul of C/C++ and run through every corner of the entire program development. After mastering C, C++ is not difficult to learn. Many friends think that C++ is difficult to learn because it provides a lot of concepts based on C, especially object-oriented concepts. Spend some time to truly understand object-oriented, which will be of great help to subsequent research and development and learning. At this point, you have already mastered C++ to a certain extent. Next, you need to learn in depth various templates, STL and other more complex concepts of C++. Programming is a practical science. In the learning process, continuous practice is very necessary. Type the examples in the book carefully, modify some code slightly and run it to see if the results are the same as what you want. This will greatly improve your control over the code.

Secondly, it is necessary to master some basic data structures, such as heaps, stacks, queues, binary trees, and some common searching and sorting algorithms.

Every outstanding student is a favorite in school, but the more outstanding the students are, the more likely they are to be hit in the workplace. Because after entering the company, you will find that you are not the best. You will feel like you don’t know anything. The frustration of this gap can easily hit your confidence. At this time, you must not be discouraged. This is a process that everyone will encounter. As long as you have firm confidence and keep working hard, you will catch up soon.

Cocos: What do you think of Cocos? What do you think are the advantages of Cocos?

Xue: I think the main advantages of cocos are that it is open source, easy to learn, free, and has a very complete Chinese community. Compared with other mainstream engines, cocos pays more attention to the domestic market, has more Chinese tutorials, and responds to developers' questions and bugs more promptly. Cocos supports development using two scripting languages, Lua and JS, and provides a very easy-to-use IDE to facilitate game development and debugging. This lowers the threshold and speeds up development compared to traditional C++ language development.

[[134764]]

(Xue Peng at the "Play Cocos, Enjoy Windows - Windows Mobile Game Development" event)

Cocos: What are your plans for the next step? As a leader among post-90s developers, what do you want to say to your juniors?

Xue: My next plan is to learn more about OpenGL and understand cocos more thoroughly. At the same time, I will master Cocos-js. Cocos-js is the hottest development direction at present. JavaScript is more mature and easier to master than Lua. Both the front-end and back-end can be developed using Javascript, which makes it easy to complete the interaction and facilitate technology sharing. Moreover, Html5 and CocosRuntime are also a decisive advantage of Cocos-js. So we decided to use Cocos-js for the following project.

I have a tip to share with you: remember to write a blog during your learning process, whether it is on CSDN or Blog Garden. When you can't remember the implementation of some functions and methods you wrote before, if you write it in a blog, you can easily find it. At the same time, a blog is the most effective proof of your technical level. Especially when freshly graduated college students are applying for a job, if they have their own blog, it is a good plus point, and it is also a good way to show their technical ability to HR.

Cocos: Do you have anything to say to everyone in the end?

Xue Peng: I hope that my juniors will work harder in the learning process, not be discouraged when encountering difficulties, try more, and be brave to ask questions, so that they can become a high-end "game developer" as soon as possible!

At the same time, I am very grateful to the Cocos Engine for giving me this opportunity to meet you all, and I am also very grateful to the Cocos Engine team for their support and help. I hope more friends can join the Cocos family, and I hope Cocos will become better and better and provide greater convenience for developers.

Cocos: Thank you very much Xue Peng for accepting our interview. I hope your career will flourish.

Xue Peng: Thank you!

<<:  Choosing an enterprise-level mobile platform: an independent platform or an integrated platform?

>>:  Summary of WatchKit view transition control

Recommend

As a programmer, you must know these things about computers

[[130302]] Storage - block devices, file systems,...

Shapers of Earth's history: Are meteorites "destroyers" or "midwives"?

Tuchong Creative In the long history of the Earth...

6 steps to successful copywriting: There are routines for writing good copy

Copywriting is a sword that can pierce the hearts...

Example: How to design an operational activity H5?

This article can meet the following needs: Want t...

Eating snacks at this time is actually helpful for controlling blood sugar?

Whether they are relaxing or busy at work, many f...

In addition to Android and iOS, there is also an "unknown OS" that is rising

[[128637]] We always think that in the near futur...

How to help offline education and training institutions to transform online?

The year 2020 has had a huge impact on most offli...