This is just supposed to be a friendly reminder for all new developers and also for all the struggling intermediate and advanced ones – You are in control.
First time browsing through software written in a foreign programming language, seeing different coding styles, tools and IDEs, brachiating from one strange keyword to the next equal-in-meaning-sounding one; it does not matter if you start learning a new language as an experienced developer or a code-newbie, in situations like these everyone (or at least most of us) have this bizarre fear of breaking something.
The humble beginnings within unknown code (or code in general) are most likely the only moments someone could actually catch you sitting straight in your office chair, because what most of us are forgetting for exactly these brief moments or maybe have not fully mentally acknowledged in general yet, and I say it again – You are in control!
So, how does it even come to us doubting our craft? – For me, these three are the all-time coding-blockade-trigger. Enjoy (or rather avoid)!
Getting caught up in fear (aka it is all in your head)
Don’t we all feel some kind of fear, a slightly unpleasant ramble in our stomach, when facing a new challenge? Yes, that is completely normal! But if not supervised by yourself very carefully it can have a massive impact on your overall performance. You get irritated at yourself for getting so caught up in continuing scenarios, scenarios totally baseless in proven fact, and still you are afraid that your first change within the source code will make the whole project fail miserably.
Exactly that is the worst and at the same time the best attitude you can have towards a somewhat “scary” situation, like a new and unfamiliar code base. What really matters in these moments of self-doubt are your actions – What are you going to do about it?
Of course no one wants to look stupid within their first few days or weeks of their new acquired job (maybe even that one dream-job you were applying for thousands of times already and finally got the seat), but what does it help? I am personally way more impressed of people having the guts to ask (even silly questions) than of people instantly understanding every nook and cranny, because – to be completely honest here – are you even real?
Getting caught up in pattern(s)
This point could be seen as the rather extreme opposite to the first one. Instead of not really knowing where to stick your hands in or how to proceed, you somewhat forget about the beauty of seeing software development as a craft. There is not always a pattern for every use case, there does not needs to be an interface on every end whatsoever.
We may forget from time to time that conventions, restrictions, patterns and also best practices are meant to guide and support us, and you can not apply all 23 patterns of the GoF in one class (or at least you should not).
Restricting or hastening yourself (beyond your own good)
Of course – everyone needs to have a healthy work-life-balance, but sometimes it wouldn't hurt (or would it hurt?) to go that extra mile, stay online for just one more hour or sit through this tutorial so you really do understand what you are doing and how this new technology works.
On the other hand, do not spend all your leisure knees deep in work-related content, and if it is just one hour a day playing guitar or going to the gym.
But of course, with technology evolving basically faster than you can think, all in all just as many things stay the same as things change, so try to understand the concepts of most of them because as the Dalai Lama already said - You have to know the rules well, so you can break them effectively.
Software development and everything surrounding it – to me - is a craft. Of course, when comparing it to other “crafty” crafts its actual scope is hard to grasp. Seeing how in carpentry everyone has their own way of defining how a piece of art may be made and is supposed to look, working with the materials they have on hand and getting better and more creative with each try, that is just how creating things work – everything is in your control.