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

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?

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

Antsy to teach your kids Javascript?  Take a look at our article posted in D-Zone!

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.

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