Join LibraryThing to post.
This topic is currently marked as "dormant"—the last message is more than 90 days old. You can revive it by posting a reply.
...from the blog post:
"So it’s time to reap the benefits, and fund LibraryThing.com development."
I am so happy about this!!
Indeed. Trying to calm my wild speculations about an Editions Layer in 2014.
Yeah, I'm curious about what the programming priorities are. Add Books, maybe.
Tim mentions mobile development as being a bonus trait...
This is really exciting news!!
MOBILE DEVELOPMENT!!!!!! Oh god, I just got all lightheaded! And EDITIONS!!!!
calm down... the mobile development is only an extra when comparing candidates, and the editions layer is just wishful thinking on our part..
I realized that after I actually went and read the blog post. But for that one moment it was glorious.
Honestly, just the idea that they're actually going to be hiring an LT.com developer is really exciting. It's been pretty quiet lately.
9, that's what I'm sayin'. It's the best news for us LT lovers in a long, long time.
I wonder how many applications they will receive.
This person is going to work hand-and-glove with me—at least for many months, and even then a fair amount. (That's why I mentioned myself. This is more like finding a spouse than finding a programmer.)
By the time we get someone, a whole host a reading-life stuff will probably be out. So they'll be focusing on add books, bugs and security, and mobile. The mobile is tricky—if I can get a great all-around programmer who does mobile, great. But I can't hire someone who ONLY knows mobile development.
Either way, it's going to be nice working with someone more. This week I'm working closely with ccatalfo, and it's SUCH a joy.
I wonder how many applications they will receive.
Send to your friends. As it says, you'll get $1,000 in books if we hire them.
There was a sneak screenshot of Tim's account, I think on the list thread or perhaps the spoiler feature thread. Only a snippet, the shot was intended to illustrate something else, but enough of the Reading Life module was there to stoke my imagination.
I sent it off to my nephew, mainly to pump him up about the opportunities out there. He's not ready yet because he is still in school. He has that "can't get experience without experience" problem that everyone does.
Since the home page re-do, I've lost the means to get to the blogs. I must miss out on so much news.
>17 Noisy: I've the same problem. I ended up switching back to single column so I could click on the link and see what everyone was talking about... but as soon as I finished reading the blog, I went and changed back to double column again, because I just like it so much better.
There's a link at the bottom of almost every page, including the Home page.
18: For a very brief moment in the new design, Top News showed up with two columns, then the required screen width was increased at whim (http://www.librarything.com/topic/156814#4206775), and that was that.
from another thread:
....expect an announcement about at least one new LT.com programmer soon.
by Tim Spalding!!!
Basically, we hired someone. But we don't announce it until the person starts and generally I don't do it until they've been around a few weeks—that's after getting burned on someone who quit the second day! (We dodged a bullet on that one, let me tell you.)
Also, we're actually thinking of hiring ANOTHER person. If certain things happen, that can happen. I don't want it out there that we've stopped looking, since good resumes are still coming in, and they might be used.
He arrived and then sat in his car for a half-hour, while Abby and I wondered what was up. He was on the phone with his girlfriend, deciding how to quit. He was a weenie--good resume, bad programmer. He spent half his first day working on his email signature line--something neither Abby or I even had, and would hardly obsess over. This was before I started testing people the right way for programming ability.
>26 timspalding: I know it must have been annoying at the time, but that's pretty hilarious.
Hah, I was just going to ask if that guy prompted any changes in your hiring process.
Still, better that then needing to fire the guy after giving him a month to get to know your code before you realized he was a phony.
Hahaha, well, least he saved you the trouble of having to get rid of him.
It took me a long time to stop respecting other programmers so much, and just MAKE them program in front of me. I was self-trained; I figured other programmers were so much better than me. Some are, of course, but some just aren't. For more on this see Jeff Atwood's "Why Can't Programmers.. Program?" http://blog.codinghorror.com/why-cant-programmers-program/
The flip side of this is that good programmers don't KNOW they're good programmers. They're 10 times better—no joke—but they don't know it, and you don't need to pay them ten times as much. :)
That's an interesting article (even if it doesn't address the question of why so many people who are completely inept apply for programming jobs), thanks. The interviews for both my previous and my current job involved coding questions - currently we do fizzbuzz-level questions on the phone screening using CodingHire and somewhat more involved problems for the in-person interview.
The flip side of this is that good programmers don't KNOW they're good programmers.
That (and its converse, that bad programmers don't know they're bad) is true pretty universally across fields, I suspect. See "impostor syndrome" for the "people who are good at something are convinced they're terrible" scenario and "Dunning-Krueger effect" for the "people who are bad are convinced they're awesome" scenario.
>31 lorax: Impostor syndrome. Bingo. http://the-toast.net/2014/01/29/everyone-imposter-syndrome-except/
24, I am so happy. :D I wish the very best for the new person and any and all to join him/her. This is the most promising and exciting news for LT lovers, EVER!!!
I'd not heard of Dunning-Kruger before, thanks for the nod: I can label more precisely now.
But the real ah-ha moment was the concept of Fremdscham: my goodness, but that is me to a T, and I'd no idea there was a concept for it.
that's after getting burned on someone who quit the second day
I once worked in an office where we hired someone who never showed up for his first day!
I don't know about that. After being employed as a full time programmer for over 15 years (and doing it non-professionally after having taught myself programming about 25 years ago), I feel like I'm a good programmer. As Tim has, I've certainly found that there are a lot of BAD programmers that I know I'm much better than. Maybe I'm not a GREAT programmer, but that's fine with me.
As a big fish in a small pond who then went off to college, I long ago learned that - for the vast majority of us - they'll always be someone better at whatever it is you pride yourself on. But I'm a self-starter, a very fast learner, and a bulldog that won't let go when I run into something weird happening that I don't understand. So whatever faults I do have (like not commenting my code enough or just starting to program something rather than sit down and plan it all out first), at least I know them by this point in my life and can work around them.
I'm a self-starter, a very fast learner, and a bulldog that won't let go when I run into something weird happening that I don't understand.
You sound like you're applying for that possible second position. ;-)
You sound like you're applying for that possible second position. ;-)
Nah, we've already established I know I'm a good programmer, so Tim would have to pay me too much. >:)
Plus I've used LT for too long now and have too many gripes about it. I think I'd go rogue and fix all the problems that annoy me.
By the way, I think some bad programmers are actually fine employees—in other companies.
Many programmers work in jobs that, when you get down to it, aren't dependent on lots and lots of independent programming. They design stuff. They have meetings. They manage other programmers. They file bugs. And—to be cynical—they manage expectations.
>38 brightcopy:: I think I'd go rogue and fix all the problems that annoy me.
Hmm... A few of us might be willing to donate to the cause...
so Tim would have to pay me too much
We've had applicants think LT was some kind of charity. When we talk about salary they say that they won't accept less than… well, a pathetic salary.
I suppose that's another dimension to this. There are programmers out there making salaries no better than if they didn't program. While I'm not going to say programming is a invaluable skill, it is a skill!
I've been a programmer since 1989. I've only been unemployed for 1 month during that time, May of 1995. Because of that fact, I think I'm pretty good. However, I know I'm not great.
When I code, I either start with something already written, or google examples & modify/improve on what I found. I would not do well in a LibraryThing interview. I never start with an empty piece of paper when coding.
A lot of my time is spent understanding client needs, writing design documents, and then getting acceptance of what I will build & what is desired. Managing expectations is a good description.
Good luck with your search.
I'm interested. Don't you find you need to write your own code a lot of the time? Of course, a good programmer gets a leg up where he can. But being so wholly dependent on finding other people's code—which will be all different in its style and may be of any quality—would be very stressful.
I sort of thought that writing code on paper was an idiosyncrasy of my FORTRAN prof from Uni. Her examinations consisted of giving you paper, pencil, and a series of programming tasks.
I passed that course, but having done little programming post-university, my skills are now rusty to put it mildly.
I don't think mainrun is unrepresentative. I work for a software company (we produce and sell compilers and debuggers, mostly), and the demand from our customers for example projects to base their code modules on is very high.
FWIW, I've never done a test on paper, nor do I ever use paper myself. We do our tests on a computer.
Starting with a blank piece of paper is a luxury few people can afford. However good or bad you may be at that, the thing where you can really shine or fail is maintaining of existent code, or worse, trying to make it do things that it wasn't designed for in the first place (euphemistically called "refactoring"). You have to be able to read and understand code that was written by somebodfy who is now beyond reach, or (the horror!) written by yourself when you were less experienced than you are now.
I think I can understand what mainrun is talking about. I work in somewhat the same fashion. I use google HEAVILY. If I'm going to need and sql function to show the similarity between two text strings, the first thing I'm going to do is google for it (example) rather than sit down and reinvent the wheel. Typically this is used for parts of code and I think just about all programmers do this. And when I wanted to start a wiki at work but wanted all kinds of customizations to it, I took an open source one and did just that.
Now, with the line of work I'm in, there's still a ton of original programming because people aren't too apt to share their code (lots of product poaching going on). But if I can cut down my work and reduce errors (getting code from places like stackoverflow is amazing because you have people that will point out bugs or improvements), I will never hesitate.
As far as writing and debugging on paper - oh god yes. I've done it all the time. I have scratch notebooks full of this stuff. For me, I think part of it is just the required mental shift. Your brain just works differently when you change the context. Like how you can stare and stare at code trying to find a bug, and as soon as you show someone else the code you spot the problem right away. Debugging code on paper is especially handy for string or memory related code. It forces me to forget a bit how I expect things to happen and rethink them from scratch.
>47 PimPhilipse: I've never really seen "refactoring" used to refer to this. "Repurposing", maybe. The standard definition of "refactoring" is making changes to code for readability and maintainability, but not actually changing what the code winds up doing in the end. Now, refactoring may be a first step to later adding new features. But the refactoring itself is just more of an organizational thing.
I agree on reading code on paper. Much the same is true of walking around the neighborhood. Context shifts are important. But do you actually write code on paper? Not an edit here or there, but many lines?
No, other than very infrequent pseudo code. I was responding to you saying you never test on paper. Sometimes I do that.
My problem with paper tests is that it tests writing speed as much as anything. I can't write by hand 1/5 as fast as I can type, anyway, if I'm trying to write in a way other can read. They are, perhaps, connected. I type fast because I've been using a computer for years. I have very bad carpal tunnel, and rapidly go numb when I write by hand for the same reason.
Others have written responses that reflect my thoughts.
>51 timspalding: For me it's not so much writing speed when I'm testing (really, DEBUGGING, but that falls under testing) code. For code that I think I've already figured out and is performing as I expected, no, I don't need to write anything out. But for code I'm still developing or code that is doing something that I didn't think it should be doing - writing can help me figure that out. Writing here includes arrows and boxes and such. It's usually so much easier to express data transformation with little sketched diagrams with arrows than it is to try to express it in a text only editor or (cringe) a diagramming program like Visio.
But different strokes for different folks. Everyone is different. I think one of the main aspects of getting "good" is figuring out how you work best.
Writing here includes arrows and boxes and such
Oh, okay. No, I completely agree with you. I diagram stuff! The LT sign-in/password stuff has a diagram worthy of a Tufte book. But I don't sit down and write lines of code on paper. 10 print "Hello"; 20 goto 10, etc. :)
I think I started the "write code on paper" discussion. I don't either. It was just an expression. :)
Just adding a historical note here: when I first started coding, we had to write it on paper. It was then sent to "keypunching" for data entry. Those were the good old days (NOT)!
I don't know what they do in high school now. I'm guessing most AP programming classes don't require you have a laptop, so the tests HAVE to be on paper. I remember writing code in blue books. Not fun.
The "Why can't Programmers ... Program?" article linked to by >30 timspalding: says good programmers ought be able write on paper a program solving a certain task in a few minutes. That's what prompted my anecdote.
(In the mentioned course, we certainly could have had computers to write the tests on if the prof had cared to. She simply didn't want us to - if there was some particular reason for it she didn't tell us.)
>56 LoisB: Ah, punchcards. I don't really miss them, but that's where most of my writing code on paper (or card) happened. Extra points for the compilation errors you racked up if they forgot to feed in the one with PROCEDURE DIVISION on it.
I only understand about 20% of what you guys are saying, but I'm fascinated. I still remember when my husband, the math teacher, taught rudimentary coding in our high school math classes in the early '80s. Later the computers became more user-friendly and the computer training became the responsibility of the business teacher.
>57 timspalding: I'd assume a high school programming class would actually take place in a computer lab (or library with a separate computer area), so while they wouldn't have laptops they would have access to computers for a test.
> 59 OR IDENTIFICATION DIVISION or ENVIRONMENT DIVISION OR DATA DIVISION . . .
Hail, Grace Hopper!
Maybe others did. Ours took place in a classroom. While I could see it for tests, I think a classroom is better overall. Computer labs are not good places for instruction.
Yeah, tim. As I remember, Lee had a master computer and several "slaves." Might be wrong on that. It was a LONG time ago, and I am numerically challenged enough to be unclear about what they were doing in there.
I seem to remember the term "daisy chain" which might or might not have applied. Sounds erotic, though.
I seem to remember the term "daisy chain" which might or might not have applied. Sounds erotic, though.
You have changed the potentiality of that term in my mind.
I think my husband still has a small stack of punch cards. He scrounged all the left overs when they stopped using them, and for years always had a few in his pocket to write notes on. Then the stack got too small to 'waste' that way.
>35 lilithcat: My first real office job (ok, only a summer job, but) happened when a person had been trained as a Foreign Service secretary (with security clearance, etc), got on a plane, arrived in Port of Spain, Trinidad & Tobago - decided it was way too foreign and got on the next plane home.
She was going to be the Ambassador's secretary. I couldn't have her job - aside from everything else, I didn't have a security clearance - but there was someone with a clearance working in the unclassified section. She moved upstairs and I took her job, for the summer (I was visiting my mom, in her first Foreign Service posting, from college).
I think she was nuts - T&T is a tropical paradise with potable water - but it was a good job, so I'm sort of glad she was nuts.
>various - I can remember notebooks - those black-and-white houndstooth ones - full of coding bits - some pseudocode, some actual lines of code (in Fortran, I think - or Pascal, I really can't remember which one) - from my first time at college. And little blue test booklets ditto (and ow my hand, I agree on the writing at speed and readability). By my second time at college, the testing was directly on computers - we had a classroom (actually, several) with computers at each desk, and the teacher on a dais so we could see him over the top of the computer. Testing and work and all, on those computers. And home work on our own computers or in the lab. I still do pseudocode on paper sometimes, but mostly I do scratch notes on the computer. Diagramming excepted, of course.
I learned Fortran in high school. We had a typewriter-like thing that we used to make the punch cards. Unfortunately, I was a terrible typist, so my cards were always full of typos. I could never get anything to run.
The high school didn't have a computer, we had a dumb terminal running off the mainframe downtown at the Chicago Board of Ed. We could only actually run programs after hours when the mainframe had downtime. So I'd leave my little stack of cards overnight, come back in the morning, and sure enough, mine wouldn't run because of typos. Man, I hated those danged cards.
>63 timspalding: That's interesting. The few programming classes I took all took place in labs. The monitors were on a different switch than the computers, and the instructor could turn off all of the monitors at one time if he so chose, without harming the computers any. One of the labs (the Windows one) had desks that were large enough to have both the monitors (keyboard, mouse, etc) on them, as well as room to put books and write notes. Another lab (the Linux one) had the monitors beneath a plexiglass type surface, angled up at you. You could put all your books on top of the plexiglass surface, and take notes there, and then move stuff aside or into your backpack to view the monitor when you were using the actual computer.
The digital photography class I took 3 or 4 summers ago also largely took place in a computer lab (when we weren't on field trips shooting pictures). The desks were smaller, and the monitors were much larger. Brand new 23" or 25" all in one Macs... Despite the much larger monitors, the keyboard and mice were small enough we still had enough room for taking notes, didn't have any textbooks in that class though.
For any class I've taken where a computer is a necessity for the class (rather than something used for typing up homework, or doing research, which could be done on any library computer), the classes have actually taken place in a lab. Perhaps it's just been that that was the only place to put us for the programming classes (the photography building was brand new when I took that class, I know they put us in that room on purpose....they also put windows in the darkroom in that building so what teachers want and what actually happens don't always align), or maybe it's that the classes I took were all ones with a practical component
When I was studying for a Computer Science degree our lectures were in lecture theatres and normal class-rooms. No computers present. But those were the good old days when the IBM PC and Macs were in their infancy.
When I was in the sixth form (last couple of years of high school), we had computer science lessons where we wrote programs in Algol on sheets of squared paper and sent them off by post to Manchester University to be turned into punch cards. With a bit of luck, the results would come back (also by post) within a week. Half the time the packet was suspiciously thin and the printout said "SYNTAX ERROR IN LINE 1".
As to applicants who don't have even the basic skills the job calls for, I don't think that problem is confined to programming. Exactly the same over- and under-rating applies when you ask people to give a self-assessment of their language skills, as I know from many wasted interviews.
Both. We were recruiting people who need to work in three languages (not necessarily including their own first language) and we regularly got people ticking the boxes for "excellent" when they couldn't manage a simple conversation or give a summary of a document from their own field. I think HR had to give up on the self-assessment.
Self-assessment is always hard, but when you don't have objective criteria and instead just things like "excellent" it's even harder. When I interviewed for my current job they quantified the endpoints of the scale (for programming languages) by saying "1 means you can do 'hello, world' in a couple tries, 10 means you wrote the language." That's a lot more useful than just "Rate yourself on a scale of 1-10."
Ha. I like that scale. I tell people it's like tennis. I've found that people cannot describe how good they are at tennis. It's not that they are lying, it's that there's no common scale, and even concepts like "most of the time I can hit it back" are dependent on the other player's level.
For LT's interview process, I try to take the sting out of it by telling people to take the test themselves. If they find they do it in less than 5 minutes, apply for the job. People can lie as much as they like, but, since I also tell them the interview involves code, they know if they'e totally out of the ballpark and it would be waste of time for them.
Needless to say, I get pushback. One guy took the time to write that I was an asshole for requiring a code test because "all I do for free is breathe." Except he said it in some way that was actually UNGRAMMATICAL. There is a unity of the virtues and vices. The jerks are also the bad programmers are also the bad writers.
Could we start discussing OUR new programmer? Does s/he like us? Does s/he like the job? When will we meet her/im?
The organization my husband used to work for ask you to assess your ability in your non-native languages (up to eight) as Limited, Working Knowledge, Fluent for each of Speaking, Reading, and Writing. Limited specifically includes reading newspapers.
I would be instantly suspicious of those who rated themselves a 9, or maybe even an 8 unless they could back it up with some explanation. But even there you have problems I have known people who have been on the BSI C++ standards panel who rated their knowledge at a 3.
I assume people have seen http://sijinjoseph.com/programmer-competency-matrix/
Feel free to borrow the scale. :-)
One guy took the time to write that I was an asshole for requiring a code test because "all I do for free is breathe."
I might see a bit of where he may be coming from there; some places will do code "homework" (something that's too involved to do in a half-hour or hour-long interview slot) that unscrupulous employers can use to basically try and get a few free hours of contracting work. At my previous job we did the homework problems for candidates we were on the fence about, and were very careful to make sure they were totally unrelated to our actual product so nobody could accuse us of poaching free code. So this guy could have been overreacting based on experiences with that sort of thing, on top of just being a jerk.
It's just a first pass in the phone interview, so people who claim to be 8+ can back it up later with code..
No, I know what you mean. Part of the problem is also that some people came in thinking it was a contract job. In that case and many others, they didn't bother to read ANYTHING in the blog post. They just fire off "I'm great at PHP. Call me." bullshit. Sorry, I know programmers are expensive commodities, but that's like asking every woman you meet to have sex--you're trying to make up for bad technique with sheer numbers.
Anyway LibraryThing is in no current need of a script to print out how many two letter words there are in a string :)
Loved the matrix. I am highly qualified in communication. Other than that--wait, you mean Excel isn't a database??
I took programming classes in high school *cough*twenty years*cough* ago. Our first test was done on computers. Half-way through the test, someone found all the answers in an unprotected folder on the server. Word got round. After that, all tests were on paper.
>83 Dilara86: That would be why I'd assume the tests would be on paper -- potential for cheating (in various ways).
Tim said, "...we have a new programmer coming on board Monday..."
That's Monday, March 10. Wheee!
omg this thread was linked in a blog post... I Am A Celebrity Now.
In the future, everyone will be famous to 10 people… :)
Please make a better, oauth API, I want to add books from my website with a macro. Also, please, please please, make the summaries/descriptions of books more available and better crawled. I have to keep looking at(dare I say it) Goodreads to just get a summary a la back cover
This group does not accept members.
This topic is not marked as primarily about any work, author or other topic.