To enhance their opportunities in today’s labour market, many university students are keen to master one or more computer programming languages.
The benefits of acquiring programming skills go beyond job opportunities and attractive salaries. Even if you are not interested in a career as a software developer, learning to code will teach you important skills useful across the labour market, like problem-solving and critical thinking.
Steve Jobs, a co-founder of Apple, once put it this way: “Everybody in this country should learn how to program a computer … because it teaches you how to think.”
This article introduces you to the world of programming and suggests a starting point for learning programming languages through free courses online.
What Is Programming?
Programming, as defined by the specialised website FutureLearn, is how you get computers to solve problems.
To demonstrate the critical importance of programming in our world today, imagine what our life would have been like during the months of the Covid-19 pandemic lockdowns without technology based on programming, such as the Internet, entertainment applications, social media, smartphones, in addition to health, education and security-related technologies.
Arab Interest in Programming
Amid growing interest in programming and coding among Arab students, Sheikh Mohammed bin Rashid Al Maktoum, vice president of the United Arab Emirates and ruler of Dubai, launched the “One Million Arab Coders” initiative in 2017, to provide better opportunities to learn coding languages for Arab students. In a similar step, Egypt in 2020 launched “Future Work Is Digital” (Egypt FWD), an initiative that aims to qualify trainees to join the digital workforce and create job opportunities in the local market.
On your way to learning programming online, you will find a lot of resources. See Al-Fanar Media’s “Guide to Top Platforms for Online Courses” for links to some of the most prominent international and Arab educational platforms that offer free or affordable educational content.
5 Introductory Courses from Harvard
Among the most popular online options for learning about computer science and programming are Harvard University’s CS50 series of beginner-level courses.
Following are descriptions of five courses in that series. The courses are taught on edX, the nonprofit platform founded by Harvard and the Massachusetts Institute of Technology in 2012. All are available free, with an option to upgrade if you want a certificate of completion.
1. Introduction to Computer Science
This is CS50x, Harvard’s entry-level introduction to computer science and programming. It is for majors and non-majors alike, and does not require any prior experience in programming.
By the end of the 12-week, self-paced course, students will develop a final programming project, reflecting what they have learned. Students should allocate 10 to 20 hours of study time each week to complete all the lessons and exercises.
This course lasts 12 weeks and requires six to nine hours of study per week.
3. Introduction to Game Development
This course, CS50G, focuses on how to develop 2D and 3D interactive video games. Students learn through hands-on projects that explore the design of popular games like Super Mario Bros., Legend of Zelda, Angry Birds, and Pokemon.
Students will learn the basic principles of 2D and 3D graphics, animation, and sound, and by the end of the course will have programmed several of their own video games. Like the previous course, this one also requires previous experience in a programming language, so that students can complete the course on time, easily and effectively.
The course lasts 12 weeks and requires six to nine hours of study time each week. Students should complete CS50x as a prerequisite to this course, or have prior programming experience.
This course, CS50M, takes students deeper into web programming and mobile app development. Students learn to use React Native, which is considered one of the most important means of developing mobile applications, to enable them to design an entire application.
5- Introduction to Artificial Intelligence with Python
In this course, CS50AI, is an introductory course on artificial intelligence. Students will learn, using Python, the principles and algorithms that underlie modern artificial intelligence, and explore technologies like gaming techniques, handwriting recognition, and machine translation. By the course’s end, students will have gained experience in libraries for machine learning as well as knowledge of artificial intelligence principles that enable them to design intelligent systems of their own.
The course lasts seven weeks, and students will need to devote 10 to 30 hours of study time to it each week. Students should complete CS50x as a prerequisite to this course, or have prior programming experience in Python.
Programming Languages and Their Uses
A programming language is a means of communicating with and controlling a computer, through a set of instructions to complete various tasks, like developing websites, applications, and operating systems, and many other areas of computer use. There are several programming languages, the most popular of which are as follows:
Python is one of the most popular programming languages around the world, being suitable for people who do not have previous experience in coding. While it can be used in all areas of programming, its strength appears in artificial intelligence, machine learning, and data analysis.
C and C++ are distinguished as programming languages with high speed and performance. They combine the characteristics of high-level languages, as well as low-level languages. This has allowed them to last for 40 to 50 years in the world of programming, especially in developing operating systems, games, Internet browsers, banking applications, and database management.
SQL stands for Structured Query Language and takes the lead among all programming languages in allowing fast and efficient access to programs that store huge amounts of data. A majority of activities that continuously deal with large quantities of data use SQL to help them achieve their goals.