Let me supplement physical toys (which are most important for sure) with some additional ideas for building future programmers.<p>Children ages 3-7 are really just beginning to learn how to think abstractly, which is a pretty core competency for programming. So when you say you want to teach fundamentals of coding, you really aren't even at "coding" yet. You're really at the fundamentals of math, language, reasoning, and problem solving and curious mindsets.<p>So what are the fundamentals of coding that 3-7 year olds can actually do?<p>1) Math - I would scour the web for all the different ways you can do basic math with any type of physical object (pencils, fruit, whatever). You may think it's too simple, but if you take a cognitive approach to this, practice must be done at some point with mapping a number of any object to it's linguistic representation in one's mind. Practice counting up/down, sorting stuff into groups and sets, quantity, patterns (2x3, 3x2, are they the same? what's different?) etc, and doing simple arithmetic with actual objects. This is new to them and is fundamental to everything else.<p>2) Language - have adult conversations with your kids, and no not about adult topics, but with adult words and with adult grammar; no "baby-talk" in other words. And it's not about purposely choosing large and obscure words to obfuscate, but picking accurate words that probably leave little holes in understanding for the child to try and reason about. Hopefully they will ask if they don't know, or may even surmise correctly about word/phrase meaning. This might help with...<p>3) Reason/problem solving - Encourage experimentation in everything. If they see you constantly trying new things and failing gracefully and focusing more effort on finding solutions then hiding failures, you've taught them one of the most important lessons of all. Try, try, try many times, then go ask someone. You should be unquestionably <i>the</i> expert in some things, and a complete novice that asks questions and learns quickly in other things, and they should watch you in both situations. Seeing role models do both is an immensely powerful thing to observe to young children. It shows that adults can be both powerful professionals and learners. Where do you think they learn to laugh at, criticize, and fear failure? It's cultural. Make failure just another step to mastery.<p>4) Curious mindsets - in every category above, there are always opportunities to ask "why do you think this is?" or "how do you think this works?". You might get gibberish most of the time but it doesn't matter, they are going through the thought process and will get better with age. They need to be very comfortable with those questions at early ages and keep being willing to answer them. When they stop caring, THAT'S the problem.<p>So to try and answer your question more concretely, you can buy expensive toys made for programming but I don't see what it will accomplish. LEGOs are the gold standard, but really, every-day objects can do much of the above. Build a fort! Why are we building a fort? How do we do it? Tell me the steps for building a fort so we can do it again someday. How do we improve this fort? Tell me the steps for improving...