The late Steve Jobs once said, “Everybody in this country should learn to program a computer because it teaches you how to think.” I am inclined to edit this quote to read, “Everybody in this country should learn to program a computer because it teaches you how to think and also qualify for valuable computing jobs in software development.”
Right now, in the United States, there are more than half a million unfilled jobs in computing and technology. And those jobs are the top source of new wages in our country — which are projected to grow at twice the rate of all others.
If we are genuinely committed to preparing all learners for CS jobs, then here are three things educators can do to prepare learners for employment and career opportunities.
1. Teach learners to be designers, not end users
When learners understand the difference between being an end user and being a designer (maker, creator, doer), a light bulb turns on and motivation to learn and do increases. For designers — learning algorithmic designs, creating apps and discovering other facets of the internet — become a lot more compelling and in real-world context.
You can make this clear to students by using the analogy of being able to drive a car. End users can only drive a car from point A to point B, but if it breaks down, they cannot troubleshoot or fix it.
However, understanding how the car's systems work and how they interconnect empowers the end user with the knowledge of designers so they can pop the hood to assess, troubleshoot, diagnose and possibly even make repairs.
Unfortunately, students who know only how to use technology but don’t understand how it’s developed and created will only be end users, and end users are rarely qualified for in-demand computing jobs.
The table above lists the prospects for various STEM jobs. It’s important to break down for students the difference between the various roles that fall under software development — coders, programmers, software developers and software engineers.
Coders and programmers focus on the detail work of computer programs as it pertains to the software development life cycle (SDLC). Although both software developers and software engineers use the SDLC for organizing and solving more extensive problems, software engineers are considered the project managers and do the work of engineers by creating the specs and documentation needed by the coders/programmers.
Make students aware that both computer science and software engineering are two distinct majors in college, but both will prepare them in the CS fundamentals that are the prerequisites for careers in software development.
3. Teach kids the basics of programming and coding
To help both teachers and schools understand how software programs are created at the most foundational level, I wrote the ISTE article Computer programming in 4 steps, which is a good source for getting started in the classroom at various grade levels. Although the terms coding and programming are often used interchangeably, there is a difference between the two terms. Coding is writing code; a coder translates requirements into a programming language (JAVA, Python, C++, for example).
As an educational coach, I advise schools to keep things simple and systematic. Develop your CS/STEAM ecosystem to include the right curriculum, edtech tools and other resources to help both teachers and students develop as computational thinkers (CT), programmers and coders (in that order) to build capacity and deeper learning.
Here are some resources for getting started in CT, programming and coding:
Excellent software development and programming skills require time to develop and build expertise. Our learners will need precise practice, patience, opportunities for growth and development, mentorship and an understanding of what their career options are.
This is where we — the educators — come in. Our lessons and projects are the road maps, and we are the flashlights students need to navigate them!
Jorge Valenzuela is an educational coach and a graduate teaching assistant at Old Dominion University. He is also the lead coach for Lifelong Learning Defined, Inc.,a national faculty of the Buck Institute for Education, a national teacher effectiveness coach with the International Technology and Engineering Educators Association (ITEEA) and part of the Lead Educator program for littleBits. Jorge is also an author and frequently contributes to books, academic journals, how-to blogs, and webinars. You can connect with him on Twitter @JorgeDoesPBL to continue the conversation.