Learningplan

Expression Of Interest In Topics

I will start with expressing interest in topics I want to learn. The courses I choose will be mostly from this broad list.

Among the core subjects in computer science, I wish to refresh my knowledge of Algorithms and their analysis, networking (TCP/IP), and databases (also covering non relational databases and how to manage scale).

Web technologies have progressed a lot. HTML5 in my opinion will be a very important topic to know. HTML5 holds many promises and it has become imperative to know Javascript well. Programmers must have a basic knowledge of CSS.

With social networking becoming so popular, I feel it is important to understand the basic principles of social networking and how to create applications for a social networking environment like Facebook.

Nowadays applications do not live in Silos. They interact and integrate with other applications. These are called mashups. It is important to understand how to use web API's published by applications, and specifically how to integrate with applications like Twitter, Google apps, Facebook, etc.

Web security is another subject which has gained in importance. Since I want to deploy a few websites myself, I feel that I need to understand the fundamentals of web security.

Smart phones have become very prevalent and their popularity and use growing further. Mobile applications can also extend the services that a website provides. I wish to learn at least Android programming, and perhaps iPhone programming as well.

Running a small lifestyle business is very different from running a large enterprise. I would like to learn how to manage and grow a satisfying lifestyle business.

From a work perspective I would like to work in an area related to open (perhaps online) education. I feel like managing online communities will be a very integral part of my work. Hence I would like to learn the art of managing online learning communities.

I would like to refresh my knowledge of and learn at least one new language. I would like to refresh my knowledge of C, C++, and Python, and would like to learn PHP, and Scala.

I am familiar with software design, but still would like to do this course for the sake of documenting it. This course should touch on software design principles as they relate to object oriented and functional programming, and design patterns.

Since this is an experiment, and it's about self learning and creating knowledge, I feel that I absolutely must do this massively online course on Personal Learning Environments Networks and Knowledge.

Maybe this is a tall order, maybe it is not. I will find out as my studies progress, and will document all my experiences as well as notes on various blogs.

Courses

The table below contains a list of courses which I am either taking, or have completed, or will start soon. The table consists of two columns. The first column contains the name of the course and a link to it's page, and the second column contains the completion status if the course.

Main Courses

# Course Name Completion Status Endorsement Status
* Dynamic web applications In Progress -
* Web applications with PHP and MySql In Progress -
* Personal Learning Environments Network and Knowledge In Progress -
* Principles of good software design Not started -
* Software development methodology - extreme programming Not started -
* Principles of UI design for social web applications Not started -
* Web security Not started -
* Managing scale as a website grows Not started -
* Creating mashups - Interacting and integrating with other web services Not started -
* Creating applications for social environments (worlds) Not started -
* Creating and managing a micro enterprise as a lifestyle business Not started -
* Managing and growing online learning communities Not started -
* Introduction to data structures and algorithms Not started -
* Analysis of algorithms Not started -
* Compilers Not started -
* Distributed computing Not started -
* Programming mobile devices Not started -

Supplemental Courses
While learning main courses, there will be many topics I will have to learn which in themselves may not be large enough to warrant a course, but their knowledge will be important to learning the main course.

Course Name Completion Status
Version control with a distributed VCS Started
Regular expressions Not started
Introduction to programming in C Not started
Introduction to programming in Python Not started
Bash scripting Not started
Ecommerce principles Not started
Search engine optimization Not started
Introduction to copyright law for the web Not started
Mind mapping Not started
social learning Not started
Test Driven Development with JUnit 4.0 Completed