Courses Learn Blog Contact
Get Started →
Lesson 2

Who Are You As a Developer?

Explore developer career paths in Africa, including employed, freelance and remote options, to determine which path suits you best.

Frontend Development Month 1: HTML, CSS & Tailwind 14 min read Free

Webbo3 Frontend Development · Month 1 · Lesson 2

Who Are You As a Developer?

Explore developer career paths in Africa, including employed, freelance and remote options, to determine which path suits you best.

Who Are You As a Developer? — lesson cover

As you start learning to code, you might be wondering what your future career as a developer will look like. You may have heard terms like "employed", "freelance", and "remote" thrown around, but not really understood what they mean or which path is right for you. You might be asking yourself questions like "Do I want to work for a company or be my own boss?", "Can I really work from home in my pajamas?", or "How much money can I actually make as a developer?". These are all important questions, and having a clear understanding of your options will help you make informed decisions about your career.

By the end of this lesson, you will be able to describe the kind of developer you are becoming and choose between the employed, freelance, and remote paths with clear eyes about what each one demands. You will understand the pros and cons of each option and be able to make a decision that aligns with your goals, lifestyle, and priorities. You will also be able to communicate your career aspirations to others, whether it's to a potential employer, a client, or a friend. This is an important step in your journey as a developer, as it will help you focus your learning and stay motivated.

It's worth noting that there is no one "right" path, and many developers choose to switch between employed, freelance, and remote work at different stages of their careers. What's most important is that you understand your options and make a choice that works for you. In this lesson, we will explore the different paths in more detail, discussing the benefits and drawbacks of each, and providing you with the information you need to make an informed decision about your future as a developer. We will also discuss common mistakes that beginners make when choosing a path, and how to avoid them.

What you need before starting

Everything from the previous lesson, and the project folder you have been building in. Work along in your own editor as you read — this lesson is written to be typed, not skimmed.

The African Tech Market as it Actually is in 2026

Current State of the Market

The African tech market is growing rapidly, with many opportunities for developers to create innovative solutions. In 2026, the market is characterized by a high demand for digital services, including e-commerce, fintech, and healthtech. Many African countries are investing heavily in digital infrastructure, including high-speed internet and mobile networks. This has created a fertile ground for developers to build and deploy their applications.

Key Trends and Opportunities

Some of the key trends and opportunities in the African tech market include:

  • Mobile-first development: With many Africans accessing the internet through their mobile devices, it's essential to prioritize mobile-first development.
  • Localization: Building applications that cater to local needs and languages is crucial for success in the African market.
  • Payment systems: Developing secure and reliable payment systems is essential for e-commerce and fintech applications.

These trends and opportunities should inform your decision on what to build this year.

How Your Choice Changes What You Should Build This Year

Identifying Your Niche

As a developer, it's essential to identify your niche and build applications that align with your interests and skills. For example, if you're interested in healthcare, you could build a web application that helps patients book appointments with doctors. Let's consider a simple example of a web application that allows users to book appointments:

HTMLExample and result
// appointment.html
<p>Book an appointment:</p>
<input type="text" id="name" placeholder="Name">
<input type="datetime-local" id="appointment-time" placeholder="Appointment Time">
<button onclick="bookAppointment()">Book</button>

// appointment.js
function bookAppointment() {
  const name = document.getElementById("name").value;
  const appointmentTime = document.getElementById("appointment-time").value;
  console.log(`Appointment booked for ${name} at ${appointmentTime}`);
}
Result

In this example, we have an HTML file (`appointment.html`) that contains a simple form for booking an appointment, and a JavaScript file (`appointment.js`) that handles the form submission. The `bookAppointment` function retrieves the user's name and appointment time from the form fields and logs a message to the console.

Common Mistakes to Avoid

One common mistake beginners make is forgetting to check if the user has entered valid input before submitting the form. For example, if the user leaves the name field blank, the application will still log a message to the console with an empty name. To avoid this, you can add input validation to ensure that the user has entered valid data. For instance:

JavaScriptExample — try it in your editor
// appointment.js (updated)
function bookAppointment() {
  const name = document.getElementById("name").value;
  const appointmentTime = document.getElementById("appointment-time").value;
  if (name === "" || appointmentTime === "") {
    console.error("Please fill in all fields");
  } else {
    console.log(`Appointment booked for ${name} at ${appointmentTime}`);
  }
}

In this updated version, we check if the name or appointment time fields are empty before logging the appointment details to the console. If either field is empty, we log an error message instead. This helps prevent invalid data from being processed by the application.

Who Are You As a Developer? — illustration

The Three Roads: Employed, Freelance, Remote

Employed Developers

As an employed developer, you work for a company and receive a monthly salary. This road offers stability, as you know how much you will earn each month. However, your income growth may be limited by the company's budget and your role in the company. Employed developers often have access to training and resources, which can aid in skill growth. The speed of projects can be slow due to bureaucracy and multiple layers of approval.

For example, let's say you are an employed developer at a company called Webbo3, and you are working on a project to create a simple calculator. The code for this calculator might look like this:

JavaScriptExample — try it in your editor
function add(num1, num2) {
  return num1 + num2;
}

function subtract(num1, num2) {
  return num1 - num2;
}

function multiply(num1, num2) {
  return num1 * num2;
}

function divide(num1, num2) {
  if (num2 !== 0) {
    return num1 / num2;
  } else {
    return "Error: Division by zero is not allowed";
  }
}

console.log(add(5, 3));  // Outputs: 8
console.log(subtract(5, 3));  // Outputs: 2
console.log(multiply(5, 3));  // Outputs: 15
console.log(divide(5, 3));  // Outputs: 1.6666666666666667

A common mistake beginners make when writing functions like these is forgetting to handle edge cases, such as division by zero. In this example, we check if the second number is zero before performing the division to avoid an error.

Freelance Developers

As a freelance developer, you work on a project-by-project basis with different clients. This road offers flexibility and potentially higher income, as you can choose your projects and rates. However, it also comes with instability, as you may not have a steady stream of clients or income. Freelance developers must be proactive in seeking out new projects and marketing themselves to potential clients. The speed of projects can be faster, as you are often working directly with the client to deliver the project.

Finding freelance work can be challenging, and it's essential to have a strong portfolio and network to find new clients. As a freelance developer, you may need to write code that can be used in different projects, such as a reusable function to format dates.

Remote Developers

As a remote developer, you work for a company, but you do not have to be physically present in the office. This road offers the benefits of being employed, such as stability and access to training, while also providing flexibility in your work arrangement. Remote developers can work from anywhere, as long as they have a reliable internet connection. The speed of projects can be similar to that of employed developers, as you are still working with a team and following the company's processes.

Remote developers often use collaboration tools, such as GitHub, to work with their team members. For example, you can create a GitHub repository for your project and use it to track changes and collaborate with others.

Writing a Developer Identity Statement

What is a Developer Identity Statement?

A developer identity statement is a brief statement that describes who you are as a developer, what you do, and what you are passionate about. It's a way to introduce yourself to others in the development community and to potential clients or employers. Your identity statement should be concise, clear, and authentic, reflecting your values and goals as a developer.

When writing your developer identity statement, consider what makes you unique as a developer. What are your strengths and weaknesses? What kind of projects do you enjoy working on? What are your long-term goals as a developer?

Example of a Developer Identity Statement

Here's an example of a developer identity statement:

CodeExample — try it in your editor
"I'm a frontend developer with a passion for creating user-friendly and responsive web applications. I'm excited about the opportunity to work on projects that make a positive impact on people's lives. I'm currently learning about accessibility and inclusive design, and I'm looking forward to applying these skills in my future projects."

This statement is concise, clear, and authentic, reflecting the developer's values and goals. It also highlights their strengths and areas of interest, making it easier for others to understand who they are and what they can offer.

  • Be honest and authentic in your statement
  • Highlight your strengths and areas of interest
  • Keep it concise and clear
  • Use it as an opportunity to introduce yourself to others in the development community

What Employers in Lagos, Nairobi and Accra Screen For

Local Market Demands

When applying for frontend development jobs in cities like Lagos, Nairobi, and Accra, employers typically screen for a combination of technical skills and local market knowledge. They look for developers who can build fast, efficient, and user-friendly applications that cater to the local audience. This includes understanding the local culture, language, and internet infrastructure. For instance, a developer in Lagos might need to optimize their application for slower internet speeds and smaller screen sizes, as these are common in the region.

Technical Skills

Employers in these cities often require developers to have a strong foundation in HTML, CSS, and JavaScript. They also look for experience with popular frameworks and libraries like React, Angular, or Vue.js. To demonstrate this, let's consider a simple example of a frontend application that displays a list of items:

HTMLExample and result
// items.js
const items = [
  { id: 1, name: 'Item 1' },
  { id: 2, name: 'Item 2' },
  { id: 3, name: 'Item 3' }
];

// function to render the items
function renderItems() {
  const itemList = document.getElementById('item-list');
  const itemHtml = items.map(item => {
    return `<li>${item.name}</li>`;
  }).join('');
  itemList.innerHTML = `<ul>${itemHtml}</ul>`;
}

// call the render function
renderItems();
Result

In this example, the code defines an array of items and a function `renderItems` that renders the items as an unordered list in the HTML document. The `renderItems` function uses the `map` method to create a new array of HTML strings, which are then joined together and assigned to the `innerHTML` property of the `item-list` element. A common mistake beginners make here is forgetting to call the `renderItems` function, or calling it before the DOM is fully loaded, resulting in a `null` reference error. To spot this mistake, look for error messages in the browser console that indicate a `null` or `undefined` reference.

Who Are You As a Developer? — illustration

What Remote Clients Screen For

Global Market Demands

Remote clients, on the other hand, often screen for a broader range of skills, including experience with agile development methodologies, version control systems like Git, and collaboration tools like Slack or Trello. They also look for developers who can work independently, manage their time effectively, and communicate clearly with team members across different time zones.

Technical Skills

Remote clients typically require developers to have a strong foundation in frontend development principles, including responsive design, accessibility, and performance optimization. They also look for experience with modern frontend build tools like Webpack, Babel, or Rollup. To demonstrate this, let's consider an example of a simple frontend application that uses Webpack to bundle and serve the code:

JavaScriptExample — try it in your editor
// webpack.config.js
const path = require(&#x27;path');

module.exports = {
  entry: &#x27;./index.js',
  output: {
    filename: &#x27;bundle.js',
    path: path.resolve(__dirname, &#x27;dist')
  }
};

In this example, the code defines a Webpack configuration file that specifies the entry point of the application (`index.js`) and the output file (`bundle.js`) that will be generated by Webpack. The `path` module is used to resolve the absolute path of the output directory. A common mistake beginners make here is forgetting to install the required dependencies, including Webpack and its loaders, or configuring the Webpack file incorrectly. To spot this mistake, look for error messages in the terminal or command prompt that indicate a missing dependency or invalid configuration.

Do this now

To write your one-paragraph developer identity statement, follow these steps. This exercise should take about 10-15 minutes to complete, depending on how much thought you put into your statement. Here's how to do it:

  1. Think about the path you want to aim at as a developer. For example, do you want to be a frontend developer, backend developer, or full stack developer?
  2. Choose one concrete reason why you want to follow this path. This could be something like "I want to build user interfaces that are easy to use" or "I want to work with databases to store and manage data".
  3. Write a paragraph that includes your desired path and your reason for choosing it. Be honest and clear in your statement.
  4. Review your paragraph to make sure it makes sense and is easy to understand.
  5. Post your paragraph in your pod group so you can share it with your peers and get feedback.

Remember, this is not a test, and there are no right or wrong answers. The goal is to help you clarify your thoughts and goals as a developer.

How to know you got it right

To verify that you've completed the exercise correctly, check the following:

  • Does your paragraph clearly state the path you want to aim at as a developer?
  • Does your paragraph include one concrete reason why you want to follow this path?
  • Is your paragraph easy to understand and free of grammatical errors?
  • Have you posted your paragraph in your pod group?

If you can answer "yes" to all of these questions, then you've successfully completed the exercise.

Common mistakes

  • Not taking the time to reflect on their goals and motivations. This looks like rushing into coding without a clear idea of what they want to achieve. It happens because beginners are eager to start coding and see results. The fix is to schedule time for self-reflection and write down their goals and motivations in a journal or document, like my_developer_goals.txt.
  • Comparing themselves to others instead of focusing on their own progress. This looks like constantly checking social media for other developers' achievements. It happens because beginners lack confidence and want to measure themselves against others. The fix is to limit social media use and keep a progress_log.csv to track their own progress.
  • Not identifying their strengths and weaknesses. This looks like trying to learn everything at once without playing to their strengths. It happens because beginners don't know how to evaluate themselves. The fix is to take online assessments, like personality tests or coding challenges, and write down their results in a self_assessment.md file.
  • Not creating a support network of fellow developers and mentors. This looks like trying to learn alone without asking for help. It happens because beginners are afraid of looking stupid or don't know how to find mentors. The fix is to join online communities, like forums or social media groups, and attend local meetups to connect with other developers, then schedule regular check-ins with a mentor, like a monthly call to discuss their project_plan.xlsx.

Questions students ask

  1. How do I know what kind of developer I want to be? Start by listing your interests and strengths, then research different types of developers, like frontend or backend, and make a list of pros and cons in a developer_types.txt file.
  2. What if I don't have any experience or skills? That's okay, everyone starts from scratch, just begin with the basics, like HTML and CSS, and build small projects, like a personal_website.html, to gain experience and confidence.
  3. How long does it take to become a good developer? It takes time and practice, focus on making progress, not perfection, and set achievable goals, like completing a project_plan.xlsx within a certain timeframe, to stay motivated and track your progress.

Quick recap: The African Tech Market as it Actually is in 2026 · How Your Choice Changes What You Should Build This Year · The Three Roads: Employed, Freelance, Remote · Writing a Developer Identity Statement · What Employers in Lagos, Nairobi and Accra Screen For · What Remote Clients Screen For

Next lesson: How the Internet Actually Works.

Learn this with a real instructor

Free lessons take you a long way on your own. The full programmes add live classes, assignments, Skill Points and a certificate — built for African students.