

Ask HN: Becoming T-shaped - gnikflow

I&#x27;m 6 years into my software engineer career (first 3 as a consultant and the next 3 at a startup). From that experience, I can basically take any idea (or startup) from day 1 to around year 3. I can: register the (sub)domains, setup email, setup all servers on almost any provider (aws, rackspace, linode, digitalocean), setup git on github&#x2F;bitbucket and manage deploys&#x2F;versioning and continuous integration with jenkins, manage bugs and teams in jira across multiple projects, take an app from nothing in most languages (java&#x2F;dropwizard, groovy&#x2F;grails, ruby&#x2F;rails&#x2F;sinatra, node&#x2F;express) to an app&#x2F;api that meets almost all business requirements, write data heavy frontends for admin panels (backbone, angular, react more recently), setup and administer databases (postgres, mysql, elasticsearch), setup and implement caching strategies in redis, and setup queues&#x2F;background jobs.<p>Despite feeling confident about my experience, I feel like it would be easier to interview right now if I had just stuck to java for the past 6 years and practiced algos&#x2F;data structures slowly over that time period. Now that I&#x27;m more mature and I&#x27;ve seen the landscape, I want to do two things:
1) Gain a deep understanding of a single language&#x2F;ecosystem. 
2) Get deep expertise in a particular domain. Things that innately interest me include graph problems (vehicle routing), distributed computing (things like kafka), and machine learning. I really want to dig deep and get good at one of these longer term.<p>Beyond personal interest in these domains, I want to be in a better career position in 4-5 years, so perceived future demand for the skills would weigh in to my decision as well. Any advice on any of this would be greatly appreciated!
======
JSeymourATL
> I want to be in a better career position in 4-5 years...

It's impossible to know what the tech landscape will be like in 5 years. It's
also very likely your indivual career aspirations may evolve and change.

But if you're trying to make yourself more marketable in the long run-- build-
up needed skills that won't change. Tech leadership desparately needs
individuals with good people skills. Study Psychology, Business Management,
and take a Dale Carnegie course. The ability to sell ideas is also a skill
always in demand. Read up on marketing by Seth Godin.

Relative to what's emerging in tech-- an interesting benchmark to note, this
2012 survey by
Forrester>[http://blogs.forrester.com/brian_hopkins/13-02-07-forresters...](http://blogs.forrester.com/brian_hopkins/13-02-07-forresters_top_15_emerging_technologies_to_watch_now_to_2018)

------
mindcrime
I think the biggest thing is that you grok the idea of being "t-shaped" and
are taking the initiative to do something. Now, the hardest part is - I think
- deciding what to make the vertical bar of your "T". It can probably be
almost anything, but some things are going to be more valuable from a career
standpoint than others. I chose "java" for that about 2000, after having been
focused on C++ for a few years before that. That decision turned out well, but
I feel like Java has largely run it's course now. I mean, it'll still be
around for a while, but it's not "sexy" anymore.

So, what would I make the new "vertical bar" of my own "T"? I'm leaning
towards two somewhat parallel tracks: And both of these involve things that
were on my "horizontal bar" going back sometime anyway, it's just time to
start emphasizing them more. One, is Semantic Web / Artificial Intelligence /
Cognitive Computing stuff. And related, but not necessarily exactly the same
is Big Data / Machine Learning / Analytics / BI stuff.

I expect skills in those areas are going to be valuable for some time to come.
I started digging into the SemWeb stuff several years ago, actually, but I
wish now that I'd started investing more into machine learning a few years
earlier.

As far as how to do that? Well, read and experiment and build sample projects
for yourself... the same things you'd do to learn any new skill. There are a
number of good books and websites out there. I'm reading _Machine Learning for
Hackers_ now, and also playing around with things like Mahout, OpenNLP,
Giraph, and Spark with GraphX and MLib. I'm also looking into learning R, as
it's widely used in that analytics / machine learning world.

~~~
gnikflow
This is great, thanks!

