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 HERESoftware 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.
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:
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
- 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.