|

Racism and learning new languages- who’s a geek now?

After watching Black in America: The New Promised Land, about eight black entrepreneurs trying to get traction in Silicon Valley, I read some of the articles on line about it and some of the comments (always a mistake), comments which served up further proof that there should be some sort of IQ requirement to use the Internet. (In fairness, this is my response when reading comments on almost any article.)

One comment that particularly annoyed me regarded the follow up to the founders, “where are they now”. One of the start-up founders featured commented he wanted to build his application himself so “I’m learning a new programming language.”

This led to a comment from someone who said this just proves that all these entrepreneurs were unqualified because true geeks did not need to learn a new programming language. Once they know one programming language, they know them all.

My ride to FORTRAN77 course
My ride to FORTRAN77 course

When I was in college, back when I flew my pterodactyl to school, I had classes in FORTRAN and BASIC. Later, when I was working as an industrial engineer, we all took a class on COBOL, for some project that never materialized. If you work in a big company long enough, you will eventually do work for a project that never happens. Next year, it will be 30 years that I have been programming with SAS. I’ve written everything from analyses of data sets with millions of records to applications to pull nightly data from one system, run statistics, create reports by department and output web pages of daily,  weekly and monthly results to a different system to just about everything else you can imagine. I wrote my first computer game to teach kids math in BASIC when I was in graduate school back in the mid-1980s, just for a class I was taking.

So, when I read this comment I just could not believe the stupidity of it. Lately, I thought I should learn a new programming language because I have some projects coming up where doing it all with SAS is not the best idea. I started with Ruby and I really liked it. However, the house rocket scientist thought javascript might be better for my purposes and he kept leaving little hints around like a book on Canvas and another on HTML5 (which was mostly javascript) and just dropped a book in my office the other day, Javascript, the good parts.

So far, I really like javascript and it has been fairly easy to pick up. I’ve written a couple of simple games, just for practice. Now to the idea that anyone who is a “true geek” has a magical decoder ring is so stupid as to render me speechless. (But not type-less, as evidenced by this blog.)

Let’s take a simple example of code from Jeanine Meyer’s book, The essential guide to HTML5.  This is from the middle of a program that just makes a ball bounce around  the screen at varying velocity. Not much in itself but I can certainly see how it can be useful incorporated into a game.
function moveball() {
ctx.clearRect(boxx,boxy,boxwidth,boxheight);
moveandcheck();
ctx.beginPath() ;
ctx.arc(ballx,bally,ballrad,0,Math.PI*2,true) ;
ctx.fill() ;
ctx.strokeRect(boxx,boxy,boxwidth,boxheight) ;
}
function moveandcheck() {
// Set new X and Y positions
var nballx = ballx + ballvx ;
var nbally = bally + ballvy ;
if (nballx > boxboundx ) {
ballvx = -ballvx ;
nballx = boxboundx ;
}

Because I have used other languages, I immediately think of the function like creating a macro in SAS. The empty parentheses denote no parameters. I can guess that the { means the beginning of a function. From both Ruby and just plain geometry, I can guess that the next statement does something to a rectangle and those four values are going to define the area of the rectangle. It seems likely the next statement is calling another function (which, sure enough, I see defined later in the program.  The ctx.arc looked to be drawing a circle, x and y are probably the midpoint, I assume ballrad is the radius. Obviously (from having learned a little bit of Ruby) Math.PI is going to be pi, i.e. 3.14 etc.  Without having read Meyer’s book, or an equivalent, I wouldn’t have known what the 0 or true did in that statement.

We can go through the whole snippet of code that way… the var statements are similar to a SAS ATTRIB statement, but like in a lot of programming languages, these variables are being defined up front. As with a SAS macro or many other examples in many other languages, variables defined within a function / macro are local variables. Variables defined outside of the function earlier in the program (not shown) are global variables … and so on.

All of this is to say that, yes, it is easier to learn a new language if you already know one or two well. However, I never would have known that functions in javascript begin and end with “{” unless I read it in a book. I would not have known that  the SAS equivalent of IF- THEN DO used curly brackets also. I wouldn’t have known any of the specific syntax, like the CASE keyword or using Math.PI instead of just PI and hundreds of other specifics to javascript.

Learning a new language is easier the more languages you already know, but it takes time, no matter who you are. Learning the first one takes more time.

I was very disappointed, although I hate to say, not surprised, by the comments that followed the articles on Black in America. They ran about 10 to 1 saying there is no discrimination, and besides these people were not very good so that is why they did not get funding. Their ideas were awful.

I don’t know that they were any more awful than ideas that have gotten funding and made millions. Take Farmville, for example. I think that is the stupidest idea ever and have never played it but lots of people I know spend hours on it each week and it has certainly been profitable. I really like twitter and am on it hours each week. I learn a lot of useful information from many people I follow and are amused by others. Similarly, I have many friends who think that twitter is the dumbest invention since the mushroom brush. (Can you believe there is actually a site named mushroombrush.com ? )

Actually, I think the comments reflect the racism that is alive and well in Silicon Valley and America, it makes me sad. It reminds me of a social psychology study many years ago when subjects were posed a question something like this …

If an African-American candidate was equally qualified for a position, in a department where everyone else on the staff was white, do you think it would ever be acceptable for that candidate to be selected instead of the white candidate?

All of the African-American subjects said, “Yes”.

The white subjects almost all began their answers with,

Well, if the person REALLY was equally qualified ….

IF the person was equally qualified …

The investigator found this curious because the question began by stating that the two had equal qualifications. He said it was as if the subjects had difficulty believing that the black candidate could really be as qualified as the white candidate, even though the researcher had definitely stated that was the case.

I could not find this article again, but if you are more into the social psych literature than me and can point me to this reference, I would appreciate it. On searching for it though, I did come across this interesting study citing the justification for affirmative action. Those who are wondering if there is any hard evidence of discrimination in employment might want to read it. Short answer, Yes.

From personal experience, I can tell you that over many years, on many occasions, including a few times in the past year, I have been in meetings discussing some code that I had written, some analyses I had done, when someone would turn to a junior colleague and ask him or her questions, assuming the work had been done by anyone other than the Latina grandmother sitting at the head of the table. The last time this happened, I brought it up to an executive from the organization who had been in the same meeting. She said,

Well, you can’t really blame them for assuming someone else had done the programming. Everyone in the meeting was Asian or Indian except for you.

I had no response because my jaw was still hanging open when she walked away.

Do I have an answer? Maybe a little bit of one. Yes, there is prejudice and discrimination. You can still be successful. DO learn new languages. DON’T believe people who tell you that you are “not a true geek”, “your start-up is a stupid idea”. DON’T let any idiot tell you you’re not successful or competent because you’re not the next Mark Zuckerberg or Marc Andreesen.  Neither are they.

As my third daughter likes to say in response to comments putting her down,

Okay, random person on the Internet typing this from his mother’s basement, maybe you don’t think I can be best in the world, but I’m not  going to let that stop me.

Similar Posts

5 Comments

  1. Very well said. Your post reminds me of a project I was working on in college while getting my BS in Comp. Sci. A white class mate who was assigned to my team was surprised once he realized that I could in fact write code.

    I pointed out to him, that not only could I write code, but I could read, add and subtract a little bit too.

  2. Thank you so much for your blog! When I started programming I learned mainframe languages (COBOL, CICS, DB2, etc) because that was the need. When my client’s need changed I learned Client Server languages. Knowing the basics helped, however there was still a need to “learn” new languages. I hope everyone interested in technology and those who feel they are “true geeks who need no further education” reads your blog!

  3. I think what commenters are often (clumsily) trying to say about learning languages is that there are fundamentals that transfer between languages – like your analogies from SAS to Javascript, and also algorithms and data structures that are implemented roughly the same ways in different environments.

    It’s good to have this as a counterargument when somebody in your organization is pushing hard for a particular language, not because it’s the right choice for the job but because it’s easier to find developers who know it, it’s in line with “the way we’ve always done things” or similar.

    This reasoning gets annoying when there’s an undertone of us CS people patting ourselves on the back. It’s just classic insecurity about the worth of our own qualifications, and it’s unfortunate because it gets on the way of sharing what a lot of us love the most about our field: that there’s always something new to learn.

  4. I can see why some people would state “IF” or “REALLY”.

    The article didn’t use a statement as you mentioned exactly. It used a conditional statement. You might think this is semantics but I see it is as needing to be exact with your word usage and sentence structure.

    “If an African-American candidate was equally qualified for a position”

    I would be interested in the responses if it was stated differently for a comparison. For example, “An African-American candidate that is as equally qualified”. Now it is a definitive statement.

    But I would also be interested if the “IF” was used for the very purpose of detecting bias or prejudice. Yet at the same time I found myself questioning the statement while reading it due to the conditional statement. I can’t help it though. I’ve been programming since I was nine. I read anything with an “IF” as a conditional statement to see if it is true or not.

    On a side note, I do think it’s great that you’re learning a new language. Personally I am a Java snob even though I’ve probably gone through 15+ languages. And congrats to your MMA daughter winning her last fight!

  5. Maybe that is true in your case, but I rather doubt that ALL of the white subjects were programmers and NONE of the black subjects were.

    I like JavaScript. I liked Ruby, too, but it didn’t fit exactly what we needed for our purposes.

Leave a Reply

Your email address will not be published. Required fields are marked *