A Day in the Life of a Programmer

By Moringa Core 7 Graduating class

Becoming a good developer takes so much more than learning how to write good code. Here is what the graduating class had to say about their experience at Moringa.

Programming was always an abstract concept for me during my campus years. However this changed after an introductory course to programming which drove me to look for the best way to learn programming. Moringa school came in highly recommended by friends. During the Immersive course I was able to fall in love with problem solving as it gave me satisfaction to find solutions, regardless of how trivial the problem was. The course was project based; one learns through building applications. This allows one to grow the self-learning skills, and this was a highlight for me – a platform to allow me to learn how to learn and not just reproduce information. – Joshua Kodhe


From the time I was in campus I have always been interested in programming but my degree involved majoring in both statistics and computer science. I thus could not focus on my programming fully and that made me believe that programming was hard. After campus I read a book on  growth mindset and that revived my passion and the mindset towards programming. That drove me into learning Ruby on rails on my own for 4 months. After a few months of not getting far with my skills, I decided to join Moringa School.The past six months I have been in Moringa school have taught me that with the right mindset you can achieve anything. By building applications that have helped solve various problems, I am now more than ever able to view problems not as threats but as opportunities for growth. -June Muoti

When I started out in Moringa School I had some basic knowledge in coding however, just a few weeks in Moringa taught me that there is so much more in programming than I thought. The skill that I value most of all from Moringa school is the ability to adapt and learn new technologies as well as how to debug my applications.I would therefore recommend Moringa School to both beginners and those familiar with coding techniques.- Seth Muriuki


My journey through Moringa has been something different. Definitely not what I’m or most people are used to. Its been challenging at the same exciting. When you learn to grow around people with the same beliefs and motivations as you, you get to have a different perspective on things.That’s what Moringa has helped me achieve. It’s no walk in the park, but its really accomplishing and you become self-aware about what you want.- Andrew Kimani



Qualities of a Good Programmer

Article By,

Nancy Momanyi

Moringa School Staff.


The tech ecosystem in Kenya is rapidly growing and the number of students who consider taking a career in software development after high school has greatly increased. As much as technical expertise is important there are a lot of factors that employers look out for when searching for new tech talent in their companies. A candidate with quick learning ability, leadership skills and great attitude is what most tech companies are looking for.

There is a popular belief that you need to have a background in computer science for you to be good at programming. Doing computer science gives you a better understanding of computer architecture and gives you a better understanding of the world of programming but you should also have the ability to self learn. Read a lot of articles on the latest technologies and tech blogs. There are also numerous online resources that can help you get better at your skill.

Team work is one of the most important skills that a good programmer should posses. There a few coding boot camps across the globe that use a collaborative learning model. Here in Africa we have Moringa School a top coding accelerator where you are able to sharpen your programming skills through pair programming. This is working in pairs on a project. This prepares you for the real work environment where you will be required to work as a team to solve a problem.

Current Moringa School students working on their final projects

A good programmer will always develop systems with the user in mind. It is not enough to learn programming concepts. Your main focus should be to make an app or website that is solving a real world problem.  Industry leaders like airbnb,uber, amazon and netflix are redefining the standards for customer experience. A great programmer wants to know whether the features they’re building has high value to the customer.

Lastly it is important for programmers to have great time management and task management skills. This will enable you to estimate how much time it takes to complete a task and know how to deliver projects to clients on time. Always under promise and over deliver when you are working on projects to gain credibility.

Nairobi Tech Week is Back!

Published by Nancy Momanyi,

Moringa School Staff.

NTW Banner

Moringa School is once again excited to host the 3rd Edition of Nairobi Tech Week, Sub Saharan Africa’s largest tech event, whose aim is to bring all actors and influencers in the tech ecosystem in one space, fostering conversations and learnings around various relevant technology-related topics.

Theme: “The Role of Technology in Problem Solving for Africa’s Future.”

  Date: Thur., April 19 – Sat., April 21, 2018

Venue: Strathmore University

This year, in conjunction with the title sponsor; Microsoft, Nairobi Tech Week presents a 3-day event packed with panel discussions, workshops and a hackathon with incredible prizes to be won.

Other sponsors include Visa, Facebook, Safaricom JUMO, Github, Liquid Telecom,Google and iBizAfrica.

For the first time, Nairobi Tech Week will host Nairobi Tech week Awards, in a bid to recognise companies playing influential roles and driving impact within Silicon Savannah.

“Our aim is to launch a community-driven tech event focused on developers, thought leaders within the tech space as well as the best innovations in Sub Saharan Africa” says Sandra Mukidza, NTW’s main event organiser.

Moringa School is pleased that several key organisations have come forward to partner with Nairobi Tech Week; iHub, Africa’s Talking, Swahili Box, AngelHack, M-Power, CBO and Metta. In previous years Nairobi Tech Week has had global title sponsors like Facebook and Twitter

Applications for Nairobi Tech Week are open from March 19th, 2018 to March 31st, 2018. Nominations for the Tech Week Awards are also open on the same day.

Apply for your ticket to this years Nairobi Tech Week 2018 here and also place your Tech Week Awards nomination here.

Living a Life

MS Logo 3D  2

By Raini Sydney,

Moringa School Student.

Whatever a mind can conceive and believe,it can achieve’, I frankly don’t know who said this words, but they are true. It is believed that we only use 10% of our brain’s potential during the course of  “our” lives ( I dispute this). But to those who don’t, what about the remaining 90%? Why don’t they use it? What stops them from using it? The simple answer is “Themselves!”

When we were born in our early years, we had no limits:We did things without fear or inhibitions. With our innate knowledge, we tried discovering new things. But some people grow and forget how sweet it was to try new things as a baby, without any fear of failure.

Very few people know how powerful the mind is. It is the greatest tool somebody can possess. And children really know how to try using the tool in many things, some that are considered insane. But somehow, there are people who really seize the opportunity and make massive use of their mind.

Majority of those who make “massive” use of their mind have made great creations, have invented and designed things that have changed the world. Others have made their lives happier and have had more fun. Think of Campayo Ramon,who can memorize 17 numbers in half a second; Ki Peek,who knew every zip-code in the USA, and the crazy Chao Lu who memorized 67890 digits of pi with 100% accuracy. These all are all to do with memory, but it shows some of the things we are capable of.

It’s only a week since I was introduced to serious coding and I feel like it’s the greatest thing that ever happened since sliced bread, something that compels you to think ‘without a box’.channeling energy towards creativity, adventure and fun. It makes use of the inactive brain potential that some people are afraid of putting into use. You work without fear, without any inhibitions, but with an open mind that reflects the power of art;Creativity; in human life.

It is at Moringa School that we’ve decided to rediscover fun that we had as kids, trying out new ideas with confidence. Seizing opportunities to create solutions. And having no excuse to limitations that have bound others. We are not just learning at Moringa School, we are living a BIG LIFE!

Setting Up WakaTime on Emacs


By Carol Wanjohi,

Moringa School staff.

As a programmer, tracking the amount of time spent coding is essential and vital. Thereby, increasing and validating the importance of a plugin such as WakaTime.


   def WakaTime:

       open-source plugins for text editors that measures coding time for programmers

Setting up WakaTime on most text editors such as Atom and Sublime Text is pretty straightforward. However, for Emacs, especially for a an Emacs beginner, it is a totally different story.

After successfully setting up WakaTime on other text editors, I thought that for Emacs it would be a walk through the park. Sadly, that was never the case. I spent nearly 6 hours setting it up. In the process, I learnt more about Emacs.


Before setting up WakaTime for Emacs there some requirements that are essential.


  1. Python
    • your machine should have Python installed. To confirm whether your machine has Python you can run the following command in your Terminal

   python —version

  1.   Emacs version 24 or higher
    • since this installation process will be using MELPA, an Emacs package installer that only works with Emacs version 24 or higher

This installation process will be for a MacOS.

Getting started

Most Mac’s come pre-installed with Python. So, we can go ahead and install Emacs for those without it.

To install Emacs you can use Homebrew. If you do not have Homebrew you can use this link to install Homebrew.

After installing Homebrew, you can use it to install Emacs with the following commands

brew update

 brew install emacs –with-cocoa

brew linkapps emacs

Homebrew will install the latest stable version of Emcas, that means it will be higher than version 24. Next, we need to connect to the Emacs installed by Homebrew. This means we are going to create an alias for it, so that when you invoke emacs it will run the newly installed version of Emacs

alias emacs=”/usr/local/Cellar/emacs/24.x/Emacs.app/Contents/MacOS/Emacs -nw”

After creating the alias, we can confirm the version of Emacs we are connected to by running the following command

emacs –version

Installing MELPA

After installing and connecting to Emacs, we can now install MELPA, a collection of packages compatible with Emacs.

To open Emacs you can type


This gets you into the Emacs text editor. Next, we will find the init file for Emacs

Press Ctrl + X (C-x)

Press Ctrl + f (C-f)

Type the following path to the init file for Emacs


This will open the init.el file and you can add the following code so that you can install MELPA

 (when (>= emacs-major-version 24)

          (require ‘package)


            ‘package-archives ‘(“melpa” . “http://melpa.org/packages/“)


    After that, you can save and close your Emacs text editor


   Press Ctrl + X (C-x)

    Press Ctrl + S (C-f)

Press Ctrl + X (C-x)

   Press Ctrl + c (C-c)


Now, you can go back to Emacs and confirm that packages from MELPA are connected to your Emacs




   Press ESC + x (M-x) list-packages


A list of packages from GNU and MELPA will be displayed


Installing WakaTime


Now on to the good part, installing WakaTime plugin to Emacs.


   Press ESC + x (M-x)


   Type: list-packages


Scroll through the list of packages and search for a package called wakatime-mode. After locating it, type i and x. This will install wakatime-mode. Now you can exit emacs


   Press Ctrl + X (C-x)



   Press Ctrl + c (C-c)


So, we need the WakaTime cli for Emacs to connect with the WakaTime plugin properly. To set it up you can run the following commands in the home directory


   pip install wakatime


This will command will tell Python to install the WakaTime cli.


Next, we need to set-up Wakatime cli in your Emacs init.el file




   C-x C-f ~/.emacs.d/init.el


   # Add the following code to the bottom of the init.el file



Setting up WakaTime on Emacs


   Press Ctrl + X (C-x)


   Press Ctrl + S (C-f)


   Press Ctrl + X (C-x)


   Press Ctrl + c (C-c)


Now, you can set-up the WakaTime API key by doing the following:




   Press ESC + x (M-x)


   Type: customize


Navigate to the form field


   Type: wakatime-api-key


   Press Tab key


   Press Enter


To navigate to where you should enter your WakaTime API Key, use the arrow keys on your keyboard. After keying your WakaTime API Key, navigator to the [Apply and Save] section and Click Enter.


Now, you just need to exit Emacs for the changes to apply.




To confirm if your WakaTime API Key is set you need to open the init.el file




   C-x C-f ~/.emacs.d/init.el


Another way of confirming your WakaTime API key is




   C-h v wakatime-api-key


Now you can log into WakaTime to confirm if your text editor has been linked to it. So, I hope everything has been connected properly and happy coding.


How To Chose a programming language

By Dennis Muturia,

Curriculum Developer,

Moringa School.


Developer newbies have a really hard time in deciding what languages they would start learning. Trial and error methodology becomes a part of their new developer lives. Only to end up giving up on the early coding journey. The major contributor of this dilemma is the lack of guidance. I believe that this article will provide the needed guidance for your early developer coding journey.

What program are you building?

Know what you want to build. By this, I mean what kind of program would you want to build? Is it an e-commerce application or a graphical application? Before undertaking any language, keep in mind every programming language has its own speciality. Let’s take Python for example, Python is the most recommended language for machine learning because of its many supported libraries. Yet, it is an object oriented language recommended to coding newbies. Due to its simple nature it quite easy to understand.


What platform would you want to build for?

Know what platform you would want to build for. Do you want to build a mobile app or a web app? Each platform has its own specific language. Most languages can run on both Mobile and Web but it all depends on what you would want to build. Let’s take Java as an example, Java is the most recommended Android mobile platform language despite the threat from the newest kid on the block (Kotlin) by JetBrains. When it comes to web applications, still, Java dominates this area.

What operating system will your application be used in?

Know what operating system you are building your application for. Is it a Mac system, windows operating system? Some languages are operating system dependent. Take Swift as an example. It is the highly recommended language for both the Mac OS X and the IOS 11. Swift only runs on Mac systems. There is no way you can develop an Apple application without a Macbook. That’s being selfish but alright. Apple commitment to swift language is great. Since its production in 2014, Apple has released only 4 versions of Swift and the fifth is underway. There is also a ton of free resources to learn Swift online.



Lastly, you must look at the credibility of the language. Credibility of the language essentially means, is that language of choice still widely used or is it dying or already dead. You would not want to code in a language that our grandfathers used like IPL or FORTRAN (I don’t them either, just did a quick Google search). Most of these old languages were low level, this essentially means that they were so hard to understand. But some of those languages are still in use today.


All in all understand the product you are interested in building. Language-hopping for code starters is not recommended. You will end up confused. The best programmers are those who only concentrate on one language at a time until they are confident to take on another.


Using jQuery and Bootstrap with Angular 5

By Latasha Ndirangu,

Moringa School Staff.

Displaying DSC_0108.NEF


Angular has always been a scary framework for me, maybe because I was expected to understand how to build a fully functional app in less than a week.

I recently decided to give it a second chance because HTML +CSS felt a bit too much, and besides, I needed the challenge.

I came across a challenge when I tried incorporating jQuery in my app. After opening what felt like 501 tabs, I found my answer!

First you need to install jQuery to your app.

npm install jquery --save

In your angular-cli.json add:

"scripts": ["../node_modules/jquery/dist/jquery.min.js"],

Now in you app.component.ts, you will need to import jQuery:

import * as $ from "jquery"

Now you can write your jQuery code in peace.

  ngOnInit() {
    $...add your code here...

Happy coding 🙂