The digital economy is changing the world in unforeseen ways. While all of us enjoy the benefits of the digital world, we don’t much bother to understand the basis on which this world works.
The basic building block of this amazing world is a computer and the factor that helps this device accomplish different tasks is software. Each one of us should know how a computer, the basic building block of the IT infrastructure, works. A student should be introduced to topics such as algorithm, computer networking, etc. at a very early stage. This will help her participate actively in the fast-changing world.
Perhaps, you may wonder why everyone should learn to code when we have computer science students to take up that job. In a world where we are surrounded by computers, such arguments are invalid.
In school, we are taught a range of topics: How does a biological cell function, Photosynthesis, Nervous system, Newton’s Laws of Motion, Archimedes Principle, Pythagoras’ Theorem, Polynomial factorisation, Statistical concepts like mean, median, mode, standard deviation and so on. These topics are included in the school curriculum not to make us physicians or physicists, or biologists or statisticians. It is to teach us how the nature and the world around us work; it helps us gain some understanding of logic and problem-solving; basically, those topics teach us how to think well.
Yes, in the past only computer science students were taught how to code. However, in this IT-driven world, there is not even a single field that is not touched by the technology. It is changing the fabric of almost all tasks in every single industry. So, basic IT skills are completely foundational for any kind of job you undertake in the coming years.
As discussed earlier, to survive and thrive in this IT-driven world some kind of digital literacy is essential. The component that makes a computer tick is programming and it has become an essential skill as reading, writing and arithmetic. Once you learn how to code, it opens up immense possibilities in front of you. To help you achieve this goal, a plethora of resources are in place. One such resource that has gained immense popularity of late is code.org, a provider of free online coding lessons.
The service Code.org has created a complete curriculum for computer science beginning in kindergarten and it is available to the public for free.
Recently Code.org has introduced a video series on ‘How computers work’; if interested, watch this:
The series starts with the session that explains in a lucid way what makes a computer, computer. Then it describes how data (number, text, image and sound) are represented inside the computer.
Another episode deals with computer circuits. After that, you will learn the different components of a computer-CPU, memory, input, output and all that. And in the final episode, you will learn what is software. An attraction of the series is the presence of Bill Gates, who ends the series with the statement “… learning to code gives you the power to build things that matter to you, your community and the world”.
Without much effort, one can pick up basic programming skills. But to become a hotshot programmer, you need constant practice. Practice makes you perfect and in programming, we can say perfect practice makes you perfect. You have to do it over and over again. Nonetheless, this deliberate, constant practice sessions, could turn out to be quite hard and boring in the long run. One solution is to introduce some fun element into the sessions. This is where CodeFights gains significance.
CodeFights is a platform where programmers can practise programming skills while having a lot of fun. It provides an environment where users can learn/improve their programming skills by accepting challenges (programming problems) and solving them with other programmers.
Here, CodeFights gamify the learning process and thus makes the practice sessions more fun and lively. Both you (the challenger) and your opponent start solving the challenge and the one who submits a correct solution faster will get more points. You may not necessarily be competing with a real programmer- the person at the other end could be a bot (a virtual programmer). If you are hunting for a programming job, going through some of the problems posted under ‘Interview Practice’ could fetch you rich dividends.
To get started with any kind of coding exercise, you need a program development environment that suits the programming language of your choice. Though several such tools are available for free, you need to go through the process of downloading/installing them. Now, if you wish to skip this process, take a shot at the online service ‘Repl.it’, which provides an integrated development environment (IDE) right inside your browser.
Once an appropriate language is selected, Repl.it will take you to the development environment. For beginners, it provides some readymade examples so that they can try out the system without any hassle. You can start writing the code within a few seconds and share it with others if you wish so.
When you access the application you will find a screen split into two columns: a light-coloured screen on the left side and a screen with a black background on the right side (screenshot above). The right side is called the console, where you can try out a single line of code at a time. You can use it to test how a certain line of code would function- good for getting quick feedback. To write long programs, you should use the editor available on the left side (one can consider this as a cloud IDE).
Another notable feature of this application is ‘Coding in the Classroom’, the product offered to teachers. If your teaching involves a programming lesson, you can log-in to the site and create a classroom and invite students via email. The application offers the facility to create assignments and when a student enrolled in the program logs in, she will find the assignments meant for her. Now, the student can respond to the assignment, write and run the code inside the browser and submit it online. The advantage here is that the student can complete/submit the assignment from any device that supports a web browser.