The Post of P's

Programming#

Week two of Makers has been a continuation of the work started last week, building out some of the core fundamentals of coding. I have found this week quite challenging, but not due to the learning topics (hashes, methods and classes) themselves.

I mentioned in a previous post that one of my Charlotteism’s (in this case, dyslexia) is that I often need to relate a concept to something I have actually seen or experienced to understand it. This week, my brain was just not in the right place to make these connections as quickly as it had in previous weeks. I think this was largely down to not having a great week pain wise, in comparison to the previous weeks, and that has impacted me mentally.

Even though I have identified this likely trigger, it’s such a frustrating feeling. This is the entire basis of learning - making connections. Why can’t my brain just do what I so desperately want it to, quicker? The challenge/example/my own code is right in front of me; why can’t this be easier.

But I got there. My brain gave me small glimmers of hope dotted throughout the three days I needed to complete the tasks for this week. Finally.

Hashes#

Hashes I managed to get a handle on quite quickly. They are like arrays where you give a name to the index. This makes looking up values, or even storing values, a lot easier!

  array = [1, 2, 3, 4, 5]
# index =  0  1  2  3  4

hash = { "one" => 1, "two" => 2, 
         "three" => 3, "four" => 4,
         "five" => 5}

Methods#

I won’t hide the truth; I struggled to understand how methods worked, and could work with each other.

I went into the methods chapter quiz feeling quite confident, and wrote the individual methods with ease. As soon as I had to make them interact to complete a task however, I froze up. How do I tell it what I want it to know? How do I get it to give me what I want? and then how do I use that to tell another method what it needs to know?!

This is not a case where I came up with some Charlotte-type-of-clever example that could help me picture it. Instead, I sat for hours feeling physically sick and uncomfortable while I (Becky) told myself that this was the proof I was, and would never be, good enough to do this.

It finally made some resemblance of sense when I calmed down and tried to imagine a marble going through my code like a marble run. We start here, the marble needs to go through this hole, etc, etc. I’m not convinced that the concept is completely cemented in my head, but I try to remind myself that I’m 3 weeks into the part-time section of my course and for the most part I feel very happy with where I am.

Classes#

Classes and class objects (when the class is created by myself) took me the longest, and was the most frustrating thing, to understand. As with methods, I found it quite hard to understand how class objects could interact with other classes and how that was possible. It took a long winded discussion between my husband and I until I finally figured out an analogy that makes the most sense to me.

Classes are like subjects in school, variables defined as class objects are like the teachers, and their knowledge is like methods. A teacher will be very knowledgeable about their own subject, and is able to go talk in other classes about their own subject, but they won’t ever be able to teach another class’s subject knowledge.

I won’t pretend like this makes sense to everyone, but now I am able to visualise an actual teacher moving between different environments and rooms while still being able to teach their individual subjects.

Pairing Paralysis#

Why is pair-programming this terrifying, anxiety inducing, moral questioning, activity? I know categorically that I am not better at anything than anyone but, and I’ll be blunt; I feel like a bitch when I have correct someones code because I spot an error or a typo, or feel there is an alternative way of doing something, or have to assert that the way the code is being written is hard for me to read and can we change it to give it more readability?

In the Software Engineering at Google: Lessons Learned from Programming Over Time book that I have been reading through, they discuss removing personal emotions from these types of situations, but that isn’t making it any easier. What happens if the other person doesn’t know I’m not being personal because they haven’t got into the same mindset? I hate confrontation, and I’m finding myself not wanting to make comments incase of it. It’s a disservice to the process though, and one that will not benefit me or my pairing partner.

The Makers process will see us pairing every weekday afternoon with another student during the full-time course in the hopes of normalising the process and getting the cohort over this anxiety. So watch this space, because I have no idea how I am going to get over this fear, but I’m trusting the process.

Post-It Pyramids#

In my personal life, it’s like I have an Alexa or Siri built in, seamlessly managing mine and others todo’s with no issue. It’s actually become a bit of a running joke that people say “Hey Charlotte, remind me to do this” and I will remind them when they need it. My academic and work related careers are a different story. I really struggle to organise and keep on top of tasks and often get overwhelmed by the amount of things I need to get done.

I have tried almost every tech and non-tech type of solution there is. Diaries, calendars, task managers, procrastination planners, bullet journals, reminders, alarms, even sending emails to myself. You name it, I’ve probably tried it. Nothing ever seemed to help solve the actual problem of managing my tasks, it just becomes more of a burden.

Enter the humble post-it note from stage right. It’s quite ironic, since I discovered this game changing method for me while writing a post-it note to remind me to find a solution to my task managing woes. I am allowed three post-it tasks at any one time, two on the bottom row designated as tasks that need to be done the soonest, and one on the top row which is a task or event that is in the near future. This makes the self-proclaimed post-it pyramid.

When it comes to me needing to add a 4th task, I am forced to start working on one of the tasks already set-out for me before I can put a new one down. It’s an incredibly simple, not so flexible, way of task management that works for me right now. It’s really helped me keep on top of the things I need to do on my bootcamp, personal learning goals and this blog. In the future, once I have gotten into the habit of managing three tasks successfully, I will grow the pyramid to three rows (3,2,1) to accommodate a larger work load. I’ve even thought about how I could make this into a little coding project!

Basic, simple, and works for me!

Learning Another Language is Go-ing to be Hard#

While Makers is predominantly in Ruby (and later some JavaScript), I have my sights set on working with Go. This is where I want to end up for a combination of reasons; the Go community is incredible, many of the companies I would love to work for use Go, and I would love to be able to work with my husband (and others!) on open-source work in the future (call it marital bonding, or something).

I have been using the downtime of the course working through some Go tasks to get familiar with the language. I am probably putting far too much pressure on myself at this point, but I want to ensure that in the next four months I set myself up to be in a strong position when I start looking for my future career options.

It’s been quite a fun process learning the differences between Ruby and Go (i.e not being able to compile with unused variables), and I really like the ability to set data types. In terms of logical steps, it has allowed me to visualise what type of data going where. It’s not all been smooth sailing though.


 

While some of the programming concepts have been challenging, as I have mentioned, Ruby itself as a language (as in, most of the words used to describe methods) makes a lot of sense to me and my dyslexic mind. Go however, well, I have only self-combusted a few dozen times while learning.

To speak openly, Go is an incredible language that is loved by many. However, I am finding it more challenging than I expected, due to the naming conventions of the language and some of the formatting. This is definitely a dyslexia getting in the way moment, but it’s incredibly demoralising and in some circumstances distressing experience. The experience of motion sickness from the placement of } in if/else if/else (although coding in this way is less commonly used in Go) statements is a particularly sore point of mine.

This has really brought back the memory of the first time I felt that the world wasn’t designed for people like me; be it in how educational systems are designed, or how books are printed, among other examples. Now I am back wondering again; are people with learning disabilities considered when a new language is designed? Were we ever? The arguments I have been told behind the use of certain conventions which I struggle to connect with is because it is ‘like that in other languages’, but does this appeasement to those who already know & can, possibly alienate those with learning disabilities who want to enter a language? Technically, it doesn’t mean it’s impossible to learn, but it makes it a lot harder than it could possibly be. Is this demoralising individuals and turning those who struggle to learn away prematurely?

I don’t have an answer for this question, nor data, and maybe these are considered and I am an outlier in my learning abilities in comparison to others who identify as dyslexic or other learning based difficulties. Regardless, I hope that design is, or will be in the future, inclusive of everyone, including those with learning difficulties.

What I have taken away from this experience is a win for my growth mindset. Six months ago I would have been completely disengaged from attempting to learn Go; in fact a year ago I tried and was turned away by the complexities. Now I look at this with a new vigor; Yes, I am struggling and yes, I will have to work for it more than others, but I can and I will.

Becky, take a backseat. Charlotte’s driving today.

I spoke briefly in my first post From Critical to Coding that I overcame the worst part of a critical illness in 2018, and how that experience led me to push and challenge myself to do new things.

It always seems to shock people when I tell them I live with chronic pain, and have been for a little over four years. With the exception of when I was at my worst and dangerously underweight, or if you saw the 20cm abdominal scar I now bear from having my stomach and gallbladder removed, you would not be wrong to say I look like a healthy adult who has not experienced significant physical health issues.

The first two and a half years, before the cause of my illness was discovered and I had major surgery to fix as much of the issue as possible, was the worst period. It was debilitating. The pain I experience now is less severe, but it is constant and will most likely never go away. I have also developed new areas of pain in addition to where I was before, due to the complications I faced. It’s like a nagging thought, constantly in the back of my head.

Each week my pain forms a new identity. This week it is manifesting as continuous pain radiating from my left shoulder up into my neck, and down to a very specific point on my forearm; my left lung feels like it is being gripped by two giant hands and squeezed to within an inch of its life but at the same time I have widespread numbness across by back (which isn’t as pleasant as it may sound); my feet feel like they are walking on nails; and my head feels like it’s stuck 500 meters under the ocean. These feelings never stop, I have just been aquatinted with them for so long I either have the choice on letting them control my entire life, or try live with them in some way.

I have always tried to been open and honest with my struggles with both depression and anxiety. Depression has affected me since a young teen, and anxiety reared it’s ugly head for me in my late teens. It would be fair to say I am well acquainted with both.

My mental state during the first two and a half years of my illness was at rock bottom, or so I thought. Leaving hospital after the experience I had, I was expecting the period of depression to continue for awhile. As soon as I could, I took myself off alone to St. Lucia for a week, in one of the first of the liberate Charlotte acts, to convalesce in the sun. I returned with a newfound sense of freedom and determination. I had decided to achieve whatever I wanted to achieve, but the depression I was now experiencing was different to how it felt before. It is a constant state of terror. Then the flashbacks started, and the nightmares, and the crippling fear anytime I felt a twinge of pain I did not recognise.

Before lockdown started in the UK, I was trying to self-medicate from these feelings with climbing and running. As soon as I got onto the wall or on the trail, everything going on in my head went quiet, and after the activity I was so physically tired that the noise became numbed. Then lockdown started. My covid-vulnerability has meant I haven’t been able to participate in either of these activities, and the anxiety over the state of my health hit an uncontrollable high.

I had this idea in my head that PTSD is something only soldiers, or those who witness atrocious acts, are able or allowed to experience. It felt way too extreme of a diagnosis for me, someone who had just been ill(however severe), but I was officially diagnosed with PTSD a few months ago.

Living with chronic pain or PTSD is incredibly challenging by themselves, but the combination of both is exhausting. The pain is a constant weight on your shoulders, but then PTSD comes in and hits you when you least expect it, like someone pulling your feet from beneath you. It’s unrelenting and, without the self-medicating activities, there are days where I wanted to pull my brain from my head to stop the noise.

This noise has stopped me from being able to do or succeed with many mental tasks and I was not expecting coding to help, in fact I expected it to stop me from even being able to try. Instead, I have been able to sit for hours working on problems without these thoughts consuming me. They still come, but rather than swarm in the room flipping tables, they wait at the doorway for me to acknowledge them before I turn them away for a meeting at another time.

After coding, I am not physically tired like I had been after running, but mentally tired. Maybe this is a coincidence, but I have been able to read books for the first time in years (which I now do during my Tech-off-Time). I have felt productive in both a professional and personal capacity, and I have been able to sleep for more than an hour at a time.

Coding isn’t a cure, not at all, and I am prepared for this sensation to not last, but I didn’t expect this side effect from trying to forge a new path for myself. I have had four years of my mental health being in the worst state I have ever experienced, but I am now afforded days where I am not as on edge and where I can sit and do something productive. I’m seizing this time to start good habits that will make the low times easier to deal with, and climb out from.

Vulnerability#

I have debated with myself sharing this information. I feel a combination of shame, embarrassment and fear of coming across as vulnerable. Equally, there is another, more vocal, part which wants to express how coding has started to impact my life, and how I work with coding while living with chronic pain and post-traumatic stress disorder (PTSD). There may be someone out there who can relate to my experience.

Some look on vulnerability as something to pray on, or a sign of weakness. I see it as a sign of authenticity and courage to openly express (if you feel comfortable enough) the struggles one may face. If that is paired with discussing the ways you have taken steps to improve yourself, however large or small, then there is the possibility that someone may benefit from your words. I am not afraid to admit that I went through an experience many will not and that it has impacted me in ways I would never imagine, but that experience has made me an incredibly strong and driven person. I couldn’t say that about myself before.

New Week, New Me#

Next week is the final week of the pre-course. I have two challenges, a pair programming challenge and an individual one. I’m really excited to get stuck into it. Building things is so incredibly fun. I don’t have anything else in my life right now (yes, we are still shielding) that gives even an ounce of a similar experience.

Frustrations, pain and brain noise aside, I’m still just as, no, more excited to be on this path.