Most of the good jobs in the future will have something to do with computers. Some people choose to learn computer science at college. Others, like Bill Gates and Mark Zuckerberg, started early with coding to hone their problem-solving skills. InGenius promotes and supports computing education for K-12 students.
Computational Thinking without Coding: Students can learn about algorithms and computational problem-solving without writing one line of coding. They can learn through engaging games and puzzles that use cards, boards, string, crayons and lots of walking and running around. There are many resources and competitions for computational thinking. We highly recommend Bebras Challeng (http://www.bebras.org/).
Learning to Code: For those students who want to solve problems with coding, they can option to learn programming. For young beginners, we recommend graphical block-based languages. Scratch and Alice 3 are among the most popular novice programming environments. Students learn programmatic constructs and focus on problems of logic without losing sleep over syntax.
When students are ready for the next step, they can choose a text-based language. Some of the most popular languages include Java, C++, and Python. These languages are more similar to each other than they are different. With any of these languages, students can learn important programming concepts such as object oriented programming, conditionals, loops and arrays.
Competitive Programming and Algorithms: For those aspiring students who want to learn beyond just programming and start their journey with algorithm and solving complex problems, preparing and participating in programming competition can be very helpful. One of the most reputable contests is USA Computing Olympiad (http://www.usaco.org/). Their contests are algorithmic in nature and require clever algorithms and/or data structures to solve problems with time constraints.