Sure things, maybes, and longshots
Back in November, in an article promoting the Tampa Bay Full Stack Meetup, I wrote about the concept of balancing my skills in the same way some financial people balance their stock portfolio: 70 percent “sure thing” programming languages and technologies, and 30 percent gambles — 20% “maybes” and 10% “longshots”.
Here’s what I wrote about my portfolio:
- I invest the majority — about 70% — in “sure thing” skills, such as mainstream platforms, programming languages, and technologies. In my case, this is…
- C#,
- JavaScript,
- Kotlin,
- Mobile operating systems, namely Android and iOS,
- Python, and
- Swift.
- I spent about 20% on “maybe” technologies, and one of these is Flutter, which also involves the Dart programming language.
- The remaining 10% of my time on sharpening my skills is spent on longshots. For me, this is blockchain technology.
For the most part, with the notable exception of Flutter and Dart, my portfolio’s been pretty stable for the past few years. I’m probably due for a review.
A 70-30 technology skills map for Tampa Bay techies
Here’s a 70-30 tech skills map, which takes a bunch of technologies that Tampa Bay companies are currently hiring for, and divides them into two categories:
- The 70% category, which consists of things for which local companies are generally hiring for at the moment, and
- the 30% category, which comprises things for which local companies might hire for in the future, or which might qualify you for an interesting remote job.
Here are the languages and technologies represented by the logos in the 70% category, listed in alphabetical order…
- Angular
- AWS
- Azure
- Java
- JavaScript/ECMAScript
- .NET/.NET Core
- Node.js
- PHP
- React / React Native
- Ruby on Rails
- SQL
- Vue.js
…and here are the languages and technologies represented by the logos in the 30% category, listed in alphabetical order, with some notes for each:
- Artificial intelligence / machine learning / whatever else you want to call it: The buzzwords of the moment, and the answer to the question “What if we made algorithms that came up with algorithms?”
- Assembly language and C: Both appear to be making a comeback in the age of IoT devices, where you’re trying to squeeze big performance out of tiny systems.
- Augmented reality / virtual reality / glasses: Once upon a time, “multimedia” was a specialized subject, now it’s just part of everyday computer interfaces. AR, VR, and glasses may eventually be like this.
- Dart / Flutter: Dart is an object-oriented, class-based, garbage-collected language with C-style syntax, and Flutter is a cross-platform mobile app development framework.
- Elixir / Phoenix: Elixir is a functional, concurrent, general-purpose programming language that run on the Erlang virtual machine, and Phoenix is an Elixir-based web development framework.
- Fuschia: Google’s multi-platform operating system for computing devices of all sizes, from embedded systems, smartphones, tablets, and desktops/laptops.
- Go: A C-like object-oriented language for systems-level programming
- “Internet of Things”: Including small systems like the Arduino and Raspberry Pi.
- Kotlin: An early paper on the language said “Don’t call it ‘Swift for Android’, but that’s pretty much what it is, and that’s not a bad thing. It’s Swift for Android.
- Python: First eclipsed by Perl in the ’90s and then Ruby in the ’00s, it’s now coming into its own thanks to its math, scientific, and data science libraries and the rise of machine learning, I’m glad to see Python finally being recognized. Out of all the languages in this category, this is the only one I’ve ever been paid to code in.
- R: A language and environment for statistics. Like Python, it’s become popular because of its applicability to data science and machine learning.
- Rust: A multiple-paradigm programming language with an emphasis on concurrency. The consistent winner of Stack Overflow’s “Most Loved Programming Language” for the past four years.
- Scala: The answer to the question “What if Java didn’t suck and had better support for functional programming?”
- Serverless tech: A refinement of cloud computing that lets you run applications and services on the cloud without thinking about the servers they run on. Amazon’s AWS Lambda, Google’s Cloud Functions, and Microsoft’s Azure Functions are examples of serverless offerings.
- Smart watches: These are a fantastic platform for what I can “nano-tasks”: little tasks that take ten seconds or less.
- Swift: Objective-C was getting long in the tooth, so Apple created Swift. It’s a pretty nice language, and pretty much necessary if you’re developing for anything Apple.
This is by no means a complete list — think of it as a starter, and I’m writing it only from a developer point of view.
After viewing this list, you may be asking yourself “So which do I choose?” That’s what I’m doing right now.
Would you like to meet up to discuss your 70/30 plan?
Let me know if you’d like to talk about this at the next Coders, Creatives, and Craft Beer meetup, which I’m looking to schedule for near the end of the month. It’ll still follow the same informal “we’re just here to chat” format, but it might be something to discuss.