(Original publication in Spanish at Softtek's Latam Digital blog)
Ninjas, or Shinobi (in Japanese) were a military unit in Japan trained in non-traditional forms of warfare. Today, this ancient term is applied to a type of custom software developer: the Ninja Developer.
To best explain what this means, we will:
A technology stack is a grouping of technologies that work together to solve a certain set of problems. It is normally composed of programming languages and frameworks for development within different application layers, such as front-end (client side), back-end (server side), database, and operating system.
Here are some examples of technology stacks:
A full stack developer is intimately familiar with one known technology stack and can program within any of its layers using the technologies native to that stack. To learn more about the profile of the full stack developer, read this post I wrote on the topic.
Ninja Developers don’t limit themselves to just one programming language or one technology stack; they are ‘developer polyglots.’
The Ninja is an expert in a particular programming language, but is comfortable using any other language. They know how to navigate the various stacks in order to solve whatever technical challenge they come across.
And as far as being polyglots, Ninja Developers can effectively handle languages as diverse as Lisp, Haskell, Scala or Clojure, and have mastered static languages such as JAVA, Groovy and C++.
In terms of persistent data, Ninja Developers can easily navigate relational databases such as NO-SQL (MongoDB, Cassandra, New SQL, etc). And if that weren’t enough, they have the soundness of judgment to choose the best technology for the problem at hand.
Organizations seek the most talented professionals for the lowest possible salary, but the type of knowledge a Ninja Developer possesses comes with a steep price tag. That’s because they’re essentially full stack developers who can work within various technology stacks – a skillset that is in increasing demand and very well-compensated!
Though the Ninja Developer has broad knowledge rather than deep expertise in one or two areas, gaining knowledge across the aforementioned skill-sets takes years devotion. There is no such thing as a Junior or Semi-Senior Ninja Developer; you either are one, or you aren’t… yet.
Today the average computer engineering or MIS student graduates without the knowledge required to reach this level. To become a Ninja Developer, a minimum of 4 years of college and 5-10 years of on-the-job practice is a start.
If you’re a developer and you still have a ways to go before becoming a Ninja Developer, don’t worry, just get to work!
You might know ‘everything’ today, but that knowledge will become obsolete in two years. In the software profession you’ve got to keep sharpening your skills. You must become a perpetual learner.
I look forward to hearing your opinion.
Learn about Softtek's Development Services and client success cases here.