Write your First Computer Program

From Computer Usage to Your First Computer Program
4.4 (62 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
6,221 students enrolled
Start Learning Now
  • Lectures 7
  • Contents Video: 1 hour
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 12/2014 English

Course Description

This course is about computer programming, actually achieving to write your first computer program, using Ruby programming language. The target audience includes people who know how to use computers, they are advanced users, but they want to go some steps forward and learn how computer programs are being designed and developed. Pupils, teenagers, students, professionals of various disciplines, adults, elderly people. People who might want to start a career in computer programming.

This is the first big step.

  • Learning some theory behind computer programs
  • Setting up your computer with the necessary tools
  • Write your first computer program

The course is composed of a series of video lectures. About 1 hour of video casts. The course will take you about 2 hours to finish.

Everybody should take this course. Understanding what computer programming is and having some experience with that will train and mature the brain. Will give people knowledge to understand that these machines, called computers, are not something that belongs to another strange difficult-to-understand world. People will understand that computers work with statements that they ask them to execute, with logic and blind obedience. Computers are powerful machines, but it is the people that instruct them what to do. In this course, students will start giving orders to computers and computers will be at students' service. After the course, students will decide to further enhance their computer programming knowledge with more advanced courses, and later on, even further pursue a career in software engineering.

Note that the programming language that we will use is Ruby which is a very popular and easy to learn programming language.

What are the requirements?

  • You will need to download Oracle Virtual Box and a Virtual Machine that I prepared for you. But, don't have to do now. Everything is explained in the lectures.

What am I going to get from this course?

  • Understand what a computer program is
  • Use the numbering systems that computer programs do
  • Install and Manage Virtual Machines
  • Work in Linux Operating System
  • Write their first computer program

What is the target audience?

  • This course is meant for advanced computer users, but who have never written any program before
  • It is not for users that they only know how to move the mouse. It requires typing.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction to Computer Programs

This is a presentation that will give you the theory necessary to start programming. You will understand what a computer program is. The Random Access Memory. The static and the dynamic languages.

Note: You can download the presentation slides from the resources section of this lecture

What is a Computer Program? - Comprehension Quiz
20 questions

This lecture will teach the most popular numbering systems. The decimal, hexadecimal, the binary and the octal numbering system. It will show you how you can count using any of these numbering systems and what is the numbering system that computers are using.

Numbering Systems - Comprehension Quiz
16 questions

This lecture will help you set up your development environment. This is going to be the operations system (Linux) and the Integrated Development Environment (IDE) that you will be using to execute the hands-on exercises.

Note. In order to setup your development environment you will need to have two files:

1) the Oracle Virtual Box Manager. You can download that from the here

2) the Oracle Virtual Box Appliance that I have prepared for you and that you will have to import. You can download that from here.

Important Note: When you start the "Introduction to Programming" virtual machine, you will be asked to log in as user "panayotis". The password is "panos".

Extra Important Helpful Notes

Some extra notes when importing the OVA (the Oracle Virtual Box Appliance file) file:

1. The course requires you to download an OVA file. This is, again, the link to the file:


Note that the the file that you will download needs to have EXACTLY this number of bytes:

3,044,794,880 bytes

If it does not have this number of bytes, then the file is not downloaded correctly and you have to redownload.

2. The import of the OVA to the Oracle Virtual Box Manager might require you to reset some of the appliance settings. This is done on the Appliance Settings dialog when importing the appliance (see screenshot attached to resources of this lecture)

You may want to remove the "USB Controller", reset Network Adapter to one that matches your adapters and Check to Reinitialize the MAC address of all network cards.


During this lecture, which is the first part of two, you will learn basic Linux commands and browsing around the file system. You will see how friendly Linux OS system is and with the correct set of commands you can do many things. This is part 1 of 2 parts lecture.

Important Note: When you start the "Introduction to Programming" virtual machine, you will be asked to log in as user "panayotis". The password is "panos".

Get familiar with Linux - Basic Commands on Terminal - Comprehension Quiz
14 questions

This is the 2nd part of the 2 parts lecture that familiarizes you with Linux and Debian operating system.

Important Note: When you start the "Introduction to Programming" virtual machine, you will be asked to log in as user "panayotis". The password is "panos".

Get familiar with Linux - Advanced Commands and GUI - Comprehension Quiz
9 questions
Section 2: Programming with Ruby

During this lecture you will create and run your first Ruby program. It will be a program that prints the phrase "Hello World!"

Important Note: When you start the "Introduction to Programming" virtual machine, you will be asked to log in as user "panayotis". The password is "panos".

Hello World Program - Comprehension Quiz
5 questions
Section 3: Closing and What's Next

This lecture gives you an overview of what you have learned from start to end.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Panayotis Matsinopoulos, Senior Software Engineer

I love software engineering. I am passionate about my job. I find it the most creative job that one could have.

After a long software engineering life that started with C/C++, then went to Java and then to .NET Visual Basic/C#, the last 4 years, I have been developing web applications using Ruby on Rails.

I believe that Ruby on Rails dramatically increased my web application development skills. REST, HTTP, testing and the whole family of tools around it tremendously improved the quality of code I deliver.

I am always willing to take new challenges on big projects. My biggest reward is not the money that I get, but the software that I create when it makes their users happy to use it.

“Test is my friend” and “Customer has always something useful to say when making a comment about my software.” It is my task to turn it into something valuable that will render my final work even better. “The enemy of good is the better one.”

Nevertheless, I never go without planning and I like working on specific non-moving targets. Focus, Focus and Focus. Agile estimating and planning (by Mike Cohn) is one of my best books on that and I come back to read it again and again. And nothing is finished if not tested and if not customers says done.

The technologies that I usually use on my projects are:

  • Ruby
  • Ruby on Rails
  • MySQL
  • Javascript
  • jQuery
  • HTTP
  • Neo4J
  • Riak
  • Solr
  • TDD
  • BDD
  • Cucumber
  • Capybara
  • Selenium
  • HAML
  • Continues Integration
  • TeamCity
  • Jenkins
  • Factory Girl
  • Twitter Bootstrap
  • Amazon Web Services
  • Facebook API
  • Twitter API

My current programming work includes the following:

  1. Chief Technology Officer at Book&Table. I am designing and developing a Ruby on Rails application using PostgreSQL as a database backend.
  2. Senior Software Engineer at Fraudpointer. This is another Web application using the Ruby on Rails Web framework, with MySQL as a backend database
  3. Senior Software Engineer at Wyngle. This is also a Web application that is using Ruby on Rails. Here, I am implementing the backend database using Riak, which is a distributed NoSQL database.

While I am working on real projects, I like to teach computer programming. I have taught to many kids and adults, either on-line or in classrooms.

Ready to start learning?
Start Learning Now