Yesterday I had a very interesting conversation with Keir (one of my students at MakersAcademy) during our lunch break.
We talked about the relationship between cooking and software development, specifically how you learn these skills.
When you cook, if you have eaten before, you base your cooking on your experience mixing up the ingredients and how they will taste once they are combined in the dish. Similarly, when you are coding you apply your experience creating structures and combining them together.
If you are new to software development this reaches a whole new level. You suddenly are cooking, but you have never eaten before. You have to taste every ingredient and food you want to mix before you can even think about combining them together into a dish.
Guiding a group of six people that want to become software developers is a big challenge. As the master chef I have to give them little taste of ingredients and letting them savour them, play with them. Slowly, while getting used to the structures (Strings, Numbers, Hashes, Arrays, etc) they will see how they can combine them into a cohesive self.
Even if you are an experienced developer, it helps a lot if you spend some time now and then playing with your ingredients (the data structures of your language). This way you will find new ways you can incorporate them into your applications.