This is part 1 of an ongoing series of reflections regarding what I expected going into software development versus what I've discovered. Keep an eye out for future entries!
Misconception #1 - Fluency:
I've been afraid of pursuing development professionally, even as a freelancer, for a long time in part due to that fact that I don't consider myself language-fluent. I've dabbled with and even built working apps in a handful of popular programming lanugages, but my perception was that professional devs spoke the syntax like a mother tongue, and I just never reached that level.
The reality on the job is that I'm a perfectly competent developer without language mastery.
Certainly, language understanding is helpful. Every minute I spend digging in to documentation to clarify syntax is wasted time that could have been spent applying code to a solution. But I think trying to code everything from memory results in poor usage of the language. I find myself learning new tricks by digging into documentation. When I try to solve problems purely by memory, it's easy to fall into clever coding patterns that will hurt not only me but others in the future who might need to maintain my code. Keeping documentation handy, and diving into new commands to help me solve problems, keeps me abreast of the latest language updates and helps me continuously grow as a developer.
I enoy this learning process. I like feeling that growth as I more-frequently recognize common patterns and antipatterns. I find it freeing to be comfortable admitting that I don't know everything, and probably never will, about any language: it creates a fun challenge to learn as much as I possibly can.
The big takeaway for me here is that fluency, or lack thereof, is not a reason to stay out of the programming pond. It's a shit excuse, and I regret that it kept me a hobbyist for so long.