Weeks 4-7 at Ada Developer's Academy

Almost four weeks have passed since my last update, and in some ways it feels like four months! In our final two weeks of Intermediate Ruby, we completed two major projects that consumed 25-30 hours each week. The first was a pair-programming project where we were tasked with building a basic Scrabble game. In that week, I feel like I learned so much about working with a partner – the importance of aligning programming styles, working to each others’ strengths, and most importantly, listening. I also learned more about my own style – I took certain things for granted on our independent project, and working with a partner made me see the steps that I complete on my own without even realizing it. I need time to independently process and consider a problem before coming together with my partner to actually write the code, because especially at this phase in my development, I am very hesitant to make suggestions that I am not sure about. I don’t want to waste my partner’s time. By giving myself that lead-time, I am a more confident and engaged programmer. I won’t lie – Scrabble was definitely the most challenging week for me so far. I didn’t sleep much, and I probably stressed myself out way more than I needed to. In the end though, we finished the project and met the MVP standards.

Following Scrabble was the much-anticipated (or dreaded) FarMar – a project that prepared us for our future work of using databases to manage large sets of data. It seemed that most of my cohort preferred the Scrabble game, but in the end, I found FarMar FarMor intuitive (ha…). FarMar really brought together all the various skills we had learned in the first five weeks, and for me, it was a great way to process all of that information. FarMar stands for Farmer’s Market (although I do prefer FarMar…it sounds like some futuristic science fiction location…)…and for the assignment we created various classes (markets, vendors, products, and sales) and then imported large .csv files with data specific to these classes, in essence creating hundreds of market objects, vendor objects, etc. Then we connected these classes in various ways (e.g., creating a method in the market class that allows one to look at the vendors that sell at a specific market). This was daunting at first, but after setting up the basic data structures to store the information, and realizing that a lot of the basic logic repeats, I got into a really nice flow. I am still surprised by how much I enjoy putting my headphones in, listening to some good music, and spending hours programming. The time just flies. I've been meaning to put together a programming playlist to share on here, but I haven't done that yet. Maybe next time!

Oh, I almost forgot…we completed Scrabble and FarMar using something called TEST-DRIVEN DEVELOPMENT (TDD). I used all capitals to emphasize the intensity of my feelings toward TDD. We have been on a roller coaster, TDD and I. After lectures and demonstrations, I thought I understood it, but when I tried to actually apply it to my own problem, I realized I had no idea what I was doing. I understood the concept – write tests for your future program (considering edge cases and the basic functionality of your code – does it do what you want it to do?), and then write just enough code to make your tests pass. Writing code this way can make your code more succinct, and can also help you consider and avoid bugs, BEFORE they become bugs. This all sounds great, but the tricky part is being able to conceptualize the program you want to write, before you write it, with enough detail to anticipate where it might fall short…so that you can actually write good tests. I will admit – on Scrabble we wrote enough pseudocode before writing the tests (this is where you write out the basic logic and flow of a section of code, without actually writing with all the proper syntax) that at points it felt like we weren’t really doing TDD at all. But then, class by class, method by method…it all started to make sense. And by the end of Scrabble, we were writing the tests before writing our code. For FarMar, I almost solely relied on TDD. So, TDD and I appear to be off the roller-coaster, at least for now.

After our mini-capstone of FarMar, we immediately jumped right into an intensive week of HTML/CSS. When I heard we would only spend a week focused solely on HTML/CSS, which are the languages responsible for much of what we see on the web, I wondered how we would cram it all into just 40 hours. I didn’t believe. Well, I am here to tell you that I survived, and that I can now build a basic, only semi-ugly website from scratch. I knew some of the concepts of HTML because I took a class in high school many years ago, and I have used some snippets of HTML and CSS to modify my WordPress websites, but I had never built a full website using HTML AND CSS before this week. We did this on day two. By day three, we were writing the CSS for a full multi-page blog called “Meowspace” (it is exactly what it sounds like - MySpace for cats...), learning how to use layouts and basic design. Our big project for the rest of the week and our week off is a portfolio project, where we basically design and code a portfolio and blog to use in the future. It is Tuesday of my break week, and I am still in the early stages of this project, but it will be done by next Monday. After that, I might try to transition to only using that blog for Ada stuff. We’ll see how it turns out before I make any big decisions on that front.

meetup internship sites

So what else is new…? We had a really cool experience on our final day before break. One of the Ada instructors is moving onto another position, and he randomly graced us with a final lecture on his last day. This was totally spontaneous and unplanned and AWESOME. CSS is really frustrating to learn – images move left when I float them right…buttons don’t disappear like I want them to…display:inline hates me…and it left some people in my cohort basically hating CSS. Jeremy loves CSS, and as his final legacy wanted to show us some of the cool things that one can do with CSS, while also urging us to treasure every moment at Ada. He pointed out that we only have a year at Ada, and that we will spend far more time outside in the "real world". It can be easy to look ahead to internships and jobs, but I think his point landed home for a lot of us - being in Seattle at Ada is special and it is important to try to stay as present as possible during this time. His lecture on CSS ended with a series of shapes built with CSS transforming into a heart. It was pretty cute. I can’t put my finger on what was so special about the lecture, but it resonated with a lot of us, and more than one person announced on Twitter that they changed their mind about CSS. So, mission accomplished!

We also completed a “feelsy” activity with our counselor, Sarah, a couple of weeks ago. I want to highlight it here on my blog because to me it is a great example of how Ada is not just concerned about our progress toward being better programmers, but also about our confidence and mental health. We took a morning, and sat in a dark room with our eyes closed. Then, Sarah had one row stand up at a time and circulate around the room. She read aloud statements like, “a person that makes the classroom fun” or “a person that impresses you with their skill in coding” and had that standing group go around and touch people’s shoulders if they fit that description. It was a way of giving kudos to people in a private, understated, but also very meaningful way. A few tears were shed, and I think most of us walked away feeling supported and appreciated.

I also went to my first tech conference – ACT-W, attended my first meet-ups (check out CODE: Debugging the Gender Gap – very interesting movie), and met with both of my Ada mentors over the past couple of weeks. I also gave my first lightning talk, on the topic of CHERPAS (see this blog post to read more about it and click this link to see my presentation) - we were all required to give one five-minute talk about a topic of our choice. I was really nervous, mainly because of how much information I was trying to squeeze into five minutes, but I think it went okay! I also learned some preliminary information about internships. It is hard to believe, but I will be interviewing for my internship in December. We learned about the process, and were encouraged to focus on the fact that we will all get an internship, and that it is a first step, not the final step, in our tech careers. Historically, about 50 percent of Adies stay on at their internship sites when they start their careers, but what that also means is that about half of Adies find a new job after internship. I feel pretty open-minded about the process, and I have faith that through learning about the companies and interviewing, I will gain some perspective on the type of internship environment I hope to have. I believe that the team at Ada will do its best to match me with a site that is a good fit. That said, there are some pretty awesome companies on our list of potential sites – Amazon, Google, Microsoft, Century Link, the City of Seattle, Redfin, Zillow, etc. There is even a place called Rover that allows you to bring your dogs to work every day. That one might be my favorite already (shh..).

I have this extension on my Chrome Browser called Momentum, when you open your browser you are greeted with a beautiful new photo and inspirational quote each day. It also has a built-in to do list and bookmark bar, which is handy. I want to end my Ada-focused section of the blog with a quote from my daily Momentum page: "Dude, suckin’ at something is the first step to being sorta good at something!" - Adventure Time

I don't actually watch Adventure Time, but I am getting more comfortable with this idea of "suckin' at something" every day that I am in Ada. Sometimes it really does feel like I suck at coding, and I get down on myself. But then I have a breakthrough and I feel like I am on top of the world. It helps to remind myself that I spent a considerable amount of time sucking at pretty much everything I am good at doing now. I've noticed that as I get older, it gets easier to avoid experiences that make me feel dumb or uncomfortable. I don't want to live that way anymore. It is so much more fun and interesting to be vulnerable to those feelings and experiences and struggle my way through them. The feeling on the other side is so worth it. Honestly, it isn't just the feeling on the other side - it is the challenge and excitement and pride along the way too. I grinned from ear to ear as I ran my first half marathon a few years ago, not because I felt great at the time (believe me...my body was not happy with me), but because I was doing this crazy thing that my previous self NEVER thought I could accomplish. I spent many training days feeling dumb and uncomfortable during that process, thinking thoughts like, "I can barely run 4 miles - how will I ever get to 13.1??" I would recommend programming as a hobby to anyone who struggles with perfectionism. You learn so quickly that mistakes are unavoidable, feeling stupid is part of the process, and once you get past those thoughts it is just a lot of fun. Okay...maybe not all fun...there is some major head scratching and teeth gnashing in there too. But also a lot of fun.

I’m in Oregon visiting Matthew and the pups right now, and I want to start by saying that long distance is tough. I try to keep this blog pretty light, and focused on my experiences in Seattle, but I don’t want to downplay the emotional toll of being separated from my husband and pups and the sheer joy I feel at being home with them for a week after a month and a half of separation. This week we went to the coast, spent some time at the great Eugene parks, and have also eaten at some of our favorite restaurants. I’ve been able to get some quality puppy cuddle (and work) time in while Matthew teaches, and have also been able to see some of my friends. It is hard knowing I won’t be back to Eugene until the end of October, and I will only have two days with Matthew then, but it does help that Matthew will be up in Seattle only 12 short days after I leave Eugene. Something to look forward to...

Random resources: Check out f.lux. It changes the background color of your screen based on the time of day to make the screen easier on your eyes, which is especially great if you find yourself working into the wee hours of the evening. One of the ladies in our cohort did a fun survey asking us about tons of random stuff, including our age, number of previous careers, favorite books, etc. As a side note, she keeps an Ada Twitter Blog (Twog...hehe) that you can check out here. It is a cool way to keep tabs on what we are up to on a day to day basis, without committing to reading ridiculously long blog posts like this one... Anyway, one survey question was about our favorite songs, and then someone else put together this Spotify playlist based on our responses. Cohort 6 has pretty great taste in music - I've been loving it. I think my favorite track on the playlist is Young Bride by Midlake, so check that one out if you get a chance.

My First Month at Ada Developer's Academy

I just finished my third week at Ada Developer’s Academy. As I settle into my routine at Ada, I keep having the same thought – “So this is what it feels like to love what you do…”. This thought brings about scary, overwhelming, intoxicating, and unfamiliar feelings. I always thought I would live my life outside of my work, if that makes sense. I would do something I generally liked, but the bulk of my satisfaction and sense of accomplishment would need to come from my hobbies and relationships. I specifically chose my first career based on this understanding I had with myself – find balance above all else. Summers off, evenings and weekends free, and a flexible vacation schedule allowed me to more fully pursue things like reading, songwriting, yoga, friendships, exercise, and travel. I have loved that part of the past five years. I would never trade the time I have had to develop these interests and the summers filled with travel, family, friends, and new adventures.

I have loved watching my partner, Matthew, pursue his passion of playing piano and teaching as a career, although I will admit to experiencing some occasional jealousy over how easily he has been able to combine his work with his passion. At the same time, I’ve seen the downside of overwhelming, singular passion – it can be consuming and not leave much time for anything else. As I have longed for a more passionate endeavor to fill my work days, I’ve seen Matthew struggle to create balance and time for relationships and other interests outside of piano. I think this is one of the reasons we are so compatible – we encourage and inspire each other to continually grow and push ourselves beyond our very different comfort zones. I think balance is still in the forefront of my mind as a value, but I am learning that passion does not need to be sacrificed in order to find balance. Love and passion bring meaning to life in a way that balance cannot.

So, my first three weeks at Ada…in short, they have been incredible. I constantly feel intellectually and creatively stimulated, and I have learned SO MUCH. We have already moved into the “Intermediate Ruby” part of our curriculum, which boggles my mind because three weeks ago, I was a total beginner at the language. This week we created bank accounts with all sorts of features, and next week we are pair programming and making Scrabble games. This experience reminds me of my first year at Colorado College – only more intense, because instead of three hours a day of a single subject that rotates every four weeks, it is eight to ten hours a day of programming, week after week. In addition to the lectures about practical application, live coding exercises, and larger coding projects, we also have a 2-3 hour lecture and homework assignment each week about Computer Science fundamentals, and a 2-3 hour lecture each week from a counselor or other staff member that helps us dive into issues like implicit bias, inclusivity, and imposter syndrome – all issues that impact women in the tech field. They have had a speaker discuss financial empowerment, and another speaker review the importance of having a vision for your future. We will also get practice giving lightning talks (brief 5-minute talks that are really prevalent in the tech field).

photo of class of 24 Adies and their teachers

I continue to be amazed by the level of support and encouragement at Ada – it unlike any other educational experience I have had. We are constantly reminded by instructors, speakers, and Adies in other cohorts that we are there because they saw something in us. It is easy to begin to doubt your skills or abilities when you are surrounded by 47 brilliant, strong, and driven women and the expectations for achievement and learning are so high. But they seem to know that, and they have pre-corrected for it in some very effective ways.

The instructors and directors are great about fostering a non-competitive environment. My cohort, Cohort 6, is the first to have 48 people instead of 24, and we are separated into two groups – the brackets and parens. I am a paren. The parens have two instructors, and some days we also have Teaching Assistants (volunteers – prior Adies or other people in the tech field) come into the class to help. Our instructors give us regular, written feedback and we have one-on-one meetings with them every two to three weeks. In addition to the support from our instructors, we are encouraged to meet regularly with the counselor that is on staff to problem-solve personal or interpersonal issues. We also have six hours of scheduled optional tutoring each week. On top of all of that, every new student is assigned an Adie mentor from a previous cohort, with the expectation that we meet with them or talk to them regularly. Those of us that are not tech-adjacent (which means that we don’t have a close friend or family member in the tech field) are also assigned an industry mentor, so that we can ask them about issues specific to the tech industry and begin to develop our network.

Ada Developer’s Academy also has a strong interest in continual improvement. In the first three weeks, I have already taken a survey about the effectiveness of the instructors, and how I am feeling with the pace of instruction. I am not positive about this, but I have a feeling they are going to take our feedback to the instructors so they can make changes as needed before we get too far into the program. Finally, each week we are encouraged to write post-it notes about things we want more or less of and challenges or positive experiences we had in the last week. Then in the final thirty minutes of class on Friday, we talk through the post-its and have discussion as needed. They call it a “retrospective”, and I think everyone should do it! I will be honest – I had pretty high expectations after reading the blogs of Adies that came before me. But even these were blown out of the water. I feel unbelievably lucky to have this opportunity.

photo of Adies sitting outside

There has been some time for fun and exploration too. During our first week, we went on a fun downtown Seattle scavenger hunt with teams of 2-3 other students. My team called ourselves the “Merdogs” – I’m honestly still not quite sure what that means, but we had a great time taking photos of ourselves with things like “a fish being thrown at Pike’s Place Market” and “as many pigs as you can find”. We also have played games like “Two Truths and a Lie”, “BINGO”, and “Speed Dating” as ways to get to know each other better.

In terms of challenges, I need to get out socially a bit more – I knew this would be a struggle because I live with my sister-in-law, who also happens to be one of my closest friends. It is always easier to stay at home or hang out with a familiar person than to go out with new friends. I’m going to make more of an effort to do this over the next few weeks. I also want to keep bouldering at the Seattle Bouldering Project – what a fun way to exercise! Other than the social piece, I’ve been able to keep a pretty balanced life so far – I’ve read a book each week, gone running 2-3 times a week, watched the first season of a TV series, and have been able to cook and eat most of my meals at home. This all feels really good. I’ve also made it to a couple of the beautiful Seattle-area beaches. I’m hoping the weather holds up for a few more weeks so I can do more of this type of exploration! We’ll see if I can keep this balance as the expectations continue to ramp up over the course of the year. I’m going to try to blog every few weeks.

Resources:

What do the fields of software development and school psychology have in common?

I have thought a lot about why I want to be a software developer over the past six months, partially because the application and interview process at Ada necessitated that I do this, but also because I wanted to be very thoughtful about taking this step toward a new career. Since I announced that I will be changing careers and starting at Ada in August, friends, family and coworkers have been unbelievably supportive and excited for me, and in their curiosity about my new path, they have asked me questions like, “Why software development?” or “Does school psychology relate in any way to what you will be doing next?”. These questions and others have led to me realize that the general public doesn’t really know much about software development and what it is, let alone how it might compare to my current career. There are surprisingly many parallels between school psychology/education and software development/technology, from the way problems are approached and solved to the way that collaboration is encouraged. There are also some key differences that I want to talk about, that might illuminate further why I made this career change – I decided to cover these in a future post.

As a school psychologist, one of the basic tenets of my practice is the use of a problem-solving model. This is basically day one of grad school (and almost every day after that…) and it has been the foundation of my work in this field – whether is with students, teachers or bigger multi-tiered systems of support like Response to Intervention or Positive Behavioral Interventions and Supports. It has also filtered into my daily life through goal-setting and evaluation, Bullet Journaling, and habit tracking (check out my CHERPAS system). It has basically been my whole life for the past 8 years. Here is a technical definition that I think explains it pretty well – the problem-solving model is a data-driven feedback loop that uses a systematic approach to assist in making decisions about the quality and effectiveness of interventions for children who are struggling in school. Although the exact nature of the model varies according to the practitioner’s orientation and values, there are four basic questions that serve to guide us: “What is the problem?”, “Why is the problem occurring?”, “What should be done about it?” and finally, “Did it work?” So far, this is so very similar to writing code. To complete my program for the Phase 3 application process for Ada, I found I followed a process of researching and learning, trying a piece of code, testing it, and then making refinements until I got close to what I wanted to accomplish. Then I did this over and over again for every small “problem” I encountered when writing my program. I love this way of approaching problems at home and at work, which is probably why I have so quickly become enamored with programming.

Second, from everything I have seen so far, the tech world strongly favors collaboration. Through my work as a school psychologist, the primary part of my job is collaboration with others – with teams, teacher, administrators, families. I do this through all kinds of team meetings, trainings, collaboration sessions, and consultative relationships. My meetings often involve sensitive, highly charged topics like making a child eligible for a disability category or figuring out how to make a plan work for a family and school when everyone has limited resources. Through this experience, I have learned that so much can be gained through collaboration and sharing of ideas with others, and also that it can sometimes be really difficult, exhausting work. I’ve also learned that listening and really hearing someone else is the core to any sort of meaningful collaboration. I love the fact that I will be able to continue to collaborate with others in meaningful ways about important problems as I transition into the tech field. Pair programming, or writing code collaboratively with others, is a huge part of many jobs in the tech field, and since this is a field that never stops changing and growing, staying updated requires getting constant feedback and information from others. This ongoing learning takes the form of in-person meet-ups, conferences, and online information-sharing (GitHub and StackOverflow), to name a few. The problems that the field of technology is solving are complex, and there no way they can be figured out by people working in isolation.

I’ve been interested in human behavior and have been curious about why people behave the way they do for as long as I can remember. That is why I initially pursued the field of psychology. Both my undergraduate and graduate programs heavily favored Applied Behavior Analysis (ABA) as a way of viewing the world and those operating within it. In my work (and in my life as a dog owner, partner, friend…), I have seen the power of this and have generally adopted it as the way I view the world. ABA is a learning theory that has demonstrated that we can change behavior by assessing the functional relationship between a behavior and its environment. For example, I am more likely to eat at home if I prep all of my food for the week. However, even if I prep all my food, if a friend asks me to go out with them, I am pretty likely to say “yes!”. Then this behavior of doing out is reinforced by the social stimulation and the delicious food I am eating, so I am more likely to do it again in the future. This is such a cool concept, and it permeates every area of our lives. Once you start to see the ways in which you and others around you are triggered or reinforced by certain environmental stimuli, your whole world opens up. I love this stuff, so I am getting a little off-track here…back to the similarities! One of the most basic concepts in Computer Science is algorithmic thinking. An algorithm is basically a step-by-step process that solves a problem. Since computers need everything to be very explicit, algorithms are very specific and detailed. One of our early practice assignments for understanding an algorithm required us to write out every single step it would take to make a peanut butter and jelly sandwich, so a robot could do it if they picked up the directions. I actually did something really similar in one of my ABA classes as a way to understand the importance of behavioral chaining, which is, guess what…pretty much the exact same thing as creating an algorithm! Specifically, it is a way to teach someone all of the individual behaviors that are a part of a complex behavior. The only difference is that after carefully designing each step required to solve a problem or engage in a behavior, the person teaching the behavior reinforces the individual responses. This may seem like a minor similarity, but again, these foundations were the basis of my work as a school psychologist, and it appears they also will be in computer science.

I hope this illuminated some of the similarities between school psychology and software development. In my next blog post, I am going to talk about some of the key differences, based on what I know thus far!

Ada Acceptance and Moving to Seattle

Ada Developer’s Academy emailed me to let me know I have been accepted into their sixth cohort!!! When I found out, I was on my lunch break at a pizza place in Springfield. I had been obsessively checking my email for almost a week, so my phone wasn’t far from me when I heard the soft ding that signaled I received an email. I took a look and saw that it was “the one”. Pausing for a moment before opening it, I readied myself for acceptance or rejection. When I saw the first words – “It is our great pleasure to congratulate you…” – I stopped reading and sat back in my chair, stunned.

I momentarily pushed away a tumult of thoughts and emotions to call my sister-in-law and future roommate, Jessica. Tears began streaming down my face as I told her the news, and I realized that I hadn’t allowed myself to believe that acceptance was even in the realm of possibility. It hit me all at once – my whole life was about to change – at least for a year, but possibly forever. After telling Jessica, I called my partner, Matthew, to let him know. Then as I let the news sink in, it surprised me to realize that I would miss certain things about my job. That I would miss my friends and my old life. And that it is crazy that I am about to change everything at 31 years old, after 10 years of pursuing school psychology and only a year after buying a house.

But in spite of all that, I also had this incredible realization that I am doing exactly the right thing for me. I’ve thought a lot over the past year about taking risks, being a lifelong learner, and what I want the next 10, 20, or even 30 years of my life to look like. I want it to be a life full of friendships and family and a certain measure of security, but also one of professional fulfillment. I have had and continue to have serious doubts over whether I will be able to find that sense of long-lasting fulfillment in my current field. A friend that has taken a lot of professional risks over the past couple of years, to great success and improved happiness, gave me a “congratulations” card that said the following:

“Only those who will risk going too far can possibly find out how far one can go”. – T.S. Eliot

I have never thought of myself as this brave or daring person, or as someone who takes a lot of risks. If anything, I have “played it safe” at certain key junctures of my life, afraid of social or professional repercussions. I have felt this fear grow as my stability has increased over the past five years. But at the same time, my yearning for a different, more informed version of my life has grown. By more informed, I guess I mean…more informed by my knowledge of what being an adult is really like. When we make choices about college majors and careers, we have zero idea about the daily slog of adult life. Now that I have a clearer picture of this, I am happy to say that I love many of the choices I have made – my partner, my dogs, my daily routine, my house, my friendships, and many other little things. But one area where I missed the mark is my career. As I step forward into this next phase of my life, I am recognizing more and more that this is okay, because while I don’t plan to remain a school psychologist, I can still take so much of what I have learned in the past 10 years with me into this next stage. I think the timing is right too. I am at a point where I truly feel as though I am just moving on to a new opportunity, not giving up because of stress or burnout. This would not have been the case three years ago.

In the time since I learned I was accepted, my sister-in-law Jessica already found us an apartment in Seattle and we are signed up and ready to go. I actually helped her move into the place, and wow, does it have an amazing view!! I start the program on August 8th. I plan to keep this blog up to date when I start the program, more to document my experience than anything else. Feel free to follow along with my adventures in learning to code here.