Have you had the feeling of launching 10 or 20 rockets all at the same time? Recently, I have felt that I am doing exactly that, with my consulting practice. Some clients want javascript others want PHP and some even want embedded C++ code. How in the world do I suppose to keep up with all the libraries, packages, releases that all of this communities are pushing out in order to stay current? You don’t!
What you don’t?
Nope I just recently found out, that I am no supper human and if I really want to launch one single rocket I have to stay focus on that one single rocket instead of trying to build all this little rockets that never blast off. This can be quite bit of a challenge, because most of the Computer Science classes, that I have taken in the past in College don’t really care about the language, they are more interested in solving the problem on hand with what ever language is chosen by the instructor for example Data Structures, C++ would be great, Graph theory, Python would be a good bet, the list goes on.
I am finding out the hard way that the “real world” does not work like my academic career did. Clients expect code reuse and expect for you to choose the best tool for the job, so how in the world do you choose the correct vertical to focus on (one rocket at a time)? You have to stay focus on one single thing hammer away with what ever the language or technology it is until you feel that your rocket has “Blasted off”, meaning you can fluently move around the framework, community, documentation in order to get your job done.
Why pick one vertical in software development?
This is probably one of the biggest challenges of putting your self in a niche, why? Well because you don’t want to be down the road with a skill that no one wants. But the other side of the coin is if you go and choose one single niche you can put all your efforts and resources to master that one single niche. If you pick one single thing to be an expert at for starters you can charge a premium for that service, lets say you are highly effective in C++ for games in linux. That is valuable and very niche, driving the price up since not allot of people are focusing on that specific part of technology meaning that there are not that many developers. The last part of why choosing a single vertical of software development is well you can get comfortable doing what ever you do driving up productivity and over all happiness.
Currently I am all over the place, I know a bit of ruby, want a bash script coming right up. Don’t forget to add some custom css classes with LESS. As you can see, I am frustrated and a bit disappointed that it took me this long, if I would of sat down and picked a niche I would of been much more valuable in that vertical instead of wasting my time trying to learn useless things that I don’t need to know, I am looking at you Unix Network programming.
How to choose the right vertical of technologies?
Here is where you need to be a bit of hard and choose what is best for you as a developer and what is best for your consulting company. Since I do not have to report to a boss about the decisions that I am taking well there is only one person that I can blame and that is me. As a developer I want to go for the flashy and popular tools Node JS, front end JS and TDD with JS. Part of my clients, want this but the ones that are forking over the big bucks want well your classical languages Java, PHP, Ruby to name a few.
Currently I am willing to take on any type of project that I feel that I can handle, but that is all changing because I have decided to focus on one single vertical of technology. Drum roll……..
Mobile
With the recent events that happened on Google i/o, I can not continue to say that mobile technology comes second to the mighty desktop, so creating this shift as a developer and a company is going to be a challenge. One of those challenges, I have to rethink how I completely do my job, set up the right framework in order for my applications that I deliver to my clients are successful an most importantly only work on mobile technology. One of the other factors that came into play on why I picked to go mobile, is that clients tend to be well more impressed , if you can show off what you have done in a mobile device. I believe this comes because they can instantly relate in having a mobile device of their own.
Now that I have chosen to go with a specific niche mobile, the language wars come right into play. You have to do IOS and Android at no exception along with many different types of languages to get the job done. For me mobile is still a large market and I really need to drill down and choose one specific tool so I can really focus, and I could go IOS and learn swift and start creating mobile apps that way or I can go C# and kill two birds with one stone to create android and IOS apps all at once. But no I am really drilling deep here, and I have chosen to only work with Java and Android.
Can you feel it? The real power is about to kick in, since I put my self in this niche now the only thing that I have to worry about is mobile applications in java. Now I know for a fact that mobile applications are not black and white or java is all you do. No for a fact you can setup handlers to jump back and forward with JS and Java in your mobile application. But those exceptions is where all my knowledge about everything else comes into play.
How to stay committed to a vertical?
It’s going to be extremely difficult to stay and your vertical, and java with it’s jars does tend to get a bit boring after a while. So how do you expect me to stay committed? You just do it, at what ever cost!
I always had a passion for the field of STEM (Science, Technology, Engineering, and Math) and I knew I wanted to do something to make a difference in the world. I just didn’t know where to start. I was an immigrant in a new country, grew up in a tough environment, and wasn’t sure how… Read More