Jack of all trades, master of none
"Jack of all trades, master of none" is a figure of speech used in reference to a generalist: a person that is competent with many skills but is not outstanding in any particular one. (Wikipedia)
It's a very easy to become this. When I was 15 I got my first job. I worked at a grocery store. During that time I became a true master of nearly every department. I was doing the closing work, the produce department, the bakery department, checking, stocking, inventory management, unloading truck, etc. No big deal really. Anyone that works at a grocery store for a couple years gets to that point. After working there, I started working at a pharmacy for a while. Then I started working at a boat manufacturing facility before going to college. While at college I started working at a meat locker. These last two jobs I went in knowing they were temporary. I also took on a temporary position as a construction worker.Then I started working at a security development company. I had to stop because of all the insecurities I found running around that wouldn't be acknowledged. Then I went onto working as on site technical support. Part of that company got sold off and I became an employee of another company. This is another company that my personal beliefs conflicted with too much and lasted only a month. After that I took a month off and started working at Hy-Vee. This was an excellent place to work except that a previous injury took it's toll. After a back surgery and too many late nights my back couldn't take it anymore. Then I decided to focus on school. I did this until someone decided they thought I'd be the perfect administrator for them. That's when the two of us and one of his friends started Kalliki Software. At 22 years old I'm now part owner of a business that has two other employees.
The fun thing is that what I stated is only my work history. I also did a lot of open source work. I've played with the Linux kernel, Drupal development, Ubuntu packaging, server development, security development, FOSS programming in many languages, bug management, bug patching, user support, around a few thousand or so other tasks.
You'd think I'd be a pretty well rounded person. The truth is that not specializing in one thing really hurts you overall. It's great to understand a little tiny bit of everything. That's true. Understanding a little bit of everything helps you understand how things fit in together. For example, you want to know how an accountant interacts with their software so you can know what they expect when you're designing a new piece of software to replace their current system. It's also true that working in too many different areas will prevent you from ever becoming a master of one.
This is the dilemma I face as a CTO today. I've worked in so many different areas that I never let myself specialize in the one industry I really cared about. I haven't been able to master any general tasks I love doing. I've progressed in these areas but have yet to feel I've really mastered any of it. It's definitely an issue many face. As technology grows, our need to know everything and still specialize grows more. Being a database administrator means you work with databases. That should be all you ever do. In real life they're expected to also know how to make other programming tools interact with the database. They're expected to fix their neighbors computer when they break it.
As an administrator I'm expected to run servers, no the best OS to use in what situation, how to setup a mail server, how to setup virtualization, setup staging environments, built testing servers for developers, work on scripts for a few hundred tasks, make sure things never ever go down. As a FOSS advocate I'm expected to work on many different things such as what's listed above. As a CTO I'm expected to understand hiring processes, financial management, and have *hack* interpersonal skills. I'm without a doubt one of only a very large number of people fighting this.
We need to know a little about everything; we also need to make sure we pick one thing to be a true master at and a couple other things to become very proficient with. Is this going to happen? I really doubt it.
The solution: I have none.
Give customers what they want
Your focus must be "Giving customers what they want".
When the product is right, and the price is right, and the customer service is right, any other floors in your business from the customer's perspective will be overlooked.
For other stuff you just need to be good enough, and ask for help from friends/associates when you're struggling.
Just don't give away everything.
Regards
Richard Fletcher
Capitalism Promotes Specialist
There are several problems with specialization. The biggest problem for the specialist is new technologies that obsolete the specialist. You mentioned someone should specialize in databases. With DB4O, there is no need to specialize in databases because a general programmer can pick it up quickly and there is no need for complex administration that is required for relational databases like Oracle.
What happens to the specialist when they are obsoleted? They lose their job. I've spoken with several "old" timers who recently have been laid off who specialized in mainframes. They now have to retool which is going to be impossible to compete with the talent that already exist in which ever new technology they choose to attempt to specialize in.
The next biggest problem with specialist is that they are incapable of understanding the entire problem. This significantly limits their ability to solve the problem. This is very prevalent throughout the society. A very good instance of this is OBs. OBs focus on testing pregnant women to find problems and only then provide solutions (which in my opinion are crap and often times leads the women to getting a C-section [which makes them more money]). OBs are incapable of looking at the entire health and providing preventative solutions because they were trained to only look at acute problems. On the other hand, a naturalpathic doctor is trained to be a generalist who provides a holistic approach at maintaining a healthy pregnant women which promotes healthy babies.
Capitalism promotes specialist because in a capitalist society, its every man for themselves. Its far better for the "specialist" if the specialist customer's are ignorant of what the specialist does. This way the specialist can charge a premium for their service and not have to provide the best (OBs are a very good case here because most Americans are very ignorant of the birth process and just go along with whatever the OB suggests).
I think the entire world would be better of if everyone were generalist AND if money and capitalism were abolished.
Dataflexer
I faced this dilemma in my career, I decided to go out on my own and start my own company. I'm speaking of a time when there was less technology around. As a small business owner I had to repair computers, neighbor's and the like), i had to install networks, and networked devices, at that time Novell was the mainstay network software. My background education was software and software design with the focus on data-bases, the product Ii used was Dataflex. It has it's own embedded database and was, at that time, the only multi-user software. I digress, well, during that time I had to know a 'bit of everything', hardware, printers and printer setup, networking, internet access, cabling the network, installing network software, MS Office, etc.
Well it got to a point that I could not keep up with the advance of technology. Being a one man business this was impossible. I had to make a decision, hardware or software? With hardware I would have to still know and learn far too much, with software I could write software and build database systems for whomever. I chose software. But in the country where I lived, this was not all that easy, to specialize in software alone. Also, since the software I was using, was not that well known there and I was in constant debates as to "which software was the best, and since there was a plethora o dbase developers (it was the easiest to learn, you see) and every Joe, Bob and his/her uncle could develop some sort of ad-hoc database.
Next, came my next big decision, do I stay in the country or do I leave? Purely for survival. I decided to emigrate to the USA, where this software had a stronger foot hold and also, I the USA one can specialize in one field of work.
So this is what I did, I emigrated and I now only do one thing, that I know well, and if I need hardware or network stuff done, someone else can do it. I have ben doing this for the past 15 years and am in a better place know, less stress on in my life, and I make a comfortable living. And during this time the product I use to develop in has become a powerful tool, with an excellent studio, that is fully object-oriented and I can build GUI's that have full access to any database on the market today, be it MS-SQL, Oracle, DB2, MySQL, PostgreSQL etc.
Remember I'm not saying forget about anything else and only concentrate on one thing, I'm saying learn one thing and do it well. I have many "other" interests, of which Ubuntu is one, with Python/Django the other, together with Open Software and all that entails. My passion is my database work (which pays my bills) and then I have these other outlets that I am learning.
So, what have I learned from all of this?
1. Follow your passion, what you love doing, day to day to day. I learned from a mentor, early on in life, he said " morning you get up and you say to yourself, shit I have to go to work" that day start looking for another job" You have to love what you are doing, and no matter what problem come by the way, it is solvable, and one needs to know the passion is there to solve it.
2. Do a job function that one is very competent at.
3. learn that field of work very well, and become an expert at it.
4. attend user-groups and mix/talk with other developers, remember being an island to oneself never works.
5. Remember there is always someone one can learn from, so forget the ego.
Hendrik van Niekerk
Dataflex developer and this is my passion.
Not the whole citation
Jack of all trades, master of none, but oftimes better than a master of one.
The saying when put in context makes a lot more sense, no an all rounder will never be able to rival with a specialist in any one domain, but his very wide spectrum gives him the incite to tackle the whole problem and not just look at it from one very narrow point of view.
As an example, all management should be all rounders, they employ the specialists for their various competences, but at the end of the day, it's the managers who have to assemble the pieces.
I'm an all rounder (sysadmin/programmer), and where I've worked it's what's made the difference: being able to look at the entire system, from the hardware up to the web-service that's allowed me to make a difference.
OTOH: good luck getting a job at a corporation with such a profile.
Depends on your goals
I don't see being a "Jack" as a weakness, I see it as a strength, but the truth of that view depends on one's goals. If you want to become a "somebody" in a particular field and/or get to high levels within a very large organization, you probably do need to be a specialist. If you want to be independent, perhaps serve local small business, or have a technical position in most businesses up to about 100 employees, being a Jack is much more valuable.
I sometimes lament the inability to focus in one area of my career and get really good at it, but only because I would enjoy having a really deep understanding of certain things. Career-wise, being a Jack has served me well.
Add new comment