Coding vs. Programming vs. Computer Science

I was recently asked about the difference between a “coder” and a “programmer.” Here are my current thoughts on this subject:

A “coder” is someone who knows just that: how to code. They can write software, websites, scripts, etc in at least one programming or markup language. I define “programming” as the art of creating something the computer can understand. Sure, a large portion of this is coding, but there are more steps of this process that are just as (if not more) important. Such steps include storyboarding, algorithmic design, testing, making the code more efficient, etc. These steps require a deeper knowledge of how programming languages and computers interact.

Consider three people: a person who knows French, a person who knows Spanish, and a person that can translate between these two languages. The Spanish speaker may be completely fluent in Spanish, but if they are unable to translate Spanish to French they cannot interact at the most efficient level the French speaker. Sure, they can use language “hacks” like hand gestures, a few phrases they may know, etc. to communicate at a basic level, but they will not able able to have a meaningful conversation. This is like a “coder,” where the French speaker is the computer.  In order to have a better connection and understand each other fully (even down to the slightest nuances), the translator or “programmer” must step in.

I’ve noticed that there’s a general misconception about what “computer science” is. Sure, arguably the most practical aspect of computer science is coding software, but the study of computer science encompasses so much more. As mentioned above, programming itself is also often confused with coding, so there’s a lot of misunderstanding happening. Some use the terms “programming” and “computer science” interchangeably, but I do not. I consider computer science the study of the art and practice of programming or more generally, the study of the art and practice of communicating with computers. This includes historical information, general engineering ethics, how computers affect society, studying algorithms for the sake of studying algorithms (and not with a specific computer program in mind), etc.

Why, then, are most software-related bootcamps and outreach programs labeled with “code” (e.g. “Girls Who Code”, coding bootcamps, etc.)? I think there are two reasons for this, both of which are related to marketing purposes. First, coding is the considered to be the most practical aspect of programming and computer science, so this term is widely used to draw attention. (For the reasons mentioned above, I firmly believe, though, that coding is just one of the important components.) To be frank, though, I think the main reason most programs use the term “code” is because it simply sounds better. “Girls Who Code” is catchy – “Girls Who Program,” not so much.

There is definitely a blur between the lines of “computer science,” “programming,” and “coding,” but I believe it is important to define what they are, even if your definitions are somewhat fluid. In my mind, computer science is more of a general term for the field, programming is the process of creating a specific piece of software from start to finish, and coding is one of the steps of programming.

SIGCSE Day 2

I have a lot to share about my SIGCSE experience (which isn’t over yet!), and a longer post will be coming soon. I wanted to share something now, though. 

Today at SIGCSE I learned that a study from UCLA’s BRAID research group reported that only 4% of students in introductory computer science courses (at a sample size of 65 universities) in 2015 were first-generation, female college students. The paper also explores the relationship between their experiences in these courses and their feelings of self-efficacy and belonging in the computer science environment. 

I am proud to be a first generation college graduate and am even more proud to say I have a Masters degree in Computer Science.

I am learning so much from this conference and am still processing all the information. I can say right now, though, that I have a lot of strong emotions about the current state of the field. I always have, but they’re even stronger now. 

For those interested, the paper may be found here: http://dl.acm.org/citation.cfm?id=3017751

Uber Blog Post

Susan J. Fowler’s blog post (you can read it here) has been circulating around my social media networks. One of my non-tech friends asked me about its legitimacy, to which I responded, “I am sadly not surprised.”

While I’m happy that this blog post is going viral and encouraging people to discuss how it can “change the way of the tech world,” stuff like this has happened before and the overall environment hasn’t changed much. I hate to sound pessimistic about this, especially since fighting this bullshit (my language is warranted here because that’s exactly what it is) is one of the few things I’m extremely passionate about. However, I am terrified that not a lot will happen. The people who didn’t believe her post in the first place will read what the company posted in response and continue to assume she overreacted. That’s how ignorance works. 

That said, even if just a few people read this and say “huh, something’s not right with this,” that’s amazing and I hope that it will. But it will take more than one blog post to change Silicon Valley. I know this because there are already many, many similar blog posts already. 

The optimist in me (which admittedly is a very small part of myself) is, however, excited that this post seems to be circulating a lot so hey, who knows? Please continue to share and be a good example for your students. I firmly believe that one of the best ways to combat the gender gap in tech is to stop it at the very beginning and show the next generation of computer scientists that incidents like these are not right. It is in everyone’s best interest that educators create an inclusive learning environment so that anyone who wants to study the subject feels like they can.

Ms. Fowler, as someone who has dealt with similar bullshit and knows how much it affects you as a person, I am so sorry this happened, and I thank you for sharing your experience. 

I’m officially attending SIGCSE!

I’m very excited to announce that I’ll be attending SIGCSE (Special Interest Group on Computer Science Education) this year, my first time!

I’ve been wanting to attend this conference, the supposed best for Computer Science educators, since I first heard of it back in my second year of undergrad. In fact, the professor that told me about the conference will be attending this year as well, and has already offered to introduce me to “people I should know,” which I’m very much looking forward to.

As someone who is currently in between academia jobs, this can’t come at a more perfect time. I’m very excited to meet a lot of people and learn about awesome Computer Science Education research (which is normally severely underrated).

I also just applied for a workshop that happens the day before the conference starts. The workshop is specifically for women in the early stages of the academia careers. I really hope I am selected for this workshop, as I feel I could learn a lot from it.

Here’s to a productive 2017!

“Eight states have fewer than ten girls take AP computer science exam”

I was scrolling through my emails tonight when I found this subject hidden between all the “Today’s deals!” and “Save 30% off this Cyber Week!” promotions. It was sent from csteachers.org, a site and organization I joined about a year ago. Happy to see something with more content than a promotional email, but unimpressed with this statistic, I read more from the article bearing this headline. 

The Education Week article discussed unimpressive data regarding high school students taking the AP Computer Science A Advsnced Placement exam this year.

Of the U.S test-takers, 23 percent were girls. That’s up from 22 percent last year.

But in eight states, fewer than 10 girls took the exam, and Mississippi and Montana didn’t have a single female take the exam.

I’m amused (but also not) that the article offsets this disappointing news with an upbeat “hey, something got 1% better!” Don’t get me wrong, I’m happy things are improving, but I know first-hand that we have a long way to go and how difficult it is to even discuss these topics.

I’ll be using this blog as a place to organize what would be my otherwise-jumbled thoughts regarding the various daunting issues that anyone even remotely involved in computer science faces (and some positive stuff, I promise). My hope is that at least someone out there will stumble upon this someday and realize, “hey, I’m not alone! I’m not an impostor!” or perhaps more realistically, “well, I might be an impostor, but maybe everyone else is too.” At the very least, this will be a source of inspiration for myself for those days where I need just a little extra encouragement.