Saturday, September 28, 2013

Goodbye California

According to the Virgin America seat screen in front of me, I am writing this at 35,106 feet, and the little red plane on the Google map puts me somewhere in the middle of Utah. Ever since we started to taxi, this Jolie Holland song has been running through my head:


At least it was just running through my head until I decided to actually listen to it as I am now doing. I’ve loved that song for a long time and never thought it would apply so literally to me, in that I am leaving California and feel joyful about it, which is how the song feels to me.
I am really happy to be going to the home I have made for myself back in DC. It’s hard to even imagine how great it will be to return to my own apartment and be in my space again, and see all the people I have missed.
Of course, I am especially happy because I am accepting a job back home that I think will be really good for me. It is scary to write about because I am afraid it will fall through somehow now that I’m so excited about it. This job feels right for me, because I have decided that I can still call myself a social worker. I will get to work directly with non-profits on a software tool called CiviCRM. The people who work in the company are clearly passionate about their work and about helping mission-driven organizations. I will help with customer service, trainings, support, but my job title is CRM Developer—so it’s official, I am a web-based software developer. It will not feel real until I am working there daily and have proven myself on the job. However, I am trying to appreciate this time, where I can relax and continue teaching myself coding for fun.
I can’t believe how well everything has worked out, and I can’t help remembering four months ago when I was deciding whether to do this. I agonized over the decision, afraid I was going to ruin my life, yet once I did it, I leapt with both feet in and haven't had many regrets. I can’t really remember many days where I hated coding. There were days I was tired or didn’t know where to start, but once I got involved in a project it was usually hard to stop.
I’ve had a lot of people want to talk to me about Coding Dojo and getting into coding. I don’t know if the program I did would be right for everyone, but I have no question whether it was right for me. I think that was because I was self-motivated, a beginner, and truly loved the work. It also helped to be someone who could reach out for support when I needed it. The staff at Coding Dojo were all very supportive but you had to ask for help in the first place. I would recommend them to anyone else, as long as they really wanted to be a web developer and were willing to put up with bumps in the road that come from a growing company that is willing to listen to feedback.
Also, I love coding because loving math and logic is so much a part of who I am. When I was little, I would get my parents to buy me math and logic books for fun, or as special Christmas presents. I would get my brother to teach me advanced topics, and then I would try to teach other kids. I like to think I’m good at it, but whether I am or not, I love it enough to keep working on it even when I struggle and that may be the same thing. If you’re reading this, wondering if you should be a coder, consider that for yourself. I think the quality that most makes me good at this work is that I hate unsolved problems and so I will work until I can solve it, even if that means stepping away but still thinking about it.
Finally, I have to say something related only to leaving California. Many times over the past couple months I have found myself overwhelmed by gratitude to the people who made this trip truly special. Despite being far from home and often lonely, I always knew there were people who would help me if I needed. More than that, my hosts in California went above and beyond to make me feel comfortable and at home and taken care of. Those I didn’t stay with often offered me rides, went out of their way to see me, and brightened up my lonely days with their company.  I feel so honored when I think of all the people I have connected with along the way, and inspired by the risks that each of them are taking to shape their lives. Goodbye California, and thank you for all that you have given me, and how you have helped me to become a more-recovered social worker.

P.S. Has anyone else seen the Virgin inflight safety video—the animation is so cool! Then they ruin it by making you watch ads for ten minutes.

Tuesday, September 24, 2013

It's the final countdown!

I'm going home on Saturday (that's four days from now). The song referenced by the title is going through my head. It's hard to appreciate being here sometimes when I'm so ready to be home.
This week, I'm working on my final project in Rails. Learning Ruby on Rails was particularly challenging because it has so many of its own rules, and because I'm pretty tired. I had no idea all of this information could fit into my brain. For my project, I'm making a "TaskMaster" to keep myself on track in the future as I keep learning to code.
Here's a page where you can see your goals--the idea is to accomplish one per day:
However, coding aside, I have been reflecting a lot on my time here. About five weeks ago, I felt like I was ready to go home. I'm glad I didn't. I've felt lonely a lot since coming here, but that loneliness has had the curious effect of opening me up and helping me to see the importance of the people around me. Thank you to everyone who has made this experience so meaningful (and I hope you know who you are). 
It has been interesting to watch myself in a new context and see how much of what has held me back in the past has been me and how much has been the circumstances I was in. If this experience has taught me anything, it is that when something in my life isn't working, I need to make a plan to change it, because it's not worth making myself miserable just hoping things will get better. Sometimes I imagine trying to explain to myself from six months ago how much better life would get, but I wouldn't have been able to imagine it then.
I spent years of my life counting down time to some imaginary moment when life would get better, and it didn't until I made it better. Now, as I count down the days until I return home, I am working on appreciating what I have here and being grateful for these few months, rather than focusing on where I am not. 

Friday, September 6, 2013

Problem solved!

Just now I solved a programming problem that I have been puzzling over all week, and I actually love my solution. Sadly, it's 11pm on the west coast, making it 2am on the east coast, so there's no one to tell but my blog. My therapy homework site is up and running:

As of five minutes ago it includes the ability to save your "worksheets", although you can't yet access them--that's next! Administrators (me) can add topics and questions on the site. Next up is being able to delete topics and questions, mostly because it's a hassle to do directly in the database.
On the screen is a topic that one of my classmates helped me create. It treats the serious problem of TMSS or Too Much Swag Syndrome, as defined by the urban dictionary. If you or your loved have been affected by TMSS, please seek help.
I may have failed a test today, partly because I panicked in the middle and felt confused by the directions. It felt really overwhelming afterwards, mostly because I just wanted to be at my home and instead was way out here. However, I wound up talking to other people in my program and being reminded that most of us at Coding Dojo feel this way--lonely, competitive, perfectionistic, scared of what comes next--to some degree, and are doing our best to manage that day by day. It's still fun and exciting and worth it, but that doesn't mean it's alway easy.

Wednesday, September 4, 2013

But what shall I call them?

I have been here over five weeks now! I will be going home in just three and a half weeks. I'm feeling very ready to go home. I would love to be doing the same work, but just returning to my apartment at the end of the day though. I moved over the weekend and it threw me off a bit, even though it's better since I have less of a commute.

This week we are working on our personal projects. I went through decision paralysis over the weekend about what to work on and eventually decided to go with an idea I had wireframed before beginning the program. It was originally called "The Digital Therapist" but I have since changed it to "Your Therapy Homework." I will probably change it again. The idea is that people can fill out therapeutic worksheets online, and save them. The long-term goal would be for therapists to be able to create their own worksheets. It's not super fancy but actually wound up being more complicated than I would have thought. Mostly the database was challenging because I wanted everything to be very easy to edit, and I wanted users to be able to save the worksheets they've done.

I spent yesterday on a "mock up" where I did all the HTML and CSS, and some Javascript. Now I am moving into a Model-View-Controller (MVC) framework in CodeIgniter, and feeling very indecisive about naming my controllers. I realized I am giving myself a hard time for not being sure what to do, but I think the reason is that it's actually somewhat important and I want to make a good decision. I also have a tendency to perfect more than is healthy. I want this to end up being AMAZING when it is only my first project. I also enjoy thinking about organizational decisions. For example, if I name one controller "users" and one "worksheets" which controller leads to the worksheets that users save? My remote TA suggested "tags", "tasks", and "users", but I don't really know how to implement that.

I've been listening to Sandi Metz talk. I don't understand all of it yet, but it's a reminder that many of the things I'm thinking about are what "real" programmers (as in, not me yet) think about all the time. I get scared to break my lovely well-crafted programs, but I must in order to help them grow. We had a google Rails developer (from Wildfire) speak to us about Agile development, which is all about letting go of perfectionism. Time to try to implement this!

Tuesday, August 20, 2013

I really am myself, but can I prove it?

I had my first big I-left-my-home-I-don't-know-what-I'm-doing-maybe-I-can't-do-this meltdown today (and yes, that was many ideas strung together but it was a complicated meltdown that will probably happen again). The catalyst was that the US Postal Service appears to have lost the package that had my driver's license and I'm flying to Detroit for a wedding on Friday. I took the plane here without ID, and they let me on the flight, but they do grill a fair amount and give you a "special" search. As a side note, it feels weird to have no identification and not be able to prove that I am myself. Existentially, there is something strange about not being able to say "but I am me--can't you tell?" Anyways, this led to a larger panic about why I was here, and whether I was succeeding.
After a period of spinning and trying to sort it all out on my own, I reached out for help and went for a walk with one of the TAs. He gave me really good advice--which was to have fun with the material and not feel like I'm trying to prove anything to myself or compete with anyone. I needed that reminder. I had been being stubborn and wanting to find a masterful solution to a difficult problem, rather than asking for help, and managed to frustrate myself and waste hours in the process. He actually told me I doing really well, and, honestly I knew this part, that I was still ahead of schedule. I was just getting down that I was less ahead than some people, which is awfully silly.
With that advice, I decided to do one of the optional assignments rather than force myself to move on. I had fun and made this:

In it you can enter two numbers and click on a mathematical operation and the result will show up at the bottom immediately (without reloading). That took more work than you might think, but was very rewarding and helped me understand AJAX a lot better.
However, I don't see this being the last time I face this type of freak out. This is scary and it's lonely sometimes, and life would be easier if I was just at home. But there is a reason I am doing this, and I think it may be more than just needing a new career. I do love coding, and I also needed some perspective on my life, which I am getting. The most important thing I've learned is that over the last few years, I've really built a life I love back in DC. I hadn't seen that until I was far away.
I also learned something through riding a bike (not how to ride a bike though--I already knew that). The cheap craigslist bike I'd been riding lost a part, after I incorrectly removed the wheel. I asked my (amazing) host if I could borrow her bike and she recommended a comfort bike she had around. When I rode it the 8 miles to my program over the next week I had an epiphany: I was not nearly as bad at biking as I'd thought--I hadn't been riding good bikes! I had so much less trouble going over hills and the 8 miles felt easy and energizing rather than exhausting. Like studying coding, it was a better fit for me and that made all the difference. Sometimes I blame myself when something isn't working well, rather than thinking about what I can change. But maybe there's nothing so horrible wrong with me after all.

Monday, August 12, 2013

Dreaming in PHP and MySQL

Every morning for the past few weeks, I wake up realizing I am perfecting code that I can no longer remember, as it dissolves with my dream. For the past week and a half those dreams have involved ERD modeling, SQL statements, and most recently PHP. Every day I think the task at hand is unconquerable and by the end, I find myself cheering (trying to do it quietly--we all do it occasionally) when the seemingly insolvable problem has come to a simple resolution and the figure I have been trying to get onto the screen appears.
Today, all the pieces we have been learning began to connect, as I started learning how to access databases in PHP. (For those who don't know, PHP is a back end scripting language, meant to bridge the gap between what you see on the screen and the data that is stored by the server.) However, I soon paused the video as I decided to slow down and try to digest my other lessons first.
I have to remember to slow down a lot as I find myself getting competitive with other students. As a friend reminded me, this can be good motivation, but it can also make me race through assignments faster than I should. Luckily, I am learning about myself that I am not good at not doing my best on my work. I always double back and force myself to get the answer, even when I think I've moved on.
Also, we had our "belt exam" last Friday. I was literally certain that I had failed. I managed to miss part of the directions, so after four hours of obsessing over my HTML and css I spoke to other students who started mentioning using jQuery (a Javascript library for animating the screen), and I freaked out. With less than twenty minutes to go I added what I could and then went over time cleaning it up. I then spent fifteen minutes explaining to a friend of mine how I felt like a failure and shutting out everyone around me.
Today, I got the results...9.5, or "near perfect." All right, I admit it. Sometimes I might catastrophize.
Also, last week, when we worked on jQuery, I made a Digital Therapist page. It was a pretty horrible therapist (pretty much just repeated back what you put in, and not even all that well), but a lot of fun to create. (I enjoy being a bad therapist occasionally after spending so much energy trying to be a good one). I'm still not much closer to knowing how I can use these skills to improve the world (unless this amazing job helping non-profits ends up working out, but I'm trying to maintain healthy pessimism in case it doesn't), but it's fun to bring some of myself into the work.
Speaking of dreaming, it's about time to do some of that.

Sunday, August 4, 2013

Finished my first week!

I’m lying on the bed of the room I’m staying in, watching cheesy TV. It was been a long and tiring week, and I’m about to start another. It was a lot of fun, and really exciting, but draining (mostly because I averaged about 12 miles of biking every day). It's hard being so far from home. The weather here is great, and it is beautiful, and I have great hosts, but I hadn't realized how much I had settled into DC over the past few years. Also, I cannot seem to understand the CalTrain system--I keep missing my trains, which is partly responsible for all the biking.

There is a lot to learn but I’m surprised by how quickly I've been able to pick up new skills in this environment. This week we covered HTML and CSS. My remote mentor said that my code looked like I was more experienced, and I think my ego inflated a little too much. There was still some humbling to come, but I've felt good about my pace through the work so far. We learned how to deconstruct sites into HTML and CSS just from a screenshot. It was a lot of fun to get to obsess over little details. The best advice they gave us (that I didn't fully use until the last assignment) was to "work from the outside in" which basically means layout your page first in HTML and CSS then fill in the details. Also, use Web Inspector or Firebug (depending on your browser)--it really is amazing!

After all that work, we learned how to use Twitter Bootstrap to do very easy front-end work. I was able to create this:



I got excited and did extra work on the assignment to make more pages. Next week, we’re going to learn JQuery and Javascript so we can actually make our buttons and pages do things. I can’t wait! 

However, I need this day of rest. Time to find out who Des will choose on the Bachelorette, and why she keeps crying in the promos...