How Old Should A Student Be To Learn Java?

The tortoise always beats the hare in the long run and in coding! This is a classic but oh so true tale of trying to go too fast and failing versus taking your time, steady and slowly, but achieving your goal. This classic tale epitomizes theCoderSchool's philosophy of allowing its students to go at their own pace and making sure that they're always engaged and having fun too. The other route of pushing too hard can help achieve short term goals, but in the end, the student will too often end up quitting and not returning. In comparison, when the student is allowed to go at their own pace working on projects that interest them, they tend to have a lifelong connection with coding and technology and will continue their journey with coding and technology rather than quit and be afraid. And even worse, for the rest of their lives have an animosity towards technology.

Can you teach my 7 year old java?

At theCoderSchool, we have parents quite often wanting us to teach their very young kids java. They want their child to excel so what better way to get ahead than by learning java right? This should be the obvious choice right because it's a very popular language and quite complex so by learning java you'll clearly get a jump on the rest of the world. There's just one, well actually quite a few, problems with this approach. In general, unless your kid is the next Marc Zuckerberg, they simply aren't going to be ready to learn and absorb a language like java at this young age. They may be able to get some exposure through Minecraft mods, but note that Minecraft mods do not require a full understanding of the logic and rigor involved in truly creating a java program from scratch. It's more about following steps and then making adjustments to existing code to make changes. This is still great in many ways as it's engaging and keeps the kids interested, but it is not learning java at its core. 

General Progression of Cognitive Development

The better route is to remind ourselves of the general progression of cognitive development and make sure what you're trying to teach is within the realms of what your student is physically and developmentally ready for. If you don't get this right, you will be striking out pretty fast!  At theCoderSchool, we want to focus on teaching kids logic and how to think like a coder. Based on our experience, we found that 7 seems to be the right age at which our students are able to start and progress with logic - so that's a great time to start with languages like Scratch or Snap!. Though there's a vast market for the younger kids, we passed on this as we would then be spreading ourselves towards just exposure rather than always being able to focus on teaching kids logic and  how to think like a coder. We also, then found that a second milestone was around age 10-12 where we could easily start getting them into the typed languages and introducing them to more abstract logic - so we typically go with Python or Javascript at this point. And eventually move into a full object-oriented language like java around age 15. There are always exceptions, but this is the most common path that we are experiencing and works well. Interestingly, when we compared our progression with a famous developmental psychologist, Jean Piaget, it lined up almost to a tee. In short, his studies showed that up until age 7, kids are mostly still developing sensorimotor and pre-operational skills. Only as they approach 7 are they really starting to hit some operational and fundamental logic skills which is the perfect time to start honing those skills through learning to code a block language like Scratch. His studies also showed that it's not until age 11 or 12 that kids start to really develop concrete operational skills which are required for more abstract logic. And what do you know, it just so happens to also be a good age to dive into typed languages like Python and Javascript, along with some of the abstract logic coding concepts. Piaget was born in 1896, so we certainly aren't the ones discovering this, we're just finding out that he was pretty spot on as it relates to coding! Kudos to Jean Piaget!

Conclusion

In summary, don't be in a rush to have your kids conquer any one language, but rather make sure they're engaged and enjoying what they're working on. Focus on the fundamentals and building blocks in any language or platform. Go too fast, and you risk your student losing interest, and tipping over your Coder Tree!  When you can mix the fundamentals with engagement and fun guided by a Code Coach®, the sky is the limit!