I was hanging out with one of my good friends who happens to be a fellow developer. He tends to specialize in the frontend development, but he’s always kept his eyes on becoming that mythical full stack developer.
We compliment each other well, I helped him with his first API call with Node’s fetch tool. And he helped me figure out what the heck was going on with my broken “badges” on my personal blog. Just when I think I understand the display
CSS property, it kicks me in the butt once again.
But I digress. He kept using this word “flailing” to describe how he felt trying to learnwhat to learn and how to stick with it. He could follow tutorials for specific frameworks, but the process didn’t click.
How do make that step from “Hello World” to building custom applications?
It was years ago now, but it’s a feeling I remember well.
Back in the day, I couldn’t really decide what path to take. Should I start with the basics like HTML & CSS and hopefully that leads to custom backends? Should I just use Wordpress to hack my way around? Should I start with a full fledged framework? If so, which one?
Just trying something is something
Like my friend, I switched between paths constantly. One day I would be trying to build a web scraper with Python and BeautifulSoup. The next month I would be trying to host my own web server on my personal desktop. And then I would try to build a XBMC powered Raspberry Pi client to talk to a Plex server.
None of these projects were particularly related, and I felt like I was just following guides and modifying someone else’s projects in minor ways.
I didn’t feel like I was learning. But the truth is I was, just not the rate I expected.
Modern software is built on so many abstractions, it’s not correct to think of your learning as a linear journey
Just trying a simple note taking app tutorial in Vue.js or React.js will teach you about frontend engineering. Following the same tutorial in a traditional backend framework like Ruby on Rails, Django, Node.js with Handlebars (templating engine) or Laravel is going to teach you about handling GET
vs POST
requests.
Your learning is going to be disjointed. The feeling of flailing is absolutely normal.
It’s absolutely absurd to to think you’ll remember the syntax and every little command for each language/framework or component. But what you are gaining are fundamentals.
You’re not climbing a mountain, you’re building a web
What I wish someone told me when I felt a little lost and gave up my technology learning hobby for weeks at a time was that I wasn’t wasting my time by trying out new unrelated things. I was building a web of knowledge.
Even the tutorials I didn’t completely finish taught me little bits. The important thing is to have fun with it and don’t pressure yourself into building a huge complex project in your mind. I’ve been doing this professionally for over half a decade and I’m still learning “basics” in certain areas.
In the early days, you’re just learning what HTTP is, how a database works, how to connect to it, how to display information on a web brower. Little projects will help you build your knowledge about each part of the web, sometimes in isolation. But one day the pieces will come together.
In my experience, I relate my software engineering understanding to a rocket ship. There was a period I distinctly remember “flailing” and what felt like fighting gravity.
I wasn’t sure if I was ever going to learn enough to be “elite” coder, I also didn’t even know if I was taking the right paths. But after taking the time to finish a full book on a full fledged MVC framework and after all those years of tinkering, I finally understood the basics of the stack.
Feeling inadequate in your technical l knowledge is (probably) normal
Hot take: this feeling might subside when you have those ephanies when you feel like you have super powers and can build anything your imagination comes up with. But the world keeps turning, technologies change, and you can always take it a level deeper if you so choose.
I think imposter syndrome is a good thing. I keeps you hungry to learn the next thing. If you were supremely confident and uninterested in learning the next thing, you would soon find yourself out of date with the times.
As the saying goes: hard work beats talent when talent fails to work hard.
My final words are - don’t stress, just follow your curiousity and it will take you to amazing places. If it feels like a challenge, then it’s probably a path worth pursing.