I can't emphasize enough how important it is to get out of your comfort zone to learn and try how other people in your tech team day to day coding looks and feels like
Coming from an iOS background and having my main programming language to be Swift, Learning Vapor
was fun at some time but it was also hard, frustrating, and seemed a bit useless at a time, but here is what I learned...
- what it is like to code a backend RESTful API which clients apps like Web, Android, and iOS can talk to and display simple data
- how environments are setup and specialized for Testing, Staging, and Production
- Increase my knowledge in terms of Functional Programming
- Think differently in terms of error handling and adopt the term
throws
more into my function to add more readability and better sense in complex logic that can result in errors - Gain extra knowledge in testing and learning how to mock requests incoming from client apps to ensure that you write code that works and make sure that it's optimized
- learn and read more about Architecture and design patterns that Backends usually worry about when making decisions that stir the codebase and how the project will scale, in return it gave me some valuable insights on more patterns to follow and how to utilize them in iOS
- learned more about database
Learning Backend using Swift was such a great experience to have, not only that it added more to my knowledge but also it opened my eyes to many opportunities that can be done through Vapor and Backend, for instance, in Backend you are not constrained as much as you are in iOS
You can build stuff from scratch that can do almost anything! You can build an appβs server logic and integrate Stripeβs services through it, and then your Clients apps can consume these services through APIs Like building a service-based app or maybe an eCommerce app
So through this 1-Month learning experience, I came up with this conclusion which is
Learning new stuff is one thing, specializing is another.
Conclusion
Like learning new human languages, you don't just learn syntax or how letters are written or pronounced, you learn the culture and new ways to think and expand your knowledge, so when you face a problem in iOS, and you know more than iOS, you have better Points of view and have more knowledge to help you come up with a solution better and faster than someone who only knows iOS