Programming Poems

Was just playing around with words to try to think of ways to get students to remember that they need == when comparing two values.

To compare if two values are equal,
Your equal sign needs a sequel. (==)

 

I posted it on FB, and was given the response “===” so then I wrote:

If you need to check the type and value both,
your equal signs will need another growth?

 

But a friend of mine, Chris M, also wrote a poem:

If checking type is on your minds,
why don’t you use three equal signs?

 

I just thought it was funny and cute. ^_^

 

Programming for Discrete Math

  • Josephus Game
  • Magic Trick
  • Tennis Matches

I like using programming in the classroom. I’ve never seen programming really used much in any of the math classes I’ve had in the past, save from some odd MatLab projects (of course I opt for NumPy or SciLab – Go FOSS!), and sometimes reading paragraphs of math problem examples in a textbook just makes my eyes glaze over. Rather than try to demonstrate this stuff on the whiteboard, I decided to write some quick Python/PyGame programs for the examples from the textbook we’re using.

Another pro of this is that it helps me “grok” the content. I might read over something and think “yeah, that makes sense”, but I don’t really know it until I put it into practice, and the best way for me to put it into practice is to make it a program. When applying it in code, it’s more likely I’ll remember the fine details much better, just through the entire process of working on the program step-by-step.

Not sure if I’ll have my students do any coding (various prereqs, they might all know different languages), but it might be nice in the future!

You’re ignoring the issue – Diversity in Tech

Don’t read the comments. Sometimes, when I post a link to an article on my Facebook wall, I feel compelled to add the warning, “don’t read the comments” along with the article.

This morning I posted a link to NPR’s Why Some Diversity Thinkers Aren’t Buying The Tech Industry’s Excuses article, and the comment responses are pretty much exactly the kind of responses that I still get sporadically for having the audacity to suggest that my YouTube channel needs more women viewers on someone else’s video that highlights the same problem on their channel.

comments

Scroll through the comments in the Diversity in Tech article, and you see the same mentality…

comments2

As sick as I am of hearing the same, “They’re just not interested. Stop trying to force women and people of color into tech!!!“, this isn’t what I want to post about right now. That’s a whole other long-ass topic that needs to be researched… Which I have done some research for that re: women in CS already so you can read this if you really want to.


No, what I really want to talk about is that, by making statements like “they’re just not into it”, ignoring whether or not we’re going to argue that entire demographics of people simply aren’t interested, I cannot imagine that anybody would state that absolutely, 0% of [demographic] are not interested in computer science. I think that we can all agree that at least some of these people exist, whatever people these might be. Right? There can’t be a net total 0 women, or African American people, or Latinx people, or Native American people, or gay people, trans people, intersex people, etc. etc. etc. You would have to be pretty damn specific if you wanted to come up with a demographic of people that might not exist as a person-who-is-interested-in-tech. And heck, even I fit the demographic of a “woman-or-maybe-genderfluid/queer/indifferent, asexual, panromantic, Esperanto-speaker, dandruff-haver, piano-player” programmer – I don’t mean to be facetious, I’m just trying to highlight that a person can be many things, and still interested in tech.

OK, so my first point is, there cannot be a people of any given demographic who have zero software developers among them.

Let’s look at these handy graphs I found on this article Race and Gender Among Computer Science Majors at Stanford:

Male & Female Computer Science majors at Stanford (from Medium.com)

Male & Female Computer Science majors at Stanford (from Medium.com)

So, there exist some women. It isn’t zero women. And then we have…:

Computer Science majors by race at Stanford (from Medium.com)

Computer Science majors by race at Stanford (from Medium.com)

and the Medium article even breaks down even further with more statistics.

But my point is, it isn’t zero. So let’s stop acting like all women/PoC are simply not interested in computer science.


 

So, secondly, the idea is that these people exist, but major tech companies still cannot at least build a ratio of tech employees that mirrors what’s coming out of colleges.

But they totally could – if they really wanted to.

As Martin Fowler points out in his DiversityMediocrityIllusion post,

To understand why this is an illusionary concern, I like to consider a little thought experiment. Imagine a giant bucket that contains a hundred thousand marbles. You know that 10% of these marbles have a special sparkle that you can see when you carefully examine them. You also know that 80% of these marbles are blue and 20% pink, and that sparkles exist evenly across both colors [1]. If you were asked to pick out ten sparkly marbles, you know you could confidently go through some and pick them out. So now imagine you’re told to pick out ten marbles such that five were blue and five were pink.

I don’t think you would react by saying “that’s impossible”. After all there are two thousand pink sparkly marbles in there, getting five of them is not beyond the wit of even a man. Similarly in software, there may be less women in the software business, but there are still enough good women to fit the roles a company or a conference needs.

(By the way I love Martin Fowler)


 

The people are out there, they just take more effort to find. Part of it might include how a company finds their candidates – if they weigh references heavily, then that might only support the demographic that is most heavily represented.

If they advertise that they’re the “standard nerds” who love beer and bacon, that’s going to be a turn off to certain religions, as well as people who simply don’t enjoy alcohol (*raises hand*), and the idea of having social events at work centered around alcohol simply just doesn’t sound like much fun.

It could be where they’re posting their job ads. It could be the values that they present. It could be any number of things. But to build more diversity, some effort has to be put into it, rather than just maintaining the status quo and acting like, “well gee, why can’t these women and/or PoC just fit in with our status quo? Why do we have to change?!”

 

When I interview for a software job, I usually ask the people conducting the interview about diversity. How many women work there? What about other ethnicities, religions, and backgrounds? A majority of the time, I get a response akin to “We hire for talent, not diversity”.

That isn’t what I asked about.

During the interviews and walk-throughs, how many people are present who aren’t white men? Only one time have I been interviewed by a woman – and it was because the entire team interviewed me, not because she was the boss. At my last job, I think that there were maybe two software engineers who were women (including myself) in the group of maybe 10+ teams. There were women present as BAs and QAs, but so few as the developers.

What, are women just naturally more interested in quality assurance than software development? Back in the caves up through the agricultural revolution, women biologically evolved to QA the hunts and the crops and all of that, while men evolved the ability to program those… hunts and crops? (Seriously I’m sick of the “biological” argument in a multitude of ways, especially if we consider nonbinary genders and trans people.)


 

Ugh, ok. I’m hungry now, and I have to prep for my Java class on Thursday. I need to come up with more examples of using arrays in simple programs. Ĝis la.

Offices

Have you ever had a college instructor who didn’t have an office?

Most college instructors have office hours to help students outside of class. It’s required in most cases. So, therefore, instructors need offices. Sometimes it might be a room with several cubicles, or it could be their own room with lovely lovely sheetrock on all sides and a door.

The office also provides a nice, quiet space for the instructor to get their planning, grading, etc. done.

Is being a teacher an antisocial job? No, who would say that? You have to interact with people a lot, from your students to the other teachers and faculty of the school.

Being a teacher requires a lot of people interaction, and yet, having an office isn’t seen as somehow making a teacher less able to do their job. The office is a required part of the job.

So how come software developers are thrown in open floor-plan large rooms? The justification is usually in favor of collaboration between the developers, but if teachers get offices and can still talk to people, why can’t developers?

If it helps to have quiet while an instructor is planning, grading, or otherwise doing their non-people work, why do we not treat developers the same way, giving them a nice quiet area to get their non-people work done?

And that’s not even getting into how I can choose the hours I’m in my office, and I can choose when and where I get my non-people work done as an instructor. I do most of my class preparation at home, on my laptop that runs Linux, with my kitty cat and tea and food that I can prepare in my own kitchen.

If teachers can have this freedom and get their work done, why can’t software developers?

random test generator

random test generator

What do you do when you want to write a take-home exam, but want to discourage students from simply copying off each other?

If you’re a programmer, you write a random exam generator. 🙂 If you’re not a programmer, then you can probably find an existing one out there much nicer than mine… but oh well.

This is a C++ program that reads in text files – each question position has a “deck”, and a deck file has a list of questions that are interchangible (e.g., “declare an int”, “declare a double”), and then you have a series of decks that represent the amount of questions in the exam. Each question item in a deck has a serial number as well.

The exams are generated and output to .html files (I decided to do this because it’s easier to maintain the formatting if I copy it into a LibreWriter file), and a key is also generated, with all the decks and all the questions and their answers.

I’ll probably go extend this to list point values as well, I like putting that on exams. Then I have to go write my Programming Fundamentals exam 1. Whee!

Fin ‘N’ Kit DevLog #2

I don’t have a lot of time to program today, since I teach class tomorrow and still would like to grade some assignments before then. Everything else I got done early today, so I snuck in some gamedev.

Beginning the set up of the map editor. The original version of Fin ‘N’ Kit (originally Delfino i Katyuno) has a map editor, but it was built with small mobile devices in mind. Trying to update the game with the old framework wasn’t working out, since it seemed like it wasn’t supporting much as far as desktop computers went. Due to a few constraints, I’m rewriting the game in C++ – but, it shouldn’t take *too* long, depending on how much time I have.

I’m redoing the interface, keeping in mind that it should be usable both with a mouse/keyboard, but also with just a handheld device’s touch-screen.

Anyway, here are some small screenshots. I would like to redo the trinkets and obstacles in the game, because they don’t make much sense I think. Or they’re not shiny enough. Or something.

The game may also support different sized objects (either scaling an item to different sizes, or some items are just bigger than others).

Oh well, that’s it for today!

Fin ‘N’ Kit DevLog #1

The Moo team is working on updating Fin ‘N’ Kit – an old mobile game I made two years ago with Gideros and Lua.

Because of some of the constrmain menuaints with Gideros when it comes to PC support, I’ve spent the day creating a Fin ‘N’ Kit C++ project using my Kuko framework, which is built on C++, Lua, and SDL2, with the intention that it will be our primary framework for all PC and mobile games (with Windows, OSX, Linux, and Android supported initially.)

In the Kuko framework, you can set up menus in .lua files, basically making use of Lua tables, so today I’ve mostly been working on menus.

So here’s some quick looks at the main menu and play sub-menu.

 

Screenshot-Fin 'n' Kit - Moosader LLC-1Haven’t worked on the Options or Help menus yet, but there is a language select menu in, with the languages English, Spanish, and Esperanto. We can add translations later, but these are the languages that people on the Moo team currently have expertise in.

The level editor is one of the big things to implement soon because that means that the Moo team can work on levels sooner, so we can get a collection of levels available for play upon first release of the game. Of course, we can also add new levels and themes over time.

The level editor will also be included in the game, just like with the current version that is available on Google Play.

 

 

Screenshot-Fin 'n' Kit - Moosader LLC-2Another thing that Lua is used for in the Kuko framework is language files, which allows us to have the game available in multiple languages. The menu lua files can take hard-coded text, or a text ID, which would correspond to a key in the language files.

 

Well, that’s all for now.

–Rachel

Why I find myself wanting to leave the software development field.

I love Computer Science. I love programming video games. I love building cool websites.

But I’ve been working professionally for 6 years now, and I’ve never been happy with any

job I’ve had. A few years ago, I attempted to escape this career path and explore an alternative, which did not work out. Running out of money and not being able to afford additional school without a development job, I returned to the realm of web and software development. I’ve been back in for 10 months, and I’m already trying to figure out the least-painful way to leave the field, and find a career where I can earn at least $40,000 per year, with minimal time spent training for a new field.

There are articles about challenges that many women face getting into the field, but I’m facing something different, and I’m not fully sure how to describe it. I’ve always been unhappy working as a programmer professionally. I’ve already gotten over the hump of school and establishing myself as a developer, but in the end it just doesn’t feel worth it anyway.

Working as a programmer has meant working on boring software, intangible to me, in industries that I don’t much care about.

Working as a programmer has meant working with bad code, unmaintained after initial writing.

Working as a programmer has meant working without documentation, because who cares if the new developers can get their environment and the software configured and running?

Working as a programmer has meant working without a process, where I’m unsure of what to work on without constantly polling someone perceived as higher than me for work to do.

Working as a programmer has meant being required to physically be at an office for 9 hours a day, a place that quickly drains my energy and happiness. Often noisy, rarely private, the lack of sun or places to talk a walk.

Working as a programmer has meant don’t do what’s best for me – do what’s best for the company. I could exercise more if I were closer to home. I could eat better if I could cook at home. I would be less stressed if I could work in an environment that I built on my own.

Working as a programmer has meant all my time and energy going towards products that I really don’t care about, leaving little to spend on the projects close to my heart.

Working as a programmer has meant I feel trapped by money. I cannot get another job making a decent wage without more training, and I’m still paying off my college loans from the first time through and the first time exploring other careers. I’m stuck in the daily grind until I pay off my debt and pay time and money to get re-trained in something else.

Working as a programmer has meant I feel trapped by location. I’ve tried multiple times to apply for jobs in other industries and in other places – namely, Washington state, where I originally come from. It hasn’t worked out so far. So I either need more experience, more training as a programmer, or the funds to move myself closer to the jobs that I want.

Not all places have bad process, or bad code, or have even required me being at an office all day. But for any one perk, there is usually a slew of other problems – poor communication at the remote job, bad code at the job with an interesting product, abysmal pay at the job where I had friends, great process at the job with a boring product.

My first impulse is to blame the common denominators – myself, Kansas City, I don’t know. Why am I so unhappy when plenty of other people work as developers around here? Am I too picky? Why are there no interesting businesses in Kansas City? Would I be happier as a programmer if I were working for a game studio? At least I know more about video games than I do about what businesses need for distributed document management systems. Will I only be happy if I’m working for myself? Could I even “make it”, working for myself, or do I definitely need training in another area, while I work on my programming on the side?

I am a woman software developer. I’ve been working professionally for a while now. I make a pretty good salary now. I have a lot of good things happening in my life, but every workday is a slow, painful struggle to get through the requisite 9 hours as quickly and easily as possible. For every evening and weekend that I do not spend programming my own projects (in hopes of eventually supplementing my income), I beat myself up for not taking the next step towards getting out of this situation.