Skip to Content
Personal Insights
Author's profile photo DJ Adams

My learning list for 2020

Turning the page into a new year is often useful to reflect on the previous period and look forward to the next one. I usually don’t set hard and fast “new year resolutions” but like some of you out there I have a general idea of what I’d like to dig deeper into over the next 12 months. Here’s some of what’s on that list.

My colleagues Marius Obert and Witalij Rudnicki have already shared their learning bucket lists for this year, and I thought I’d do the same. I find it fascinating to see what other people are interested in, both in how they differ and how they overlap.

Looking back

Learning is what I do, and 2019 was no exception. While live streaming still reminds me of the art of plate spinning, I’ve become more comfortable with the tech. Along the way of course I’ve also become more proficient in some of the subjects we’ve covered, such as the SAP Cloud Application Programming Model, OData V4, Business Rules (and other business services) on SAP Cloud Platform Cloud Foundry, functional programming and more besides.

That said, I still feel as though I’ve no idea what I’m doing. But I’ve learned to accept that – it’s part of who I am, and that’s fine.


Looking forward

As James Governor and I talked briefly about in the last part of our interview at SAP TechEd 2019 Barcelona I feel quite strongly that the cloud is forming into what I’m going to call “the new mainframe”, with characteristics such as boundless computing resources, different forms of compute unit (from serverless through to VMs, from black box APIs through to software-as-as-service offerings) and consumption-based billing that I remember from the mid 1980s when we ran IBM big iron; in this context the billing was internal, but still measured in a similar way to what we see today.

But I think the most significant part of all of this is that, for the most part, the almost infinite power is at our fingertips in two very simple forms: web browser (i.e. native*) based GUIs and character terminals. In other words, the present and future of computing, in my eyes, is very much mainframe based in that we require very limited compute complexity on our desktops. This is partly why Chrome OS as a workstation operating system makes so much sense to me (beyond it also being more reliable, stable, and secure than anything else I’ve used).

*Yes, native. Web is the true native GUI, everything else is merely OS-specific.

This is the thinking behind my hashtag-based mantra #TheFutureIsTerminal – heck, I even have a tshirt that helps me make the point.

For me the terminal is the ultimate UI. Simple, reliable and pretty much ubiquitous. And it’s built on solid technology that has been around for as long as I have, so it’s stable and well understood. And much of the headless cloud computing power we have runs natively on Linux where remote terminal access is the obvious choice.

Add to this the scriptable nature of command line interfaces (CLIs) and application programming interfaces (APIs), combine it with some shell magic (such as bash or zsh) and you have a wonderful environment in which to work, and that is accessible from pretty much anywhere and from any device, even Windows-based devices! ๐Ÿ˜‰ Joking aside, you may also be interested to listen to a reading aloud of Scott Hanselman‘s post on consoles, terminals & shells: What’s the difference between a console, a terminal, and a shell?

So some of the items that I’d like to dig deeper into and learn more about this year are a result of this way of looking at computing, both in business and as a hobby.


Part 1 – Understanding core things better

And so to the list, where I begin with a category that contains important generic topics that I know something about already, but not enough.

Too often I hack around with core services and utilities on the command line, and find myself googling how to do simple things, instead of reading the manual (the man pages that are automatically available right there in the terminal environment) and building up a more solid and long lasting understanding.

An example this weekend was the Secure Shell (SSH), which I was using without knowing as much as I feel as though I should do. I hacked around with configuration (ssh_config and sshd_config, if you’re interested) until I got things working. But I knew that I was really just doing the equivalent of thrashing around until things stopped being broken.

Another related example is the vast X Windows System, which, while pretty old, still works well and reliably, and compliments the terminal environment nicely. I have a fondness for X which is a little arcane, but hits that sweet spot for me in being both interesting as an old set of technologies to dig into as a hobbyist (or perhaps a computing archaeologist) and useful as tech that still works today. X is perhaps as relevant now in the new mainframe era as it ever was. I have an old book that I’ve taken from my shelves that I’d like to dig into for this.

So SSH and the X Windows System are just two technologies that I’d like to understand better. But that’s only the tip of the iceberg. In the same vein, I’d like to grow my understanding of Cloud Foundry and have the CF CLI be second nature to me. Similarly with Ansible, which I used recently for the first time to manage the Raspberry Pi cluster I set up with my son Joseph to eventually run a local Kubernetes cluster.


Part 2 – New technologies

And so we come to the second part of the list, of technologies that are mostly new to me, but ones that I see will play an important part in the new mainframe era future.

With that, Kubernetes is in first place (this is why I built the cluster over the holiday period), as a specific example of a more general topic that represents containerisation.

This covers virtualisation in the form of virtual machines (VMs), but more specifically LXC powered containers and related technologies such as Docker (if you want to learn more about Docker, Witalij Rudnicki has a nice series “Understanding Containers” here on the SAP Community).

I guess there’s an irony in the title of this part of the list (“New technologies”), in that none of them are really new – the mainframe operating systems that I used in the 1980s ran on virtual machines way back then, specifically I remember that the MVS/XA and MVS/ESA operating system environments were actually hosted on VM/CMS which dates back to the 1970s.

One thing that is relatively new, in terms of being available, is GitHub Actions which is one of the building blocks that has been released on the platform since Microsoft took over, and is one of the things that has helped cement my thoughts about the cloud being the new mainframe. I’ve dabbled already with GitHub Actions, having built an action to auto-assign a new issue to a specific project (and I use this action every day), in an attempt to get my head around the concepts, but I’d like to extend my knowledge here too.


Part 3 – Language and expression

It’s no secret that I am a big fan of the functional programming style. This is something I want to dig into more this year, and move closer towards a more natural, second-nature understanding of some of the concepts that this style embraces and enables. I’d like to dig even more into Ramda, the functional programming library for JavaScript, and its companion library Ramda Adjunct.

Along the same lines as others such as Marius Obert and Helmut Tammen I’d like to look more into TypeScript too, pretty much for similar reasons. I’ve long been a user of dynamically typed scripting languages but my journey into functional programming has taught me the benefits of strong typing and type systems generally. And it’s just JavaScript underneath, which helps a lot.


Part 4 – SAP technologies

There’s no particular reason why this part is at the end; as you might have guessed, everything on my list so far is to help my working life in the SAP world. As SAP has moved more and more towards embracing open standards and technologies, it’s natural that the overlap between SAP and non-SAP topics is getting larger and larger all the time.

I’m particularly looking forward to diving deeper into the Cloud SDK, and how to use that, along with services on SAP Cloud Platform generally, to build upon existing “brownfield” installations. This of course means using lots of different technologies together, combining the API Hub as a directory for available services, Cloud Foundry as the deployment target platform, using the Extension Factory (and, by association, Kyma).

Not to mention keeping my brain sharp on all things CAP. Because we shouldn’t forget, that CAP is important, because it’s not important.


Wrapping up

So there you have it. If nothing drastic changes, this is the learning trajectory that I hope to keep myself following. One thing is for certain, and that’s I’m looking forward to learning and sharing, whatever the topic.

See you online!

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Witalij Rudnicki
      Witalij Rudnicki

      Thanks for joining by sharing your learning list too, DJ Adams!

      Btw, as much as I like command line, and love good GUI, I still have at the back of my mind the the future is Conversational AI (incl. ours). Terminal and GUI introduced abstracted interfaces, but the most natural way for humans to interface is by using words and ultimately voice.

      Happy learning (and sharing) in 2020!

      Author's profile photo DJ Adams
      DJ Adams
      Blog Post Author

      Thanks for the reply, Witalij!

      What you say is true, but only partially, and depends on the context and topic. If I were to try to interface with my remote computing devices using voice, to achieve the things I work on today, it would take me weeks, rather than minutes.

      But conversational interfaces very much have their uses โ€“ I remember discovering and writing about them (and building some, albeit pre-AI), back in the early 2000โ€™s.

      See for example โ€œIs Jabberโ€™s Chatbot the Command Line of the Futureโ€ (and later โ€œCommand lines of the future, and simplicity of integrationโ€ for more context and a link to the followup post too).

      Right now and for the forseeable future, at least for me, conversational AI can only augment but not replace my interaction with computing devices.

      Author's profile photo David Kunz
      David Kunz

      As long as there is no spoken language which can express logic more efficiently than math and codeย I'll stick with math and code ๐Ÿ˜‰

      Author's profile photo Marco Dorn
      Marco Dorn

      Hey DJ Adams

      Great to see that Extension Factory and Kyma are on your list for 2020. If the content provided via the SAP community and its links isn't enough, you know where to find me. Then I'll make sure our experts can provide it in the best digestible format.

      And that offer is of course true for anyone else as well!


      Author's profile photo DJ Adams
      DJ Adams
      Blog Post Author

      Thanks very much Marco!

      Author's profile photo Nabheet Madan
      Nabheet Madan

      Great list sir:) By reading yours,Witalij Rudnicki and Marius Obert list it gave us an idea in which direction to head to otherwise there are ton loads of things to learn! Thank you!


      Author's profile photo DJ Adams
      DJ Adams
      Blog Post Author

      There's always so much to learn. Perhaps the real trick is knowing what to leave out!

      Author's profile photo Shrikant Naidu
      Shrikant Naidu

      Nice DJ Adams !!, CAP & Typescript are in my list too with some other javascript frameworks (i am javascript lover) . And off course, following your series too but offline ๐Ÿ˜‰

      Also, i am trying to gain something on IoT based technologies too this year with my regular UI5 & fiori based projects.