I always see some companies describe their job requirements in recruitment advertisements like this: "Experience in building iOS and Android applications from scratch; proficient in mobile and web technologies, including Java, HTML5, CSS3, JavaScript and AJAX." There is no such person: a person can only be truly proficient in one (technical direction) and mediocre in other directions. You can also switch to another technology after mastering one technology, (but this will make you quickly) forget many details of the former. This may be enough for you to easily fool many people and make them think that you can do everything and know everything - but when you really encounter a difficult problem, you can only rely on luck. Today is different from the past. The technology in any mainstream field is quite complex and constantly changing, requiring a lot of time. If you only use your spare time to learn, it is difficult to keep up with the latest developments in a certain technology field, let alone "master" this technology from scratch. Therefore, only by participating in a real project can you truly learn a new (technical) environment. And how many people can participate in the development of large-scale native Android, iOS applications and responsive Web client programs at the same time? In my 34 years as a programmer, I have rarely worked in multiple technical fields at the same time. My first job was developing on a Supermini, and later I wrote 6502 assembly on Apple, Pascal on the PC, and the development environment of my two startups was Mac and C. When I worked for other companies (including Apple), I used C, a little C++, Objective-C/WebObjects, and then turned to Java-based web front-end and back-end development (but rarely developed both at the same time). Later, I wrote some JavaScript, did game programming based on C++, and finally, what I do now: Objective-C and iOS. In order to master various new knowledge, I spent several years doing a lot of learning while doing each technical transition in between. If for some reason someone is really proficient in both Android and iOS, or even the Web, then as a true generalist, I think his expected salary would be much higher than most companies are willing to pay: companies actually just want to hire a few "all-around" people at the lowest salary level to save costs. I still can't understand how someone can be an expert in so many things at the same time, and how they can master different technologies, develop applications for different platforms, and keep up with the times. I know some talented people, but I don't remember anyone who can juggle multiple technologies like a juggler and develop applications that reflect their superb skills. Well, there may be some exceptions, but I think most people can't do this. One can master one skill and then try to master another, but in the process, a lot of previous knowledge will inevitably be forgotten. Last year I spent a few months doing nothing, waiting to be fired from my company (all the technology in the company had long been outdated and replaced, and they started selling the whole brand at a discount, so it was obvious that I would be fired sooner or later). I spent a month doing some C++ development, then Node.js, and finally Swift for a while. When I reviewed these skills this year (my new job uses Objective-C), I found that I had forgotten most of the things I learned before. If you don't use it frequently, you will definitely forget it quickly. When I rebuilt my current blog system in PHP, all the languages I had mastered were mixed up in my head. If you've used Objective-C and then used Swift for iOS development, there's at least some overlap. But Android development is more than just another language compared to iOS: you need to master completely different development tools, layout methods, and how to support multiple versions of the operating system and be compatible with more than 24,000 Android devices. On the other hand, it takes a lot of effort just to keep up with the new changes announced at WWDC in June this year, and the sample code released by Apple is not compatible with the latest beta version of Xcode. Even if you can watch the latest videos, read the latest documents and sample code every day without writing code, how can you have the courage to call yourself an expert? In addition to the two completely different and complex mobile development environments of Android and iOS, modern web development has also added a lot of chaos, especially the endless emergence of various JavaScript frameworks. It takes a lot of skills to keep up with their changes. And from the JavaScript programmers I have worked with, they can't even keep up with the changes of one framework (yes, I'm talking about AngularJS). So if you find someone who is good at iOS and Android development, JS desktop/mobile web programming, proficient in modern APIs and compatible with older OS versions, familiar with the pros and cons of various UI design methods, familiar with many browser features and Android device special cases, and can always deliver bug-free products in record time... then you will really make a fortune - by the way, he/she should be willing to work for you at below market price. Back when I started programming, everything was primitive and simple. I only needed to master one language and one operating system, and no frameworks. Even in my two startups, I only needed to master C, understand Macintosh, and occasionally some 68K assembly. Times have changed, but we still have a brain that does not follow Moore's Law and cannot be upgraded. Finally, if you can (really) do Android, iOS and mobile web development at the same time and write a masterpiece, I salute you! Of course, at the same time, I also hope that you can get the triple salary you deserve. |
<<: Cook: This iPhone is the worst I've ever had
>>: 12 open source frameworks to watch for Java, Web, and mobile development in 2018
Today I would like to share with you my understan...
Compiled by Zhou Shuyi Does the "miracle ant...
Q: How can merchants let customers see their mini...
For Chinese home appliances, this is not the wors...
In 2016, my country's automobile production a...
Looking at the development of China's televis...
Okra looks like sheep's horns, also known as ...
On July 1, Wired published an article saying that...
In many people's minds, aerospace technology ...
Advertising guru David Ogilvy once expressed his ...
When traditional luxury brands give enough, there...
Nowadays, marketing is basically online marketing...
The speed at which Internet celebrities are repla...
"When you wear a silver bracelet and it turn...