addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgooglegroupsimageimagesinstagramlinklocation-pinm-swarmSearchmailmessagesminusmoremuplabelShape 3 + Rectangle 1outlookpersonJoin Group on CardStartprice-ribbonImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruseryahoo

Coder Night #3

tl;dr - Coder Night is to practice development. You write code in pairs or individually and submit the code to me (sean @ I post an anonymized repo and you have a few days to look at all the solutions before a friendly night of code review.

NOTE: Please email me or ask in the IRC channel: #arlingtonruby on freenode if you have questions.


SUBMISSIONS DUE: Friday July 18th at 11:59pm.

Coder Night Coder Night is a chance to practice your coding skills outside your work environment or help get started if you are just learning. Coder Night provides an ego-free environment to perform deliberate coding practice and to receive critical but judgement free feedback on your progress.

Coder Night welcomes people of all skill levels from "I just wrote my first line of code" to "I have invented my own language"

Please RSVP if you intend on submitting code and participating in the meetup.

How does it work?

We will send out a homework statement a few weeks before the meeting. You'll complete the assignment and submit your code anonymously (you may submit more than one entry). About a week before the meeting we'll start sharing solutions for everyone to read and review. During the meeting, the group will review and provide feedback for the posted solutions. The sole purpose of the meeting is to provide feedback to those who submitted code and ONE guest.

The Homework

Each meeting we will send out a challenge problem to work on. These will be non-trivial problems but not impossible to solve. We aren't going to make you solve the Traveling Salesman problem, but this won't be 2+2 either.

You can work on these problems in a manner of your choosing - individually, in pairs, etc. Code must be submitted 1 week before the meeting - 'night-of' submissions will not be accepted.

Submitting Your Code

Submissions will be 100% anonymous

For now submissions will be emailed to me (sean at and I will create a public github repository for everyone's code. NOTE: this is not 100% anonymous since I'll see your email address next to your code, but I'll try to ignore/forget.

You may submit more than one entry.

Your submission should also state what you are trying to achieve with the solution provided. Examples include:

• Just learning to code so I just want this to WORK.

• Learning Ruby, practicing writing with the "Ruby style"

• Trying "everything is an object"

• Golfing (fewest possible number of characters/lines) attempt

• 100% Test Driven (include the tests)

If you consider yourself an experienced developer and you raced through the assignment, you are "doin' it wrong" and should find an area to focus on. You should attempt to solve these assignments using techniques that are outside of your comfort zone. For example, perhaps try "TDD as if you meant it" ( or try to avoid using primitives (eschew integers for objects).

We will publish a full catalog of submissions with enough time to review them prior to the meetup.

The Meetup

**ONLY those who submitted code for review may attend the meeting.**

Each person who submitted code may bring no more than ONE guest to the meeting. Guests may attend ONCE before being required to submit code in order to attend.

What the meeting IS:

• A place to get honest, critical, and helpful feedback on your code either anonymously or face-to-face

• A place to ask questions about the positive and negative qualities of many ways to solve the same problem (I guarantee there will be more ways than you'd expect)

• A chance to identify areas of problem solving, coding and Ruby you'd like to improve on. (and perhaps focus on for the next meeting)

• A great chance to help others.

What the meeting is NOT:

• Grandstanding ("Look at MY code, I'm the king of the world") -- I'll kick you out.

• Pick on the noob ("ZOMG, 200 lines, I could totally do that in 6!") -- Again, I'll kick you out

• Hard recruiting to hire. Its fine to meet people and see if they'd be a fit for your company, but if you use this as a screening process, guess what -- I'LL KICK YOU OUT.

A few meetings rules:

• You have to submit a solution (or be an invited guest) to attend the meeting. Statler & Waldorf's are not welcome - no "I'm just here to criticize".

• You MUST have reviewed solutions and be prepared to speak about them. We are NOT going to read each line of each submission as a group. The meeting only works if you have prepared notes.

• You can be critical, but you must be kind. Otherwise, yeah, you got it, I'll kick you out.

• You must be willing to follow up with people who want to ask questions or for additional detail regarding your comments.

• You may not ask "Who wrote this anonymous solution?" -- 100% chance I'll kick you out. Why are we doing this?

I learn by doing. I learn by practicing. I am always coding. I am always refactoring. I also learn by watching and helping others do all of the above. I'm always impressed by seeing how others solve problems and enjoy helping people improve and through that improve myself.

I understand people can be self-conscious of their code. It sometimes feels like an extension of yourself and you don't want to be criticized by others. This is why the anonymous option and "be critical but kind" is so important to the format of this event.

I'd like to thank Gavin and the folks from Tampa Ruby. This was adapted from their Coder Night Meetups. And by "adapted," I mean "stolen."

Join or login to comment.

  • Jennifer G.

    I have a question - is the example cave given wrong? For example, given simple cave: a unit of water is already in the system - so if I pour 100 units in, I should get 101 units total. But the resulting cave sums up to 100:

    [masked] [masked] [masked] 1 0

    = 100

    The instructions confirm that the initial water should be counted:

    "Remember that the system starts off with an initial water unit, which should count towards your end total. "

    I think I have the logic correct, but mine turns out with a column with one more water, and sums to 101. But this is correct - I SHOULD count that initial water, right?
    [masked] [masked] [masked] 0 0

    In my case, the 3 6th from the right is incorrect, but I sum it in my example and it comes to 101 (which seems right to me).

    So is the example incorrect, or shouldn't we count the initial water?

    July 6, 2014

    • Daniel P. C.

      You can post the numeric output for the complex map into the website http://www.puzzlenode...­ and it will tell you if you've solved the puzzle. My reading of the problem includes the initial water "~" symbol as part of the 100.The sample output they give in the sample file adds to 100.

      %w^[masked] [masked] [masked] 0 0^.map(&:to_i).injec­­t(:+)
      => 100

      July 7, 2014

    • Jennifer G.

      @Daniel That's how I checked it originally. But I just used @Thomas's logic and checked for the first water and subtracted from the bucket if it was present, and when I submitted my answer was correct. So I think that's the explanation then.

      July 7, 2014

  • Jonathan K.

    The words on the link say:

    But when you click it you actually go to:

    I'm assuming since we've done the chess-validator already that it's puzzle 11.

    2 · June 11, 2014

    • Jeffrey H.

      I missed the last CoderNight. Thanks for the comment.

      June 11, 2014

    • Sean M.


      June 11, 2014

34 went

Our Sponsors

  • New Relic

    Application performance monitoring

  • Clean Ruby

    Get the ebook by Jim Gay about Ruby, OOP, and DCI

  • O'Reilly

    Discounts on print and ebooks.

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy