My name is Florian Kempenich and as you might have guessed from the content of this website, I am a Software Engineer.
Like quite some people I never really studied computer science at the university. I decided to start learning software engineering by myself in January 2015. Having some basic knowledge about Java I decided to go the fun route of Android programming. And for a while, it was going quite well. I even got a job, a great job with great colleagues.
But… what I did study at college was Telecommunications and Network architectures. What is fascinating about Networks and Protocols is how they are so well structured. They are highly modular, they set-up almost auto-magically in some environment (think about your local network) and there's an amazing separation of concerns and encapsulation.
If you have no idea what I'm talking about, you can start with the OSI model for a quick introduction.
Being fascinated by network architectures, I was expecting to find the same kind of principles in software engineering. And yet what I would find over and over were highly coupled pieces of software with no real structure, mazes where the debugger was your only compass.
There had to be another way!
Back in January of 2016, I started researching, trying to figure out whether I was an idealist or simply lacking the experience required to navigate this new universe: "There had to be another way!". And soon enough a way forward was found and a whole new world opened to me. The world of Software Crafting.
It started when I discovered the work of Kent Beck, Uncle Bob, Martin Fowler, Michael Feathers, Andy Hunt & David Thomas, Eric Evans, and many others. From that point forward, looking for resources online became easier and easier. Because now that I knew exactly what I was looking for, it was effortless to find.
Shortly after, I found out about meetups on Software Crafting happening in my own city, Berlin at the time. Not without apprehension, I went to my first event... only to be overwhelmed by how everybody was not only welcoming but also incredibly helpful.
Years later, I went to my first SoCraTes. I never saw the point of going to developer conferences, none of it really appealed to me. That is until I discovered SoCraTes. To be fair, it is maybe not just the SoCraTes conferences that are extraordinary, it probably extends to the larger spectrum of Unconferences as well. Regardless, SoCraTes, and maybe other Unconferences, due to their special format attract a special kind of people: People willing to share their experiences and learn from other's. And that is truly amazing.
My first SoCraTes was also the moment I became fully aware of the International Software Craft Community. As I am writing this, we are now in 2019. 3 years have passed and a lot happened. The journey is never over but when it started, I was alone, isolated... and now I know where to meet fascinating people to communicate with, pretty much anywhere in the world. Finding out that there are so many passionate people all around the globe has made me happier than ever to be doing this profession and to be a part of this Community.
Along the way, I learned to become a Professional Beginner and this blog is my way of sharing what I am discovering along the way, hoping that I will help others as others helped me.
Being a Professional Beginner is all about being comfortable with the vulnerability associated with... not knowing. By embracing the vulnerability instead of rejecting it, it allows us to be more honest and clear-minded on what these unknowns, that sometimes terrify us, really are. Then, it is all about moving forward, learn what there is to learn, and... repeat.
Often it comes in the form of asking questions, even those to which it feels we "should" know the answer. Asking questions, but also not having too many expectations on the response. Ideally none, realistically... some. While the name doesn't originate from there, it is very similar in form and meaning to the "Beginner's Mind" of Zen Buddhism.
From this practice, a couple of truth emerged:
- Everything is complex before it becomes simple
- Nothing needs to remain complex
- The only requirement is the willingness to explore
For me, being a Professional Beginner isn't only a way to approach software, it is an entire way of life.
My name is Florian Kempenich and I am the Professional Beginner.
— The Professional Beginner