Maybe I'm being a little picky, but I don't find this very compelling. There are plenty of spelling and consistency errors. "Colaboration" is misspelled. The names "can_use_editor" and "is_acceptable_workstation" are inconsistent. It would be better to use "is_acceptable_editor" (or "can_use_workstation") for consistency. Actually, since those are calls on a company object, a name like, "allows_editor" would make a lot more sense. Coding style doesn't follow Python conventions (spaces around equals sign and after commas). The test "DynamicLanguagesAreInUse" doesn't clearly test what it says it's going to test. Also, the line numbers and lines don't match up in my browser.
not to mention his assertTrue's in testSystemsUpAndRunning are completely invalid. never in my life would i hire this person.
this should be a lesson: if you're going to do a "hacker" resume, it should be perfect and actually parse/compile and run. otherwise it looks like some lame gag.
and is putting things in "code" ever cute, clever, or funny? i submit it is not.
My big issue is that he comes across as an ideologue... I want flexibility from developers, not someone who makes very specific demands of our methodology.
Do you think you could elaborate? Coming off as inflexible or dictatorial was something I actually worried about.
The point I am trying to make is that there are certain minimum requirements I have of any employer, just as almost every job ad I've seen has a list of expected minimum skills. Would you work on software for a company that doesn't use version control? Being on HN is enough to convince me that you're smart enough not to.
On the other hand I wouldn't hire anyone who wasn't inflexible about having source control, defect tracking, CI, or code reviews.
What is important to me, however, is that you demonstrate a little pragmatism about us using Mercurial over Git, Hudson over CC, Jira over Bugzilla, <insert tool we use> vs. <your favourite tool this week>.
Although it would reflect better on you if your unit test were valid given an appropriate companies module, I really don't think you should be to worried.
Yeah, you're so completely missing the point of his code that I have to question the intelligence of both yourself and everyone who's upvoted your message. Is this stupid night on Hacker News, or what's going on here?
(And yes, I'm 100% serious. Your reply is the dumbest thing I've ever seen on this site.)
Yup, the companies namespace is theoretical (containing presumably every company in existence) and contains a class YourCompany - that represents the interviewer's company.
Because companies doesn't actually exist there is an import error. If you were to create a class to substitute in you'd need something like:
class YourCompany:
def unit_tests_code():
return True
...
Yeah, in general I find the code not all that readable, despite that being the point.. This is a pretty bold, maybe even snarky, bit to pull.. and if you're going to pull it off it better be Beautiful Code.
Yes, this is quite embarrassing, especially the typos. I sent this to my buddy without expressing that it was still a work in progress, and he overzealously posted it here.
I've noticed the line number issue with certain browsers myself. I haven't determined if it is the css/html from pygments (the library I used to generate the html) or something I'm doing. Needless to say since I am still trying to flush out the idea, matching line numbers was low on my list, but if you can give me your browser/os I can see if it can test it out and possibly drop a patch to pygments.
mos def! it's a small thing, but maybe it says something about what he thinks about and values. seems like abstraction and code maintability and extensibility are not as high on the list as testing. tests are super important, of course, but anyway can write tests. quality, IMHO and in all code including tests, comes from good design.
Totally agree. Having seen a fair share of CV's that would put a flair to it, but also make the HR lady who's screening the CV's at BigCo go huh?.
Im all for redoing the whole CV as commenter suggests here and targeting the right people with it whilst making the "real" CV shorter and easier to read.
Point here is that both CV's should stand out from the stack, but in different ways based on the recipient
I have horrible grammar, so I was trying to help out my brethren! I hate that word. Its biggest problem is that it's a conjunction without an apostrophe. ;-)
I actually used to write my resume in Python. It got me in the door easily, but I think I ended up giving the impression that I was a one-trick pony who could only do Python. I have a "regular" resume now.
Not in this case, but Yoda conditions can be useful. The most common case is preventing accidental assignment when you are trying to check for the equality of values.
Say that you mean to do:
if (something == 2)
If you forget an equal sign, the resulting code can lead to subtile bugs:
if (something = 2) // Not what we meant
If you are using a Yoda condition and forget an equal sign, you'll get an error right away (so that you can correct it):
if (2 = something) // Error
There are other use cases, particularly related to nil values, but this should show you the gist of it.
That's why I said "not in this case". There are languages affected by this though (typically C-based ones). Ideally, their compiler will give you a warning about it, but that's not always the case.
It's rather presumptuous and obnoxious though isn't it? A CV is a listing of your accomplishments and achievement, really. It's your platform to sell yourself to others.
This page comes of to me more as "Are you good enough for me"? which to be very honest sets the wrong tone to me when I wear my employer hat.
I'm not suggesting that shouldn't be a part of the process, but as an opening line it's a little off-putting even if we do meet the standard.
Ugh. I hate to criticize this guy some more, but that's one wordy resume. In my experience it'll at best get a quick glance. To the point resumes are much more effective.
OP is right that this is a true hacker resume, in the sense that it's both technically interesting and ignorant of the social realities of applying for a job.
Also: the downloadable CV is more incomprehensible than the code. Bullets, people. Good employers are looking at hundreds of resumes for good jobs. If that one landed on their pile, they would not read it.
67 comments
[ 3.3 ms ] story [ 126 ms ] threadthis should be a lesson: if you're going to do a "hacker" resume, it should be perfect and actually parse/compile and run. otherwise it looks like some lame gag.
and is putting things in "code" ever cute, clever, or funny? i submit it is not.
Wow...
The point I am trying to make is that there are certain minimum requirements I have of any employer, just as almost every job ad I've seen has a list of expected minimum skills. Would you work on software for a company that doesn't use version control? Being on HN is enough to convince me that you're smart enough not to.
What is important to me, however, is that you demonstrate a little pragmatism about us using Mercurial over Git, Hudson over CC, Jira over Bugzilla, <insert tool we use> vs. <your favourite tool this week>.
Although it would reflect better on you if your unit test were valid given an appropriate companies module, I really don't think you should be to worried.
It does parse/compile and run. Try it.
(And yes, I'm 100% serious. Your reply is the dumbest thing I've ever seen on this site.)
Because companies doesn't actually exist there is an import error. If you were to create a class to substitute in you'd need something like:
I've noticed the line number issue with certain browsers myself. I haven't determined if it is the css/html from pygments (the library I used to generate the html) or something I'm doing. Needless to say since I am still trying to flush out the idea, matching line numbers was low on my list, but if you can give me your browser/os I can see if it can test it out and possibly drop a patch to pygments.
Creativity is often the reason one is hired.
I liked it!
It would be much better if the resume was in code, that would be a cute gimmick. (i.e. self.knowsLanguages( ['Python', 'C++', 'Ruby'] ) )
However, tricks like this are great if other programmers are reading it, but can confuse HR people and easily get the resume tossed out.
Im all for redoing the whole CV as commenter suggests here and targeting the right people with it whilst making the "real" CV shorter and easier to read.
Point here is that both CV's should stand out from the stack, but in different ways based on the recipient
Or maybe it's a clever filter for people who focus on the wrong thing. ;-)
If you are reading this, fix the spelling!
(sorry, cheap shot!)
http://en.wikipedia.org/wiki/Polyglot_%28computing%29
Say that you mean to do:
If you forget an equal sign, the resulting code can lead to subtile bugs: If you are using a Yoda condition and forget an equal sign, you'll get an error right away (so that you can correct it): There are other use cases, particularly related to nil values, but this should show you the gist of it.Not in Python. Assignments as anything but stand-alone (potentially chained) statements are syntax errors.
The parser will not let you write
in the first place.Putting the constant left in a conditional means you will never miss an accidental = instead of ==.
That's only useful for dumb languages
Python simply does not allow assignments in conditional contexts.The difference between theory and practice is smaller in theory than in practice.
I carefully weighted my words, and I rest my case.
The compilers/interpreters I know that don't do this are PHP and Perl (C/C++ will do it if you use -Wall, which you should be using anyway).
So yeah, you're pretty much right. /snark
Don't be an idiot in the first place and you won't have to do idiotic things to prevent damage from your idiocy.
* http://en.wikipedia.org/wiki/Whitespace_%28programming_langu...
This page comes of to me more as "Are you good enough for me"? which to be very honest sets the wrong tone to me when I wear my employer hat.
I'm not suggesting that shouldn't be a part of the process, but as an opening line it's a little off-putting even if we do meet the standard.
http://dibon.homelinux.org/~mark/test/MarkRoddyResume.pdf
Also: the downloadable CV is more incomprehensible than the code. Bullets, people. Good employers are looking at hundreds of resumes for good jobs. If that one landed on their pile, they would not read it.
On a more serious note, not sure this resume would have made it past our HR person, who is not a programmer and wouldn't have understood this at all.