One of Embarcadero’s MVPs, Ryan Potts, is the originator and maintainer of the Delphi track on Exercism – a site dedicated to making it easy for people to learn different programming languages. He was interviewed by the Exercism team previously, but I thought it would be interesting to interview him about what Exercism is, and how all of you can be involved.

  • What is Exercism? How long has it been around, and how many students visit it?
    • A not-for-profit organization providing opportunity through programming education
    • The Delphi track had 3 new solutions submitted, 1 for mentoring.
    • See their about page for more
    • It was originally founded in 2013 by Katrina Owen.
    • Each week I receive a mentoring update.  The most recent update indicates that during the last week of 2019 2,152 people submitted 8,107 solutions across all the language tracks.  Of those 2,339 were submitted for mentoring. 174 mentors gave feedback on 1,963 solutions.
  • What sort of programming languages are found on Exercism?
    • There are 51, including our favorite, Delphi!
  • What kind of exercises might someone find on Exercism?
  • Do any of the exercises involve building Graphical User Interfaces or accessing databases? What about accessing REST APIs? These are things that Delphi makes so much easier. Or are they all console applications?
    • At the moment all the exercises are console only.  I have considered creating some Delphi specific exercises to utilize Delphi’s ability to pretty easily build GUIs, just haven’t had the time myself.  This would be a great way other experienced Delphi developers to help. 
  • Does a student need any experience to start?
    • No, but knowledge of the command line is essential.
  • Does it cost anything?
  • What sort of tools does a student need to get started? 
    • Each language track has set up instructions to let you know what you need and where to find it. For example with Delphi you need to install Delphi. There is also a command-line tool that all the tracks use.
  • If a student is completely new to Delphi what do they need to do to get started.
    • Once someone has signed up for the Delphi track they will find instructions on how to set up their system.  (They are a bit dated, a few versions of Delphi have been released since I wrote these.)
    • Other links are also available from the same location for more Delphi related resources.
  • Is it true the Exercism Windows CLI installer is written in Delphi?
    • Exercism’s Windows CLI Installer is open source and written entirely in Delphi. It automatically determines the correct version (32/64 bit) of the Exercism CLI the student needs then downloads the CLI, extracts it, and puts it in the right place. The installer has been downloaded 15,000 times, which I’m pretty proud of! 
  • Is Exercism only for new developers or are there things experienced developers might learn there as well?
    • It is not only for new developers, but is probably geared towards someone with only a little experience, knowledge of how to operate a terminal (command prompt) interface is essential. 
  • How is Exercism similar to a code kata? 
    • It essentially IS a repository of code katas; with added benefit of having someone knowledgeable in the language you are working in review and critique your work.
    • The term code kata is a concept first used by Dave Thomas, co-author of the book The Pragmatic Programmer as a nod to the Japanese concept of kata in the martial arts.  A code kata is an exercise in programming which helps programmers hone their skills through practice and repetition.
  • Beyond being a student on Exercism how else can people be involved?
    • To get an idea of what should be contained in the PR it is a good idea to view one of the other exercises in the /exercises folder of the /exercism/delphi repo.  The maintainer (me) will review it, offer suggestions for changes and ultimately I can then merge the PR.
    • New exercise ideas or contributions are always appreciated.
    • Working with the maintainer(s) of the tracks you frequent is also appreciated.
    • See the contributor guide
    • Just create a pull request (PR) on the Delphi exercises track to contribute additional exercises. 
    • For a first time contributor it might be a good idea to find an exercise from /exercism/problem-specifications that is NOT yet implemented and write a test suite for it.  It can be done blindly, by simply writing code based on the provided JSON, or by translating the implementation of that exercise that might exist in another track.
  • How does someone become a mentor?
    • Don’t need to be a student to be a mentor, but unless you have done a lot of contributing to the project being a student is the next best way to start to get an understanding of how things work.
    • I did a few Ruby exercises and decided it would be really cool if Delphi was offered here.  I was quite frankly frustrated at how many online coding sites are out there and none I could find offered Pascal.  Researching Exercism a little further I learned that they welcomed the addition of new language tracks if you are willing to put in the time to set it up and maintain it.
    • First need to sign up as a student and must submit at least one solution.
    • Become a mentor
  • Is the Delphi Exercism track looking for more maintainers?
    • Certainly. I have been doing it on my own since 10/2016. It isn’t hard but there are some interesting things going on in some other tracks that I have not had the time/energy to pursue on my own.
      •  Creating a test generator — Converts exercise definitions (in JSON) to native language (Delphi for example).  I have been writing the test runners by hand. A test generator could be written in any language, but traditionally track maintainers write their generators in their language.
      • Some tracks have started to implement auto-mentoring.  Some early exercises in a track are very simple and the number of ways to implement a solution are limited and it ends up consuming a lot of mentor time to review these same exercises over and over.  The auto-mentor is programmed to look for familiar patterns and make some canned recommendations. Ultimately falling through to a human mentor if a good expected response cannot be provided.

I’ve signed up as a mentor and submitted my first pull request on the Delphi exercises! Looks like a lot of fun. If you know someone who would like to learn to program this is a great resource. Or maybe you would like to become a mentor or maintainer too! 

By the way, Ryan is one of the champions here on LearnDelphi.org!


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free TrialUpgrade Today

Free Delphi Community EditionFree C++Builder Community Edition