Stories
Slash Boxes
Comments

SoylentNews is people

posted by takyon on Friday July 17 2015, @08:17AM   Printer-friendly
from the brb-printing-diploma dept.

We often discuss the merit (or necessity) of having a formal degree in technology. This story is another installment in that debate:

The Department of the Interior's computer systems played a major role in the breach of systems belonging to the Office of Personnel Management, and DOI officials were called before the House Oversight and Government Reform Committee on Wednesday to answer questions about the over 3,000 vulnerabilities in agency systems discovered in a penetration test run by Interior's Inspector General office. But there was one unexpected revelation during the hearing: a key Interior technology official who had access to sensitive systems for over five years had lied about his education, submitting falsified college transcripts produced by an online service.

The official, Faisal Ahmed, was assistant director of the Interior's Office of Law Enforcement and Security from 2007 to 2013, heading its Technology division. He claimed to have a bachelor's degree from the University of Wisconsin-Oshkosh, and a master's degree in technology management from the University of Central Florida—but he never attended either of those schools. He resigned from his position at Interior when the fraudulent claim was exposed by a representative of the University of Central Florida's alumni association, who discovered he had never attended the school after Ahmed accepted and then suddenly deleted a connection with her on LinkedIn.

TFA emphasizes the falsification he did of his credentials, but there seems to be heavy insinuation that lack of degree = lack of ability.


Official Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2) by tibman on Friday July 17 2015, @02:33PM

    by tibman (134) Subscriber Badge on Friday July 17 2015, @02:33PM (#210441)

    Give every interviewee the fizzbuzz test and just as many with degrees will fail as those without degrees. In my experience. We give them a laptop now that has no powercord so they can't sit in there for hours. We don't even care what language they write it in or whether it is a console app, website, native ui, or whatever. The laptop has full internet access and we tell them they are free to use it if they want. 8/10 fail the test. Only once did someone complete it under 15 minutes. He found a better offer and we couldn't hire him.

    Totally agree with the lying. Who knows what else he also lied about. "Yup, security audits went great!"

    --
    SN won't survive on lurkers alone. Write comments.
    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2  
  • (Score: 2) by Thexalon on Friday July 17 2015, @03:30PM

    by Thexalon (636) on Friday July 17 2015, @03:30PM (#210467)

    You have a problem with something that happens to your potential recruits before the interview if that's the case. Your headhunter or HR department or whoever it is screening resumes is getting lousy candidates. Or you are paying far below market rates and/or have lousy working conditions so all you can get is the bottom of the barrel.

    I'll give you an example of another interviewee that came in who actually knew what a developer should know. That candidate read over the Fizzbuzz problem, said "Really?", and typed out the correct answer. And yes, that candidate had a degree. It ended up not being a hire because the candidate decided not to work for us (quite wisely - it was a doomed startup).

    --
    The only thing that stops a bad guy with a compiler is a good guy with a compiler.
    • (Score: 2) by tibman on Friday July 17 2015, @04:46PM

      by tibman (134) Subscriber Badge on Friday July 17 2015, @04:46PM (#210499)

      We don't have an HR department and we don't trust resumes (people lie). There is no barrier between the development team members that sit in the interview and the "recruit". Anyone can interview. Everyone gets fizzbuzzed and we review their code after they've left the interview. What they have written is far more interesting than the fact that they wrote a solution. Each developer gets to ask one or more questions. My favorites have been "Ninja or Pirate and why?", "If you are working with a binary tree do you go up the tree to reach the root or down the tree?", "Would you be offended if i occasionally smell bad?", and plenty more.

      --
      SN won't survive on lurkers alone. Write comments.
  • (Score: 0) by Anonymous Coward on Friday July 17 2015, @04:09PM

    by Anonymous Coward on Friday July 17 2015, @04:09PM (#210485)

    Give every interviewee the fizzbuzz test and just as many with degrees will fail as those without degrees. In my experience. We give them a laptop now that has no powercord so they can't sit in there for hours. We don't even care what language they write it in or whether it is a console app, website, native ui, or whatever. The laptop has full internet access and we tell them they are free to use it if they want. 8/10 fail the test. Only once did someone complete it under 15 minutes.

    Really?? Are you referring to this:

    "Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”."

    http://c2.com/cgi/wiki?FizzBuzzTest [c2.com]

    Took me under 3 minutes and I am not a programmer at all. This is R:

    a=1:100
    fizz=which(a/3==round(a/3))
    buzz=which(a/5==round(a/5))
    fizzbuzz=fizz[which(fizz %in% buzz)]
     
    a[fizz]="fizz"
    a[buzz]="buzz"
    a[fizzbuzz]="fizzbuzz"
     
    print(a)

      [1] "1"        "2"        "fizz"     "4"        "buzz"     "fizz"
      [7] "7"        "8"        "fizz"     "buzz"     "11"       "fizz"
      [13] "13"       "14"       "fizzbuzz" "16"       "17"       "fizz"
      [19] "19"       "buzz"     "fizz"     "22"       "23"       "fizz"
      [25] "buzz"     "26"       "fizz"     "28"       "29"       "fizzbuzz"
      [31] "31"       "32"       "fizz"     "34"       "buzz"     "fizz"
      [37] "37"       "38"       "fizz"     "buzz"     "41"       "fizz"
      [43] "43"       "44"       "fizzbuzz" "46"       "47"       "fizz"
      [49] "49"       "buzz"     "fizz"     "52"       "53"       "fizz"
      [55] "buzz"     "56"       "fizz"     "58"       "59"       "fizzbuzz"
      [61] "61"       "62"       "fizz"     "64"       "buzz"     "fizz"
      [67] "67"       "68"       "fizz"     "buzz"     "71"       "fizz"
      [73] "73"       "74"       "fizzbuzz" "76"       "77"       "fizz"
      [79] "79"       "buzz"     "fizz"     "82"       "83"       "fizz"
      [85] "buzz"     "86"       "fizz"     "88"       "89"       "fizzbuzz"
      [91] "91"       "92"       "fizz"     "94"       "buzz"     "fizz"
      [97] "97"       "98"       "fizz"     "buzz"

    That is astounding if most selling themselves as programmers cannot do this. I had no idea.

    • (Score: 2) by tibman on Friday July 17 2015, @04:30PM

      by tibman (134) Subscriber Badge on Friday July 17 2015, @04:30PM (#210496)

      We require it to be interactive and you get to type/select the start and end numbers. All programs (we care about) require inputs. But yes, that is it exactly : ) It is supposed to separate those who can from those who can't. It is simple for those who can. We've had many attempts that never even compiled. It's crazy man.

      We really like it to see how people go about solving problems. For example your lines 2 and 3 are nearly identical as well as 4 and 5. Some people would have made those into methods. Which then allows you to easily extend the program to more numbers. Some people might not do lines 4 and 7 and opt to concat fizzes and buzzes together instead. The test is to let us see your code but ended up being a much higher bar than anticipated.

      --
      SN won't survive on lurkers alone. Write comments.
      • (Score: 0) by Anonymous Coward on Friday July 17 2015, @06:59PM

        by Anonymous Coward on Friday July 17 2015, @06:59PM (#210541)

        I'm curious, what would be the advantage of this:

        Some people might not do lines 4 and 7 and opt to concat fizzes and buzzes together instead
         

        In R this is easy:

        fizzbuzz=c(fizz,buzz)[duplicated(c(fizz,buzz))]

        But I would think it got slower if either vector was long or this was being done over and over.

        • (Score: 2) by tibman on Friday July 17 2015, @08:06PM

          by tibman (134) Subscriber Badge on Friday July 17 2015, @08:06PM (#210570)

          The advantage is not creating a third array. Your line still creates a third array. I haven't used R before but i cannot find a definition for "which". Do you have a good reference to use?

          I'm not saying creating a third array is wrong, just that almost everyone does it differently. Some may do the entire thing in a loop and never build out even a single array. Like: for(int i = min; i = max; i++) print(i + ' ' + fizz(i) + buzz(i))
          In that case they never even had the starting range array but they have max-min+1 number of print calls which is a different kind of expensive.

          --
          SN won't survive on lurkers alone. Write comments.
          • (Score: 0) by Anonymous Coward on Friday July 17 2015, @08:15PM

            by Anonymous Coward on Friday July 17 2015, @08:15PM (#210575)

            https://stat.ethz.ch/R-manual/R-devel/library/base/html/which.html [stat.ethz.ch]

            This is the closest I can find to showing what it does (probably doesn't help):

            function (x, arr.ind = FALSE, useNames = TRUE)
            {
                wh <- .Internal(which(x))
                if (arr.ind && !is.null(d <- dim(x)))
                    arrayInd(wh, d, dimnames(x), useNames = useNames)
                else wh
            }

      • (Score: 0) by Anonymous Coward on Friday July 17 2015, @07:24PM

        by Anonymous Coward on Friday July 17 2015, @07:24PM (#210552)

        Interesting, apparently this is a more optimal R solution:

        fzbz <- function(n){c(n,"fizz","buzz","fizzbuzz")[1+(!n%%3)+2*(!n%%5)]}
          for (a in 1:100) print(fzbz(a))

        http://c2.com/cgi/wiki?FizzBuzzInManyProgrammingLanguages [c2.com]

    • (Score: 0) by Anonymous Coward on Friday July 17 2015, @11:23PM

      by Anonymous Coward on Friday July 17 2015, @11:23PM (#210650)

      Took me under 3 minutes and I am not a programmer at all.

      Because R is fucking awesome.

    • (Score: 1) by mechanicjay on Saturday July 18 2015, @02:28PM

      I'm not a hardcore programmer, but I do a decent share of small web apps. I do have a CS degree. I have never heard of this, but my reaction was "really"?

      It took me 10 minutes, pre-coffee on a sunday morning in python. It would have been 5 minutes, but I haven't touched python in about a year and was tripped up a little by syntax

      for x in range(1,101):
         fizz = ""
         buzz = ""
         if x % 3 == 0:
              fizz = "fizz"
         if  x % 5 == 0:
              buzz = "buzz"

         if fizz=="fizz" or buzz=="buzz":
              fizzbuzz = fizz+buzz
              print fizzbuzz
         else:
              print x

      It only uses 3 variables, but mostly importantly, it calculates the modulus for each number for 3 and 5 only once. I could see this being where people fall down the rabbit hole here, trying to find and if/else logic block to cover all cases. That's where it gets hard and computationally inefficient.

      --
      My VMS box beat up your Windows box.
  • (Score: 2) by goodie on Friday July 17 2015, @07:16PM

    by goodie (1877) on Friday July 17 2015, @07:16PM (#210545) Journal

    And there I thought you were talking about this popular drinking game (at least when I was young...): http://www.jeuxaboire.fr/autres-jeux/31-le-fizz-buzz [jeuxaboire.fr] (in French)
    Same idea, much more fun to play (as long as you win), it's one of those games where getting out of a losing streak is not easy!

  • (Score: 0) by Anonymous Coward on Friday July 17 2015, @08:22PM

    by Anonymous Coward on Friday July 17 2015, @08:22PM (#210579)

    Only once did someone complete it under 15 minutes. He found a better offer and we couldn't hire him.

    There's your problem. If you can't find competent people and the ones that you do get better offers: your compensation is far too low and/or your expectations far too high.

    Double the salary and try again.

    • (Score: 2) by tibman on Friday July 17 2015, @09:02PM

      by tibman (134) Subscriber Badge on Friday July 17 2015, @09:02PM (#210595)

      That hasn't worked well for us because someone somewhere always offers more. You end up with developers that only care about money and barely learn the system before leaving for another company. You'll spend the next two months fixing their work. I would say our salaries aren't high but they are good. We aren't trying to recruit the best. We will settle for good enough. As far as expectations go we have very few. You have to fizzbuzz, you have to be a culture fit, and have to be trainable. If the CTO wrote some incorrect code or said the wrong thing, you have to tell him. Put him on the spot right there. Have an argument. The best supported argument wins. You can try that with company policy too but he'll probably win because it's subjective : )

      Double salary would put me in the top 5%, which doesn't sound right. Developers should be around top 20-25%?

      --
      SN won't survive on lurkers alone. Write comments.
      • (Score: 0) by Anonymous Coward on Friday July 17 2015, @09:18PM

        by Anonymous Coward on Friday July 17 2015, @09:18PM (#210603)

        All employment contracts state the employer owns all code media etc etc and patents the employee creates during the term of employment: ie the employee is owned and can't do hobby opensource projects at home. Why would anyone work for you bloodsucking fucks?

        • (Score: 2) by tibman on Friday July 17 2015, @10:08PM

          by tibman (134) Subscriber Badge on Friday July 17 2015, @10:08PM (#210624)

          Ours doesn't. You can even work on personal projects at work. But once you check code into company owned version control it becomes work product and the company owns the copyright and will likely patent it (theyhave a few already). Myself and two other guys do "collaborative" for fun projects during lunch and some afternoons. They usually never go anywhere and get abandoned half-way. Programming doesn't always have to be serious, it can be a lot of fun.

          The last one i worked on was a 5th Edition Dungeon Generator [tageverything.org] with the goal of copying the rules directly from the official guidebook. I didn't finish the passages section and it isn't that great yet. Never even built out a real graphical map, just dumped ascii to the screen. You might have to gen a few to see something interesting.

          My buddy made an online character sheet editor [tageverything.org] for an old 80's game called Heavy Gear. Mostly because he always had issues getting people into the game. Telling them to read the first 60 pages of a photocopied PDF scares away a lot casuals.

          NOTE: JavaScript warning for both of those links. They won't work without it.

          --
          SN won't survive on lurkers alone. Write comments.