Skip to main content

Posts

Showing posts from February, 2021

FizzBuzz - part 3

 Team Lead  In part 2, I looked at the additional items you would look for in a FizzBuzz discussion for a lead developer.  Without getting too much into what job title means what, the next level up is a team lead. The road not yet discussed My discussion here isn't meant to be exhaustive, there are additional areas an interview can and should go; however, this one is really the last one that I think could possibly have source code up on a white board.  After this, I really think you should start using boxes and arrows. RTFM - Read the F*#cking Manual won't cut it When I started my career, you really could get by with your K&R C manual and the various man pages.  That really ended in my SunOS world (we hadn't converted to Solaris yet) when we started developing in X-Windows R4/Motif.  You really could not actually do your work without an O'Reilly set of books or the equivalent. Today, being able to not only code using a library or framework, but also dir...

FizzBuzz - part 2

 Lead Developer FizzBuzz In part 1 we went over a simple implementation of FizzBuzz.  Now we are going to advance to what I expect a lead developer would create. Job titles are tricky things.  I am not equating this with a job title, what I mean by a lead developer is that they could help a more junior developer develop a more complete solution. Unit Tests The first change is the addition of unit tests.  Developers will develop structurally different code if they are required to develop unit tests.  In order to test code correctly, you have to be able to expose the different facets of your creation.  This allows unit tests to be short and robust. package dev.boundary.waters.FizzBuzz; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; class FizzBuzzTest { @Test void test1() { FizzBuzz fb = new FizzBuzz(); assertEquals("1", fb.process(1), "failed for 1"); } @Test void test3() { FizzBuzz fb = new FizzBuzz();...

FizzBuzz - part 1

 What is FizzBuzz FizzBuzz is a simple programming exercise that is frequently used as a white board problem during interviews.  I, personally, have never used this problem or had anyone ask it of me during an interview so your mileage  may vary. I was inspired to write this sequence after getting Poly Bridge 2 as a Christmas gift.  As I was watching some of the truly intricate bridge designs on YouTube, I also ran across a FizzBuzz video (no, I have no idea why Google put them together as a recommendation).  What, I thought to myself, would happen if I took the simple FizzBuzz to the same levels as Tyler  and Arglin Kampling . I plan to discuss a progression of FizzBuzz from what I would expect from an entry level developer to an enterprise architect.  Since I'm playing both sides of this, I don't expect anyone else will make the same choices as I do - what's important is the journey. The initial solution : package dev.boundary.waters.FizzBuzz; import...