The Toolkit activities help you navigate and investigate careers. Work through them in any order.
Right arrow icon
Go back to Careers

Software Developer

  • Do you like to build things with your hands or put together puzzles?
  • Have you thought about building your own mobile application related to an interest or passion you have?
  • Have you begun to learn to code and want to learn how to turn this into a career?
  • Are you good at learning languages - and do you speak more than one language?
  • Are you looking for a way into a technology career?

Download Facilitator Guide

CLICK HERE

Software Developer could be your future career

The people who build websites and applications are called Software Developers and are engaged in writing or creating computer code. Software Developers write the code that powers the website that you see on your screen, the app on your phone, the buttons you click on, and the images that appear for you, and the text you are reading. They also built the backend of the website so that when you click on the button you go to the next page, when you return to the site your password is saved, and that the apps can connect or “talk” to each other.  Developers who can code the front end that you see and the back end are called “full stack” developers.

Do you want to learn more about how to get started as a software developer?   In this Toolkit you’ll explore what Software Developers do and how you can get a job in the field. There are activities for you to figure out whether you enjoy this kind of work. If you persist through the activities, you’ll realize that this may be a good career path for you.  A Junior Software Developer can be your entry point to a tech career.

Want to get started?

Building software starts with thinking through logically how you want your application to work and doing some planning before you begin building. Every single detail needs to be thought through and planned.

Remember when you signed up to use this Toolkit?  You went to a sign up page which had fields for you to enter and a button that brought you to the pages, like this one.

This Sign Up page is the result of detailed planning and design by a software developer. You can try this yourself.

Sneaker Newsletter

Let’s say you have a passion for high top sneakers.  Your dream is to build a mobile or web application that allows users to receive your newsletter on sneakers where you talk about the latest brands, styles and features.  Eventually you may want your web application to become an online sneaker store that you manage.

To get started with your newsletter you’ll need to create a user sign up page.

Directions
Below you will find some typical “fields” used to create a customer sign up form for your newsletter.  Move the blocks of “fields” around to create a user sign up screen.  You can delete fields you don’t think you need.  You can do this planning exercise using pencil and paper.

Read More

Want to get started?

Building software starts with thinking through logically how you want your application to work and doing some planning before you begin building. Every single detail needs to be thought through and planned.

Remember when you signed up to use this Toolkit?  You went to a sign up page which had fields for you to enter and a button that brought you to the pages, like this one.

This Sign Up page is the result of detailed planning and design by a software developer.  You can try this yourself.

Sneaker Newsletter

Let’s say you have a passion for high top sneakers.  Your dream is to build a mobile or web application that allows users to receive your newsletter on sneakers where you talk about the latest brands, styles and features.  Eventually you may want your web application to become an online sneaker store that you manage.

To get started with your newsletter you’ll need to create a user sign up page.

Directions
Below you will find some typical “fields” used to create a customer sign up form for your newsletter.  Move the blocks of “fields” around to create a user sign up screen.  You can delete fields you don’t think you need.  You can do this planning exercise using pencil and paper.

Here’s an example of a sign up page for your newsletter that uses all the fields:

Here’s an example of a sign up page for your newsletter that is super simple:

Which example do you prefer and why? How will you design and organize the sign up fields for your newsletter? What fields will you need for your sneaker newsletter? Design this first using pencil and paper.

Build your own website or app

Today software development is changing and you can get started in the field without knowing complicated coding languages through the use of no-code and low-code tools. These tools typically provide a “drag and drop” interface that allows you to map the flow of the software you are building. For example, with the no code platform bubble.io -  https://bubble.io/ - you can create a simple customer sign up page through an interface like the one shown below. When you drag and drop the parts of your software into a logical workflow, the software writes the code for you. 

Directions:

  • Create a free account on bubble.io (https://bubble.io/) Follow the steps to sign up for a free account.
  • Use the tools to create the customer sign up page for your Sneaker Newsletter based on the sketch you already created.

Do you enjoy doing this kind of work? Are you good at it?

As you can see, software development is all about thinking about how things work or how you might make things work. There is never a single, right answer, so software development requires logical thinking, analysis, trial and error and a passion for building things and seeing them work! Software developers often take great pleasure and joy in seeing other people use the software they build and deliver.

No matter how much time you spend on these activities, they give you an understanding of whether you would enjoy tackling these kinds of challenges everyday. This could be your future career in Software Development.

Meet a few Professionals who work in the Field

Here are some ‘day in the life’ stories you can read about people in the Software Developer field:

Nelson
Jenny Rogers
GOOGLE
TJ
Jenny Rogers
GOOGLE
Singh
Jenny Rogers
GOOGLE
Laylah, Alvin & Tru
Jenny Rogers
GOOGLE
Jeremiah
Jenny Rogers
GOOGLE

Understand the Business

Software development is a very entrepreneurial field.  Anyone can build an app and deploy it in the app store. After all, Mark Zuckerberg started Facebook in his college dorm room as a way to connect with friends.  And Tope Awotona built a scheduling app that grew into a billion dollar company called Calendly. At age 19, Sofia Ongele built an app called Redawn to help victims of sexual violence.  Building an app that serves a purpose and bootstrapping it as an entrepreneur is unique in the tech field.  And remember that Tope and others have had many app design ideas that weren’t successful before hitting it big.

Even if you’re not a successful entrepreneur, software development jobs are in high demand. Today’s businesses cannot exist without software.  Software developers do everything from building the apps and websites that market to customers, to back end business portals, to the customer facing tools where people interact with the company.  There is a huge shortage of skilled talent in this area.

The field of software development has been around for decades but continues to evolve and new advances continue to emerge. There are many different types of programming languages and software developers often find they have preferences for different languages and styles.

There is no definitive standard on technology job titles so different organizations use different terms and titles to describe the same or similar job categories. Here are some common terms that are often used interchangeably. When considering positions or looking at job postings, don't get frustrated if the terms are different. Here’s a quick guide to some common terms:

  • Programmer / Developer / Engineer - these are essentially the same. They refer to the ability to write code.
Read More

Understand the Business

Software development is a very entrepreneurial field.  Anyone can build an app and deploy it in the app store. After all, Mark Zuckerberg started Facebook in his college dorm room as a way to connect with friends.  And Tope Awotona built a scheduling app that grew into a billion dollar company called Calendly. At age 19, Sofia Ongele built an app called Redawn to help victims of sexual violence.  Building an app that serves a purpose and bootstrapping it as an entrepreneur is unique in the tech field.  And remember that Tope and others have had many app design ideas that weren’t successful before hitting it big.

Even if you’re not a successful entrepreneur, software development jobs are in high demand. Today’s businesses cannot exist without software.  Software developers do everything from building the apps and websites that market to customers, to back end business portals, to the customer facing tools where people interact with the company.  There is a huge shortage of skilled talent in this area.

The field of software development has been around for decades but continues to evolve and new advances continue to emerge. There are many different types of programming languages and software developers often find they have preferences for different languages and styles.

There is no definitive standard on technology job titles so different organizations use different terms and titles to describe the same or similar job categories. Here are some common terms that are often used interchangeably. When considering positions or looking at job postings, don't get frustrated if the terms are different. Here’s a quick guide to some common terms:

  • Programmer / Developer / Engineer - these are essentially the same. They refer to the ability to write code.
  • Web Developer / Software Engineer - these are sometimes used interchangeably - but there are some differences:
    • Web developers build websites - they use code to achieve the right functions and the design they want on the web
    • Software engineers typically build programs, apps and software - not only websites - but they can also build websites
  • Applications Developer - these refer to programmers who build applications like Salesforce, Zoom, AirBnB or Facebook
  • Front End / Back End / Full Stack Engineer:
    • Front End refers to customer facing features on a website or app - the buttons, images, text fields. These are built using HTML, CS and Javascript among others. These are common front end coding languages.
    • Back End refers to how the website or app communicates with servers which host the site or app, how data is collected, stored and managed when you interact with the site.  These are built using Ruby, PHP and Python among others. These are back end coding languages.
    • Full Stack refers to front end and back end. Full stack developers guide the user and data flow.
  • Software Architect - this is a lead position focused on decisions around function and design. A software architect usually has experience building websites in different technologies and different settings and has typically worked as a full stack developer.

Software Developers may work alone, but they are not the only people responsible for all that goes into the development of an app or website. The work of Software Developers is informed by - and informs - many of the careers you can learn about in this Toolkit.

  • UX Designers. Software Developers often receive designs from UX Designers and use the designs to program actions and write code.
  • Business Analysts. They interface with the customer, gather requirements. The Software Developers create code from these requirements.
  • Project Managers. They manage the client or person requesting the software. They communicate with Software Developers to create estimates for how long work will take, negotiate deliverables and keep the project on track and on time. 
  • Customer Success Managers. They work with customers once software is implemented to see that it’s being used properly and that customers are satisfied with the functionality. They gather and relay feedback to Software Developers.
  • Cybersecurity Analysts - They review the code to make sure it is secure and cannot be exploited or harmed by a hacker. Sometimes software will be “run through” a series of tests to make sure it’s secure and Software Developers will have to adjust code to make it more secure.
  • Database Developers - Virtually all data collected in software is housed in a database.  Database developers build a model for how to house and store the data for optimum use and will often create the database so it is available for Software Developers to store the data they are collecting. In smaller shops, Software Developers sometimes design and build their own databases.
  • ETL Developers - Sometimes the data loaded in ETL jobs will need to be retrieved by Software Developers so these roles may need to work together.  Sometimes Software Developers are also asked to write ELT code since this is essentially still writing code – just with a different purpose - which is to load data on a specified schedule.

An emerging trend: No Code / Low Code Software Development

With the emergence of low-code platforms, software development has become more automated.  There is less repetition required and less chances of human error in coding. Drag and drop interfaces replace the need to code and complex transactions are easily processed using automated tools.  Developing apps and web tools can be done with much greater speed using Low Code platforms.  By 2024 Gartner predicts that over 600% of all enterprises will be built using low code platforms.

How will this change the business?

  • It makes it easier to enter the field of software development.    Anyone who stands up a website using a low code platform is called a citizen developer.  Citizen developers can build apps with little technical background - just by learning to use a platform like Bubble or Webflow or Wix, and having strong problem solving skills. To learn more about citizen developers - and become one yourself - check out this video: https://www.youtube.com/watch?v=9CM_3HyIFkY
  • The field of software development continues to evolve and become easier. In many ways this tracks with the evolution of hardware. As hardware has become cheaper and smaller, software has evolved. The field of DevOps considers hardware as code and automates the creation and management of hardware through code.

Want to get started right now?

Plan a digital marketing campaign!

Create your own idea for a service or product you want to sell. It could be babysitting or dog walking, selling music you’ve recorded, artwork you create, or a special dish you invented. Anything!

Directions:  Follow these steps which are the basic building blocks of any digital marketing plan. Link to this PDF to keep track of your work.

Would you enjoy doing this every day?

No matter how much time you spend on these activities, you should get an understanding of whether you would enjoy tackling these kinds of challenges everyday.  This could be your future career in Digital Marketing.

Where you can work

  • The differences are the amount of work, the number of clients, available resources, etc.
  • Working for an agency may mean working on many projects at a time, with lots of resources to create content. You might be one of several digital marketing professionals providing specialized talents like search engine optimization (SEO), pay-per-click (PPC) advertising, and automated email marketing.
  • In-house marketers provide digital marketing services to only one company, their employer. This means managing all aspects of the department’s digital marketing function. You might work on a marketing team with two or three other marketing managers such as a social media manager or a content marketing manager, collaborating on marketing projects. You all would report to the Director of Marketing or Vice President of Marketing and support other departments with their marketing and communications needs.

Digital marketing professionals can work in three different areas:

In-house

Agency

Freelance

  • As a freelance digital marketing professional, you might not have the resources of an agency or in-house marketing. But you will have more personal interest in your work. This means building more robust, direct relationships with clients and more long-term business prospects.

The Job Outlook

Because so much of what we do is online, Software Developers are in very high demand, and this is a good way to enter the field of technology. Whether you are working for a finance company, hospital or nonprofit, software developers are needed. 

The US Department of Labor considers Software Development as a Bright Outlook occupation - jobs are likely to continue to be in demand. It is estimated that by 2024 there will be a shortage of half a million software engineers in the United States, according to Forrester.

Salaries range on average between $64k - $168k per year depending on where you work.

Career Paths

Many people start their career as a Junior Web Developer or Junior Software Developer.  

Software development is often a solitary job but within a work setting, Junior Software Developers will typically work as part of a team under the direction and supervision of a more senior Software Engineer. Their responsibilities can include writing and building scripts, resolving bugs and documenting issues, implementing discrete features, etc. They make sure that the website or app is functioning smoothly

In larger organizations, Junior Software Developers may be a part of a team that interacts with other Developers, Business Analysts, Project Managers, infrastructure engineers, and Quality Assurance testers. In smaller organizations, developers may end up serving some of these roles themselves in order to build software and generate code.  The benefit of being a part of a larger team is having the chance to learn different IT disciplines from other IT professionals including collaborating with other developers on code. The benefits from working in a smaller organization or on your own is that you get to work more independently but you need to learn the other aspects of software delivery.

A Junior Software Engineer follows a path to a Software Engineer and a Senior Software Engineer, with increasing responsibility and system oversight.

A Junior Software Engineer can lead to other paths such as Project Managers, or Business Analysts or specialists in IT, Cybersecurity or application development.

To find out more about junior software developers and see a career ladder, click here
https://www.zippia.com/junior-software-engineer-jobs/

Companies advertise for Software Developers using many titles, but they all perform similar roles. Some titles include:

  • Application Developer or Engineer
  • Web Developer
  • Frontend Developer or Engineer
  • Backend Developer or Engineer
  • Web Services Developer or Engineer
  • Integration Developer or Engineer
  • Full Stack Developer or Engineer

Skills to Pay the Bills

Skills that you bring to the table and will help you succeed in the role:

Jigsaw puzzle illustration
Sometimes you like to work alone. Sometimes you like to collaborate.

You should like to work on your own but also ask questions and validate your ideas by doing research and collaborating with others.  You should enjoy contributing to team projects and being open to collaborating with others, sharing ideas and doing your part to get things done.  Communication is an essential skill to being on a team - and that includes asking questions and saying what you need to do your work.

Programming settings search illustration
You are detail  oriented.

Every little typo can lead to a 404 error message.  Software engineering is like getting into the details, breaking down tasks into small parts, and being very accurate with your work.  Programming is logical and if you are good at logical thinking, languages and finding patterns you will take to it easily.

Three hands thumbs up illustration
You can persist through challenges.

Software Engineering is problem solving and finding creative solutions to challenges that seem so complex at first.  You should be the kind of person who works through a challenge and doesn’t give up easily, even if you’ve made a mistake.

Workflow illustrations
Speaking more than one language is valuable

People who speak multiple languages can pick up programming easily as these are transferable skills.

Find out what skill you will learn

There are literally hundreds if not thousands of programming languages and new ones are emerging all the time. Tech companies like Google and Facebook will often create new languages and tools that are adopted by programmers all over the world. This code is often housed in what’s called a “code repository.”  One of the most famous is GitHub.  You can find more about it here: https://education.github.com/

In general, certain types of languages might be better suited for certain tasks than others. For example, if you are doing a simple, one-time task, you might write a simple script, a macro or a procedure and these could be written in a variety of languages (most likely a “lighter weight” language). Additionally, some languages require more overhead and need to be “compiled” before they can be run. In essence, this requires more steps to actually make your work functional and see the results.

There is no official classification of languages but generally speaking, programming languages can be scripting languages, procedural or object oriented and some languages are harder to learn and take longer. Think of this like algebra is easier for some people to learn than others and one person may prefer algebra to geometry or vice versa.

Languages also have their own specific “syntax” or format that you have to learn and adhere to.

All of this can be a bit daunting but a really good place to start is just with a simple, popular, widespread place. Two that you can start with are HTML and SQL.

  • HTML stands for HyperText Markup Language. In any web browser, and on any web page, you can hold down “Cntrl-U” and it will View the Page Source. This is HTML. HTML is more of a markup language and most don’t consider it a programming language but it is the backbone of the Internet so it’s good to learn and know about. See HTML on Wikipedia for more info
  • Another baseline tool is SQL.  SQL stands for Structured Query Language.  SQL is one of the oldest and most pervasive languages and is widely used in many companies today.  There is a particular syntax and format but in general, it allows you to do thinks like select, display, sort and take other actions. You can also add to these actions “conditions” for example:  IF it’s today’s date, THEN display the train times.  This would obviously require that you had access to train time data in order to return these results.  Another example would be, IF the user clicks on this button THEN display a popup window.  This is a very simplistic way to think about how programming languages work and where to start.  SQL is a great language to start with to learn the basics and it is used in companies all over the world.
Read More

Find out what skill you will learn

There are literally hundreds if not thousands of programming languages and new ones are emerging all the time. Tech companies like Google and Facebook will often create new languages and tools that are adopted by programmers all over the world. This code is often housed in what’s called a “code repository.”  One of the most famous is GitHub.  You can find more about it here: https://education.github.com/

In general, certain types of languages might be better suited for certain tasks than others. For example, if you are doing a simple, one-time task, you might write a simple script, a macro or a procedure and these could be written in a variety of languages (most likely a “lighter weight” language). Additionally, some languages require more overhead and need to be “compiled” before they can be run. In essence, this requires more steps to actually make your work functional and see the results.

There is no official classification of languages but generally speaking, programming languages can be scripting languages, procedural or object oriented and some languages are harder to learn and take longer. Think of this like algebra is easier for some people to learn than others and one person may prefer algebra to geometry or vice versa.

Languages also have their own specific “syntax” or format that you have to learn and adhere to.

All of this can be a bit daunting but a really good place to start is just with a simple, popular, widespread place. Two that you can start with are HTML and SQL.

  • HTML stands for HyperText Markup Language. In any web browser, and on any web page, you can hold down “Cntrl-U” and it will View the Page Source. This is HTML. HTML is more of a markup language and most don’t consider it a programming language but it is the backbone of the Internet so it’s good to learn and know about. See HTML on Wikipedia for more info
  • Another baseline tool is SQL.  SQL stands for Structured Query Language.  SQL is one of the oldest and most pervasive languages and is widely used in many companies today.  There is a particular syntax and format but in general, it allows you to do thinks like select, display, sort and take other actions. You can also add to these actions “conditions” for example:  IF it’s today’s date, THEN display the train times.  This would obviously require that you had access to train time data in order to return these results.  Another example would be, IF the user clicks on this button THEN display a popup window.  This is a very simplistic way to think about how programming languages work and where to start.  SQL is a great language to start with to learn the basics and it is used in companies all over the world.

Once you learn one programming language, you will find similarities and differences between the languages, just like there are similarities between English and Spanish. Also, programming languages are often “derivative” of other languages – meaning that a new language emerged from an old one and was improved upon over time. Languages are always evolving and becoming better and easier.

https://en.wikipedia.org/wiki/SQL

How can you learn these skills - for free?

Bootcamps and apprenticeships are a good way to learn because you will be part of a cohort and learn to work in a team, and the skills you learn will be relevant and up-to-date to what employers are hiring for now.

There are many programs to research. These are two examples of the many tuition-free programs to learn these skills and prepare for a job as a junior developer:

  • Multiverse - a 15 month paid apprenticeship in which participants are introduced to the Software Development life cycle, building an application in Javascript and then rebuilding it in a second language. Technical skills are learned and applied in the business where the apprentice is working, and industry coaches provide technical support and professional development. Multiverse is currently operating in NYC. Learn more here.
  • Per Scholas - a 15 week tuition free hybrid bootcamp (in-person and online) in which participants learn Javascript, Front End and Back End frameworks, as well as data structures and algorithms. Technical skills are learned through applied projects and participants receive professional coaching and support for technical interviews. Per Scholas partners with national employers for job placement. Per Scholas operates in 15 cities around the US.  Learn more here.

In the field of Software Development there are no industry recognized certifications. It is a field where you show what you know by building a portfolio of products and showing off what you have done. To get hired for any job in Software and Web Development your employers or clients that want to hire you, will want to see what you have done. So get started now.

Review a Job Description

Job Descriptions are the way a company recruits and hires talent. You can learn a lot from a Job Description about the skills and qualifications you need to prepare for the job.  Even if you are not ready to apply for a job now, learning to read the Job Description can help you prepare for what you need to learn after high school.

This company (name withheld) is hiring a Junior Web Developer. This is an entry level job. Read the job description and take note of all the skills you need to apply for the job. As you read, look for the technical skills that you will need to learn, and the human behavior skills that you are already good at.

Two sheets of paper.
GET PREPARED

Make Your Plan

Be ready to apply to this job in a few years by writing a paragraph of less than 250 words explaining why you want the job and why you will be a good fit for the company.

In your paragraph, include:
  • Why you want to pursue a career in IT and specifically what aspects of the job interest you
  • What skills you bring that will be an asset for this kind of job
  • What skills you need to learn after high school
  • What is the career path you see for yourself in the future?

Keep this paragraph as part of your career plan.

Find Your Tech Career
What do you Like?
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Cybersecurity
Games, Puzzles, Fixing Things
Numbers, Solving Gnarly Problems
Cybersecurity specialists are responsible for protecting our digital spaces. They defend against cyber criminals who attempt to destroy data, etc.
Visit Now
A greater than sign
Project Management
Working with People
Project Managers are responsible for making sure the project runs on time, on budget & to the customer’s satisfaction.
Visit Now
A greater than sign
UX Design
Art, Design, Social Media
Learning Languages, Apps
User Experience (UX) Designers are people who design many of the products we use - physical objects, websites, apps, games, etc.
Visit Now
A greater than sign
Customer Success Management
Working with People
Customer Success Managers make sure customers are satisfied with a product or service
Visit Now
A greater than sign
Data Analyst
Numbers, Solving Gnarly Problems
Data analysts use data to answer business questions and solve problems. Data can be used to tell a story and change the way we do things.
Visit Now
A greater than sign
ETL Developer
Games, Puzzles, Fixing Things
Numbers, Solving Gnarly Problems
ETL Developers extract data from one source to another
Visit Now
A greater than sign
IT Support
Working with People
Games, Puzzles, Fixing Things
Learning Languages, Apps
IT Support manages problems relating to hardware and software
Visit Now
A greater than sign
Digital Marketing
Working with People
Art, Design, Social Media
Learning Languages, Apps
Digital Marketers attract attention to a product or service
Visit Now
A greater than sign
Business Analyst
Working with People
Art, Design, Social Media
Business Analyst perform an important function of "translating" between business and technology teams.
Visit Now
A greater than sign
Software Developer
Art, Design, Social Media
Learning Languages, Apps
Games, Puzzles, Fixing Things
The people who build websites and applications are called Software Developers and are engaged in writing or creating computer code.
Visit Now
A greater than sign
Product Manager
Working with People
Numbers, Solving Gnarly Problems
Art, Design, Social Media
Visit Now
A greater than sign
Machine Learning Engineer
Games, Puzzles, Fixing Things
Numbers, Solving Gnarly Problems
Visit Now
A greater than sign