Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
Bloody
Mar 3, 2013

hobbesmaster posted:

lol if you think computer science has anything to do with computer hardware

nah it holds up in a theoretical context because of the absolute limits of information density

Adbot
ADBOT LOVES YOU

Stymie
Jan 9, 2001

by LITERALLY AN ADMIN
computer science has very little to do with the former and nothing to do with the latter

Mao Zedong Thot
Oct 16, 2008


I would empty quote if I could

The Management
Jan 2, 2010

sup, bitch?

FamDav posted:

addition on arbitrarily sized binary values is O(b) where b is the number of bits in the number. b is O(n) for the nth fibonacci number, so adding the n-1th and n-2th fibonacci numbers together is going to be O(n)

it's o(1) with an arbitrarily large lookup table :smuggo:

Tigren
Oct 3, 2003

Stymie posted:

computer science has very little to do with the former and nothing to do with the latter

it's the same as all the other sciences. if you get a phD, you go on to do work where you have to take into account all of the theory that was taught to you. if you don't, you become a computer toucher who gets to rely on other people who already took the theory into account. if you know the theory as a toucher, all the better.

JewKiller 3000
Nov 28, 2006

by Lowtax
don't quote stymie

Stymie
Jan 9, 2001

by LITERALLY AN ADMIN
computer science is closer to statistics than actual science

in that statistics is a highly systematized methodology for creating and disseminating falsehoods

Sapozhnik
Jan 2, 2005

Nap Ghost

The_Franz posted:

there are no cache misses in theoreticalville

also the hookers and booze are free

i mean if the hookers are free they ain't hookers they're just friendly girls who like to party

Notorious b.s.d.
Jan 25, 2003

by Reene

Sapozhnik posted:

i mean if the hookers are free they ain't hookers they're just friendly girls who like to party

the sex is conceptual so the charge is merely hypothetical

jre
Sep 2, 2011

To the cloud ?



cis autodrag posted:

unless it was the games company
bullet still dodged ?

redleader
Aug 18, 2005

Engage according to operational parameters

cis autodrag posted:

you know the db will gently caress this up on the regular and you need to know how to diagnose the bottleneck.

yep, this is a thing i'm pretty familiar with. the skills required to interpret and fix an execution plan are unrelated to any notion of complexity, other than "nested loop join bad, hash join good"

i don't think big O is conceptually hard. i did a bit in babby's first uni maths course ages ago and i can make an educated guess about the complexity of an algorithm, but i've never done and probably wouldn't be able to do any formal analysis of an algorithm's complexity

this thread gives me imposter syndrome because i am, in fact, an imposter. c'est la vie

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

redleader posted:

i don't think big O is conceptually hard. i did a bit in babby's first uni maths course ages ago and i can make an educated guess about the complexity of an algorithm, but i've never done and probably wouldn't be able to do any formal analysis of an algorithm's complexity

it's this

it's the vocabulary and motions of a field of study entirely unrelated to actually making computers go beep and boop

The Management
Jan 2, 2010

sup, bitch?
:sad:

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
literally the definition of a cargo cult

ADINSX
Sep 9, 2003

Wanna run with my crew huh? Rule cyberspace and crunch numbers like I do?

A lot of people really embarrassing themselves itt

I guess its fine if you're writing really basic stuff that glues a bunch of different things together, but I guarantee you the people who WRITE the databases and operating systems and libraries insulating you from actually knowing what you're doing absolutely know a thing or two about computational complexity and they are the ones making computers go beep boop

Brain Candy
May 18, 2006

ADINSX posted:

A lot of people really embarrassing themselves itt

I guess its fine if you're writing really basic stuff that glues a bunch of different things together, but I guarantee you the people who WRITE the databases and operating systems and libraries insulating you from actually knowing what you're doing absolutely know a thing or two about computational complexity and they are the ones making computers go beep boop

being familiar with this stuff is cool and good. knowing how to use it is better

needing to regurgitate Flynn's cycle detection algorithm to get a job is loving moronic

Brain Candy
May 18, 2006

i have actually used Floyd's cycle detection algorithm for jorb! i looked it up, because making a new algorithm is worthy of writing a white paper and my job is to solve business problems. you moron. you imbicile.

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Brain Candy posted:

being familiar with this stuff is cool and good. knowing how to use it is better

needing to regurgitate Flynn's cycle detection algorithm to get a job is loving moronic

thank you for putting this better than i've been able to

knowing how to implement an algorithm in an interview is stupid because whenever that comes up at work you google it, look at existing implementations, read whatever papers have been written, and determine whether the algorithm is appropriate.

being able to identify an algorithm as O(n log n) vs O(n^2) in an interview is pointless because it doesn't actually help the interviewer understand how you work

it's the same kind of exercise as trying to estimate the number of jelly beans in a jar or sands on a beach

The Management
Jan 2, 2010

sup, bitch?

Blinkz0rz posted:

being able to identify an algorithm as O(n log n) vs O(n^2) in an interview is pointless because it doesn't actually help the interviewer understand how you work

it's the same kind of exercise as trying to estimate the number of jelly beans in a jar or sands on a beach

lmao

Brain Candy
May 18, 2006

Blinkz0rz posted:

being able to identify an algorithm as O(n log n) vs O(n^2) in an interview is pointless because it doesn't actually help the interviewer understand how you work

unfortunately, it does

use wikipedia my friend, and learn about counting

power botton
Nov 2, 2011

Ah yes interview people based on trivia instead of soft skills and wonder why all your coworkers are awful

Brain Candy
May 18, 2006

maybe being stubborn about not learning things that would take an afternoon to learn is foolish

maybe substituting the hard question of whether a person would be a good employee for the easy question of 'is the person like me' is foolish

:thunk:

power botton
Nov 2, 2011

im a great developer and my posting is o(1) and doesnt involve any extra reading no matter how many replies there are

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

power botton posted:

im a great developer and my posting is o(1) and doesnt involve any extra reading no matter how many replies there are

yeah because nobody reads u garbage posts

power botton
Nov 2, 2011

gotcha bitch you just did

jesus WEP
Oct 17, 2004


just call .Sort() on you are IEnumerable imo

ADINSX
Sep 9, 2003

Wanna run with my crew huh? Rule cyberspace and crunch numbers like I do?

Blinkz0rz posted:

it's the same kind of exercise as trying to estimate the number of jelly beans in a jar or sands on a beach

Not a great example since accurately estimating unknowns is a really useful skill

Big O notation is the universally accepted way to describe an algorithms complexity and you should be generally familiar with common algorithms and be able to look at a small sample of code and work out its complexity.

Yeah you could google it; the same way I could google laws and call myself a lawyer or buildings and call myself an architect. An interviewer is trying to suss out what kind of skills and knowledge you have on hand, if you have to look everything up its either going to take you a lot longer to do common tasks, or more likely you'll do something wrong without even knowing it.

Anyway, this is coming off as a rant, but I hear this sentiment a lot (always from people without computer science degrees). Computer Science is already applied math, its already (mostly) distilled down to what every programmer really should know. If you don't need it at your job gluing php code together that's fine, but don't roll your eyes at interviewers that want something more out of their candidates, especially when they're offering six figgy salaries.

Either learn more about it, or just fake it for the sake of those sweet figs wikipedia even has a big list of example functions and their runtime complexity

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Brain Candy posted:

maybe being stubborn about not learning things that would take an afternoon to learn is foolish

maybe substituting the hard question of whether a person would be a good employee for the easy question of 'is the person like me' is foolish

:thunk:

i recognize that learning the formal notation around algorithmic complexity is important to go through the process. i'm just bemoaning its place in the interview process because imo (and this has always been imo) it doesn't tell the interviewer anything beyond the ability to regurgitate your intro to algorithms textbook

hobbesmaster
Jan 28, 2008

Brain Candy posted:

being familiar with this stuff is cool and good. knowing how to use it is better

needing to regurgitate Flynn's cycle detection algorithm to get a job is loving moronic

do people ask that and want more than "that's the tortoise and the hare one right"

Flaming June
Oct 21, 2004

i'm a garbage developer and i think being able to analyze an approach is important. being able to identify and reason about an algorithm's time and space complexity is one of the few things i strongly agree with for interviewing a candidate. i have worked at a company where almost no one had any sort of understanding of that stuff and the what they designed and implemented was astoundingly bad

i don't have a cs degree but i took the time to understand how it works and thinking about it when writing code has tremendously increased the quality of what i produce (when it matters, anyway). i think it may be the single most important takeaway in what i've seen in a formal cs education

welp that's my story see ya

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
idk i'm a terrible programmer and it makes me sad but also i'm good at my job and make six figgies so :shrug:

School of How
Jul 6, 2013

quite frankly I don't believe this talk about the market
Can I tell the story of the worst programming job interview I ever had? Actually this story might not be the absolute worst interview I ever did, as 99% of interviews I do are terrible and I forget most details as soon as the interview ends. This interview was 2 or 3 months ago and so it's the most recent in my memory, so I guess that makes it the worst interview I can recall the details of.

I go he interview from a website called "Hired.com". Its supposed to be only 1st party recruiters, but the two interviews I got from that site were from generic 3rd party recruiters who were pretending to be 1st party recruiters. I know this because when I asked them to clarify basic details about the company, neither recruiter could give me details beyond the very basics. I asked if there were any restaurants within walking distance of the office. If that recruiter was truly a 1st party recruiter, he's tell me what stuff was within walking distance. His answer to me was something generic like "oh theres lots of places around". When I asked a specific place, he couldn't name anything.

Anyways, the first part of the interview went very well. Since I absolutely hate doing interviews, I normally have a hard time being good with soft skills. For some reason, that day I was in rare "good soft skills" form. I must have been in a good mood or something, because the first half of the interview was flawless. I could tell the interviewer was having fun talking with me because he was laughing and it wasn't like pulling teeth at all.

Then the interviewer said to me "Is it OK to ask you a few technical questions". In hindsight, I should have ended the interview right there with "I'm sorry I am not willing to do a technical interview, at this time I have decided to pursue other opportunities, I wish you the best of luck". but instead I said "OK sure".

The first question (as best as I can remember it) was "explain the difference between radix sort and bubble sort, and explain when you'd use one over the other". This is not a slam dunk question for me because I'm self taught and don't exactly have experience writing custom sorting algorithms. My answer was something like "99% of the time you'd just use the built in sort function. On the rare 1% chance that the built in sorting function doesn't perform as well as you need it, then you must find another sort algorithm. The most efficient way to find the best sorting algorithm, is trial and error. The reason why only 1% of the time you ever need to use anything other than the default implementation is because all sorting algorithms perform exactly the same under small datasets. Its only when you deal with data structures that are huge when the performance characteristic come into play. For instance if you list is only 3 items long, you can use pretty much any sorting algorithm (even bogosort) and it will be good enough." (my actual answer may have been less wordy, but I don't remember exactly what I said)

Basically I didn't know the exact answer to the question he asked me, the best I could do was brain dumped as much as I knew abut the topic hoping that it would be good enough to demonstrate my technical abilities.

The interviewer's response was something like "chris, I like you, you seem like a really nice guy, but that answer you just gave me is way off from what I'm expecting. This is what I was looking for: "Radix search is O([something]) and bubble sort is O([something else]), You use radix search when [3 or 4 words], and bubble sort when [3 or 4 words]. Unfortunately we're going to have to go with other candidates at this time." I hung up the phone and never heard from that guy again.

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer

School of How posted:

Can I tell the story of the worst programming job interview I ever had? Actually this story might not be the absolute worst interview I ever did, as 99% of interviews I do are terrible and I forget most details as soon as the interview ends. This interview was 2 or 3 months ago and so it's the most recent in my memory, so I guess that makes it the worst interview I can recall the details of.

I go he interview from a website called "Hired.com". Its supposed to be only 1st party recruiters, but the two interviews I got from that site were from generic 3rd party recruiters who were pretending to be 1st party recruiters. I know this because when I asked them to clarify basic details about the company, neither recruiter could give me details beyond the very basics. I asked if there were any restaurants within walking distance of the office. If that recruiter was truly a 1st party recruiter, he's tell me what stuff was within walking distance. His answer to me was something generic like "oh theres lots of places around". When I asked a specific place, he couldn't name anything.

Anyways, the first part of the interview went very well. Since I absolutely hate doing interviews, I normally have a hard time being good with soft skills. For some reason, that day I was in rare "good soft skills" form. I must have been in a good mood or something, because the first half of the interview was flawless. I could tell the interviewer was having fun talking with me because he was laughing and it wasn't like pulling teeth at all.

Then the interviewer said to me "Is it OK to ask you a few technical questions". In hindsight, I should have ended the interview right there with "I'm sorry I am not willing to do a technical interview, at this time I have decided to pursue other opportunities, I wish you the best of luck". but instead I said "OK sure".

The first question (as best as I can remember it) was "explain the difference between radix sort and bubble sort, and explain when you'd use one over the other". This is not a slam dunk question for me because I'm self taught and don't exactly have experience writing custom sorting algorithms. My answer was something like "99% of the time you'd just use the built in sort function. On the rare 1% chance that the built in sorting function doesn't perform as well as you need it, then you must find another sort algorithm. The most efficient way to find the best sorting algorithm, is trial and error. The reason why only 1% of the time you ever need to use anything other than the default implementation is because all sorting algorithms perform exactly the same under small datasets. Its only when you deal with data structures that are huge when the performance characteristic come into play. For instance if you list is only 3 items long, you can use pretty much any sorting algorithm (even bogosort) and it will be good enough." (my actual answer may have been less wordy, but I don't remember exactly what I said)

Basically I didn't know the exact answer to the question he asked me, the best I could do was brain dumped as much as I knew abut the topic hoping that it would be good enough to demonstrate my technical abilities.

The interviewer's response was something like "chris, I like you, you seem like a really nice guy, but that answer you just gave me is way off from what I'm expecting. This is what I was looking for: "Radix search is O([something]) and bubble sort is O([something else]), You use radix search when [3 or 4 words], and bubble sort when [3 or 4 words]. Unfortunately we're going to have to go with other candidates at this time." I hung up the phone and never heard from that guy again.

source your quotes

(also i can never remember what radix sort is off the top of my head. is that the one where you use a trie?)

spiritual bypass
Feb 19, 2008

Grimey Drawer
it's hte library card metaphor where you can pick up a row of cards by alphabet or something? does anybody even use that
just partition your table or w/e

hobbesmaster
Jan 28, 2008

I had to google "is bubble sort ever a good idea" and the answer is "yes if you're using drum memory"

since they asked about a good punch card sorting algorithm vs a good drum memory one I can only conclude that he somehow got transported to the 70s

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer
oh yeah it can be done with a trie: https://en.wikipedia.org/wiki/Radix_sort

good example of a wikipedia page that spends way too many words describing the algorithm and puts off actual implementation discussion for far too long.

ultravoices
May 10, 2004

You are about to embark on a great journey. Are you ready, my friend?
what i have learned about complexity:

traversing the a list in nested loops = bad

putting things in a hash and looking them up = good

learning what magic words i need to say to indicate that i've been acculturated and thus suitable for consumption by capitalism = best

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer

ultravoices posted:

what i have learned about complexity:

traversing the a list in nested loops = bad

putting things in a hash and looking them up = good

learning what magic words i need to say to indicate that i've been acculturated and thus suitable for consumption by capitalism = best

hashtables are a magic incantation to make problems go away. as long as the interviewer is happy with you assuming an existing good implementation. because gently caress if i have any idea how to write a "good" hash function. that poo poo only gets talked about in the platonic sense in undergrad.

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

hobbesmaster posted:

I had to google "is bubble sort ever a good idea" and the answer is "yes if you're using drum memory"

since they asked about a good punch card sorting algorithm vs a good drum memory one I can only conclude that he somehow got transported to the 70s

according to my grandmother radix sort is how they used to sort checks by hand

p neat

Adbot
ADBOT LOVES YOU

hobbesmaster
Jan 28, 2008

well you need to have something for the follow up of "how do you handle collisions"

  • Locked thread