Kodable Road Tour: Day 10

After 2 great days in Minnesota, we headed south to Sioux City, Iowa where we spent the day with Loess Hills Elementary doing PD sessions and programming workshops with a wonderful crew!

CFn4JpsUsAEZ3um

What we learned: Connecting coding to the common core

Loess Hills spoke at length with us about their desire to continue expanding their coding curriculum, but also their plans to integrate it with the common core. We spent our PD session brainstorming and demonstrating how Kodable can be integrated with the CCSS. It also taught us the importance of making this connection easier in Kodable, and this is something that we plan on adding in the future. As of right now, we have a list of the common core standards that Kodable aligns with, but many of these are math standards. After our PD sessions and workshops, we realized that we should work on making Kodable align with more reading standards, and we came up with some great ideas together to make this a possibility in the future. So thanks to the team at Loess Hills, look for many more exciting changes to come!

Favorite Moment: Functions??!

When we began our lesson with Loess Hill 2nd graders we planned to cover loops at the most to challenge them, but we quickly saw that they were quite advanced and ready for functions! After we wrote our first line of code for our robot and went to write a second, one of the students immediately responded that a loop would be appropriate in this situation. In addition to this, another student countered that a function would probably make more sense given what our goals were for the program. Wow! Needless to say, we were very impressed. 🙂

The Future: Curriculum integration and making more time for coding

Loess Hills is doing great with teaching coding so far, but thanks to Polly Meissner (@libraryPolly), Layne Henn (@sctechbuzz), and many others, they plan to expand this in the future. This means more time spent coding, and further integration into the school curriculum with more teachers onboard and taking part.

Thank you everyone for the warm reception at Loess Hills! We hope to get back to check in again in the future. 🙂

This slideshow requires JavaScript.

Off to Texas!!

How I Taught Myself to Code: Avoiding the Cliff

The language you first choose does not matter

In the first part of this series I told you about my introduction into the world of programming.  Now, I will give you a step-by-step account of exactly what I did to learn!

Where Do I Start?You can start learning with CSS, but it is not programming in the strictest sense

The first thing I did was tackle HTML and CSS.  I want to be very clear on this point, this is NOT programming.  Coding is a mindset, you need to be able to problem solve and think logically.  There is very little (if any) of this with HTML and CSS.  Now, that is not to say these aren’t valuable skills to have, but don’t fall into the trap of “learning to code” by writing some basic HTML.  Some experienced programmers may roll their eyes at you and tell you that you’ve still got a long way to go.

Choosing A Language

With the exception of HTML and CSS, the language you choose to learn doesn’t matter!  I spent more time learning what a “for” loop was when I first started programming than I did learning Ruby after I had 2 years of experience under my belt.

The most important thing with programming is to start making progress and begin learning.

The language you first choose does not matterOne of the biggest mistakes I see in people trying to teach themselves programming is that they get too caught up in which language they want to learn. Don’t do that. Trust me, it doesn’t matter. To make sure you don’t fall into this trap, I’m going to tell you exactly what to do.

Picking a Project

First, find out what kind of applications you want to build. If you have a PC and want to make Windows applications, learn C#. If you have a Mac, learn Python. If you want to make web apps, Ruby is a good choice, but you can also use Python. If all else fails, learn Python. It’s an excellent language that teaches you how to structure programs correctly and just generally program the “right” way.

Finding the Right Tools JavaScript the good parts is a great programming book I used

Once I had been working with HTML/CSS for a bit, I inevitably found JavaScript.  JavaScript is the programming language of the browser.  Most modern websites use some form of Javascript framework (usually jQuery) to handle a lot of the behaviors you see in your browser window.  I did a few quick Google searches and quickly found out about Eloquent JavaScript.  It is an excellent book, and best of all completely free online!

Looking back, JavaScript probably wasn’t the best choice for a first language. Most experienced programmers will tell you that JavaScript has a lot of unnecessary complexity. Which is why a book exists called “JavaScript: The Good Parts.” While it was good for learning basic programming concepts like variables and loops, I didn’t really get a good understanding of Object-Oriented Programming.

Avoiding the Cliff

Choose the right books so that they do not drop you off a cliffI consider my first real “language” to be C#, a C-based language developed by Microsoft used in a vast number of Windows applications and websites.  The best thing that ever happened in my journey to learn programming was finding a book called Head First C#.  Most programming books start with helpful, guided tutorials in chapter 1, and then drop you off a cliff and expect you to just know everything. The Head First series makes it a point to do the opposite.  They make it a point to translate programming concepts into something that “normal” people can understand, and deliberately avoid the aforementioned “cliff” problem.  I can’t say enough good things about these books, they’re simply awesome.

Setting Achievable Goals

It took me about 3-4 months of on-and-off study to get through enough of Head First C# to feel confident enough to start making my own changes to our web app.  I think the reason I was really able to make progress with C# as opposed to JavaScript is that I had a definite goal in mind. I had something I wanted to build.

Painters never sit down and decide to paint, they always have an idea of what they want to paint when they get started.  Programming is the same way.  As a full-time programmer, I never sit down in front a computer and just say “I’m gonna program!”  They have a goal in mind, something they want to accomplish. You should always endeavor to do the same.

Becoming a Pro

I started learning C# my senior year of college, and spent about 8 months with it before I graduated.  As graduation came closer, I was trying to find a job.  This was at the height of the recession, and there just weren’t that many opportunities out there, especially for people with marketing degrees.  Lucky for me, I had spent the past year honing my coding skills! Keep calm, study, and become a programmer

At the end of my final semester, I found a programming job listed on my school’s job listing board, and I felt confident enough in my programming ability to apply.  They sent me a test before I came in for a face-to-face interview.  However, there was only one problem– it was to make a website in PHP…I had never used PHP before! Well, time to go back to the Head First series! I got the test on a Friday, and my interview was on a Monday.  I purchased Head First PHP & MySQL (MySQL is a database commonly used with PHP) and went to work.  All of the knowledge I had gained of Javascript, C#, and even HTML and CSS helped me pick up PHP at a surprising pace.  I finished the website late Sunday night, just in time to get a few hours of sleep before my interview in the morning.

I went in for my interview with a newfound confidence in my programming abilities.  I was able to breeze through the questions they asked, and got an offer later that day.  I had successfully taught myself enough programming to get a job as a full-time, professional software developer. Mission accomplished!

Now that you’ve heard about my journey to become a full-time programmer, in Part 3 of this series, I will give you a set of rules, tips, and tricks that I’ve picked up along the way. Hopefully they’ll be as helpful for you as they have been for me.

Read Part 3: Cures for the Common Code