As was foretold, we've added advertisements to the forums! If you have questions, or if you encounter any bugs, please visit this thread: https://forums.penny-arcade.com/discussion/240191/forum-advertisement-faq-and-reports-thread/
Options

[Programming] Reinventing equality, one language at a time

13132343637100

Posts

  • Options
    GnomeTankGnomeTank What the what? Portland, OregonRegistered User regular
    edited January 2018
    I guess my issue is that we've somehow conflated "memorizing a reasonable solution to fizzbuzz" to "qualified to be a programmer". That's why I found it to be such a useless metric. It doesn't tell me anything about what you are like as a developer. I have zero confidence that everyone passed over because they can't do fizzbuzz on a white board was actually a bad developer. There is little doubt in my mind qualified, skilled, programmers are passed over because of shitty exercises like fizzbuzz.

    GnomeTank on
    Sagroth wrote: »
    Oh c'mon FyreWulff, no one's gonna pay to visit Uranus.
    Steam: Brainling, XBL / PSN: GnomeTank, NintendoID: Brainling, FF14: Zillius Rosh SFV: Brainling
  • Options
    bowenbowen How you doin'? Registered User regular
    I don't think the insinuation is that they're qualified to be a programmer, it's just that it measures their ability to understand the very basics of programming.

    And if you can't display some understanding of an if statement and variables then you probably won't get things like interfaces and classes either.

    That isn't to say it's a good metric for that either, but it's a rather simplistic one that at least the bulk of software developers can do without someone freezing the fuck up in an interview when they're dropped in front of a white board and given access to a github repo and asked to do a patch in 30 minutes.

    Take home ones are better, which you guys are doing, so that's fine for that.

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    LD50LD50 Registered User regular
    What if we change our requirements for FizzBuzz: Write a bad implementation of FizzBuzz that demonstrates your understanding of the language runtime.

  • Options
    EtheaEthea Registered User regular
    Hmm

    I wonder if I can use list initialisers and std::forward to create the entire fizz buzz outputI at compile time

    I have seen numerous different versions that all do compile time generation. It is pretty easy in anything over C++11 as you use constexpr strings to build up the string as you go. Heck with C++17 you can build a compile time json parsers ( https://www.youtube.com/watch?v=PJwd4JLYJJY )

  • Options
    SpawnbrokerSpawnbroker Registered User regular
    GnomeTank wrote: »
    I guess my issue is that we've somehow conflated "memorizing a reasonable solution to fizzbuzz" to "qualified to be a programmer". That's why I found it to be such a useless metric. It doesn't tell me anything about what you are like as a developer. I have zero confidence that everyone passed over because they can't do fizzbuzz on a white board was actually a bad developer. There is little doubt in my mind qualified, skilled, programmers are passed over because of shitty exercises like fizzbuzz.

    I get that it's insane and arbitrary, but it's the simplest coding exercise I can think of to ask someone to demonstrate to me that they can actually do what it says on their resume. It's not a brain teaser and it has a reasonably simple solution so a programmer who hasn't seen the problem before could solve it on the spot if asked.

    I get that it sucks to be asked to do stuff like this, but the other option is to not test candidates on their coding abilities. I'm not giving a Google or Amazon interview here, I'm asking them to write me a loop and some if statements. I need to be able to tell if someone can actually do this job and if I don't do that, I'm stuck with a terrible coworker for at least 6 months who will be extremely hard to fire. Someone pulling in a programmer salary at a place that doesn't get a ton of budget for programmers.

    Steam: Spawnbroker
  • Options
    EchoEcho ski-bap ba-dapModerator mod
    LD50 wrote: »
    What if we change our requirements for FizzBuzz: Write a bad implementation of FizzBuzz that demonstrates your understanding of the language runtime.

    I too am a fan of monkeypatching stuff in Ruby. It's super-handy to be able to do that in the language, like when I override how array indexes work so they always return a certain value when out of range, which I needed when I was dabbling with cellular automata.

  • Options
    DiannaoChongDiannaoChong Registered User regular
    Thanks for the C# advice everyone, I had the interview today with 3 people and the most technical question I got was "on a scale of 1-10 how good are you are C#" :rotate:

    steam_sig.png
  • Options
    bowenbowen How you doin'? Registered User regular
    edited January 2018
    Thanks for the C# advice everyone, I had the interview today with 3 people and the most technical question I got was "on a scale of 1-10 how good are you are C#" :rotate:

    9, because C# is 0-indexed

    *snort*

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    JasconiusJasconius sword criminal mad onlineRegistered User regular
    ive never even heard of fizzbuzz until today

    go ahead, fire me

  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    edited January 2018
    So I decided to try Meltdown on my machine but I couldn't get it to work, even trying to produce any sort of speculative execution side-effect on my own local memory was incredibly difficult. It worked 100% if I run the access-array-based-on-first-data instruction, if I jump just before that it just stops working

    Trying to access kernel memory (the GDT which the processor will helpfully just give you the address for and needs to always be mapped) without the branch didn't work either, not sure why

    3 proof of concept pieces of code don't work either

    edit: on my i7-3770k anyway, might try m other machine later

    Phyphor on
  • Options
    dporowskidporowski Registered User regular
    GnomeTank wrote: »
    I guess my issue is that we've somehow conflated "memorizing a reasonable solution to fizzbuzz" to "qualified to be a programmer". That's why I found it to be such a useless metric. It doesn't tell me anything about what you are like as a developer. I have zero confidence that everyone passed over because they can't do fizzbuzz on a white board was actually a bad developer. There is little doubt in my mind qualified, skilled, programmers are passed over because of shitty exercises like fizzbuzz.

    I get that it's insane and arbitrary, but it's the simplest coding exercise I can think of to ask someone to demonstrate to me that they can actually do what it says on their resume. It's not a brain teaser and it has a reasonably simple solution so a programmer who hasn't seen the problem before could solve it on the spot if asked.

    I get that it sucks to be asked to do stuff like this, but the other option is to not test candidates on their coding abilities. I'm not giving a Google or Amazon interview here, I'm asking them to write me a loop and some if statements. I need to be able to tell if someone can actually do this job and if I don't do that, I'm stuck with a terrible coworker for at least 6 months who will be extremely hard to fire. Someone pulling in a programmer salary at a place that doesn't get a ton of budget for programmers.

    The thing is, it doesn't demonstrate that. It only demonstrates "they memorised a list of common interview questions". There's books, mailing lists, forums, you name it, entirely devoted to nothing but "here are the answers to the most common questions in X language at Y company".

    Show them some code/pseudocode with a bug in it, tell them "it's doing X, and that's not right", and see what they ask/do. If they can "fix" it, they've just demonstrated far more ability to actually do the actual job than any number of arbitrary questions from The Big Book of Tricksy Interview Questions, vol 1323.

    Hell, do that. Then ask them to make it do Y as well, or communicate with Z service, all pseudocode of course unless you want to sit down with an actual dev environment. Once it does Y, start asking about eh, memory usage, dependency injection, favorite design patterns, why they did X not Y here... You get the idea. Shit you can't bullshit if you know how to do your job, and something fairly well in-context, so they're not flailing around with their hands screaming at them "type" not "write", wishing they had their language reference bookmark list, etc.

    As an interesting note, as of last I checked, Google has basically dropped the brainteaser/whiteboard method from their interviews in favor of "things a developer would actually do".


    BTW, I really really am not trying to go after you on this; I feel you on the crappy coworker thing. I just have been in the industry a good long time, and have Feelings about interview questions, and want to see them get better and not suck for everyone anymore.

  • Options
    SpawnbrokerSpawnbroker Registered User regular
    edited January 2018
    Man if you guys are this upset about fizzbuzz, you should see some of the problems that they asked at my big 4 interviews when I graduated college.

    Fizzbuzz is literally the least problematic question I could possibly ask of someone. I want to see if they can write a simple function from scratch.

    You guys are jumping on me like I'm the problem here when I do all of the things you're asking me to do. Fizzbuzz isn't a fucking brain teaser, by the way.

    A brain teaser is one of these:
    • How many golf balls can fit into an airplane?
    • How many gas stations are in the entirety of the United States?
    • How do you get the fox/dog/chicken/feed across the river?
    • The Locker Problem
    • Find a cycle in a linked list

    You know, the REAL stupid shit. Fizzbuzz is not the problem and is the most insultingly easy question I can think of to give someone to demonstrate to me that they know how to write even a little bit of code.

    Edit: 90% of the questions I ask in the interview are: Here's a piece of code that I wrote, let's talk about what it does. Fizzbuzz is the single question I ask where someone has to demonstrate WRITING code. I don't think that's a very high bar to clear.

    Spawnbroker on
    Steam: Spawnbroker
  • Options
    EchoEcho ski-bap ba-dapModerator mod
    You guys are jumping on me like I'm the problem here when I do all of the things you're asking me to do. Fizzbuzz isn't a fucking brain teaser, by the way.

    A brain teaser is one of these:
    • How many golf balls can fit into an airplane?

    Nah, that's an engineering problem.

    e92lvacj1w8g.png

  • Options
    SpawnbrokerSpawnbroker Registered User regular
    It's official, Wolfram is going to become Skynet and kill us all. Is there anything that software can't do?

    Steam: Spawnbroker
  • Options
    thatassemblyguythatassemblyguy Janitor of Technical Debt .Registered User regular
    Echo wrote: »
    You guys are jumping on me like I'm the problem here when I do all of the things you're asking me to do. Fizzbuzz isn't a fucking brain teaser, by the way.

    A brain teaser is one of these:
    • How many golf balls can fit into an airplane?

    Nah, that's an engineering problem.

    https://us.v-cdn.net/5018289/uploads/editor/t6/e92lvacj1w8g.png

    I would have hoped that the idealized shape model for the plane would have included two conical shapes to approximate the taper at the front and back.

  • Options
    Baron DirigibleBaron Dirigible Registered User regular
    edited January 2018
    It's official, Wolfram is going to become Skynet and kill us all. Is there anything that software can't do?


    Also: I'm late to the party on this one, but I've just got a new job and I've taken the opportunity to switch from Sublime to VS Code.

    Where has this been all my life? I was first tempted by a plugin to colourise matching brackets, but being able to attach a shell to a running docker container from within the IDE is also a nice touch, and being able to go from code -> commit -> receiving bitbucket pipeline notification, without any app switching, will ruin other editors for me forever.

    Baron Dirigible on
  • Options
    LD50LD50 Registered User regular
    It's official, Wolfram is going to become Skynet and kill us all. Is there anything that software can't do?


    Also: I'm late to the party on this one, but I've just got a new job and I've taken the opportunity to switch from Sublime to VS Code.

    Where has this been all my life? I was first tempted by a plugin to colourise matching brackets, but being able to attach a shell to a running docker container from within the IDE is also a nice touch, and being able to go from code -> commit -> receiving bitbucket pipeline notification, without any app switching, will ruin other editors for me forever.

    It gave him exactly what he asked for, in base 20.

  • Options
    gavindelgavindel The reason all your software is brokenRegistered User regular
    Upsides of our Git functionality at work:
    • Proper branching at last!
    • Ability to fork off private builds and consume them locally so I can continue development while code is in review
    • Lightweight review process
    • Better module silo adherence

    Downsides:
    • So many fucking submissions. With a half dozen modules, building extensions to function together at the top level, I might need to make a dozen checkins.
    • Manual dependency management. Right now, one of our official release branches is ahead of tip with my latest work. If I forgot to checkin into the normal develop branch between now and when that release branch merges back into master, the builds would fail!


    Book - Royal road - Free! Seraphim === TTRPG - Wuxia - Free! Seln Alora
  • Options
    bowenbowen How you doin'? Registered User regular
    There's a difference between "digits" and "integers".

    Digit isn't the right term for "positive number". Digits are the written numerical symbol that represents a number. So think of a digit like a letter, they don't necessarily confer a value of the number "4" so much as digit is how to draw the number 4 in your writing system.

    Wolfram Alpha is technically correct in what it is doing.

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    bowenbowen How you doin'? Registered User regular
    Also there's some ambiguity there, do you want 48 of them in sequence, or do you want 48 independent numbers, or do you want 48 numbers that are valued 0-9?

    Is 03913016012360... acceptable or do you want 0 3 9 1 3 0 1 ... or what?

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    OrcaOrca Also known as Espressosaurus WrexRegistered User regular
    bowen wrote: »
    Wolfram Alpha is technically correct in what it is doing.

    Thatsthejoke.jpg.

  • Options
    bowenbowen How you doin'? Registered User regular
    fite me irl

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    TelMarineTelMarine Registered User regular
    I've never heard of fizzbuzz till reading this thread, I'll have to check that out...The talk about programming interviews is interesting because I think my problem is is being obsessed with trying to know everything possible that may be asked so I don't make a mistake (this is impossible of course). I think actually doing multiple interviews would help with that and confidence. In college, I did Computer Engineering and was focused on a hardware track (I always felt like I didn't understand programming), but outta school first job I switched to software so I feel like I've been playing catch up. I definitely am weak in some areas (like writing binary trees from scratch or sorting algorithms from scratch), but I've found that I've learned the most at work when I actually was confronted with a problem that a design pattern or whatever ended up solving. I also haven't focused so much on performance since most of the time (writing Java, cue your jokes) it was more important to just get something working or having something be readable/modular. Outside of nested for loops, I never really took into account like, "what's the performance of this code?"

    3ds: 4983-4935-4575
  • Options
    Jimmy KingJimmy King Registered User regular
    HELP!!! I've inherited some rails stuff. I am not a rails guy. I have never used it beyond some very basic local dev years ago. It's using rails 5, the built in asset pipeline, and asset_sync to serve the assets from s3. I'm running into one problem and not seeing a clear solution for it when I search. It appears that in a multiple server environment, we are needing to run the `assets:precompile` rake task on every server when it should only need to be run on one server.

    What configuration is likely missing? My best guess is that I need to add the setting to asset_sync to upload the manifest file to s3. It has also been suggested to me that there may be a different setting to put this info in a shared location like a redis cache, but I'm not seeing any obvious documentation of such a thing.

  • Options
    JasconiusJasconius sword criminal mad onlineRegistered User regular
    ive boiled down the interviews i give (which are thankfully infrequent) to a few basic questions

    what's your least favorite thing about [your main programming language/framework here]
    what's the hardest thing you've had to do professionally (software or not)
    tell me about a time you had to solve a challenging bug, how you found it, what you did to fix it, what problems did you encounter along the way

    if you don't have at least a comprehensive 5 minute answer to each of these, you probably cannot work without supervision, and in turn cannot for me

    unfortunately this set of questions may also be a magnet for clinical insanity, because the best interview I ever hired ended up being escorted out of the office by police

  • Options
    CambiataCambiata Commander Shepard The likes of which even GAWD has never seenRegistered User regular
    I'm not really a programmer officially yet, but may be some day? So I guess I'm going to follow this thread now.

    Anyway here's a thing that amused me.

    "If you divide the whole world into just enemies and friends, you'll end up destroying everything" --Nausicaa of the Valley of Wind
  • Options
    SmasherSmasher Starting to get dizzy Registered User regular
    Jasconius wrote: »
    ive boiled down the interviews i give (which are thankfully infrequent) to a few basic questions

    what's your least favorite thing about [your main programming language/framework here]
    what's the hardest thing you've had to do professionally (software or not)
    tell me about a time you had to solve a challenging bug, how you found it, what you did to fix it, what problems did you encounter along the way

    if you don't have at least a comprehensive 5 minute answer to each of these, you probably cannot work without supervision, and in turn cannot for me

    unfortunately this set of questions may also be a magnet for clinical insanity, because the best interview I ever hired ended up being escorted out of the office by police
    I think requiring a five minute answer to questions like that (particularly the first 2) filters much more strongly for people who are highly opinionated and have the ability to talk a lot extemporaneously than it does for people with the ability to program without supervision.

  • Options
    OrthancOrthanc Death Lite, Only 1 Calorie Off the end of the internet, just turn left.Registered User, ClubPA regular
    My general approach to interviewing engineers is to get them to explain a system they've worked on (of their choice) to me as if I was a new start on their team.

    Then spend the rest of the interview asking why about the decisions they made.

    Combined with a basic take home or online coding exercise I find it works pretty well for determining if they can communicate a technical design and the tradeoffs and business drivers.

    I find this scales down as far as intermediate, for juniors and grads a different approach is needed.

    I've tried using fiz buzz but have never seen anyone fail it, perhaps the market is a bit different here.

    orthanc
  • Options
    bowenbowen How you doin'? Registered User regular
    edited January 2018
    Smasher wrote: »
    Jasconius wrote: »
    ive boiled down the interviews i give (which are thankfully infrequent) to a few basic questions

    what's your least favorite thing about [your main programming language/framework here]
    what's the hardest thing you've had to do professionally (software or not)
    tell me about a time you had to solve a challenging bug, how you found it, what you did to fix it, what problems did you encounter along the way

    if you don't have at least a comprehensive 5 minute answer to each of these, you probably cannot work without supervision, and in turn cannot for me

    unfortunately this set of questions may also be a magnet for clinical insanity, because the best interview I ever hired ended up being escorted out of the office by police
    I think requiring a five minute answer to questions like that (particularly the first 2) filters much more strongly for people who are highly opinionated and have the ability to talk a lot extemporaneously than it does for people with the ability to program without supervision.

    I also don't memorize challenging bugs to talk about it for 5 minutes.

    I spend 8 hours figuring out where the missing parenthesis is in a SQL string literal.

    What you'd be essentially doing is "finding someone who thinks like me" instead of "finding someone who can do this job well"

    bowen on
    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    AngelHedgieAngelHedgie Registered User regular
    They released a screenshot of the alleged interface for sending the alerts in Hawaii:



    You can cry now.

    XBL: Nox Aeternum / PSN: NoxAeternum / NN:NoxAeternum / Steam: noxaeternum
  • Options
    bowenbowen How you doin'? Registered User regular
    that's even worse than I thought holy fucking shit

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    AngelHedgieAngelHedgie Registered User regular
    bowen wrote: »
    that's even worse than I thought holy fucking shit

    The "solution" is just as "inspired" - put the link on top.

    XBL: Nox Aeternum / PSN: NoxAeternum / NN:NoxAeternum / Steam: noxaeternum
  • Options
    bowenbowen How you doin'? Registered User regular
    It was likely a feature request "can we put the test at the top too, so they don't have to look too far to find it?"

    instead of "hey can you make this less confusing" and categorize tests with live real ones or whatever

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    OrcaOrca Also known as Espressosaurus WrexRegistered User regular
    Bad user interface can kill.

    See also: every goddamn car with an always-on backlit dash and daytime running lights without automatically turning on the headlights/running lights when the light level drops below a certain threshold.

  • Options
    bowenbowen How you doin'? Registered User regular
    I hate when it dims my center console lights during the middle of the day. So I either have to turn off my lights when I'm backing up or I can't see because the backup camera is literally too dark at noon during a light rain storm or snow storm or something.

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Options
    SpawnbrokerSpawnbroker Registered User regular
    One of my coworkers deployed a bug fix 7 months ago to one of our systems and then never checked in his code. I basically have to hope that he never discarded his check out or rebuilt his dev machine in that time.

    In other news, do you guys think my boss will allow mandatory code reviews now? My money is on "still no."

    Steam: Spawnbroker
  • Options
    zeenyzeeny Registered User regular
    edited January 2018
    One of my coworkers deployed a bug fix 7 months ago to one of our systems and then never checked in his code. I basically have to hope that he never discarded his check out or rebuilt his dev machine in that time.

    In other news, do you guys think my boss will allow mandatory code reviews now? My money is on "still no."

    How does this relate to code review. I don't actually understand how is this possible?

    zeeny on
  • Options
    SpawnbrokerSpawnbroker Registered User regular
    edited January 2018
    zeeny wrote: »
    One of my coworkers deployed a bug fix 7 months ago to one of our systems and then never checked in his code. I basically have to hope that he never discarded his check out or rebuilt his dev machine in that time.

    In other news, do you guys think my boss will allow mandatory code reviews now? My money is on "still no."

    How does this relate to code review. I don't actually understand how is this possible?

    Someone made a change locally and then deployed it with a script and did not check in to source control. We do not have continuous integration at my job.

    Welcome to the sad reality of corporate software development in most places without a strong engineering culture.

    Spawnbroker on
    Steam: Spawnbroker
  • Options
    GnomeTankGnomeTank What the what? Portland, OregonRegistered User regular
    Wait...you let devs just randomly deploy code artifacts with a script? Maybe start there before worrying about code reviews.

    Sagroth wrote: »
    Oh c'mon FyreWulff, no one's gonna pay to visit Uranus.
    Steam: Brainling, XBL / PSN: GnomeTank, NintendoID: Brainling, FF14: Zillius Rosh SFV: Brainling
This discussion has been closed.