Sit still and pay attention!

I’ve been having a problem lately… or, really, all semester. I hate sitting still.

Meetings, lectures, whatever. If we are expected to sit down and only listen, I get really anxious and stressed. I have so much to do, I can’t sit still! Sitting around, stewing, is aggravating.

If the format of an event is everybody sitting and listening to one person talk, there is a better medium for this than an in-person meeting: Video.

Lectures should be pre-recorded, and lecture time should be an active use of my time to learn the material. Listening to somebody talk about a topic doesn’t teach us much.

Meetings where there needs to be input from the people listening? Well… I prefer asynchronous meetings, honestly. I know if it is presented as a webinar, people will be surfing the internet and not fully pay attention; I’ve done this for many webinars. But maybe the problem is with the presentation rather than the peoples’ (*cough*my*cough*) attention span.

I don’t really have a fully formed point here. I’m just waiting for class to start and feeling super anxious. I have a lot of work to do, and my body feels like it’s exploding with nervous energy pulling me in every direction.

It’s my birthday!

Me: “I should keep up with grading by grading one assignment every night!”

My day –

Teacher work: Wake up, eat, begin working on class prep for the day. Fund an old lecture on stacks and queues, write a lab, adjust an old project to be a new project.

Business work: Create a set of wireframes for contract app, send out emails to client and to interns.

Homework: Spend last half hour before class begins working on homework. Fix queue problem.

Teach class: Give lecture, read through documentation of my homework while my students work on their lab, answer questions as-needed.

Get home: Eat fast food, be lazy for a while.

Work on homework: Figure out WTF is going on with this programming assignment since the project spec doesn’t really give us much to go on.

Look at clock: 1:30 am…

Tomorrow’s plans: Wake up early, work on class prep before my first class, teach Discrete Math at 12:30, work meeting, then meet with intern after class to help them set up their tools, eat, teach my 6 – 9 pm class, do homework until late again.

Friday…: 9 am meeting at work, meeting with intern, then I guess homework all weekend. Also need to write a letter of recommendation and do my taxes and finish up the fiancé visa paperwork.

Maybe I’ll fit in grading somewhere around there.

Just because I’m a student doesn’t mean that you shouldn’t respect my time: Study guides

OK, I was going to write this blog post after I was done studying for the midterm, but I’m just too steamed right now so I’m going to vent and then get back to it. My plan right now is to spend this entire weekend re-reading all the chapters of the book and making notes on everything. (I keep these notes on my GitHub.)

I’m salty because I emailed the instructor a month ago and asked for the best way to study for the midterm. The response I got was:

Hi Rachel

Lecture notes and the book are probably the best way to prepare for the exam. 

So I guess that I’m just supposed to memorize every fucking thing out of the textbook, because there is no clear way to tell what this teacher things is important and what we will be assessed over.


A textbook I teach out of with only a few sentences highlighted

I clearly have not highlighted every paragraph of the Data Structures textbook that I teach from.

“Oh well you should be learning everything anyway.”

Sure, read all the content, absorb it all, but what we need to know of and what we need to have burned into our brains are very different. I sift through the textbooks that I teach out of and I sure as hell don’t highlight every damn line with what I think is important.

And it depends between teachers!

What I highlight and think is important is based on my own experience in the professional world with things that have come in handy, what I’ve needed to know, and so on. What somebody in academia thinks is important, someone whose research focus is operating systems, might be completely different than what someone thinks from a practical standpoint.

Textbooks are full of words. These words might be good in creating a flow for the textbook, but they are not reference material, and they do not only contain the important bits – they contain information on context, examples, and explanations. At some level, when studying, I’d prefer a reference book than a textbook, because there’s so much to sift through and pull out.

Something I probably don’t need to memorize, but is still mentioned in the textbook, taking up valuable space: “Two common techniques for loading executable files are double-clicking an icon representing the executable file and entering the name of the executable file on the command line (as in prog.exe or a.out).” – Operating Systems Concepts, 9th Edition, Silberschatz


It's part of a study guide that I've prepared.

It’s part of a study guide that I’ve prepared.

The study guides I prepare contain all of the information that I expect my students to know, and that they may potentially be tested over during an exam. It may still be a lot to read and learn, but it doesn’t compare to the amount of time they would have to spend in their textbook, guesstimating what may be important and what may not be.

Because how is a student supposed to properly figure what is and is not important? They’re students. They haven’t had the same background as the instructor, and cannot properly judge what the instructor is going to deem worthy to know.

Functions? Yes, you better damn well know the vocabulary relating to functions so that you can know what I’m talking about when I tell you specifically, “you’re not passing in enough arguments into your function call.”, because if you don’t know the definitions you’re lost.

You need to know how to use pointers, and the operator names and in what contexts what * does. But do you need to know how many bytes an integer, float, and double need? I don’t have that information memorized, and it has never affected me. So I don’t tell them to memorize that. That information is good for some background knowledge and context, but they don’t need to know how many bytes they’re allocating, at least in C++, to write a basic program.


So, in summary, it pisses me off when teachers don’t provide study guides. It already seems like a lot of teachers (especially at university level) have disdain for undergrad students, thinking that they’re so frivolous and immature. What could those kids possibly be doing with their time? Obviously all they should be doing is studying! It comes off as disrespectful. Many of us work, many have families – even at the community college level! – We have shit to do, we’re here to learn, but we’re not here to memorize textbooks. Exams really aren’t the best way to assess students, but when we have so many students there’s not really a chance to do things more personally.

I teach full time, and when you teach full time, that’s way more than a full time job. I’m working on visa paperwork and travel plans. I’m studying for classes. I’m trying to get an advisor and learn about gradschool. And I’m the only one at home to take care of things. And, sometimes, I want to play video games.


Next rant: “Why my powerpoints > your powerpoints”? the next chapter on “Why I’m a better teacher than you are”, the ego-driven blog series on why school sucks and why I make it sssooooo much better. ;P

See also: “Why I make my study notes public – so that other students don’t have to suffer as I have. My teaching philosophy in a nutshell.”

More exams are better

Schedule for the Operating Systems class that I’m taking

I am stressed out. The class I’m taking has only two exams – Midterm and Final. The exams together are worth 45% of the grade. This is unfortunate for me, considering that I’m not too great at exams!

In yet another example of “things that frustrate me as a student, so I try to do better at as a teacher”, I don’t like exams that cover too many topics. Sure, make the final cumulative; that’s fine. But, during our “learning period” of the semester, I prefer a tighter cycle – Teach, practice, assess. Teach, practice, assess. You can spend more time doing in-depth study of fewer topics in order to prepare for that topic’s exam, rather than panicking and trying to cover every topic for the first 8 weeks and praying to your exam-god that your teacher’s exams aren’t unintuitive, and that what you think is important to study happens to be the same thing that your teacher thinks is important to study. (For reference, I also hate the lack of study guides!)

Schedule for the CS 200 class that I’m teaching

In my classes, I tend to have about 4 exams, including the final. I like to schedule my courses in chunks, with exams being the clear delimiter between topics. For exam 2, students will be studying up on arrays, pointers, memory management, and dynamic variables/arrays; all related and tie together. Exam 3 is everything OOPey. Structs, classes, inheritance.

For Data Structures, the first exam is over introductory content, wrapping static and dynamic arrays, and building a linked list. The second will be over stacks, queues, and dictionaries. The third will be over trees, heaps, and balanced search trees.

And for Discrete Math, each chapter of the book gets its own exam as well. A nice, clean, split between topics in the course.

I also either prepare study guides, or provide exams from a previous semester. Why? I don’t protect my old exams like a dragon hordes treasure because at some point, somebody is going to have that information. And they’ll distribute that information among their friends, so then only a small pool of people will have it. That’s not fair to everybody, and that’s also not really something I can stop. So start them all on even footing. I hope that it also discourages cheating if students know what I expect of them, and what I intend to assess of them.

So I’m nervous about this upcoming midterm. I have actually taken this class before, as an undergrad, at another university…

… and while I scored really well in my programming assignments, I just don’t do well on these kinds of exams. Math, gimme, I’ll ace that. Exams with coding on paper – ok, I can do that. Exams where you memorize a bunch of random information aimlessly? That is not my strong suit.

The first time I took the course, it was taught by Dr. Cotter, who is one of my favorite teachers. Even having an interesting teacher didn’t make it easy for me to do well!

Of course, I’m older now, I’m more experienced, I’m better at knowing how to learn. I have been using more resources as I study these concepts so that I have a better understanding than I would if I only studied from the textbook. But still, I resent not knowing what is expected of me. I resent the lack of respect for my time, by making the exam an amorphous mystery – good luck.

Today, I woke up early. On Tuesdays, that means 8 am, since I teach my first class of the day at 12:30 pm. I woke up early in order to work on class materials for today and tomorrow, in the morning while I’m free to work from home with my coffee and bagel and music. Because once I’m in the office, my productivity takes a hit.

Over the weekend, I had prepared the topic lecture, made the video along side it. I built the homework and online quizzes. I still needed the actual in-class exercise for class today, which is how we spend the class periods for Discrete Math — I spend about 30 minutes lecturing, maybe more time if there’s some example problems to work out — then I have them work in their groups to learn the new material via these exercises. The exercises start them out simple and progressively get harder, with explanations before each section.

Went to my first section of Discrete Math, lectured, and graded things while they worked on their exercises. Home for lunch, then back for office hours for two-and-a-half hours.

I work on my exam for Data Structures tomorrow, which I had started last week but had not finished. My brain isn’t working; I feel restless, cramped, unhappy, anxious. I do not enjoy being required to physically be in a location when I can do the exact same work in other locations. I know how to be productive, I know what environment I work best in, but so many organizations and companies equate “time spent” with “productivity”, that a lot of my time ends up wasted.

I spent a little time video chatting with Rai from my office. I cried for a little bit, because the exhaustion is always there. I miss Rai, and I’m constantly tired, and I’m constantly working.

And then I keep getting arbitrary little tasks that eat up more time – write a short report in response to the departments’ personality tests on how I’m planning on working more effectively with somebody, reformat ALL OF MY SYLLABI because they don’t exactly match the department template (this is my fourth semester, and suddenly?), have weekly meetings on professional development for myself. One faculty member stops by for absolutely no reason, but makes up bizarre excuses to come talk to me, and it makes me hella uncomfortable. I’ve been told that I need to be physically present to show that I’m working. None of these things make me more productive; they make me less productive because I can’t get in “the flow”, they make me unhappy, they make me unhealthy.

I spent most of my office hours reformatting one syllabus. Because that’s a good use of my time.

Went to my night class, taught that. Came home, time to finish up that Data Structures exam for tomorrow – the multiple choice questions are done, and I worked on part of the programming assignment during my class tonight while the students were working. I still have to write the unit tests tonight so that I don’t have to spend as much time afterward on the grading.

I still have to come up with a list of, I don’t know… additional prerequisites for one of my Fall 2017 classes, because arbitrary reasons. I have to update these syllabi now. I have to finish grading my exams from last Thursday’s class. I have a lot of grading to catch up on in general.

I ate cheese in tortillas with some green salsa for dinner. For breakfast I had bagels, for lunch I had chips and refried beans. I don’t go out and exercise, except for the time that I walk to my destinations on campus. I usually don’t get enough sleep. I wake up anxious and feeling like shit. I have nothing to look forward to, because even if there were some new video game or something, I wouldn’t have much of any time for it. I can squeeze in an audio book on my 40-minute commute to KU. I usually watch YouTube clips of late night shows while I’m eating breakfast in the morning.

I still have to find a graduate advisor and set up my committee and write up my degree plan. I still have to do my own homework and study for exams and go to thesis defenses and write reports on them. All the professors are interested in thesis students; I want to do a grad project. I’m a “non-traditional student” who knows what the fuck I want, and I don’t want to spend years on that kind of research. I have ideas for grad projects. I want to do my own thing, get a degree, and open up more career options for myself.

And, as always, my startup gets put on the back burner. I don’t have time, and I certainly don’t have the emotional energy. I’m miserable.

And when people tell me “Work smarter, not harder” or “You have to make time” I just want to scream at them. My partner is stuck on the opposite site of the world, and has been there for the past four full months. Tomorrow is our anniversary. He was given two weeks notice to pack up his life and go back to his home country. On top of everything else I’m doing, I’m also trying to get our fiance visa paperwork done.

I wake up every day with the radio turning on to NPR. The news is constantly about 45 and his shitshow. I worry about the future. I worry about the climate. I worry about my friends and family, especially after this shooting in Olathe of an engineer from India. One of my students was friends with that man. I have students from so many different countries. Everybody deserves to be safe.

I’m so exhausted, but I have so much work to do. I try to get ahead of the pile at night, but it doesn’t help. I work slow, I’m sad. Then I keep getting handed more bs to work on that has no value whatsoever. I started the semester burnt out – the break between winter and spring semesters was not relaxing, with the political climate.

There’s nothing I want to do. I don’t enjoy anything except maybe junk food and sleep. I’m angry that I’m once again stuck where I am. I keep trying to work toward more freedom, but things just get worse.

Inspiration and meaning

Since the election, I have had such a hard time getting inspired.

As news unfolds, creating an unwelcome climate here in the U.S., but also news from other countries such as the atrocities happening in Syria, I find myself wanting to do something with my work, but don’t really know how to go about it. At the moment, the best I can do is donate my money.

As we think of the next game that we are going to make, or just little games I could make in my spare time, I keep wondering what I can make that has meaning. That makes a difference.

Of course, making games that make people happy can be important, too. Sometimes, we all need a little escapism, and it can be hard to stay motivated to get shit done if you’re depressed and worried constantly. If you can at least get some reprieve, you can work towards doing more good.

But beyond fun games, what else could I be making? To help support others? To teach others? What?

I’m not one to sit around idle while I wait for an answer to be fed to me, so I’ll keep going. I got hired on full time at my school, which means a steady income for now, and I can set up monthly donations. I can work on projects and work on making my business more viable, and perhaps once we have money (beyond what I put in out-of-pocket), my company can have more weight.

I’m just kind of stuck in a rut without any inspiration, because I have essentially been constantly worried since November.

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?

“Looking for people with grit”

Do you ever hear an advert for a job opening, and they have all these weird personality traits that they want you to have?

Why can’t I just be really damn good at programming? Why do I gotta be gritty or tenacious? Why do I need to have “no ego”? How about you just tell me what tools I need and let me handle the rest?!