Simple Programmer Blogging Course

I decided to start this blog after reading some articles on specialization over at Simple Programmer. He argues that you need to pick a specialization within software development to be truly successful. After reading those articles, I decided that I would check out his free blogging course, which helps you to setup a blog related to your chosen specialization.

From what I understand, the course is comprised of 7 lessons that are emailed to you individually on Mondays and Thursdays. Writing this article is one of the exercises required for lesson 5, so I have not yet completed all of the lessons. However, I have seen enough to form an opinion.

The thing that I like most about this course is that John Sonmez provides very concrete action items to complete with each lesson. Many software development related courses and books that I have experienced are excellent up to a point. I am one of those people that really needs to learn by doing, and that is where I feel like a lot of these resources fall flat. They don’t provide meaningful exercises to make the lessons real. The Simple Programmer blogging course does an outstanding job of this. Not only does it provide these concrete exercises, but the end result is that you will have your own functioning specialization blog when you are finished.

Another thing that I enjoy about the course is the format, whereby one lesson is mailed to you every few days. A new lesson gave me something additional to look forward to on my Mondays and Thursdays. Additionally, pacing each lesson gives your brain some time to chew on the previous lesson.

Are there any negatives to the course? It is hard to complain about a course that is free and that motivates you to accomplish something real. If I had to pin down one negative, it could be that the constant promotion of a paid workbook for the course could wear on some people. However, I do have to give Sonmez credit for such clever marketing strategies. In the end, this could actually be a benefit, as some of his tricks could easily be used by a student in marketing their own future products. In that way, this course is a bit of a two for one bargain (blogging and marketing, and at a free price).

How could the course be improved? I’m not sure how long the course has been available, but I’m guessing that it’s been around long enough to provide some real world examples of blogs that resulted from this course. Sonmez provides a lot of motivational material, but what could be even more motivational than examples of graduates whose blogs have seen success?

I hear a lot of people say that you get what you pay for. However, considering that the Simple Programmer blogging course is free, you get a lot more than you pay for here. If you’re a software developer and you haven’t chosen a specialization or started a blog yet, I would recommend that you give the course a try. You have little to lose, and seemingly much to gain.

What is MVC?

ASP.NET MVC is an ASP.NET web application framework that saw its first full release in March of 2009. At the time of its release, Web Forms had the majority of the ASP.NET framework sharehold. While I could not find statistics regarding the current usage of the two, the consensus opinion seems to be that MVC has far surpassed the popularity of that older framework at this point. However, Microsoft has clearly stated that MVC is not meant as a replacement for Web Forms.

ASP.NET MVC finds its roots in the MVC architectural pattern. This pattern was devised by Trygve Reenskaug back in 1978, while he was working with Smalltalk-76 at the Xerox Palo Alto Research Center. Its purpose was to correspond the user’s concept of a model to the computers representation of a model. It makes the user think that they are working on their mental model directly and also gives them the opportunity to look at that model using different perspectives (views). This pattern has morphed into a number of variants, including MVP and MVVM. Not only that, but web frameworks leveraging the MVC pattern have taken over a large market share of web applications as a whole. It is doubtful that Reenskaug could have envisioned the level of success that this pattern has achieved.

There are three aspects that make up MVC. These are the model, the view, and the controller. ASP.NET MVC has a strong notion of each of these three components, making it easy for the developer to separate concerns while constructing their application.

The model includes the objects that make up the problem domain of the application. A banking application may include models for an account, a transaction, and a customer. The model can respond to inquiries to retrieve data from its state and requests to change its state. In ASP.NET MVC, a plain old C# class is typically used for a model.

The view comprises the UI components of an application. Separating views allows one to easily devise multiple views for a given model. An example of different views for the same model would be a bar chart view and a tabular data view. In ASP.NET MVC, the views are often realized as Razor View Pages.

The controller is the interface between the view and the model. It handles user interactions, retrieves data from the model, and passes updated data to the model. In ASP.NET MVC, we have controller classes that actualize this component.

The advantages of using the MVC pattern are numerous. One advantage is that each of the three components can be independently worked on by different developers without fear of conflicts. Another benefit is that each layer can be tested more easily than with other architectural approaches. For example, you can test the controllers independently of the views. Finally, the pattern lends itself to allowing for code reuse across applications.

With a large number of existing applications leveraging the MVC pattern and Microsoft continuing to back it with ASP.NET Core MVC 2.0, the future has never looked brighter for MVC. If you haven’t already jumped on the MVC bandwagon, now is a great time to start. With the new promise of cross platform compatibility, ASP.NET Core MVC will help your web application reach audiences that you could only have previously dreamed of.