How to Learn to Code

I started coding when I was in middle school. I taught myself through a combination of experimentation, searching the Internet, a book I received, and an intensive summer school class. Many years later I am still learning. I do not call myself a software developer or professional programmer, rather I view myself as a hacker. I am also not a professional teacher with a background and understanding of learning theory. However the failures and roadblocks you encounter over time are experience when they happen to you, but then become wisdom when shared with others and I think that we have a shortage of wisdom in this arena.

You probably want to know what to do first. I recommend dipping your toes into the water with some HTML and CSS, probably through Codecademy. These are fairly quick languages to get the basics down in and you will get the most bang for your buck in seeing immediate results. It is also a necessary skill for working with other web programming languages like Javascript or Ruby and PHP. Even if you start down this path and later decide you have no interest in programming you will find knowing HTML and CSS to be useful in any job where you have to wrestle with Wordpress or another content management system.

You probably noticed you are not making apps on your computer yet. I think the next good step is to build your foundation through Harvard’s CS50 course. I did not do this but I watched all the lecture videos last year and they are well done.1 You will learn the basics of computer science and at the end have the vocabulary to move on to whatever other adventures intrigue you. The advantage of CS50 over other courses or material is that there is a large volume of material and network of learners that you can draw upon to supplement your learning and fill-in the gaps. A frequent problem I encounter when learning programming is that tutorials will assume a piece of basic knowledge that I do not have or a revision in software will cause a change in behavior that I cannot explain. Much of the pain of learning involves trying to distill what I am missing. CS50 will spare you much of this pain.

Once you have learned the foundation then a problems, references, and examples model is what will guide you right in the future. Define a specific problem like creating a map of Connecticut election results and Google how to tackle it. Break it down into steps, you will be surprised how many little speed bumps you go over. Consult the reference for whatever programming language or framework you use relgiously. If you encounter a roadblock more likely than not someone on Stackoverflow has encountered it too. Once you build your own project, congratulations, you are a programmer!

  1. I learned the foundational concepts of programming from AP Computer Science. It was taught in Java which I have not used since. Programmers will waste time debating the merits of different languages. Once you learn a few the basics are similar and you just spend your time learning common functions, data types, and the different syntax conventions. Stick with the one that works for you and do not waste time learning new languages for a while unless it is necessary. 

FullContact for iOS

A while back I recommended CoBook for contact management and syncing on the Mac. They were acquired by FullContact and the other day they finally released an updated iOS application.. This provides a gateway to easily sync your iCloud contacts over to your Google account. I also find the UI easier to use to update contacts. The only downside is it does not yet seem to have a mode where iCloud can be the canonical place where all your contacts live, and I am hopeful they fix this soon.

Ezra Klein on the Intersection of Technology and News

Ezra Klein has some great thoughts on the future of news and what has worked at Vox.com in this video:

I Know if You Voted Last November

Nearly nine years ago two political scientists at Yale conducted an experiment to see whether publicizing the voting histories of individuals to their neighbors would increase voter turnout. This strategy took many years to catch on and started to come into vogue in 2010. Here in the land of steady habits we remained largely oblvious to what our Ivy League university had unleashed unto the rest of the world until the last election cycle. After the two parties deployed this tactic last year there was a lot of discussion about big data boogeymen and whether voting records should be public.

Connecticut has broad freedom of information statute that makes government records public unless they fall into an exemption. In practice information has different levels of accessibility depending on how it is produced and who uses it. One of the records that government maintains is the voting history of each individual. While people involved in politics are aware that this is public information it does not seem to be the case that the general public is aware.1

The reason voting records are public is not merely because it is helpful for parties to reach out to voters, but because it is a check against the validity of an election. A citizen can request a copy of the voter roll for a precinct and compare the number of people that are crossed off as having voted to the number of ballots that were cast at the precinct. If fraud is suspected they can go back to the voters on the rolls to ask them about whether or not they actually voted. If voting records were private then compromised poll workers could cast ballots for one candidate or another and then check off names and we would never know the election was compromised.

So I think it would be foolish to make voting records private. We do not want to lose this check and balance in our democracy. Furthermore voting records are used by campaigns to try and boost voter turnout. All things being equal we should prefer to live in a world where there is more voter turnout than a world with less voter turnout. Government should do the easy things that lead to more turnout whether it is giving parties the data they need to contact supporters or make it easier to register to vote online. Sometimes public information will be misused or unintended uses will occur but if there is a large public backlash I do not believe that parties will continue to deploy tactics that upset their voters.

  1. This has likely changed. 

What Campaigns Can Learn from BuzzFeed

“The future is already here — it’s just not very evenly distributed.” - William Gibson

As a champion for the use of technology in political campaigns I enjoy experimenting with the newest tools and techniques. I have been fortunate to have had the opportunity to deploy them in statewide and local races. Politicians, like lawyers, can be averse to change and it is good that they question whether new tools are worth it. In many Connecticut state legislative races the highest proportion of spending is going towards direct mail. With its rising cost direct mail may have already lost its price competitiveness with the Internet, but the Internet still has a long way to go to be ready for mainstream campaigns.

Direct mail vendors have already built a working full-stack model for political campaigns. The typical state representative engages with a direct mail firm that has designers on staff to do the creative work, then the firm has a print and mail house they work with to distribute the direct mail piece. Many vendors work on a pricing model where a profit margin is baked into the per piece price of the mail. This means that the campaigns often do not need to pay for the design work up front. A campaign can go to a firm and ask for something and at the end pops out the working product with minimal work and expertise needed by the campaign. It is easy and effective.

Digital firms are currently a hot mess, or rather in beta. Most are either technology firms that lack expertise in communications and marketing, or they are communications and marketing firms that do not have technical expertise. If you are going to design a digital strategy page speed and responsive web design that make your content accessible is going to be as important as the content itself. However a well designed website does nothing if it is not being populated with relevant content that people want to watch or read.1 That content does nothing for you if you does not compel people to volunteer, donate, get out to vote, persuade them to vote for you, or to share the content with their voting friends.2 Most political content does not do this.3

Social media is a potential bright spot. Since the websites are built for general users it typically only requires someone with communications skills to use. However social media is not useful unless the message being conveyed does so in the native language of the platform and leads to more votes. Social media managers may get excited when posts get more likes or shares but unless it is putting the message in front of the eyes of new voters or the person who likes the item is going to then volunteer they are not a useful metric. Twitter followers are nice to have but many might not even be in your candidate’s district. Facebook, Twitter, and YouTube have some geographic targeting tools for advertising but it would be helpful if they could break down their data in a way that gives social media managers a better idea of whether their message is reaching their intended audience.

I think the future of campaigning looks like BuzzFeed. Campaigns will hire full stack digital shops that build them an online presence with both a technology toolset and a content strategy.4 Traditional banner and video pre-roll ads will be used to build name recongition, get out information about the candidate and recruit volunteers for a general audience. Then instead of being asked to spend hours making phone calls, volunteers will be asked to generate content. Campaigns will then spend money to push that content into the writer’s network to amplify its impact.

  1. The difference between a website or social media and other forms of engagement is that direct mail or television ads are pushed on you, whereas a website is something you choose to visit. 

  2. Offline content also has this issue, but many times offline content is not subjected to scrutiny as to whether it is effective because it is too expensive to do so. Clicks and views are easy to measure but it is difficult to know if a particular direct mail piece is being read or tossed in the trash or a commercial is being skipped via DVR. 

  3. The national parties and presidential campaigns have sometimes figured out how to create compelling content, but look at a random sampling of state party or legislator websites. Much of the content are press releases that lack originality. The problem with press releases is that they are written for the press, but websites are supposed to deliver information to the general public. 

  4. Many consulting groups exist that claim to do this. More often than not their expertise is much more narrow than they claim. Or the campaign will have a non-digital communications consultancy in charge of message and then bolt-on a digital agency and wonder why digital is not working well. Message crafters do not have to be technologists, but they do have to understand how the medium they are writing for is used so that they can do their best work. 

Follow Zagaja.com posts: RSS Feed
This work by Matt Zagaja is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.