10 free online courses for learning how to code

Application development is a sector that offers many opportunities, learning  programming can open the doors of this sector and can be an exciting career opportunity. Thanks to the internet, today we can learn to program without having to attend a class, we can do it from home with edX, Udacity or Coursera where free and quality educational programs offered.

10 free online courses for learning how to code

Last week the 25th anniversary of the World Wide Web was completed. A quarter-century in which, thanks to the web, knowledge has become much more accessible and universal. Blogs, forums, podcasts, videos on sites like YouTube or training platforms, such as those that have arisen in recent years, are some of the reference sources we can find on the net and with whom we can form are times without having to travel to a physical classroom.

Learning through the Internet is not synonymous with low quality, thanks to sites like edX ( which originated at MIT ), Coursera (where there are courses of universities around the world) or Udacity, today we can find network quality training and also free. A good way to expand our knowledge and begin to form in areas where we have a special interest, for example, improve our professional profile.

Intro to Programming ( Problem Solving With Java )

Intro to Programming ( Problem Solving With Java ) is a program that can be found in Udacity and aims to introduce students to software development. The course, taught by a professor at San Jose State University and also a former Microsoft manager, explains some of the most basic concepts of software development ( algorithms, basic structures… ) in order to create a basis for the student to understand the basic outline of a program, discuss the importance of the code to reuse later, and of course, learning to program in an object-oriented language such as Java.

To register for this course it is not necessary to have prior programming knowledge, in fact, the idea is to start learning the basics and thus establish a basis for further expanding knowledge.

Introduction to Computer Programming

Introduction to Computer Programming is a training program that has two courses taught by the Technological Institute of Bombay. Each of these courses of six weeks duration each, aims to introduce students to the world of programming, though, starting with the basics, it is not necessary to know programming but that knowledge is recommended is mathematical calculation just because a student is introduced to algorithms.

The program is structured by an introduction in which include aspects such as algorithms, basic data structures, iterative programming, matrices and tables then go to manage strings, pointers and graphics handling are discussed. The course revolves around the C language and this language during the course includes C + + that is studied to introduce students to object-oriented programming.

10 courses free online to learn programming

Compilers is the name of a course offered by Stanford University through Coursera, a training program with an advanced level that aims to introduce students to the world of compilers. When writing a program in a particular language, the code must be compiled to bring to a low level language that allows the program to run on any machine, manage this transformation is the compiler and precisely this is the core of course.

The idea is to understand how the process of compiling the code works, understanding the process of syntax analysis, review of intermediate errors or changes that are made to the code you‘ve written to make it a fully functional software. For more advanced students, the course offers the opportunity to perform in which students develop their own compiler “final work”.

Design of Computer Programs

Design of Computer Programs is a course that can be found in Udacity and, in my opinion, it is worth to review. The instructor of this course is Peter Norvig, Google ‘s research director, a teacher with enough technical capacity to enter an advanced level of programming.

This course requires prior knowledge and is an advanced level, the approach is practical and is aimed at solving complex problems, so it’s worth while to have made some other previous introductory course in programming or algorithms.

Creative programming for mobile applications and digital media is a rather unique training program that can be found in Coursera, taught by professors and researchers from the University of London, this course covers programming from a rather interesting perspective: its application to multimedia content and mobile applications.

More than a learning-oriented programming course, this course aims to teach to use our expertise in creative areas. In other words, the goal of this course is to be able to start the development of a video game or, for example, participate in the construction of an interactive musical system ; creative projects but have technological base.

Programming Languages ??: Building a Web Browser

Programming Languages ??: Building a Web Browser is a course that is out in Udacity and is taught by a professor at the University of Virginia. The objective of this course is to introduce the world of software development but with a peculiarity : the focus will be practical and students will develop their own web browser.

The idea is that the student is taught how to use regular expressions, code structure analysis or interpretation of a code. Indeed, as an example of interpretation of HTML and JavaScript code, the student will develop their own browser to verify that it has assimilated the knowledge that has been taught in the course.

Learning to program : development of quality code

Learning to program : development of quality code is the title of a course that I find particularly interesting, for example, if you want to work in software development projects. Normally we tend to focus on application development, ie, in learning to program, but from a professional perspective, the product quality is important.

The objective of this course is to introduce students to the importance of software quality, ie, an application must not only work, it must also be efficient and its code should be understood without the need for “reverse engineering”. The course, taught by professors from the University of Toronto, is a good base to enter the world of testing and debugging but, yes, it is important to know some programming before this course that sets its goal on optimization and quality.

Software Testing: How to Make Software Fail

Software Testing: How to Make Software Fail is an Udacity course designed for professionals or people who already have prior knowledge of programming. The course is also aimed at software quality but, yes, its focus is on the testing of applications.

The course focuses on the final phase of a software product: the tests must be performed to verify that the application works properly. The objective of this course, taught by a professor at the University of Utah, is learning how to hunt for bugs and failures before they find “you”, for example, let an application to a production environment. Obviously, if we learn to hunt bugs and review software, we also learn to develop better.

Web Application Architectures

In Web Application Architectures, a course that we can find in Coursera thanks to the University of New Mexico, we find a training program aimed at developing web applications. The course is very focused on engineering, it is not a course to learn HTML and build a website, your goal is to learn to present the architecture of an application based on the superposition of layers of abstraction.

The issue is quite complex and, indeed, the course introduces the student pursuing an interest in the subject and further research on their own but, yes, also has its practical part thanks to development in Ruby on Rails as a framework reference.

Introduction to databases

We could not close this review without putting the focus on one of the cornerstones of many of the applications we use every day : the databases. In Introduction to databases, we find a course in Coursera thanks to Stanford University and has been a greater acceptance of this platform, we will find the information needed to take our first steps in integrating databases in our applications.

The course introduces us to the design of databases using the UML language, learn to design models “entity-relationship” that form a database, the student is introduced to SQL statements  and to learn how to query or use operations with a base data among other things. This introductory course is therefore it is not necessary to have previous knowledge in databases