Purgatory of tutorials, todo applications, frameworks, technologies. How to move in the right direction!
I am a developer with 5 years of experience and I know how technologies work, replace each other, grow, and die (hi Google graveyard). I have a huge experience in the switch between different stacks. I worked as a WordPress/Woocommerce developer (little bit Laravel), HTML/CSS developer (6 months), Angular/Typescript developer (1.5 years), and iOS developer (more than 2 years). I always tried to find something which will be interesting for me. And with all this experience I understood only one — tutorials, free courses, todo applications in 5 minutes and new frameworks each month — it is total hell, and you need to run away from this tech purgatory.
Front-end is more suitable for this post, but I don’t know what is happening in frontend’s life right now. (I only know that they have tons of frameworks and the hiring companies need only these technologies. It is ridiculous that one team only needs to React skills, another Vue, or Angular or Svelte, and one employee for example, for 3 years in React can’t get a job in the Angular team. It is just web sites and applications. Everyone can learn another framework in a few weeks, but it doesn’t make sense.
Similar problems exist in mobile development right now. With Hybrid ways in creating mobile apps, that changed mobile development too. Only at this moment, we have a huge bunch of ways to create a mobile application: native iOS on Objective-C and native iOS on Swift, native Android on Java and native Android on Kotlin, Native iOS and Android with shareable Kotlin business logic, Cordova technology, Hybrid Cordova based Ionic, React Native, Nativescript, Xamarin on C#, Kivi on Python, PhoneGap, and Flutter of course. And this is only the most popular. (Actually, I tried to use Ionic, Nativescript, and Flutter). And this is a huge problem. Two years I read about new Ionic, React Native, Flutter, they are all killers of native development. But it is not true. It is just another technology. All around me always try to learn something new: new frameworks, a new library, a new language and etc, but I stopped to do this for a few reasons. All tutorials teach you how to do something simple, and it is cool, but purely useless for every day reading. Let me clarify. It is okay to read some post or watch a video about a topic that actually need for you in your job or per project. But I think that it is totally useless to read posts about that every day. For example, I didn’t have a Firebase in my projects, and maybe i will never work with this technology, but — I have tons of tutorials, todo applications, and even requirements in vacancies around me. But why? If you are a strong developer with transferable skills, that you can learn any technology in a few days. And this makes me sad.
You just care that your native Swift iOS will die, and I — React/Flutter/Ionic/Xamarin developer will replace you!
I don’t think so! Don’t get me wrong. I think that Flutter (the best in a non-traditional way in hybrid development) is a cool technology. But, even Objective-C in the game right now. It happens because of this industry — it is a business. Flutter can’t be the only one right way to write applications. Once written application on Objective-C, for example, can’t be rewritten every 2 years, because someone released a new hybrid killer of native development, and we are all need to rewrite all our apps. That’s why all of this technologies just has their place, and can’t change anything. Some of them will disappear, another will be there, and that’s all.
I don’t care about native iOS development on Swift. I like it so much because Swift is a modern flexible and strong type language. But if it will die tomorrow — I will just switch to another stack. I do this three times and can do it again :-). But a big part of developers live in fear and always try to find some long-life framework, platform stack, etc. That’s why they are always trying to know about all new frameworks and libraries. As for me, it is useless. You can create a todo application on any framework, but it is still a todo application…
So what do you suggest?
Transferable skills of course. Only transferable skills can unchain you. Big companies don’t need your React Native skills. They need your architecture knowledge, algorithms, data structure, modularity skill, OOP (object-oriented programming), and OOD (object-oriented design), TDD (test-driven development) knowledge, design patterns, soft skills, math, terminal, GIT, SQL knowledge. All skills which don’t related to a specific framework, library, or platform. With these skills you can easily learn any stack which you want and to the opposite — you will be an average developer locked to specific stack without cool opportunities. You need to decide, which type of developer do you want to be. Of course, I am not good enough on these topics, but I am moving in this direction.
HackerRank — here you can get a knowledge in Algorithms, Data Structures, Math, SQL
Design Patterns — great services with books and live examples on most of modern languages
EssentialDeveloper — Clean Code, Architecture, Transferable Skills for iOS Developers. They have podcasts, youtube channel, courses. Great guys!