Facing my First Code Challenge

Jenalgorithms, Javascript, Job hunt, Web Development0 Comments

water

My First Code Challenge

Last week I had a successful phone interview that led to my first code challenge.  I have had numerous phone interviews and a couple of in-person interviews, but never a code challenge.  I was feeling excited and ready to tackle the challenge.  We set it up for me to receive it on Friday evening and I was to return it within 48 hours.

As I read through the directions for the project, my heart started to sink a little.  The company had sounded very open to hiring newer developers, but this seemed like a complicated task.  The project had to be submitted in a language that I had never even heard of!  (I have spoken to a couple of seasoned developers this week who had also never heard of it, so that make me feel a little better!)

I quickly tried to do some research on Sibilant online and discovered that there is very little out there other than the official documentation.  The company indicated that this was intentional for a couple of reasons.  One, they said that Sibilant is similar to the language that they primarily use, but is easier to learn.  They also wanted to make you work a little harder by not having extensive libraries and blogs to rely on.

I spent Friday night developing a plan of attack.  Sibilant is a functional programming language that compiles into Javascript.  I feel fairly confident in Javascript, so I thought the best plan would be to work backwards.  Write an algorithm that meets the requirements working with Javascript and then figure out how to translate that solution into Sibilant.  I also read through the documentation for Sibilant and started to get a feel for how it worked.

Hitting a Wall

I pretty much spent the entire day and evening on Saturday working on the project.

The most challenging part for me was trying to figure out how to get and set the data that I needed from objects.  I knew how I needed my code to look in Javascript, but every time I tried to come up with a solution in Sibilant, it compiled things differently.

I fell down the rabbit hole of trying to research other ways to write my algorithm in Javascript to avoid the count[element] syntax, but I couldn’t figure out a way to do that.  I was also having problems with incrementing values and using an or statement, both of which needed to be included in the same line of code as my count[element] issue!

I don’t think that I have ever spent so many hours trying to write the same line of code and failing!  According to my WakaTime summary, I spent over 10 hours last weekend just typing into my code editor!  That doesn’t even include the time I spent using the compiler in the browser, or working in the command line!  I finally had to go to sleep without a working solution.

A Moment of Optimism

I got up at 6:00 Sunday morning and jumped right back in.  I felt a lot of pressure to figure it out because we were supposed to go on a college visit with my son and I knew he would be disappointed if I didn’t go.  Things just seemed to come together for me.  I discovered that I could avoid using the incr tag by using +1 instead.  I also worked around the or statement with a ternary statement instead.

I made the big breakthrough of discovering that I could set and get an object together and I appeared to be in business!  My data was sorting and displaying in the correct order, so I jumped in the shower and headed off to the college visit! We had a great day, and in spite of what is about to come, I don’t regret making the decision to put my family first.

More Test Data

I got excited and thought that I had solved it a little too soon.  The company had provided an initial set of data and then gave 2 more data sets to try after you got the first one working.  When I ran the function using the second data set, it was no longer sorting the way I needed it to.  I tried hard to figure it out when I got home Sunday afternoon, but was unable to finish it before the 48 hours was up.  I sent it what I had attempted, with a readME including my plan of attack, thoughts about the project, and some of the things that tripped me up.  I was hoping that maybe seeing my hard work and problem solving skills would be enough, but I received my official rejection a couple of days later.

Lessons Learned

This was a very humbling experience for me.  My husband kept reassuring me that I had done my best and that was all I could do.  It made me realize that there have been very few times in my life where my best hasn’t been good enough.  I am not used to a being in a situation where I have to submit something incorrect or incomplete.

I have to remind myself that changing careers is hard, but in the end will be worth it.  I am definitely learning to be stronger as I face rejection and go through the job search process as a “newbie”.  At times it can be very tempting to just go back to teaching, but this article really helped me get out of my rut this week. Switching careers is hard.  I just need to power through and trust that the right opening is out there for me.

I have not given up on my solution.  I know the door is closed with this company for now, but I want to know that I can be successful in this challenge.  I now have a working solution in Javascript for all of the data sets, so my next step will be to translate that code into Sibilant. I think that my blog is officially the third resource out there for Sibilant now, so there’s that to be proud of!

Leave a Reply

Your email address will not be published. Required fields are marked *