It's a delicate balance for sure, but I do think time on task lends itself toward mastery. KA Ericsson's deliberate practice has been met with criticism [1], someone born with good genes and having a tailored upbringing will flourish while another person cannot. I've trained someone with functional, but severe mental disabilities and while he'll never be regarded as a 'master', his overall coordination and quality of life have improved. I personally hold the "lifetime learner" mentality, and so I look at it less of becoming a mastery and just getting better.

That's a longer term approach. I agree that if I'd started some of my current hobbies at a younger, more malleable age, I would have improved at a faster rate. But I also can't time travel, so should I simply give up my aspirations of learning? Hitting 35 soon, the skills I have are all I can have? If we assume the article is referring to young med students, they are still in their early twenties - is that too late to 'start'? What about any non-traditional student that goes to a community college for a vocational trade, are they SOL? As you mention, it is more difficult, but I'd argue not impossible through specialized training.

Pre-screening is a suggestion I'd be very careful towards. The reason being is that Computer Science saw a rapid spike in popularity in the 80s [2]. Unfortunately, academia could not match the demand and so they were faced with an issue of "whom to teach". One approach was to increase the difficulty of entrance exams. I'm sure this eliminated a lot of poor students just going where the money was; however as Roberts puts it, some students took this as a sign that they were "unwanted", causing a sharp decline in enrollment in the field. Interestingly enough, this drop is around the time women in CS took a nosedive [3] that we are only now recovering from. In addition, many underrepresented groups do not pursue CS at a young age, contrary to Caucasian males. Walking into their first CS courses, it's intimidating to be met with peers that have been modding Minecraft since they were 12. We're seeing a similar 'peak interest' in CS due to the dot-com/social media era and many of the same suggestions are getting thrown around. Coupled with the demand for future software developers [4], there is a need to figure out how to teach individuals starting out with an inadequate skill level.

Instead of pre-screening, I'd lean more towards placement tests, faded assistance, and teaching discipline (which I've called perseverance/'grit' in other posts). Not everyone enters the classroom at the same ability and so those that need additional work should be given time to hone those skills. Faded assistance (scaffolding) removes the crutches as a student's 'Zone of Proximal Development' increases [5]. The mistake learned from your monkey example is they failed to be properly integrate into real world scenarios where those crutches are nonexistent. Finally, discipline teaches students to continue, even after becoming skilled. Doctors that continued to practice after their time in school were better performers than those that did not [6]. In the martial arts I train, you typically have earned your blue belt after 2 years. By that time, you KNOW every technique; however, many students also quit around this time because they become frustrated they aren't as good as the people nearing 10-20 years of training.

Others have mentioned it, but in addition to their neuroplasticity, children are forced to learn because a) they have an empty cup (neuroplasticity), and b) they are forced to (early specialization by parent). It's harder for an adult to learn because of both age and they don't have the same time to devote to becoming skilled like they did as a child. This is why I like the idea of specialized courses and why I prefer academia to something like a MOOC. There is an implicit "forced learning" where the novice is devoting time toward progression.

If a student "can't learn CS", I'd say it is because they are ill equipped to learn it at that time. As such, the next step is to identify why they struggle (technical literacy, problem-solving, reasoning, or some combination of those) and seek to improve that skill before moving into CS. Similar to surgery, by identifying what basic skill a student struggles with and then improving it should be the first course of action. WHERE that basic skill should be taught is more political than I'd like to get into, since I've written enough.

[1] http://www.chrest.info/fg/Articles-2011-2015/Hambrick-2014-I...
[2] https://cs.stanford.edu/people/eroberts/CSCapacity/
[3] https://www.npr.org/sections/money/2014/10/21/357629765/when...
[4] https://fas.org/sgp/crs/misc/R43061.pdf
[5] https://en.wikipedia.org/wiki/Zone_of_proximal_development
[6] https://www.ncbi.nlm.nih.gov/pubmed/22141427