Based on our experience (we’ve been teaching coding to school children from Grade 1 to Grade 12 since 2015), its best to start teaching kids Java or Python when they have strong understanding of the key coding concepts such as Loops, If statements, Variables, Lists, Booleans, Functions, Recursive Algorithms and so on.
From our perspective, it’s better to first explain all these concepts using Scratch, make sure students can confidently apply these concepts themselves, and then move to teaching the same concepts in Java or Python.
Also, when moving to Java or Python it is very important that students are able to fluently type without any syntax or spelling errors, because any typing error will cause an error in Java or Python code, which is very frustrating and may be very demotivating for young children.
Hence, in our syllabus students go through the Scratch Beginner course (one year) then progress to Scratch Intermediate course (one year) and only after that they progress to Java or Python if they pass Scratch exams successfully. Therefore, those students who start with us at the age of 7 are able to start learning Java or Python at the age of 9.
High school students who do not have Scratch experience and who are new to our school are welcome to start learning Java or Python with us from the age of 12-year-old. By the time they enrol in coding courses, high school students have often developed proficient typing abilities, allowing them to focus more on understanding and implementing coding concepts rather than struggling with syntax typing errors. This allows for a more efficient and productive learning experience, facilitating a deeper understanding of coding languages and their practical applications in various projects and scenarios.