More like a story of someone that applied for a job that asks for Javascript skills without knowing Javascript and then blamed the company, and made a blog post/rant about it, because they hired someone else that probably fits that particular position better.
The job description was a bit disjointed, and she chose to ignore relevant portions and focus on irrelevant ones. The company in question could have done a better job with the posting (wtf is a "B.Sc. in Design"?). On the other hand, her reaction that FizzBuzz is only for some uber CompSci geeks is nonsensical. First sentence from the Wikipedia page for FizzBuzz:
Fizz buzz is a group word game for children to teach
them about division.
I thought so too at first (and its not like FizzBuzz is hard), but if you read the post you'll see the job advert was for design, only listing JS as "HTML5, CSS3, JavaScript" after talking about design up until then (and then only listing further JS stuff as nice to haves).
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.
The job advert asked for someone that knows Javscript. This person doesn't know JavaScript. The person that got the job probably knew Javascript.
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 advertised job was for a "UX Engineer/Interaction Designer".
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
Minimum qualifications: "HTML5, CSS3, Javascript". I think it's pretty clear. You can question why the company needs a JS programmer in a design job. I don't know. But it's clear in the requirements that Javascript could come up in the interview. Knowing Javascript means you can code a loop and some conditionals, which is all FizzBuzz requires. They didn't ask her to implement a red-black tree or the Dijsktra's algorithm.
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.
>and descriptions that are not representative of the job they're trying to hire for.
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.
I don't disagree with you that the job expected programming in their candidate. Nor should she have rationalized away the two lines that mentioned Javascript in description. However, I do believe that there is a communication error on the part of the company.
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.
> A UI/UX Designer/Engineer does not inherently require programming.
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.
Like I mentioned below, as a self taught web programmer, it was years before I came across a modulus in a real-world situation. I feel like it's understandable to not have a 100% grasp on all the basics and still produce stuff.
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.
> Like I mentioned below, as a self taught web programmer, it was years before I came across a modulus in a real-world situation.
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.)
Yeah, you're right. FizzBuzz does test a programmers mindset and it's pretty clear she didn't meet those expectations. I was focusing on a tiny aspect of it.
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.
I think the job posting clearly communicated that the applicant should at least have a basic grasp of JavaScript. On a related note, it's weird that the author claims to have experience with Ember/Angular.js or other similar frameworks without being able to write the FizzBuzz.
To be fair, I was a self taught programmer (albeit PHP) and I was on my second or third programming job before I came across a modulus in the wild. It's really simple basic programming theory, but not super common in live web development.
That's not being fair. That's your own problem. I'm also a self-taught programmer, but I don't feel like I need to compare myself to her.
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).
Yeah, I guess I didn't quite make my point clear. All I meant was that it's easy to work inside frameworks without truely understanding the language.
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.
> To be fair, I was a self taught programmer (albeit PHP) and I was on my second or third programming job before I came across a modulus in the wild.
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.
Yeah, you're right about that. I was just trying to explain how you can work in an environment and make websites, but not necessarily grasp a full understanding of the language you're working in.
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 do the same, and it's pretty common. I feel like the point of the post is that if that is what a company expects, they should outline it in the initial job description to prevent wasting everybody's time. Just saying HTML/CSS/JS Angular/Backbone doesn't indicate what level of expertise you want or how big a part they'll play in the position.
I'm fascinated by how involved people get in these kinds of stories. Hundreds of comments, and the mods been deleting a bunch. Post after post saying more or less the same thing. I need to figure out a way to channel this sentiment into an app and strike gold!
That's correct, but I left the link off because the fizzbuzz comment isn't strictly relevant, it just interested me a little. Would it be better etiquette to put the link in?
The word "nation" is sometimes used as synonym for:
State (polity) or sovereign state: a government which controls a specific territory, which may or may not be associated with any particular ethnic group
Country: a geographic territory, which may or may not have an affiliation with a government or ethnic group
Thus the phrase "nations of the world" could be referring to the top-level governments (as in the name for the United Nations), various large geographical territories, or various large ethnic groups of the planet.
In general, whenever I come across the word "nation" I assume it's being used colloquially to refer to "nation-state", unless the context is specifically related to ethnic nationalistic identities.
The fortunate thing is that you have a fair amount of options when it comes to technologies for a web app. I personally have used php for years and have been working extensively with ruby and python recently. Here are some general things to consider.
Language choice.
For a long time PHP was the defacto standard. It has a lot of resources and tutorials plus the advantage of a huge amount of hosting options. However, I'm the last five to ten years, the field has opened up. Ruby and python both have strong communities and with app hosting solutions like Heroku, it is just as easy to get them up and running. All three are fine choices and if you're looking to make a career of web programming, you'll find plenty of jobs for all three.
Frameworks.
Frameworks are essentially scaffolding you can build your app around. The benefit is that you can get up and running pretty fast with them. Ruby has rails, python has django, and php has a plethora, with laravel being my favorite right now.
The downside of these is that they add another level of complexity to your app. In addition to learning the basics of a programming language, you also have to learn about routes,models, controllers, etc. While this information is very beneficial to have, it could overwhelm when you're just starting out.
If you want an app working fast, you can try one of the frameworks. However, if you want to understand the language more fully, at the cost of time, you may want to try your hand without a framework. If you do choose that route, php may be the best choice, since it was the only one designed specifically with web programming in mind. I'd reccomend php with mysql (using PDO for database interactions).
I'm currently on mobile right now, but if you'd like any more resources I can reply when I get to a real computer.
Well, if you have any additional questions or need a direction to start in, I'd be more than willing to help.
From your basic description, the simplest way to be to just have straight PHP with MySQL/postgresql. And I believe you mentioned in another response thinking about using a Raspberry Pi, it looks like a LAMP stack might be easiest to set up, so another point in favor of PHP.
"If it's only a single line in after the if, the braces are optional."
Not _line_, _statement_. Consider
if(flag)
foo(); bar();
and
if(flag)
foo =
bar +
baz;
That first example always calls bar().
Warning: I haven't tested this, and am beginning to doubt a bit. It must be correct, but why, then, don't I remember seeing this in underhanded C contests? Combining that with macros allows you to hide the semicolon.
C# also has it, and i've heard Java has got it as well, but I've never tested it in the latter.
I personally like being able to do it since it allows me to do away with the 2 extra lines auto indent puts in if i add brackets. That's a 50% reduction for a 4 line if. Maybe I should just buy a bigger monitor.
The lead programmer at my last job encouraged us to use it as a way to make sure our conditionals & foreach loops (PHP programmer) weren't doing too much. If we had to use braces, it was a sign to check it out and see if it could stand some refactoring.
A pretty interesting story about job titles and descriptions that are not representative of the job they're trying to hire for.