Welcome to The Professional Beginner
Thank you for visiting my website. Learn more about who I am, what is being a Professional Beginner all about, and plenty of other information in the following sections.
When looking for information about programming topics I am often confused. There seem to be only one of two extremes to be found. Either the extremely simplified beginner's tutorials. Or the highly technical professional articles. What about learners? People interested in highly technical topics but not having the background information needed to really make sense out of all of this. This website is different. I am not your teacher, I am your best friend trying to explain to you what he understood during the lesson.
- I will not wait to be an expert on a topic, to publish my thoughts
- I believe that nothing needs to be complex
- This blog is opinionated but easy to understand
- The idea is to get the Big Picture first …
- … and focus on the details later
As you might have guessed from the content of this website, I am a Software Engineer.
And 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. And 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 check out the OSI model for a quick introduction.
Back to our main topic, 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 are highly coupled pieces of software with no real structure, some kind of mazes where the debugger is your only compass.
There had to be another way! I started researching and soon enough a whole new world opened to me. The world of Software Craftmanship.
In January 2016 I embarked on a quest to finding a way to fast prototyping web and mobile applications, in a way that would result in modular and maintainable piece of software.
This blog is my way of sharing what I am learning along the way, hoping that I will help others as others helped me.
My name is Florian Kempenich and I am the Professional Beginner.
This website is not about me telling you what's best for you, what you should do, or trying to teach you anything. Read my intro: I am not your typical expert, as a matter of fact, I am not an expert at all.
But why wait to be an expert to participate in knowledge sharing.
With this blog, I want to explore with you professional programming concepts from the beginner's point of view. I want to try and make simple topics that where overwhelming when I first discovered them.
This implies a couple of things. You can read about them in the Manifesto.
Whether you are more on the professional side of things, or the beginner one: you can always get something out of this website. If you are the Professional:
- Share your knowledge
- Comment on misconceptions you could identify
- Participate in Open-Articles to clear out confusion
- Be a master craftsman
If you are the Beginner:
- Use the information to get a clear understanding of the concepts exposed
- Check the additional links to dive deeper into the topic introduced
- Don't hesitate to ask questions
— The Professional Beginner