instructions

IOS development has long been out of the window. It’s not as if the Internet is saying that iOS is no longer available, but the fact is that all programmers, with the exception of elite programmers and those with solid foundation, face the same dilemma as me:

  • Older age: there are many post-80s, only about half of post-90s and almost none of post-95s;
  • Wild: most of them are not trained, the general algorithm is poor;

All of this leads to poor working conditions and poor pay for us average iOS developers. Many good programmers have already started the transition: IoT, AI, blockchain, applets, RN, Flutter…

I also tried to do bluetooth wifi development and small program development for a period of time, but out of personal interest and expertise, I still choose to develop in the direction of AR. Since 2016, I decided to learn 3D game framework on Apple in my spare time, because I believe that if Apple is engaged in AR, it must be based on its OWN 3D game framework SceneKit. Then, sure enough, I started to study Apple’s ARKit, but I encountered more and more problems along the way:

  • Only amateur research, intermittent learning, resulting in extremely unskilled, most of the time is about to know that is the case, a code is difficult;
  • Poor foundation: first, I am not familiar with conventional algorithms and data structures; second, I have almost no basic knowledge of graphics, so I often have no idea what the code I copied is;

However, the learning process was extremely difficult. There was no special guidance, fragmented learning, and I could not find a suitable course for myself. As a result, I struggled at the very beginning and was extremely frustrated. In the end, I could only manage to do a few Easy problems in LeetCode, while IN OpenGL I only learned to draw triangles and cubes.

It was not until early 2019 that I finally made great progress in algorithms and data structures. In the second half of the year, I successfully entered the AR industry and became an ARKit developer.

algorithm

I almost gave up due to many setbacks in algorithm learning. I once tried to learn the algorithm course of a famous university on a MOOC, which made me doubt that I was not qualified to be a programmer.

Over the past year, I have been constantly gnawing algorithms while constantly looking for learning methods suitable for me. Finally, I found the introductory algorithm tutorial suitable for me in the first half of the year and completed a breakthrough in the basis of the algorithm. I was able to brush the problems in Leetcode smoothly, and I could finish the simple and difficult ones quickly. I also had a basic idea of the medium ones. As long as I had enough time, I could write them out, successfully reaching the entry-level level. It may make you laugh, but this is my real level.

During my spare time in the first half of this year, I finally swiped 100 questions on Leetcode. Although most of them were simple and difficult, it was a great progress for me. Because my persistence finally survived the lowest point, embarked on a positive cycle.

  • The content of the algorithm is correct
  • Relatively systematic and complete explanation
  • We’ll start with data structures, and then we’ll talk about algorithms
  • Suitable matching brush questions
  • The presentation style suits individual tastes

If everybody has need, can look for oneself, see which suit oneself.

AR

When I first learned ARKit, IT was very painful because it was fragmented learning. In order to better study and memorize, I even translated/wrote a bunch of articles to help me organize relevant knowledge. Unconsciously, I accumulated more than 100 articles, which effectively helped me enter the AR industry that I had been longing for for a long time and successfully become an ARKit developer.

  • SceneKit series of book notes
  • ARKit series of feature-length anthology: Nuggets only part, see the complete version of my life ARKit technology to teach you
  • MetalKit series translation collection

Long-term theoretical study and writing have made me thoroughly familiar with various functions and APIS of ARKit, which is really helpful in my work. Of course, I also found a lot of details that I didn’t understand before, and suffered a lot, so I summarized a series of practical development tips:

  • ARKit Tips series of Tips

Today, I feel I am already basic mastered the basic knowledge of ARKit, for example, is equivalent to the iOS development master UIButton/UITextView/UITableView common component and API level. In essence, this is a very low entry level, just barely enough for the time being.

Summary and Prospect

In 2019, I found my own positive feedback loop from continuous learning, and finally stopped being confused all day long: is there a future for programmers still writing code at the age of 30? What should I do if no one wants iOS? What should I do if ARKit is not popular?

2019 is still the winter of AR/VR, and various technologies and products are not mature. 2020 is estimated to be only a slight improvement, the real popularity of consumer AR products is still a long way to go. But I will continue to work hard on this road, no merit and virtue, no one step to the sky, just further have further scenery and happiness.

2020 plan: Algorithms

Next year, algorithm learning will continue, leetcode brushing is one of my main tasks, another algorithm-related task is: linear algebra and computational geometry. To learn about geometric algorithms for calculating the relationships between points/lines/faces/polygons/geometries.

2020 Plan: Graphics

Although I have translated a lot of MetalKit content, my graphics level is actually quite low due to lack of practice and no guidance, and my practical ability is even worse. The great God of Zhihu said it well: the best way to learn graphics is to write a rendering engine by hand, even if it’s simple and clunky.

I don’t have the ability to write an engine on my own, but it’s possible to build a simple 3D engine by following Raywenderlich’s introductory Metal tutorial.

Finally, I would like to thank the Nuggets for the platform and the support of all my friends. Without your interaction and feedback, I would have been unable to go on. See you in 2019 and forge ahead in 2020.

Nuggets annual essay link

Denver annual essay | 2019 technical way with me The campaign is under way…