coding-on-laptop

Our world is moving at an extremely fast pace where technology is concerned, especially in the United States. Generally, this is a good thing–it’s creating more conveniences, new technologies to improve quality of life, more jobs, and so on. But, we’re running into a small problem: we need more manpower.

Here in the United States, according to the Bureau of Labor Statistics (via ComputerWorld), there are more than 500,000 unfilled computing positions (keep in mind this is only in the US, worldwide is much more vast) in various specialties–software engineering, Information Technology, Electrical Engineering (specifically the creation of hardware), and more. It goes without saying, there’s a huge demand for jobs in this field, but there’s not enough people who know how to program, administer a database, create systems to fend off cyber attacks, and so on.

So, what do we do?

Computer Science in Online Courses

udacity-logo

The overwhelming response to our lack of people skilled to take on computing jobs has been free education. And that’s the obvious response to a problem like this: offer free education for a specific field, and just maybe the people will come, learn, practice their skills, and ultimately, get a job in the computing field. Now, there’s nothing wrong with Computer Science education, except for maybe the fact that the computing education market doesn’t provide a clear path for a student and that we are lying to anyone who signs up.

freecodecamp-logo

First, the computing education market does not have a clear guideline to a job in computing. There are tons of free course and programs popping up everywhere, for free. You can find them at Khan Academy, Coursera, edX, CodeAcademy, Code School, Code.org, Udacity, Team Treehouse, FreeCodeCamp, The Odin Project, and so many more places. And while this provides ample opportunity for learning, there’s not much room for advancement – all of these places will teach you the basics of coding (excluding FreeCodeCamp and maybe Udacity), but won’t take you any farther than that.

There’s a lot of discouragement in this area. The market of getting people started in coding is so crowded, and there are not many resources for increasingly higher skill levels. And this is a good thing: students should be able to hit the web, look up documentation and try to figure out a problem on their own. But, here’s the problem: many of these courses aren’t in the business of teaching problem solving. They hand-hold until the very end (excluding a few, of course) and then drop the student off in a territory where they are not familiar.

With that said, computing educators, particularly MOOCs (Massive Open Online Courses), need to shift gears. Syntax is important, it has its place. But teaching a student how to overcome problems within programming will last that student a lifetime, giving him or her the tools to constantly adapt with new technologies and frameworks coming out. Giving students the problem solving skills within programming will create quality programmers that can bring quality to work in the jobforce.

We Need To Stop Lying To Students

coding-snippet

Another aspect that’s discouraging students from getting into the computing industry is that we’re actually lying to them. As a culture, you wouldn’t believe how many times we bang into a student’s head that coding is easy. News flash: it’s not easy in the least.

I don’t know one person that has picked up programming and instantly got it with no trouble whatsoever. We’ve all been at the bottom of the bucket, banging our heads against the walls just trying to figure out how object-oriented programming works. And even though you may make it through courses, that doesn’t necessarily mean you’re an expert. Even Senior developers have problems with code. Even they spend a large part of their time staring at piece of code, wondering why it doesn’t work and then spend a significant chunk of time trying to get that piece of code to work. In a nutshell, that’s what programming is.

But, we tell new and upcoming students the exact opposite. “It’s not difficult,” we say. Many instructional videos, even from the aforementioned educators, will tell you that coding is as easy as walking. That’s why many will be interested in the idea of coding, get plugged into an online course, and then drop a week or two later after they decided that they just don’t get it.

We need to be upfront with students. Coding is difficult, but the path to learning how to do it is so rewarding. In two, three years, being able to create a website from the ground-up on your own is an experience like no other. But, the path to get there is difficult, just like anything in life.

If we were upfront with students like that, we might just start making a dent in those 500,000 unfilled positions.

But, it doesn’t stop there. No, we actually have to solve the problem of getting people interested in computing.

The Case For Computer Science Education

If we’re going to solve this problem over the next two decades, Computer Science education needs to be introduced at an early age. It’s not something that needs to wait until a student is 16 years old or older. Fox News wrote a compelling opinion piece, titled Ensuring our nation’s security: The case for computer science education. In it, authors Hadi Partovi and Erin Siefring said:

“Cyber warfare against the United States is on the rise with numerous countries attempting to gain access into our computer networks, government and private. These attacks can occur countless times every hour from sources worldwide. Clearly, the defenses required to repel these attacks are immense and constantly evolving.

However, recent reports show that the United States is not providing the resources or opportunity for citizens to adequately fill the increasing demand for cybersecurity careers. This reality is jeopardizing the cybersecurity of our country, putting our national defense, businesses, and personal information at increased risk.”

As you can see, these unfilled positions is putting our nation at risk. But, why aren’t these positions being filled? According to the Computer Science Education Coalition, there were fewer than 43,000 computer science students who graduated from colleges and universities into the workforce.

Why is this?

I firmly believe it’s largely because we’re not introducing children K-12 to programming and what it’s all about. Here’s the problem: we’ve never had an issue like this before, computing and programming has never been this big. There are so many other things students are encouraged to be, and often, technology is left out of that picture because, well, technology like this has never been big like this until recent years.

There’s another problem with that figure as well. Learning programming from colleges and universities isn’t always the best route, as these institutions are years behind the private sector. These educational institutions aren’t keeping up with how fast the private sector is moving in technology.

That’s why it’s time to start putting it into school curriculum, introducing programming concepts to children early.

Here’s another interesting fact from a study recently published by Google, as pointed out by the Fox News article:

“Currently only 1 out of 4 U.S. schools teach meaningful computer science. And even though the number of students taking advanced placement (AP) computer science has almost doubled in the past two years, less than 10 percent of high schools in the United States teach it.”

It goes without saying, there’s not a big emphasis on computer science in schools, and that’s a problem. Already in 2016, computers run a large portion of our lives. Our vehicles are run by computer systems, we spend most of our time working or playing on a computer in some form or another, we spend a lot of time communicating on mobile computers, and so on.

It’s time that we integrate computer science education into early curriculum. We need to start teaching children of all ages how to wield this weapon of the future. And the starting place of that is putting an emphasis on it in K-12 education. How do we do this? It’s hard to say, but it’s going to take an act of Congress.

Here’s the scary part: Japan recently implemented legislation that requires every student to learn computer science. Computer science has been a robust part of K-12 education in the United Kingdom. Not only that, but even Germany is considering similar initiatives.

The United States government drastically needs to provide funding for K-12 computer science education very soon, or we will very quickly fall behind in computing in the world. It’s well past time to start teaching our children it.

And that’s not a good place to be. At all.