Last night I was reviewing the skills I've gained since starting my journey as a developer.
I realized something: as a loose estimate, you need a firm grasp of no less than 11 different systems or syntax models just to carry a modern web app from backend to client, from indev to production on your own.
I'm not joking, and that's no small feat.
This is a brief example of a full stack dev's possible code languages and other systems that they would use at some point in the full stack devops cycle.
All 3: HTML5/CSS3/JS
These should be obvious for anyone in web dev.
At least one each of:
- SQL distro - for database
- Java/Python/C# - for serverside logic
- React/Angular/Vue/etc - for frontend
- Bootstrap/Bulma/etc - CSS design
- Apache or other webserver - for hosting
- Node.js - for package management
- Webpack, Browserify, Parcel - build scripts and cross compiling
- LINUX - because I guarantee you will use it at some stage, if not develop all of your work in a Linux distro already.
- probably other stuff I forgot
This list doesn't even touch on details of:
- design principles
- version control
and the deluge of standards and specific knowledge for each. Usually it's required to have at least passing knowledge in those areas as well.
If you were to follow the requirements of that list your list of skills could be something like this:
- Oracle SQL
- Debian (& Bash)
- Adobe XD for design/wireframe
- And maybe a bit of firewall/netsec stuff.
Personally, it's so satisfying to know I can do most of that list already. I'm learning more every day. It's been a long road but compiling that list makes it so much cooler to see my own progress.
It also humbles me considerably. I'm reminded that people who really know their stuff in this field are worth respecting. Because it takes a lot of work to get there.
If you're ever feeling a bit of impostor syndrome, if "I can't do this" keeps creeping into your head...
Stop and think about what you already know. We have to do a lot in this field to be competitive. Not convinced?
That list is an impressive one for anyone else on the planet: imagine people's reaction if you told some random passerby that was curious that you know 10 programming languages and use them all at work. Their heads might explode. I know plenty of great people who are very knowledgeable in their fields that look at me like I'm Hackerman for knowing that the Developer Tools in Chrome even exist.
But for us, that kind of portfolio is just "par for the course." It's easy to get caught up in that viewpoint and forget that we're already specialists in a field that can be really opaque to a lot of people. Remember that. And stay humble about it.
Don't compare. Just improve yourself. Give yourself some credit. List your accomplishments to yourself.
And next time you question if your web developer friend is crazy (or if you are) for doing what we do..
Yes. I'm pretty sure we're all crazy.