Hot Article Introduction | Click the title to read
Welcome to join the Java and Android architecture knowledge community
Senior Wireless Development Expert from Alibaba Shares Career Development Advice for Programmers
Advanced Secrets of Architecture Interviews: Recommended Excellent Articles from May
Author: hamberluo Link: https://juejin.im/post/5af296226fb9a07a9a10d6f1
Are Android Engineers Really Commonplace Now?
At Google I/O, a significant portion of the sessions focused on Android. The mobile internet is a milestone in the internet era, and smartphones are the most important among Google’s hundreds of devices. Google has always been optimizing the user experience of Android. Although mobile development has become nearly saturated in recent years, it is easy to observe that the threshold for junior engineers is rising, while there is still a significant shortage of senior/expert engineers/architects in major companies.
Android Technology Changes Every Year, What Technologies Should We Learn?
Everyone has different answers to this question, and I will approach it from another angle.
First, let me ask you a question: why do you want to do Android mobile development?
-
Is it because Android is easy to learn? No, Android is neither simple nor easy to learn.
-
Is Android development easy? No, Android development directly faces users, and the requirements for detail and experience are higher.
-
Is the salary for Android development (in the internet industry) high? Not necessarily, every industry has its top performers, and even in the internet industry, mobile development may not have the leading pay among engineers.
I have also been pondering this question, recalling how I embarked on the path of Android development, and my feelings while watching Google I/O today are the same: one word: cool.
Google changes the world through technology, improves people’s lives, and creates greater possibilities for humanity. As a part of this ecosystem, I contribute my share so that I won’t regret it when I grow old.
Alright, let’s not talk about dreams for now. We do technology because it is fun and interesting; what we write is what we get. Mobile development is closest to end-users, and your few lines of code might someday elicit a user’s scream: “OMG! Amazing! So cool~”
At this point, the conclusion is clear: the technologies we need to learn are those that can bring pleasant experiences to users, align with Google’s vision of making good things, and enhance user well-being.
In other words, we need to make the app experience better, smoother, more stable, and more powerful. We should learn all technologies that can achieve these goals. Learning is not just about avoiding being eliminated; it’s about contributing more to this world. Despite encountering various negative energy in life, work is about creating value. We should think less about unhappy troubles so we don’t waste our time on earth.
Which Technologies Must Be Learned, Which Should Be Selected, and Which Are Recommended?
First, let’s talk about must-learn technologies.
-
Basic knowledge of Java
-
Basic knowledge of Android (if you don’t master this, don’t talk about anything else)
-
Basic knowledge of networking (an app that isn’t connected to the internet, except for single-player games, probably won’t find good applications)
-
Basic knowledge of images (you should be familiar with image loading libraries)
-
Basic knowledge of media playback (such as ExoPlayer)
-
Firebase (continuously optimized at I/O, can’t ignore it, especially with FCM)
-
Kotlin (a trend that cannot be ignored, not learning it will lead to regrets)
-
Support libraries (essential for backward compatibility)
-
Build systems (including Gradle, Maven, ProGuard, etc.)
-
Testing frameworks (including Mockito promoted by Google today)
-
ReactiveX (the focus is on the concept of streams, not just asynchronous)
-
JSON serialization and deserialization
-
Componentization
-
Material Design
-
Basic knowledge of cameras
-
Basic knowledge of QR codes
-
Basic knowledge of positioning
-
Automation scripts (such as Python)
-
Basic knowledge of databases
-
Basic knowledge of encryption and decryption
Next, let’s talk about selected learning, meaning learn it if you use it, and it’s okay not to learn it if you don’t.
-
Hot patching technology
-
React Native
-
Plugin development
-
NDK development
-
Live streaming technology
-
Advanced media playback knowledge (related to encoding and decoding)
-
VR technology
-
Flutter framework (currently mainly for UI)
-
Android architecture frameworks
-
Android Things
Finally, let’s talk about recommended learning
-
AR technology (I have always believed that this area is a blue ocean for mobile products; whoever discovers new scenes will capture the one piece)
-
AI technology (TensorFlow)
-
Fingerprint technology
Don’t Learn Just for the Sake of Learning; Think More About the Application Scenarios
No technology has value if not applied in real business scenarios, just like being required to memorize texts in school.
As a mobile development engineer, think more about how to make users happier, which means you must use the products more yourself. This is why Google can attract so many excellent engineers; these engineers use their products every day (with deliberate repetition), and over time, they develop a sense of empathy for end-users, allowing them to think from the user’s perspective. If you don’t consider yourself a target user of the product, you might overlook even basic self-testing.
I am very fortunate to join a company like Google, where every employee is dedicated to refining the product, constantly using and practicing it. This way, one day, something that can be called a vision may become a reality.
If you have good articles to share, feel free to submit them by sending me the article link directly.
Finally, welcome everyone to join our knowledge community, this period ends on March 10, 2019, so the earlier you join, the better. Currently, there are nearly 1000 members, and when we reach 1000, the price will increase significantly (there are only a few spots left), so hurry up and get on board!
Scan the QR code above or click to receive advanced resources for Android, Python, AI, Java, etc.
For more learning materials, click below to get the “Read Original”