3 Ways to Prepare Students for Computer Science Jobs

3 Ways to Prepare Students for Computer Science Jobs by Jorge Valenzuela

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.

Moreover, computing is a necessary skill in every field, and therefore the study of computer science (CS) should be foundational and not solely vocational in American schools.

(Code.org Promote Computer Science webpage.)

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.

2. Teach students the various CS job roles

According to the Council of State Governments, STEM jobs in both the application and systems of software development are expected to expand by more than 350,000 new positions by 2022.

(CSG “STEM Jobs” webpage. Source U.S. Department of Labor Bureau of Labor Statistics )

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.

You can help students understand this rationale with this resource by Quora. The hierarchy of the software engineering profession is also a great visual for this purpose.

The hierarchy of the software engineering profession by Kindson.

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).

Programming involves other tasks, like understanding algorithms, data structures, problem-solving (critical thinking) and conceptualizing.

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:

Give students opportunities for practice

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!

This article was originally posted on this link.

If you like this work, please give it some claps, follow our publication and share this with your friends and colleagues.

Jorge Valenzuela is a teacher at Old Dominion University and the lead coach at Lifelong Learning Defined. Additionally, he is a national faculty of PBLWorks and a lead educator for littleBits. His work is aimed at helping educators understand and implement computational thinking, computer science, STEM, and project-based learning.

You can connect with Jorge @JorgeDoesPBL via Twitter and Instagram to continue the conversation.

--

--

Jorge Valenzuela
Lifelong Learning Defined in Computer Science Education

Jorge Valenzuela is a well-regarded and nationally recognized performance and education coach, author, and speaker at Lifelong Learning Defined.