Pure CSS FizzBuzz
joseph.mx
joseph.mx
http://codepen.io/anon/pen/QbNLxO
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Count...
A pretty interesting story about job titles and descriptions that are not representative of the job they're trying to hire for.
Fizz buzz is a group word game for children to teach
them about division.The person made clear that they can do all the design stuff and can use JS to add basic interaction to the frontend.
The job post didn't ask for a programmer. I don't see how its the designers fault for not being a programmer.
I don't think this deserves a blog post ranting against that company because they asked you a Javascript question in, I repeat, a job listing that specifically asked for Javascript knowledge.
The responsibilities listed were:
* Create low and high-fidelity mockups to effectively convey interaction and design ideas (e.g. wireframes, sketches, 'pixel-perfect' mockups, etc).
* Deliver engaging, innovative prototypes, and contribute to front-end development of our products.
* Collaborate with and synthesize feedback from other members of the team.
* Evaluate the usability of new and existing products, apply user research findings, and make constructive suggestions for improvements.
The minimum qualifications: * B.S. degree in Design, Computer Science or related technical field or comparable practical experience.
* 2 or more years of designing clean, valid, and compatible websites and applications.
* Knowledge of Adobe Photoshop and Illustrator.
* Clean and elegant visual design aesthetic.
* HTML5, CSS3, JavaScript.
* Passionate about creating responsive and delightful interfaces and experiences.
Everything except the HTML5, CSS3, JavaScript. scream visual/ux designer. Nowhere does it say programmer. I don't think its a stretch that if you came across that job post that you would assume that Javascript is needed in a small way to tie bits and pieces together, like the author assumed. EVERY thing else in that post[1] is about UX or visual design. They didn't say they wanted a programmer, they said they wanted a designer who knows a small bit about technical things. I think the author fits the bill, especially since most job posts are now completely inflated with impossible requests (ten years experience in a technology that's only existed for five? I've seen it done!)[1] I'm ignoring the "preferred qualifications", since that heading makes it sound like nice to have not must have
And besides that, who told her the rejection was about the FizzBuzz or JS issue? Maybe another designer had a better portfolio or whatever. Again, a blog post that got more attention it deserved to rant about something that happens every day and has happened to a lot of us: a job interview that doesn't go well.
If you try to stick to your job description, you are not going to be very helpful in the real world.
The position is described as a UX engineer and designer, and the applicant is expected to be experienced with JS and various frameworks for it.
The story seems to be more about a person who can't read and feels entitled to a job position they're not fit for. They were unable to display knowledge of basic for loops and conditionals and they were unable to convert a timecode string into seconds. Both of which are basically tests for "does this person even understand programming". Which they obviously don't because they wrote "OMG MATH" to a problem consisting only of the most basic logical concepts.
Maybe next time they should apply for a job that doesn't require programming knowledge.
A UI/UX Designer/Engineer does not inherently require programming. In many startups, it does, as does wearing many hats. But if they're looking for someone to program, it should be outlined in the responsibilities. Knowing "HTML/CSS/JS" is different than building an entire application (just an example).
Not only that, but the line "Experienced with Object Oriented JavaScript and modern JavaScript libraries such as Ember, Backbone, or Angular." was placed under "Preferred Qualifications", which to me says "desirable but not necessarily required". If that's not what they meant, they should have clarified the importance.
My personal opinion is that if a job wants you to build stuff, they should outright say "You will be responsible for developing and maintaing a code base, in addition to designing and lending UI/UX expertise" rather than just loading a job listing with keywords.
The point is that she didn't fit the requirements of the job.
As a result, she did not get the job. That's pretty much end of story. If the job requires her to be "experienced with JS", that means that they want her to know the language.
And it's not just modulo. She didn't know how to convert a timecode string to seconds.
I have no idea how someone like that would be able to understand the code. Nor why she would think that "it's okay" not knowing those things and yet be an engineer at their company.
To repeat what has been said - she was not applying to a job as a designer. She was applying to a job as an engineer and designer. She didn't meet at least half the criteria (and she didn't have degrees, which is probably why they even asked her those questions to test what actual knowledge she has).
I wasn't "comparing" myself to her. I was just explaining how it could happen. I agree that she wasn't qualified for the job and didn't deserve to get it. But I'd be willing to guess that if they job had a line like "This job will be 75% programming, 25% ui/ux design", she wouldn't have applied. I feel like she was looking for a design job but didn't find out otherwise until the middle of the interview.
Knowing of an existing modulus operator/function isn't necessary to solve FizzBuzz; there's a fairly simple solution with just add/increment, assignment, and conditional logic without modulus.
But my feeling from the post was that she is first and foremost a UI/UX designer, with some supplemental jquery/js knowledge. She applied for the job thinking it was a fit, but didn't find out otherwise until the middle of the interview. She wasn't qualified for what they were looking for, but I can empathize with the ambiguity in some of the job listings requirements.
I would argue that UI/UX Designer might not, but UI/UX Engineer inherently does.
> But if they're looking for someone to program, it should be outlined in the responsibilities.
It was.
> Knowing "HTML/CSS/JS" is different than building an entire application (just an example).
FizzBuzz doesn't test ability to "build an entire application". It tests fairly minimal ability to apply logical reasoning and apply it with a programming language.
If you can't solve FizzBuzz in a programming language, its not unreasonable for a company to see that as a strong negative signal for any job requiring proficiency in the language, and JS proficiency was advertised as a requirement for the job in question.
I think the more damning thing in her case is her questioning the question and seemingly not giving it a thorough effort.
Again, just listing "HTML5, CSS3, JavaScript." by itself as a minimum qualification doesn't specify what level of knowledge is expected of you. Familiarity? Proficiency? Master? Do you need to know how v8 interprets Javascript?
I'm not making the case that the job was right for her or that she was competent enough to handle it. I'm arguing that ambiguities in descriptions wasted both her time and the company's time.
It says "experienced with OO JS". That's vague, but not so vague that it can mean "I don't even know the basic operators of the language".
And that from someone who claims they can "teach others to code". (http://notlaura.com/services/teach-me-to-fish/)
So? Like I mentioned in response to that, modulus isn't necessary for FizzBuzz.
> Again, just listing "HTML5, CSS3, JavaScript." by itself as a minimum qualification doesn't specify what level of knowledge is expected of you.
FizzBuzz doesn't require much depth of knowledge in the target programming language. If you are can handle assignment, addition, conditional logic, and any one of iteration, jumping, or recursion (note that some language may not support all three of those, so which are available depends on language), you can do FizzBuzz.
What FizzBuzz does require (assuming you haven't already studied it and memorized a solution in the language given) is being able to think through a dirt simple problem and apply a programming language to it. It identifies people with minimal programming skills as distinct from those who are limited to cargo cult copypasta (well, again, except that memorization means it can produce false positives.)
The main point I was trying to get at is that it doesn't seem to me like she identifies as a programmer. She's a UI/UX designer with a little bit of code experience. IMO, the whole point of it wasn't that she was upset that she didn't get the job or what they asked her. It was simply that based on the description, she went in thinking the primary focus was mockups, design and user testing rather than programming. Had the post been more clear about their expectations for the position, she wouldn't have tried for it.
This is clearly an academic exercise, but one that I would never have even thought to attempt, as I probably would have chalked it up to probably waaaay more trouble than it's worth.
EDIT: I'm not entirely right. Here's a good answer: http://stackoverflow.com/questions/2497146/is-css-turing-com...
And not csszengarden. It has some wonderful examples, but doesn't really explain how they work.
I've heard great things about this book (http://www.amazon.com/HTML-CSS-Design-Build-Websites/dp/1118...), but it is geared more towards beginners.
.fizzbuzz:nth-of-type(3n)::before{ content: "buzz"; }
Should be "fizz".
If anyone needs an example to show how functional style is more concise and expressive than procedural, this could be one.