Page 16

Barriers to Overcome When Learning to Code

Learning to code isn’t always easy but it’s worth it and very rewarding. Most people seem to think you have to be a genius to learn how to code but that isn’t true. It’s a never ending learning process and most beginning programmers go through the same bumps in the road along the way.

Some of the biggest hurdles we see our students run into are the following:

Which language to learn

It’s not about the language but the logic behind it. Start with one and stick to it until you’ve learned to think like a programmer.  Often the drag ‘n drop languages like Scratch or Snap! may seem to basic and easy, but it’s an amazingly effective way to learn fundamental logic.  Generate prime numbers, make a hangman game, even the old standard of Flappy Bird – these all help solidify the basics of logical thinking while making something interesting.

Beating yourself up

We all go through the same cycles of boredom, excitement, anxiety, frustration and relief. Beating yourself up will only add to your anxiety and prevent you from solving the problem. You need a cool head and an inner voice that cheers you on, not tears you down.  Sit with someone passionate who can show you technology, and do stuff that interests you and you’ll be learning in no time.

Rushing through the process

 theCoderSchool's Coder Tree

Programming is a process. Skipping steps will lead to bugs and missing key concepts. Take your time and learn to think through each step.  Take a look at our Coder Tree – it’s super important to learn the fundamental roots of programming before getting into advanced material.  You wouldn’t train to be a brain surgeon before knowing how the body works right?  Same thing with coding, you can’t start learning Artificial Intelligence and 3D Gaming until you have a good grasp of logic.

Debugging

Writing code and designing software is only part of the process. You’ll need to learn how to debug it if it doesn’t work. Lots of people get frustrated here but it’s a skill set you have to learn improve upon over time.  This is a lesson to learn in persistence, but nothing gives you that instant satisfaction like when you solved a bug and the program suddenly works.  It’s that awesome WOW and High Five moment!

If you’d like to learn more about common issues programmers face check out these helpful articles.

Learning and Improving your Debugging Skills

8 Barriers to Overcome Learning Code

5 Most Common Problems Programmers Have

Will Artificial Intelligence hate or love?

I found this great video from Google explaining how human bias can influence artificial intelligence (and a quick primer on how AI works).  Basically, it comes down to this.  As artificial as artificial intelligence may be, it’s still created by human programmers – humans who each have their own biases.  And that bias can subconsciously influence the code being written to reflect the coders’ own biases.

Let’s say James Damore (the Google engineer fired for his memo claiming men are better suited to be in tech than women – old news, I know) rounds up a bunch of his friends who feel the same way, and they create a successful AI bot.  Could that bot default to thinking that women are less important than men in tech?  If it was a chatbot and you asked it “what makes a good coder”, would it come back and say “a man”?!   Is that so far-fetched?  Damore was an engineer at Google (who does build a lot of AI), and no one really knew of his bias until his memo.  And without said memo, Damore could well be still working at Google building whatever it is he was building (side note – no idea whether Damore was involved in AI at Google).

I won’t say that’s a likely scenario by any means – just a good thought exercise.  Google and Facebook have done a lot to tamp down the fake news, the hate, the negative stuff that might influence us (and AI).  But when so many negative events like the Charlottesville violence or the Barcelona terror attacks seem to be happening more often, sometimes you just have to wonder, how will Skynet interpret it?  That humans are divisive and hateful?  Or that we we unite with love when we respond to these events?  Are we going to get the the bad Arnold from Terminator 1, or the good Arnold from Terminator 2?

What is Ethereum?

While most people are familiar with bitcoin, not many people fully understand Ethereum just yet and consider it a cryptocurrency but it’s way more than that.

Ethereum is a “decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.”-Ethereum.org.

In other words, it’s a software platform where you can build distributed applications and smart contracts. Because it’s open-ended and decentralized nature, these applications can be built without any downtime, control, fraud or interference from third parties.

The currency used on ethereum is “ether” and is sought after by developers who are interested in building applications on the platform. While it can be traded, it’s primary purpose is to run applications and monetize work.

According to Ethereum, it can be used to “codify, decentralize, secure and trade just about anything.” While still in it’s early stages (it launched in 2014), there is already a lot of excitement with how it can be used to change the world. Apps (called DAPPS) run on blockchain which allows the movement of value and the verification of property. Developers can create their own markets, business registries, promissory notes, and move funds using “smart contracts” which execute once terms are met.

You can use a similar language to Python on Ethereum to write contracts called Serpent. The language is intended to be clean, simple and easy to use which are all the things that make Python such a great introductory language.

Learn more about Ethereum here

What will blockchain be used for in the future?

E-mail is one of the very first and most popular applications that emerged from the early days of the internet. We still utilize it to this day and for good reason. It makes our lives easier and more efficient in ways we never really thought it would be. While it hasn’t completely replaced regular mail, it’s arguably much more important.

As mentioned in a previous article, cryptocurrency is just one application for the amazing applications that can be created on blockchain but it isn’t the only. Blockchain is in the position to disrupt major industries around the world. For example, “In September 2016, Barclays carried out the world’s first trade transaction using blockchain. They cut a process that normally takes 7–10 days down to less than four hours.”

IBM is working with the government of Dubai to develop smart contracts that can facilitate all trade that passes through its port. This is huge, given $344 billion worth of goods passed through the port in 2016. Dubai’s government said it plans to shift all transactions to blockchain by 2020.”

Below, we have listed some of the other industries that blockchain could quickly turn on its head.

  • Financial Blockchain offers a “secure, decentralized, tamper-proof ledger” at much less of a cost than what banks currently use to keep track of records and transactions.
  • Voting Blockchain can keep better track of votes and voter identity rendering fraudulent activity ineffective
  • Music Artists can earn royalties themselves without having to go through a record label
  • Real Estate When buying a house there are an incredible amount of paperwork to deal with. An app can cut down time and increase accuracy of the records on hand.
  • Personal Data Blockchain will allow you to control who sees your personal data and better all-around verification.

Learn more about how you can use blockchain to change the world here. You can get a head start on this new technology by learning to think like a software engineer with our after school programs.

What is Bitcoin and Blockchain?

Everyone is talking about Bitcoin or Blockchain but what is it? The best analogy I’ve read is from Sally Davies, FT Technology Reporter who said “[Blockchain] is to Bitcoin, what the internet is to email. A big electronic system, on top of which you can build applications. Currency is just one.”

The idea of Blockchain revolves around “decentralization” instead of one entity owning everything or a single point of failure,. At the very least, it will change the way we handle transactions but the potential is much greater than that. More and more people are taking the time to learn about blockchain and how to develop on the platform. Just recently, a software development platform called “ethereum” was recently that utilizes a cryptocurrency called “ether” to incentivize development.

While cryptocurrency is the most popular thing we associate with blockchain, there is a wide range of interesting uses coming up. Below, I’ve listed some but you can read a nice beginner’s guide to blockchain on blockgeeks.com.

  • Smart Contracts
  • Governance
  • File Storage
  • Protecting Intellectual property
  • Internet of Things (IoT)
  • Identity management

So, as a programmer or coder why should you even care? Blockchain is said to have the potential to change the world in a better way like the internet did when it first came out. This aligns perfectly with our mantra “learn to code. Change the world.”

You can lay the foundation for becoming a blockchain developer by learning languages like Python. “Serpent” is a language on the Ethereum platform that is made to be similar to Python.

For more detailed info mixed in with some tech, here’s an amazing article that explains the technology behind blockchain and bitcoin (and a bit of history to boot!).

Newton’s Gravity as Coded by an 11yo Student

Sometimes what the students do at our school amazes me, but one app has always stuck out in my mind.  We have a 13yo student who I’ll call LN, who’s been with us since we opened.  When he was 11, he created this incredible app he calls Gravity Crash.  LN is a big fan of physics, and it happened that his Code Coach was too – and so some pretty amazing coding ensued.

LN’s game looks and plays like a standard billiards game (which in itself is already quite hard to code in Python).  But instead of hitting the cue ball, you create what he called “gravitational anomalies” (I guess he was a Start Trek TNG fan too!) that sucks the cue ball towards it (and orbits it, if placed correctly), using newtonian physics formulas.  What?!

Take a look here, and be sure to widen the game screen so you can see the entire billiard table.  You can also open Gravity Crash in a new window.

 Newton's Law of Universal Gravitation
Newton’s Law of Universal Gravitation

 

So I want to point out that, even as a coder of 20 years, some of this would be mind-boggling for myself to write.  If you’re not a coder, just scroll through the code and you’ll be blown away.  If you’re a coder, check out how he handles collisions starting on line 171 (yep, granted, he needed some help on the vector and collision math!).  And if you’re a physicist, check out line 234, my favorite.  Break down the component parts, and [gasp!!], you have Newton’s Law of Universal Gravitation.  Let me sum that up for you, an 11 yo coded a pretty complex game in Python, and then decided to use Newtonian formulas to simulate gravity.   Niiiiiiice.

Now mind you, in our model, we have a Code Coach, directly mentoring our students – so building the app wasn’t completely unaided.  Moving the balls, collisions, even just setting up the triangle, requires some really good math knowledge.   But LN, again, an 11yo, understands how most of the code works, and coded a large part of it.  Think about how much coding AND math experience he gained coding this app.  Mind.  Blown.

via GIPHY

Is there a conspiracy in the Tech Industry?

 Learning to code, the fun way
Learning to code, the fun way

This article from Ben Tarnoff at the Guardian is one of the sillier articles I’ve read in a while, so I felt compelled to blog about it.  Tarnoff argues that code.org, an amazing organization whose mission is to get more kids coding, is actually an instrument of the tech industry to create a larger supply of future coders – thus reducing the average coders’ salaries, thus making the tech companies richer.  Um…  WHAT?!

The implication that there’s some conspiracy theory underneath teaching kids to code is laughable.  While yes, more kids coding is bound to mean more adults coding in the future, it feels irresponsible to state that corporate greed is behind this.  The real benefits of kids and coding have nothing to do with company profits, and everything to do with a more effective and smarter future generation.

So what is “coding”?  Coding is not about memorizing a language.  Coding isn’t even about knowing any kind of technology.  It’s about a way of thinking.  For kids, it’s not about “knowing Java” – after all, Java or whatever other language may well become extinct in 10 years, knowing how fast tech moves. Coding’s about teaching a mindset of procedural, logical deduction and problem solving. Coding provides a tangible (and dare I say fun!) way to learn logical problem solving skills.  Now let me ask you – in what careers might you need problem solving skills?  Every. Single. One.

Tarnoff also notes that the median salary for a CS/IT job is more than twice the national average.  I’m no economics expert, but doesn’t that mean there’s a much greater demand for that skill set than the average job?  That you’re more likely to get a job, a higher income job, as a coder?  I know there are folks out there who are coders, who may be having a tough time finding a job.  But like any other skill, there are good coders and bad coders.  Remember that just because you can code doesn’t guarantee you a job, you have to still be GOOD at it.  And as emerging tech like AI, autonomous cars, and cyber-security gain prominence, make no mistake, these require advanced coding skills.  These guys aren’t just coding a couple of loops with arrays, they are programming some insane algorithmic logic that furthers the advancement of our world.  And I can guarantee you that anyone who can code these technologies will always have a job.  A pretty high paying one, at that.  I doubt even Dr. Evil could spawn a conspiracy to mass-produce brilliant advanced coders – those guys will always be highly paid, highly sought after talent.

So is coding for kids a grand scheme by the tech elite to save money?  Not a chance.  Should every kid learn to code, so they understand tech better, and have essential skills for any career (including CS)?  Absolutely.  To his credit, the author notes that every kid should have the opportunity to learn to code, and understanding how code works is essential for digital literacy.  That, I can agree with.  The rest of the article?  Somewhere between silly and irresponsible.

A Brief History of Learning to Code

I recently ran across this super interesting blog from David Patterson over at UC Berkeley, written almost four years ago.  Take a look at the graph he and Ed Lazowska from U-Dub put together:

 Credit to David Patterson
Credit to David Patterson

To add more color to that graph, Patterson notes that “At Stanford, where more than 90% of undergrads take computer science [note this was from 2013], English majors now take the same rigorous introductory CS course as Computer Science majors.”  I don’t remember my Intro to CS course as being all that easy, so kudos to those English and Philosophy and other majors that dove in!

The fact that the movement to learn computer science, no matter your major or your future, started so long ago shows this trend has legs.  What’s happened since the end of this graph?  Plenty.  An incredibly amazing amount, in fact.  Enough for anyone to feel a little FOMO on a hockey stick:

  • codecademy and codeschool, both founded in 2011,  start the wave of online coding programs for adults (and kids!) to learn how to code.  Kahn Academy and others jump in the fray to get scalable and teach folks everywhere to code!
  • Dev BootCamp is founded in 2012, pioneering a wave of adult “Coding Bootcamps”, crash courses for adults wanting to learn to code and find a job as a developer.  Others like Hack Reactor and Hackbright Academy soon follow, leading to a new industry for training and re-training adults.  (Sadly, Dev Bootcamp is soon closing its doors).
  • Wide reaching organizations like Girls Who Code and code.org are founded in 2012 and 2013, respectively.  These organizations along with newcomers like CSforAll in 2016 have awesome reach around the country and the world in promoting the movement for kids to learn to code.
  • Between 2013-2014, physical location coding schools like U-Code, MVCodeClub, Hackingtons, and our own theCoderSchool start the party with a focus on starting kids coding at a younger age, typically as early as 7 years old.  These physical-location businesses begin sprouting multiple locations, kicking off a wave of many other smaller but growing mom-and-pop coding schools around the country and the world.
  • Kodable (2012), Hopscotch (2013), and a later comer in Scratch Jr. (2016) lead the way in iPad and iPhone apps that gamify and fun-ify learning to code for the even younger set (approx ages 4-9).
  • In 2016, coding schools like us in Silicon Valley, the Ninjas in Houston, and iCode in Dallas begin franchising their concepts to speed expansion using proven systems of teaching.

Did I miss anything?  I’m sure I did, lots more platforms and companies have sprung up in the last 4 years to teach more people to code.  Where are we going?  The only direction is up, and more (is that a direction??).

In 5-10 years, I envision coding schools around the country and the world, one down the block from wherever you live.  Not unlike kung fu studios and tutoring centers, coding schools will find their way into the fabric of all our communities sooner than you think!  And just in time, because it’s high time we all learn a little more coding to support the tsunami of tech that’s coming.  In the final words of David Patterson’s blog from 2013, “Students from all fields want to learn computer science so they can change the world.”  A quote that stands the test of time, indeed.

Code on, friends!

Learning to Code is Like Learning Music – Except When It Isn’t

 

Coding for kids is all the rage these days, but sometimes there’s an expectation that learning to code is scientific, rigorous, and static, but that’s far from the truth.  Coding isn’t about memorizing commands, or repetitive muscle memory, it’s about a way of thinking, a way to build something creatively using elements in your tool belt.  In that way, learning to code is more like learning music than learning math or science.

Coding is Creative

 Coders and Rockers
Coders and Rockers

If you listen to rock songs closely these days, you might be surprised to learn that a large number of them are made up of the same basic 4 chords.  Yet to the untrained ear, those songs sound vastly different, because of the how the chords are played, the lyrics, the rhythm, and all the other creative elements that make up a song.  Coding is no different.  While you’ll have similar foundational elements like variables, loops, and even design patterns, how the rest of the app is pieced together requires plenty of creativity to bring out its identity.  Just like Journey’s Don’t Stop Believin is based on the same chords as the Beatle’s Let It Be, apps like Candy Crush use the same basic coding elements as a completely different application like Facebook.  But just like their musical counterparts, applications rely on the creativity of the developer and how the pieces are put together, more than the formulaic elements that form the core.

Coding Has No Pre-Determined Path

Quick, who’s a better musician, Yo Yo Ma or Jimi Hendrix?  Miles Davis or Jay Z?  There’s no right answer (just awesome debates!), because they all play different kinds of music.  Coding is the same way – there’s basics for everyone to learn, but after that, should a student learn Websites?  Mobile apps?  Data Analytics?  Like musicians, coders often are exposed to a number of different styles (i.e., technologies) as they advance, in no particular order.  And when they’re advanced enough, they may dig deeper into one or another “style”.  At theCoderSchool we often use a tree as analogy to learning to code – every tree grows differently, but they’re all rooted in the same foundation.

“Practice” Is Different – but Just as Important

When students practice music (or sports, or some forms of math and science), it’s really about repetition.  HOW to do something (“put your fingers here”, or “keep your elbow in when you shoot”, or “9 x 9 = 81”) is usually the easy part.  How to do it quickly and smoothly (“play A then G”, “keep your shooting form in the game”) is often what takes practice.  It’s the repetition that makes up the practice, which turns into muscle memory.

Coding is vastly different – it’s not muscle memory, it’s a way of thinking.  Unlike music or sports, figuring out HOW to do something (what code to write) is actually the hard part.  Once the code is written, repeating it for “practice” doesn’t make sense because it already works!  Typing it in again won’t make it work any better.  And the next app may be completely different. Instead, practice is about identifying and reusing patterns of logic, ways of solving a problem (sometimes known as “Design Patterns” in software-speak).  Each app built by a student is a new and different problem to solve, with potentially multiple solutions, so the more apps a student builds, the more practice they get thinking in a certain way.

For many students, this can be harder than you might think.  With music, tell a student where to put their fingers and they can go home and repeatedly play that chord until they know it by heart.  With coding, once a student solves one problem, they’re faced with the next, and often have trouble solving it without help until they’ve practiced solving the problems enough to be able to solve the next problem on their own.

Coding’s like Music

While there’s a few differences, by and large I would argue that learning to code is much more like learning music or sports than it is like learning science or math.  The other big difference is that there’s a much bigger shortage of coders than there are of musicians or athletes.  So whatcha waiting for?  Let’s get coding.

Read about Private+Semi-Private Coaching, Virtual Learning, Coding Classes, Robotics, Python, Scratch, or Video Game Coding
or check out our student blogs. Confused about how AI will affect coding? See why the AI future still needs coding.

What is theCoderSchool? We are an after-school drop-off (and virtual) program for kids learning to code - a coding school! There's after-school kung fu. There's after-school music lessons, sports, art, tutoring, Chinese, you name it, it's out there. But coding classes for kids? Founded in 2013, we're the first of many, and the largest in Silicon Valley with more locations on the way around the country. The future will be ever more dependent on technology so let's get our young generation ready. Learn to Code, Change the World®.
Got a question? Email us at $location@thecoderschool.com!"; } else { print "

For questions about partnerships, curriculum, schedule, camps, or other operational inquires, please contact your nearest school.
For national franchise questions only, email us at info@thecoderschool.com. Please include the city/state you're writing from."; } ?>

copyright 2014-2025, the Coder School San Francisco, LLC. All Rights, Alright? Don't forget our privacy policy. Find out who we are or like us on facebook.