I wanted to share some advice my far-more-experienced computer science friend had to offer me in regards to approaching problem-solving programmatically. Hopefully you find it just as helpful as I did!
As a beginner developer faced with introductory problems that need to be solved, you may find yourself thinking immediately how you could implement your code to come up with a solution. For example, in the preparation modules for my upcoming Bootcamp, I needed to solve the classic "fizzbuzz" problem. If you don't know about it, you can find an example of it here.
Your initial reaction might be to think about how you could implement a function that meets all of the requirements. Do I use what I've learned about loops? I know there are scenarios here...how do I implement the conditionals into my code?
While these are valid questions you may ask yourself, here is the important takeaway: take some time to think about the problem without coding in mind. Reflect on the broader implications of the problem instead of diving right into coding away a solution. Think of it as developing a plan before you take action. Doing so will help you establish a framework for attacking the problem. In the case of the "fizzbuzz" problem, you might think this is a little overkill (I did, anyways). But I know that my friend has employed this method in stressful algorithm interview questions to great success.
I know this may be common knowledge for many of you, but I found this advice to be very valuable as a beginner developer. Hopefully, you do too.
As software gets more and more integrated into our lives, the industrialization of its crafting process becomes inevitable. But the over-generalization of software engineering can be crushing the creative side of programming.