Specialist or Full Stack generalist

Published: · Last updated:

Estimated Reading Time: 6 minutes

As a full stack developer I’ve had critiques about how I can’t be good enough at one thing if I do a lot of things. I totally agree to this and I’m not claiming to be a master of everything I do. Some will rather describe it as:

Jack of all trades and master of none

do I think of myself as this? No! From a reasonable point of view, I’m not trying to jump into VFX/FUI even though [I may have an obsession for them]({% post_url 2014-08-21-motion-graphics-obsession %}) but instead, I’m sticking to web development even as I know my programming skills can be of use in other fields and I’m very much willing to explore it for research purposes in those fields but professionally, I’ve chosen to be a web developer.

When people ask questions like:

What programming language do you write?

I find it hard to answer for two major reasons being [I have once mentioned that I don’t believe there is one way to solving all problems]({post_url 2014-07-23-im-an-x-programmer}) and secondly I always think you may need to get a pen to take them down as I mention. I’ve had to feed and do a lot for myself by using the skills I’ve acquired and that required being independent. I took design jobs when they came, I took back-end development jobs, I took front-end development jobs. Doing all of this made me what I am today and that’s a guy that uses Photoshop, Gimp, Illustrator, Inkscape and writes SVG, CSS3 (SCSS), JavaScript, Ruby, Python, PHP, and C. Working with these languages have made me work on platforms like various Amazon Services and made me use several APIs. I couldn’t help this because it was what I needed and what I had to do.

From earlier, I said I agree that I’m not good enough at all of these things but disagree that I’m a master of none. While I took majorly PHP projects and used frameworks that exposed me to proper use of Object-Oriented PHP, I kept realizing there was more to learn each time. I was a STUPID PHP programmer that was ready to learn to do things the right way. I read blog posts and skimmed through questions and answers on the PHP IRC channel. I was gradually becoming like one of the PHP specialists. I’d been doing a lot of front-end in-between and writing CSS code that I didn’t totally understand. I also followed Zed Shaw closely on learning python. Inadvertently, following the paths of a non-specialist like Zed I was becoming more like him.

Wait! That doesn’t make me Full-stack

I decided to take some more projects where I could put a lot more focus on front-end development and then I learnt more about the Syntax of CSS and JavaScript, patterns, style guides. All of these put me in the direction of writing readable and reusable front-end code which is basically what it takes to be a front-end developer. However, I didn’t stop there. I keep participating in the community to know everything there is to know on front-end development from trying frameworks to experimenting with bleeding edge technologies. I had leveled up to write front-end code way better than some pronounced “front-end developers” and I relished the mathematical part of it more.

While still doing most of my projects in PHP, I was working on some python projects that were either CLI or for desktops majorly because my orientation on Python didn’t make me think of it as a thing for the web. Trying out Django and Flask were just experimental and I didn’t use them for any real-life projects. After reading on ruby-on-rails I thought Ruby sounded like just what I needed to be the developer I imagine myself to be and it turned out I wasn’t wrong. After reading docs and various articles I dived into a client’s project using ruby-on-rails and I was lucky the client didn’t care to know my past experience with the technologies I was using. The project turned out successful and through it I’d learned a lot in Ruby and Rails but not all the good habits of Ruby-on-Rails developers. Test-Driven Development, Behavior-Driven Development, and Agile development were all alien to me and I gradually understood these things doing more project because I wanted to know them and roll with some of the best in the industry.

From my story, obviously it all just didn’t come once and the fact that I had time to spend with each technology makes me able to say I might have mastered some of it.

A seemingly interesting article I found tackles the use of the word full-stack but the author made an interesting point by saying some of the so-called full-stack developers just have an ability to learn new things which is an entirely different thing. He further mentioned that such people know what is required on various layers to achieve given tasks even if they do not understand the whole of those layers. If I’m to go through the tests as he had mentioned in the article, I will have some branches where I’ll almost be hitting 100 and some others at 70.

I use Photoshop and I google my way through it most times but I get stuff done anyway. That makes me less of a designer on that end but I’m still full-stack in many other ways. If I’ll get a 25 on Photoshop, 75 on JavaScript, 80 on Ruby, and 95 on CSS I think that is reasonable enough.

The risk of hiring full stack

I’ve made it sound cool to be a full stack developer from the start but if I was a recruiter I will hire more specialists than full-stack developers and for that reason I pose to recruiters like I’m a specialist. My reason for this is because I’ve been in a position where I had to work closely with HR to see how the sharp-mouthed so-called full-stack developers failed at little tests where the specialists knew their thing and did it right.

Why I think you should hire a full stack developer

Being a freelance developer that mostly works solely I structure my database and back-end based on the design I have and also vice versa. While this may be the same for teams with different specialists, the edge here is I can make comparisons right in my head without having an actual structure. This helps for proper prototyping. Someone described it as having a bird eye to see through the whole of the forest.

The chances of getting a good full-stack developer are slim but if you find an original full-stack developer they’ll be of great use especially to small companies and start-ups.

0 twitter likes