A curious thing happened during this morning’s dose of coffee & social media (the latter being an important component of my job at Magento, I promise). I read a brief piece on stoicism and then almost immediately was linked to an exchange from Eric S. Raymond to Linus Torvalds in which Mr. Raymond states the following:
…[T]he bill always comes due — the scale of the problems always increases to a point where your native talent alone doesn’t cut it any more.
The combination of these two posts has kind of rocked me to the core, and I want to discuss this openly.
Over the past few months thousands of people have seen me onstage stating, “If you are a skilled Magento 1 developer, much of your knowledge will port forward to Magento 2,” by which I mean that many of the distinct PHP framework and commerce application aspects of M1 are present in M2. Some aspects of M2 are essentially indistinguishable from their M1 implementation (e.g. the ORM), and some differ only in implementation pattern (e.g. route configuration and controller actions). While the existence of numerous code migration tools bears this out, what I was really trying to say was, “Change and modernization are part & parcel of M2, but never fear – you know what you need to know in order to make the transition!”
And yet, despite these calm assurances and my confidence in the Magento 2 code which we’ve crafted, I find myself seized by the same symptoms of unfamiliarity as I did when I expanded the Magento 1 download for the first time 7.5 years ago. The dread of self-doubt, the fear of failure, and the appearance of other’s inherent ability to master the material are once more swirling around me each time I open my editor. In other words, in Magento 1 I feel confident and capable, but in Magento 2 I am a babe in the woods. I have to wonder, is this impostor syndrome, or am I truly playing the part of expert when I have no right to? Am I struggling with something new, or am I an impostor?
I’m no stranger to Impostor Syndrome (IS); I’ve been experiencing it since I started teaching the Magento 1 Fundamentals of Development class 5 years ago. IS is a cognitive process in which one fears appearing to be a fraud by doubting or dismissing one’s abilities and accomplishments. This kind of irrational disconnect is typical of anxiety conditions and fits well with my history of anxiety disorder. The fear I experienced while teaching diminished over time once I accepted how much I knew and didn’t know, and it all but disappeared once I realized that it is okay to not know everything. In fact, for teachers, it’s essential to openly state as much! During this period I began speaking about Magento at PHP conferences, and while IS reared its head again, it wasn’t quite as strong as before, perhaps because my past experience inoculated me against it to a degree. However, in these nascent days of Magento 2, I am experiencing unrelenting symptoms of IS all over again. I want to share this experience honestly & openly with the community, because I think I see others struggling with IS as well – whether they know it or not.
For me, my fear stems from being pulled forward into modern PHP development. Consider all of the “new-to-me” technologies, workflows and tooling which are part of Magento 2 (or which at least complement its use):
- Newer, more SOLID architecture
- “Newer-than-PHP 5.2” language features: namespaces, generators, closures
- Composer (or even the idea of dependency management)
- Test coverage & TDD
- New frontend development approach & tooling (LESS, CSS mixins, Grunt, knockout.js, UI components)
- Code generation
This is not to say that these things are new (far from it). Rather, they are new to me and – I suspect – to many developers who have kept their focus inside the aging box of whichever framework idiom pays the bills.
Unpacking this reality is important, as it creates a logical path for resolving my fear. To that end, I’ll be posting at least bi-weekly about the technologies and workflows in Magento 2 which are new to me. This is mainly an effort to help myself and hopefully many others quickly become uninhibited and effective developers in Magento 2.