4 ms·
I assume by "Code Proper" you mean the ability and knowledge to use computer science to program. If so, focusing on programming only would be like focusing on
by logari 7y ago
I assume by "Code Proper" you mean the ability and knowledge to use computer science to program. If so, focusing on programming only would be like focusing on the HOW, the procedure, whereas focusing only on CS would be akin to focusing on the WHAT and WHY, the rules and purpose. These two complement each other.
In this case, your kids should learn the language that teaches them CS at meaningful and deep level, so that they can see what is the soul of programming. You would need Scheme language, the text being one by Friedman (sorry, not a fan of Wizard book for the reason that it is very MIT-centric and elitist in that sense).
Once they know enough CS and Scheme to find their way in the map of programming (in the scheme of things, pun intended), then I suggest at least two programming languages that differ from each other in how they solve problems and what kinds of problems. One of these is without doubt Python, because it is connected to all sorts of fine things like web dev, AI, general purpose programming etc, and is programmer-friendly enough to not cause mild and chronic masochistic psychosis like certain languages (not naming names, because this is highly subjective).
After your kids are experts in Python, they should learn Javascript because of its utility, but also how different it is from Python. These two languages for operational, utilitarian purposes that also nicely supplement what they did with Scheme.
Once they have a good grasp of Py and Js, they should build proficiency in Haskell so that they can appreciate programming from a completely different angle; Haskell is going to be more useful later, so it has more than just didactic value.
After Haskell, some Julia for computational programming would be nice, since Julia does things efficiently and differently.
At last, they should also master C, for historical and low access purposes (and to not to fail "can you C" question).
With these languages under the belt, and the basics of CS1, they should move on to CS2, and try real world programming. John Zelle's book teaching Python and C++ for a second course in programming is very nice.