How you can stay up-to-date through MOOCs

In this post, I’ll share with you how you can use MOOCs to stay up-to-date with your field and acquire new skills. I’ll also share some of my experiences after having completed about 30 MOOCs in the last year and a half.

What is a MOOC?

Let us start with the basics. According to Wikipedia, MOOC is defined as:

A massive open online course (MOOC /muːk/) is an online course aimed at unlimited participation and open access via the web.

Wikipedia

MOOCs are a kind of distance education where you can consume the learning content whenever and wherever it suits you. A MOOC is typically built with the following building blocks:

  • Video lectures
  • Self-tests
  • Assignments (weekly / finals)
  • Collaborative projects
  • Discussion forums
  • Downloads (videos, slides, and transcripts)

The following mind-map by Mathieu Plourde (Mathplourde on Flickr) [CC BY 2.0] gives a nice overview of the concept and the flexibility of its implementation:

MOOC poster mathplourde

My first contact with MOOCs

I stumbled into the world of MOOCs in February 2018 after having found the MOOC platform of SAP, named openSAP. SAP was offering a technical course on test-driven development in the programming language ABAP, which I enrolled for. The course was great, and it changed how I keep up to date as a developer.

What can you use MOOCs to learn?

The MOOCs I’ve attended mainly fall into the following three categories:

  1. Technical skills
  2. Thought leaders
  3. New products and solutions

Technical skills

Being a developer, I always look for material to expand and improve my technical skills. This can be anything from learning a new programming language or a test framework to learning about a new NoSQL database.

The courses I’ve attended in this category typically consist of a lot of coding exercises, which for me personally is a very good way of learning. MOOCs that fall into this category are typically the most work-intensive.

Thought leaders

As a developer, it is important to widen your perspective and be aware of greater trends in technology and society. Attending MOOCs within this space helps you to keep up with new business practices, and the lecturers are typically business and academic thought leaders as well as top politicians.

New products and solutions

When working with enterprise software, you as a developer will often be asked by your customers about new products and solutions which they have heard about. Even if you have not yet had the opportunity to do hands-on work with these products and solutions, I recommend attending MOOCs within this area to at least have an overview of which scenarios the solutions are applicable to.

When and how I consume MOOCs

The major advantage of MOOCs over traditional classroom training as I see it is that you can consume the course content whenever it suits your personal schedule.

I have a daily subway commute of about 45 minutes in total. As long as I can find a seat, I think that this is an ideal opportunity to use MOOCs. The MOOCs I’ve attended typically have units with a length of approximately 20 minutes, which means that I can squeeze in two units a day, just going to work and back. I find this to be a much more productive use of my time than just scrolling through social media posts or playing games on my phone.

The assignments typically require at least an hour of focused work and are not ideal for my commute. I typically do the assignments when the rest of the family is sleeping.

Nice side-effects of attending MOOCs

Apart from the learning itself, which is, of course, the most important part of attending MOOCs, I’ve encountered the following nice side-effects:

  • Certificates and badges to put on your LinkedIn profile: If you receive a certificate or a badge, make sure to put it on your LinkedIn profile. Since the words of the MOOC are searchable, people looking to connect with people with a certain skill will find you through these search terms.
  • Free books: In one MOOC I attended, the teachers were publishing a book on the topic simultaneously to bringing out the MOOC. Since I was one of the top 30 students of the course, I received a free copy of the book in hardcover.
  • Discount coupons: Several MOOCs I’ve attended have given me a discount coupon at the end of the course. The coupons have been for books, conferences and paid e-learnings.
  • Invitations to conferences: Just the other day, I received an invitation to attend a conference on a topic for which I had attended a MOOC. I’d still need to pay for the conference, but I wouldn’t have been aware of the conference if I hadn’t attended the MOOC.

Potential downsides to attending MOOCs

The potential downsides I’ve encountered when attending MOOCs are the following:

  • Opportunity cost: When attending a MOOC, there is an opportunity cost. I’ve noticed that I’ve read fewer books when attending MOOCs due to time constraints. Make sure that the courses you are attending are really worth the time investment you are making.
  • Marketing material in disguise: A few of the MOOCs I’ve attended have been little more than sales pitches and marketing material from a software vendor trying to push a new product. This becomes obvious at an early stage, so don’t hesitate to drop out of a course with these characteristics. I’ve come across these courses mainly in the new products and solutions category.

MOOC platforms

There are a lot of MOOC platforms out there. I just want to give you a few examples to get you started. If you have any recommendations, please feel free to share them in the comments section below.

freeCodeCamp

At freecodecamp.org you can attend an online coding boot camp completely free of charge. The focus is mainly on front end web development with courses on topics such as responsive web design, JavaScript, front end libraries, and APIs. There are a lot of hands-on coding exercises available.

openSAP

At open.sap.com there are hundreds of courses available. Many of them are focused on SAP specific solutions and technologies, but there are also a lot of general courses available. Some examples are courses on Java, Snap!, design thinking, digital transformation, and AI. The courses are offered free of charge to anyone interested.

Udacity

At udacity.com you can acquire tech skills within different areas, like programming and development, AI, cloud computing, and data science. I’ve only taken a JavaScript course at Udacity, and am not all too familiar with the platform.

Final words

I hope you enjoyed reading my thoughts and experiences around the topic of MOOCs. Let me know your thoughts in the comment section. I plan to write a follow-up post with my favorite MOOCs attended so far. Happy learning!

Computer Science concepts you can learn from block-based programming

I have signed up to volunteer for the Swedish nonprofit organization Kodcentrum this autumn. Kodcentrum introduces kids to programming and digital creation free-of-charge. We will be using Scratch in the coding labs, and I’ve played around with Scratch previously on a couple of occasions.

A course on Snap!

To prepare myself for the volunteering, I signed up for the MOOC Programmieren mit Snap!, which was offered free-of-charge by openSAP this summer. Snap! is an extended re-implementation of Scratch and the two languages as very similar. The user creates programs in a visual drag-and-drop environment.

The course took about ten hours to complete, and I’m impressed by how much content and how many fundamental as well as more advanced computer science concepts the instructors were able to explain and demonstrate.

Concepts covered

Let’s have a brief look at the concepts covered.

Fundamentals

A lot of the fundamentals were illustrated by creating images and art. The first example illustrated positioning, loops, and visual effects by creating a digital wildflower meadow.

The basics of color theory were explained in an exercise to create geometrical forms of different types and colors. I found it interesting that Snap! uses HSV (hue, saturation, value) instead of the RGB color model, which I’m more familiar with. According to Wikipedia, HSV was “designed in the 1970s by computer graphics researchers to more closely align with the way human vision perceives color-making attributes.”

The use of variables was introduced in the context of for-loops, and the outcome was spirals of different sizes and forms. At a later stage, lists were introduced for grouping several related values.

Advanced concepts

The principle of parallel computing was introduced by letting the student create a simple drawing program, in which the user creates two mirrored images by having two scripts executing in parallel.

Messaging between objects was introduced by creating a simple game where a character navigates through a maze. The objects communicated when something happened in the game loop.

A Sierpiński triangle was created by applying a chaos game method. Fractals and emergence were also introduced. There are really a lot of interesting graphical representations which can be generated by a very small amount of code.

Snap! can be used for more advanced use cases by importing libraries. A neat example was the use of a text-to-speech library for generating and reading out loud different newspaper headlines.

Cloning was used to create somewhat psychedelic graphical animations.

As you see, a lot of ground was covered already, but no computer science programming introduction is complete without introducing the student to recursion. I really enjoyed this part of the course, and the output was a tree image with very detailed branches.

Conclusion

I was familiar with most of the concepts covered in the course, but some of the graphical applications were new to me since I don’t do any graphics programming in my day job. I very much enjoyed the course, and I’m impressed with the instructors as well as with what can be achieved in a block-based programming language.

If you have children, and you want to introduce them to programming, I think that Snap! and Scratch are both excellent choices. They are most likely also great introductory tools for adults who want to get an initial idea of what programming is all about.

I highly recommend the course, which is available both in German and in English. I have only taken the German version of the course, so that is what this blog post is based on. You can sign up for any one of the courses free-of-charge. Happy coding!

SAP Fiori 3: The next level of SAP’s design system

SAP launched the first version of its design system Fiori back in 2013. The first version was limited to self-service scenarios targeting the casual user. In 2016, Fiori 2.0 appeared on the scene, expanding the scope to targeting the power user. SAP is now presenting version 3 of Fiori, and I’ve just attended a MOOC on openSAP covering the topic. The course is Intelligent Enterprise User Experience with SAP Fiori 3, and it’s available free of charge. In this post, I will summarize my main takeaways from the course.

User experience goals

With Fiori 3, SAP wants the user experience to be:

  • Consistent
  • Intelligent
  • Integrated

Let’s have a look at these three goals in more detail.

Consistent

Consistency means that Fiori 3 should provide a harmonized look and feel across the SAP product portfolio. Since SAP has expanded its product portfolio through several acquisitions (e.g. SAP Fieldglass, SAP Ariba, SAP Concur), the UX of the different systems is not consistent.

I think it is great that SAP addresses this topic by harmonizing the design and providing a new visual theme. The reworked home page also looks promising, with the tiles we know from previous Fiori versions being replaced by cards. The cards are much more flexible and interactive than the tiles. Also having a common shell bar for all products will definitely help the user who is currently working in several SAP products.

Intelligent

SAP has lately been pushing the “Intelligent Enterprise”, which consists of the intelligent suite, the digital platform, and intelligent technologies. Fiori 3 is an important part of this vision and will provide natural language interaction as well as machine intelligence to make the UX intelligent.

SAP CoPilot is a digital assistant with conversational UI. According to Gartner: “There is a big, disruptive platform paradigm shift coming now. Conversational AI platforms (CAPs) will be the next big paradigm shift in information technology.” I think it is interesting to see the digital assistant concepts which we are familiar with from our private lives now being applied to enterprise software.

Another interesting approach to provide an intelligent UX is proactive business situation handling. This means that the system captures a current business situation and its circumstances. The user is provided with an explanation of the situation and its impact on the business. The system also provides possible actions ranked by preference, together with explanations of the proposals. Making the system act proactively in this way sounds very promising to me.

Integrated

The integration provided by SAP Fiori 3 is at the UX level, integrating content from different products into a single screen (the home page). This approach has several advantages, like:

  • Eliminating time-consuming cross-product navigation
  • Collecting items from different systems in a universal inbox for efficient processing
  • Informing users of changes as they occur by handling notifications across devices, enabling users to respond immediately
  • Consolidated task area collecting everything users need to do in a single place
  • One digital assistant across all products

Final thoughts

I think that Fiori 3 is an important part of the intelligent enterprise vision of SAP, and I welcome the initiative. It’s important to know that Fiori 3 won’t be introduced as a big bang approach, but rather will be launched step by step. SAP expects that the first innovations, e.g. the theme, the look, and the header, will become available in many of the products towards the end of 2019.

If you found this blog post interesting, I would encourage you to attend the course Intelligent Enterprise User Experience with SAP Fiori 3, which takes somewhere in the range of three to five hours to complete. Please share your thoughts in the comments section.