Our Technology Stack for AfricodeX Live Tutorials

AfricodeX is a platform for members of the Africode network to share cool technology, ideas, projects, and new knowledge with other members of the Africode community, as well as the general public.

Once a month, we host an AfricodeX live tutorial centered around a different technology. During the tutorial, we introduce one or more new ideas, projects and discussions connected to the topic of tech in Africa. The audience can also ask any questions and implement the lesson on their own computer. See the events calendar for a list of upcoming live tutorials.

Although AfricodeX tutorials are open to anyone and everyone, regardless of technical background and expertise, we still recommend you install a few tools/applications that will enable you complete the tutorials with ease. Here, we discuss those tools (our stack) and how to install them on your computer prior to attending a tutorial. 

Atom Text Editor

Image Credit: Linux.com

Image Credit: Linux.com

Atom is a free text editor, created by Github, that has quickly become the go to text editor for software developers. It has a large user base and therefore has many useful features and support for the platform such as documentation, blogs, themes, packages, etc.

During AfricodeX tutorials we'll be using Atom write code and to modify any source files that the tutorial host shares. Although, you will be able to use any other text editor, we suggest that you download and install Atom if you don't already have a reliable text editor on your computer.

Installing Atom:

  1. Go to https://atom.io/ and click on the download button.
  2. Watch one of these short installation videos and follow the instructions, depending on which type of machine you have:

Read this post, for tips on how to make the most of the your Atom installation and development environment.

Git and Github

Image Credit: Vcoprogramming

Image Credit: Vcoprogramming

Git is a version control system used for software development projects. It enables multiple people contribute to the code that is ultimately released as the software package. In git terminology, a repository is the home for your project files and allows multiple people to contribute. With git, you can create, clone or download a repository. AfricodeX tutorial hosts typically create public git repositories that the audience can download or clone in order to follow the tutorial. 

Github is the web-based version of git that allows users to create an account, create a git repository or become contributors to git repositories owned by other Github user. Github accounts can either be private or public. Public project accounts are free, however, to make your projects private, you either have to have a paid private account or be signed on to the free GitHub Student Developer pack. If you are currently a student, we suggest that you sign up for the free student pack, which offers many additional perks like discounted access to Amazon Web Services (AWS).

Sign up for a public Github Account here or a Student Developer account here.

Installing Git: 

To install and use git you will also have to use the terminal (command line) on your computer. The terminal is a simple text interface to your computer underlying Operating System (OS). The installation process is varies depending on whether you are running on a Mac, Windows or Linux OS.

Follow the instructions here for a detailed explanation of how to install git, and be sure to scroll to the section that is specific to your OS.

 

Github Desktop [optional]

Screen Shot 2017-02-14 at 2.41.49 AM.png

GitHub desktop is an application that provides a simple and user friendly way to manage the files in your git projects. The core benefit is that with GitHub desktop, you no longer have to manage git project files from the command line. However, Github desktop is only available for installation on Windows and Mac OS systems.

Follow the instructions below to install depending on your machine:

Mac - instructions here

Windows - instructions here

Once installed, you can sign in with the GitHub account credentials you created previously. You will then be able to see and manage all your git projects at a glance.

If you have any difficulty following the installation instructions, please comment below or write us at info.africode@gmail.com

What Trump's election means to African Techies

This post is a bit late because I needed to inhale, exhale, and then wake up to our soon to be reality. Trump will be the next president of America. This post is not intended to be political. I could not vote, so my opinions on the elections really had zero value. However, now that the dust has begun to settle in, I want you to understand the implications of Trump becoming president especially as it attains to African Techies.

Why is this important? I am glad you asked! I was talking to one of the kids I mentor in Nigeria last week, whose plans might I add is to eventually come to the US for his masters and find a good paying computer science job in the US. This kid, yes, I am calling a 6'4 tall junior in college a kid, told me he does not care about the US presidency. I was shocked. And then, it dawned on me that many people, especially international students in the US ( or eventually planning to be), do not understand how Trumps presidency might affect them so I plan to explain it to you all that in this post.

"Skilled" immigration might no longer be possible. That is to say, hiring professional coders to work for US companies, especially in the US, might be tough. Breaking it down further, if you are an international student, it might be more difficult for you to find a Job in the US. So, maybe you should start considering migrating to Canada, or moving back to Africa - no, seriously!

Silicon Valley as we know it today is built on immigrants with visa and H1-Bs. However, there are a lot of uncertainly about what Silicon Valley will look like going forward. Currently, a lot of skilled international software engineers are hired into companies like Google, Facebook, Microsoft and even smaller start-ups. Going forward, there might be laws to enforce that US citizen get first pick at these jobs. 

Additionally, you are sleeping under a rock if you don’t know how hard it is to get an H1-B visa these days. H1-B is a visa that allows US companies to hire college graduates. The US issues only 65,000 H1-Bs a year. You think that is a lot? The USCIS received 236,000 applications in the first 5 days after opening up the application last year. That means there is currently a less than 25% chance you will get a H1-B visa. Even if you start up working on OPT, there is a less that 25% chance you will remain in the US 3 years after you are done with college. Now, if Trump reduces the 65,000 cap, then, I mean, you might just be screwed.

I hope this posts opens your eyes and allows you to rethink your future and helps you plan accordingly. Obviously, there is still a lot of uncertainty, but I wanted to make I explained what might happen to you all. In the main time, read Trumps stance on immigration here.

Checking out…

What the hell is "the Cloud" and why Africa should care

I work for Microsoft and my Job is to drive Azure consumption. Azure is Microsoft's cloud.  Prior to joining Microsoft, I had no clue what it really meant to be on the cloud. Some of us have iPhones, so our first introduction to the "cloud" was probably iCloud with Apple "forcing" people to back up their data to the cloud. After working for Microsoft for 4 months, I "kinda" get it. This blog is my translation from techy jargons to human readable English.

First of all, there is no cloud, sorry to disappoint you.  According to Wikipedia, "the term cloud is used as a metaphor for the Internet, based on the cloud drawing used in the past to represent the telephone network, and later to depict the Internet in computer network diagrams as an abstraction of the underlying infrastructure it represents", if that makes sense to you. Basically, the cloud is not in the sky, as some of you might think. The cloud is on the ground - it is a set of computers (virtual machines) stored "somewhere else" (Datacenter) . For example, when you save an image to your laptop, the image exists on your laptop. However, when you save an image to the cloud, the image exists on another computer somewhere else. That is what it means to save your data to the cloud - you are saving your data to another computer somewhere else.

Why is this important to understand? First of all, it would make you look a tad-bit smart when you are talking to someone technical. Lol. Second, the cloud has made it easier than ever to get a start-up company running fast. You don’t have to buy servers anymore, companies like Microsoft can take care of all that compute while you are using the cloud. You also only pay for what you use. For instance, if traffic on your website occurs only during the weekdays, you can save a ton of $$ during the weekends and run only what is needed - this is the beauty of cloud computing.

Now, why should Africa care? The cloud can actually improve the economy of a lot of African countries. Suddenly, startups can leverage the cloud to get their product into the market faster. Hospitals can collect data about patients and store all the information to the cloud and not worry about buying massive computers. Remember, you can access the cloud from a mobile device, so having a mobile device can give you access to terabytes of data that is not necessarily stored on a phone.  I know that internet is also an issue in some parts of Africa, but with the cloud, we don’t need to worry about it too much. All you need is enough data to access the cloud, while all the other computing and processing can be done in the cloud ( "another computer stored somewhere else")

Getting started with the cloud is easy and cheap. I kid you not, with $0, you can have a website running in less than 10 mins. Get started with Azure (Microsoft's cloud)  here.

What Can You Do With A Computer Science Degree?

 

I am so excited about the Africode Mentor program! As a mentor, I get to learn a lot from my mentee and I also see gaps in the education curriculum. This week, as I spoke to my mentee, I realized he did not know the different career paths he could take with a degree in computer science. To be honest, no one sat me down and listed out the various career paths I could take when I was in college and I wish someone did. I just assumed that with my computer science degree, I would have to write code for the rest of my life. Not true at all. In fact, a degree in computer science can open doors to non-science related fields because you are inherently a problem solver. So, what can you do with a computer science degree? A Lot! Here are some of the few:

Software Engineer: Someone who writes code! Whether its front-end or back-end development, a software engineer is a problem solver and spends 70%-80% of his or her time writing code.

Program Languages:  Java (my favorite language), C++, C#, Perl, Node, JavaScript…. Famous Software Engineers: Eric Schmidt (Executive Chairman Alphabet Inc), Mark Zuckerberg (CEO and founder of Facebook),

Average Starting Salary: $72,790 annually

 

Product Manager: Someone who acts as the middle man between the engineering team and the business unit.  They are responsible for gathering requirements to make sure that a product is successful. They are called the CEO of a product. Product Managers are different at different companies. Some Product Managers code, some do not.

 

Program Languages:  Any

Famous Product Managers: Jeff Bezos, founder of Amazon, Steve Case, co-founder of AOL, Michael Dell, founder of Dell and Larry Ellison, co-founder of Oracle

Average Starting Salary: $83,293 annually

 

Business Analyst :  Someone who analyzes an organization or business domain (real or hypothetical) and documents its business or processes or systems, assessing the business model or its integration with technology.

 

Program Languages:  Any

Famous Business Analyst: Jeff Bezos, founder of Amazon, Steve Case, co-founder of AOL, Michael Dell, founder of Dell and Larry Ellison, co-founder of Oracle

Average Starting Salary: $60,000 annually

 

Network Systems Administrators: These are people that install and support an organization’s network system. They work to examine website functions to ensure performance without interruption. They also perform data backups and disaster recovery operations

Program Languages:  Any

Average Annual Salary: $75,790

 

Developer Relations/ Developer Experience: This is actually what I do - and I love it! The Developer Relations/ Developer Experience organization helps keep your company connected to the communities that love your companies technology and makes sure they are successful using your companies technology.  You work as a Developer Advocate/Technical Evangelist and your role is really to get people excited about building solutions on your companies platform. In my opinion, this role is a mixture or sales and technical strategy.

 

Program Languages:  Any

Famous Technical Evangelist: Steve Jobs (Apple Inc.), Vint Cerf (Internet), Don BoxGuy Kawasaki (Apple) Alex St. John (Microsoft), Myriam Joire (Pebble),

Average Starting Salary: $103,00 annually

 

CEO/CTO of your start up: You can create your own company!

 

Program Languages:  Java (my favorite language), C++, C#, Perl, Node, JavaScript…. etc

Famous CEO/CTO:  Mark Zuckerberg (CEO and founder of Facebook), Leah Busque (former CEO, TaskRabbit)

 

 

These are just a few things you can do with a computer science degree. You can also end up being a Researcher, a Professor, a Teacher, a Consultant and even a Technical Strategist. The world is your oyster with a degree in computer science.