Good Riddance to 2020, and Hello To Learning New Things in 2021

Well, that was certainly a challenging year. One thing it has shown us, is that we are now almost completely dependent on our digital world and that this is only going to increase as we go into the future.

  1. Build new worlds in GitHub. I have transformed the platform I used in my teaching by using GitHub to deliver the content, rather than using the clunky Moodle platform. To me, Moodle seems like it was made for the 20th Century, and GitHub gives me a platform where I can more easily control and maintain my content, and in not locking it away behind a firewall. So go and learn how to use Git properly, and see how it can transform our world.
  2. Go Learn Crypto! I see encryption in the same way as Ohm’s Law is seen in electrical engineering. It should be the foundation layer of cybersecurity, but generally, it is one of the weakest areas, and where many struggle to get past the definitions of the acronyms. So, go and learn about public-key encryption, and hashing, and symmetric key encryption, and digital signing … in fact, there’s an endless number of things to learn. The magic moment will hit you when you say … “Ah, I get this!”. As a starter, perhaps, go and learn the beauty — and simplicity — of the RSA method. But there’s more … homomorphic encryption, zero-knowledge proofs, range proofs, group signatures, lattice cryptography, light-weight cryptography, … [Learn].
  3. Go code in Python. I developed through C, and onto C++, and then onto C#. When ASP.NET MVC came along, I could see no faults in it, especially in creating scalable Web sites. But I had been tricked into thinking that everything had to be run through Visual Studio and had to be properly integrated at compilation time. There was another way, and it was more interesting and fun and involved scripting. And so Python crept up on me in trying to find the latest code in cryptography. Increasingly I was waiting for the latest port into C#, and the integration was often time-consuming (involving the integration of DLLs). And so I started running Python code with a “pip install”, and all my difficulties disappeared. While I (still) hate the syntax of the language and refuse to commit some of the commands to memory, it is now my No 1 target for any new code. It basically feels like I have complete control again -rather than the IDE continually bossing me — and makes writing code so fast and efficient. And it’s on your R-PI, it’s in Bitcoin, and it’s everywhere. So why we don’t teach our kids Python at school is beyond me. Basically, it is the language of the people — doctors, lawyers, teachers, and everyone — and with a few lines of code, you can build a digital world that is greater than any billion-dollar company. I have basically learnt too, that our software world is increasingly a hybrid world, and where Python, Java, .NET, JavaScript, and all the other coding systems fuse together to build systems.
  4. Once you’ve learnt Python, go learn Golang. I fall back to Python as my default, and, for me, it is like the pocket calculator for computer science. But, for writing fast and robust code, it is not quite there. The “pip install” command for installing libraries can break things, and the Python 2.7 v Python 3.7 engines do not quite help in creating standard code. I also do not like the code syntax, but it is so powerful, that its usefulness overcomes its weaknesses. So my No 1 tip is to learn Golang. With Go, it feels like I am back when I started to learning programming, but also so modern. It overcomes all those DLL problems, by just downloading its code GitHubs. And the great thing for me is that it compiles to an executable program.
  5. Learn about the beauty of Elliptic Curves. These beautiful little curves (y²=x³+ax+b) are just taking over the world of cybersecurity just now, and as RSA becomes increasingly more difficult to process, elliptic curves are there to take over in the creation of our secure tunnels, key exchanges, and so many other things.
  6. Read more research papers and learn to continually innovate. I have a worry that my knowledge will eventually age, and that it becomes redundant. So one way is to get hold of the latest research and try and consume it. Some of the papers will go no-where, but others will open up new areas. When you read them, go and grab the related code, and try to get it running. Also try to simplify things, and make your own little prototypes. If you can, too, go and try and explain it to others. Try to learn how to question things and look to innovate yourself, and encourage others around you to do the same. The best album that REM ever made was created when they all swapped their instruments. Every great thing started with an idea. Don’t sit back, go innovate!
  7. Get into AWS. Sorry for being so specific here, but Amazon Web Services (AWS) is playing a leading role in our digital world. If you have had a look recently, AWS provides a toolkit that builds a more scalable, robust and secure world. Unfortunately, we are often not using it to its best potential, but we are learning fast, and those companies who move the fastest will be the ones will succeed in the future. My favourite is to use Python to script Alexa, Cloud servers and databases, but you can build your systems in whichever way you like. As we are using Cloud systems, then all the things I told you about learning crypto become ever more important.
  8. Learn Overleaf (and LaTeX) and dump Word. One on-line package that has completely changed our outputs, our collaboration, and our productivity is Overleaf. It is an online system for producing beautifully formatted documents, and which do maths and layout properly. But its real power is the way that teams can collaborate on documents, without needing only one person to work on it at a time. All of our researchers and MSc students now use it, and, in the end, they produce documents which can be easily reviewed and commented on, and which are formatted that best represents them. For some reason, many fail to see how to properly structure a document in Word and the template methods just do not work well.
  9. Challenge yourself to learn. Go and do that PhD or MSc you always wanted to do, and you will — hopefully — not regret it. While you may be comfortable with your current knowledge, education can open up a whole new way of looking at things. We all have gaps in our knowledge, so go and plug them. Forget being a jack-of-all-trades, and become a master of something. There are few barriers to learning these days, and there’s knowledge at your finger-tips. Read research papers, and dive into them, and trying understand their signficance.


There you go! That was my Top 10 tips. We increasingly live in a world of surface learning, so go and be a true expert in something and learn it deeply. Don't end up being a ‘jack of all trades and master of none’.

Professor of Cryptography. Serial innovator. Believer in fairness, justice & freedom. EU Citizen. Auld Reekie native. Old World Breaker. New World Creator.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store