In my early 20's I went on my first ever health kick as my junk food diet was starting to take its toll. I needed to start making food as opposed to just heating it up or dialling for it.
In restaurants I'd seen "Warm chicken salad" on the menu. I'd never ordered it. But I thought it sounded pretty healthy and pretty easy to make, so one weekend I decided to make myself one.
I bought some cooked chicken. I bought some salad. I put them together on a plate.
I put the plate in the microwave.
Well ... it's supposed to be warm right? Yes and no. The chicken is supposed to be warm.
I don't know if you've ever microwaved salad, but ... don't. Just don't.
Knowing the ingredients isn't enough
You see, I had the right ingredients, but didn't know what to do with them, or how to put them together. I knew what each of the parts of the meal were, but not what to do with them.
And this is why full stack development is like warm chicken salad. Knowing what all of the pieces are is just one part of the battle. The real marker of success is in knowing how to put the pieces together.
As well as knowing which technologies to use, you really need to know how to combine them to make something truly spectacular and avoid the horrible feeling of your application turning out like warm, limp lettuce.
In terms of development this rings true at the architecture level, and all the way down to the detailed code level.
Some things to think about when architecting a full stack application are:
- What will work well together, what won't.
- If two things can perform the same function, which will do it better in this scenario (it may be a matter of taste).
- How do they talk to each other?
- Do they complement each other?
So, in essence, just learning the individual technologies by themselves isn't enough. To break through, you really should be learning how to put the pieces together.