New around here? Register your SA Forums Account here!

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.
 
  • Post
  • Reply
Space Whale
Nov 6, 2014
Just had a programming test wherein you merge sort and extract the 29th character from each row and boom it's moby dick.

But uh, the whole "email is your code and the output at jobname@companyname.com" thing was the real fun part :q:

The spam filter kept bouncing it because a zip file with code or "Dick" I dunno? It took me literally all day to actually turn it in.

Anyway I just won $200 merge sorting, and this is a better experience than most screening processes and ESPECIALLY Hackerrank style poo poo.

Adbot
ADBOT LOVES YOU

Space Whale
Nov 6, 2014
So (while feverish because recruiter want it done now!11one :bahgawd:) I did a thing:

quote:

Merge sort a really big file in a weird wonky way.

So I do it, and I pull out Moby Dick! :D

I try to send it in, and I run into spamfilter after spamfilter after spamfilter. Dunno if it's because of a .zip with my code, or "Dick" in the text. Don't Care.

So I want. Then the correspondence:

Recruiter: We heard from $JOB last night and unfortunately they did not feel that the coding exercise was in line with what they were looking for. They will be sending you the $200 payment for your time. I will let you know when new positions open up with our other clients. Thanks!

Me: Did they have any specific feedback? I was under the impression they cared about implementation and if it ran in reasonable time. Were they expecting object models or more methods added to the interface?

Recruiter: This was all that we were told:

The test results did not meet our expectations.

Me: Sorry for the pithy response.

Recruiter: We can try to get more detailed feedback for you. If we get anything more, I will let you know!

Me: It's not your fault that's all they said but I'm a little speechless. It ran on my machine, fit the requirements they
gave as best as I understood, and I anticipated some sort of review/"why this way?" process. I did this while
sick with a fever so maybe I overlooked something? Maybe they don't like tuples?

If you can't get anything else from them don't worry.

:q: lol interviews and screenings are shitshow. I'm glad I got $200 for it instead of a "gently caress you". Also in further "WTF" I actually passed a Hackerrank. I guess I'm slightly less bad now.

The WTF part is I'll be potentially working for a certain burrito company.

Edit: my code, in it's glorious terribleness. https://pastebin.com/JPFxG5YB

What should I be NOT doing in the future or more doing in the future? Object models? More classes? If it's a one off tool to do one thing and one thing only why would I bother doing so? I'm not asking to be petulant I want to understand their thinking, and what I should be doing, especially if they are two separate things.

Space Whale fucked around with this message at 18:17 on Apr 3, 2018

Space Whale
Nov 6, 2014

Sapozhnik posted:

i mean you probably shouldn't be posting interview questions verbatim either tbh

Fair 'nuff, changed it to what it was, merge sort a big rear end file.

Did I do anything really wrong with the code? It friggin' works. :confused:

Should I just make a class period even when I just want a bundle of "file handler and line of file being handled"?

Space Whale
Nov 6, 2014
Please don't take this as petulance:

Why? Isn't the output of the program pretty useful? Or should every function be tested period?

Edit: Also given that this is a one-off. Unless they're testing for habits?

Space Whale fucked around with this message at 18:32 on Apr 3, 2018

Space Whale
Nov 6, 2014

FamDav posted:

things they're probably dinging you for, in order of how likely it was the thing

* you're managing the list of open streams as a list and ordering them after every iteration instead of using a heap. you're doing O(k log k) work instead of O(log k) on every iteration.
* lineToRead is superfluous or misnamed. you can easily determine it from StreamReader.EndOfStream.
* The tuple stuff is hard to read, especially with a random primitive int and string. if you dropped lineToRead and made a "PeekableLineReader" I think the code would be easier to read.

I've been told that you should expect back and forth about it and iterate, not just do it optimally from the start. There's also the fact that reading from disc is way slower than sorting 5000 items in memory. You are right but, wth?

Also, would a sortedlist or sortedictionary be best for "use a heap" but not reinvent the wheel?

Finally, isn't ++x preferable to x++ if I'm incrementing it, period, end of story?

Space Whale
Nov 6, 2014

hobbesmaster posted:

this but its dumb

also probably are dinging you for the "writing C in C#" style you have there instead of something object oriented. dumb of course but i woudln't be surprised if they did it

So basically, just write with objects and poo poo even if it's really pointless and a one off?

Fine w/ me.

Space Whale
Nov 6, 2014
OK, I'll make classes all the time, and unit test, all the time.

While I'm bored and have free time, is anything functional worth learning or will that interfere with the OOP I apparently need to internalize?

Space Whale
Nov 6, 2014

Fiedler posted:

Local variables should be camelCased. Method names should be PascalCased. If you've been writing C# for five years this should not be news.

I always just let resharper do it and don't have it at home.

Yeah I should work on this manually.

Space Whale
Nov 6, 2014

Anal Del Raytheon posted:

its about ethics in tech company interviewing


you know, the same tech companies who colluded to keep salaries low.

wouldn't want to do anything unethical

Did they make a deal with your avatar or another Devil?

Space Whale
Nov 6, 2014

Rex-Goliath posted:

if they're not going to tell you why your code was wrong other than 'no' then you should assume it's over something pointlessly arbitrary because whoever is judging your code is a shitlord. i wouldn't lose any sleep over it.

all of the criticisms that have been posted so far- while true- shouldn't have been disqualifiers unless they specifically said to do or not do whatever in the assignment.

So about this -

I've learned the hard way to do exactly what your requirements are, if you're given a canned set of requirements instead of actually having a gathering session.

Space Whale
Nov 6, 2014

AWWNAW posted:

the aesthetic of the code was what stuck out the most. it just doesn’t look like typical c#

it’s petty but this would be a red flag to me too in any language

When I go into algomode my brain goes to C mode. At work doing webshit with other programmers I'm in C# mode. I tend to approach work different from coding challenges on a fundamental level.

For a one off app it feels weird as gently caress to inject dependencies and have classes everywhere. I'd think they wanted me to focus on the algorithmic aspects of it (having it run in moments not hours) not c sharpiness.

But eh whatever I'll rewrite it c sharply to practice. Gotta please the hiring people. It just feels weird going objectey here. YAGNI and such.

Also I coded that with a fever.

Space Whale
Nov 6, 2014
Is this the place to ask for a "help me learn to think in objects even outside of my comfort zone of 3 layers to expose a db as REST services" thing? Because I really do need to. All I've really internalized is enough to work on another system that already exists and answer interview questions. I do not want to just answer interviews I want to really get this stuff because I want to actually lead or architect something some day.

Space Whale
Nov 6, 2014
I've done c# for years. Its not the language it's thinking in objects.

Space Whale
Nov 6, 2014
Waiting on an offer from a fast food company lol.

Also had an interview scheduled for this week but the invite said last week come and go because derp recruiter.

And now I'm about to interview with a work out company.

Welp

Space Whale
Nov 6, 2014
So apparently I'm much faster at algo stuff than objectmodel stuff.

I really hate doing object models under a clock ticking away because you end up coding yourself into a corner :|

Space Whale
Nov 6, 2014
Some places suck slightly less within FL

Space Whale
Nov 6, 2014
The interview where I quickly did substring matching between two strings but didn't do sudoku quickly passed, but did so quickly :unsmith:

burritoplace is taking its time :smith:

Space Whale
Nov 6, 2014

qhat posted:

I would highly recommend lying frequently to your employer

If you matched your employer's lies to you on a lie-to-lie basis can you even tell them the time?

Space Whale
Nov 6, 2014
Been a week since Chipotle in person. Nothing. Think my recruiter is not telling me I got passed so I'll stick with them on other jobs?

They passed, no feedback.

Space Whale fucked around with this message at 20:54 on Apr 19, 2018

Space Whale
Nov 6, 2014
How do you get better at pulling object models out of your rear end, like "Sudoku! But really fast-like" without getting tripped up?

Also, for in persons, sometimes they ask you to sorta "30 thousand foot whiteboard" :airquote: front end components :airquote: - is this supposed to be like the syntax of vue or react pr something like Employee{ id=butt, dob = fart, name=baz,} ?

I haven't gotten bad feedback from this yet but I want to get better at it, especially the online screen share interviews where they want object models out lickety split.

Space Whale
Nov 6, 2014

Gazpacho posted:

The best advice on object analysis I ever saw comes from a book called doing hard time, a huge book that I remember nothing else about :

Your object model should capture the entities, operations, relationships without which any possible delivered system would be incorrect wrt the requirements

A soduku game without a board or starting positions is wrong. So those must be captured in your model

Ref:
https://www.google.com/search?q=%22key+strategies+for+object+identification%22

OK But how do you poo poo one out and then implement methods in it in a live interview quickly?

Also an interview I thought I did poo poo on said I did good in. ARGH

Space Whale
Nov 6, 2014

Symbolic Butt posted:

honestly it's mostly about if you've seen the problem or a variation of the problem before, because then you go straight to writing the right classes/methods.

if it's a completely new problem to you, you just gotta pray that the interviewer is able to appreciate you brainstorming some ideas that maybe converge to the right design. (in my experience OOP is not very good with this :ssh:)

but yeah my point is that experience is the key, practice these kind of questions and look up the answers.

Have you interviewed enough to pass this interview?

If you can grind interviews, the interview is terrible.

Space Whale
Nov 6, 2014

TimWinter posted:

Again pulling from limited experience here, but I've seen management be careful to not put the peope who can't appreciate this sort of thing in the interviewer pool.

The strongest technical guys on my team are the most self critical, and they themselves admit we'd never grow the team if they were allowed to pass/fail candidates based on how well the interviewee approached a new-to-them problem that the interviewer could ace in one pass while sleeping.

Can I work for your team? Seriously. I'm looking for environment, and that's the healthiest thing I've seen in a while.

Space Whale
Nov 6, 2014
OK so look stuff up

What is the canonical SUDOKU or ELEVATOR class/object model?

Space Whale
Nov 6, 2014
I want to devops and do it everywhere I work but can't get a devops job without experience lol

Space Whale
Nov 6, 2014
Apparently my mindset of always anticipating poo poo going pear shaped and picking things apart to test them, and then always testing the whole regression, is a very marketable skill. And my constant triage in life is good for looking at what can blow up in a big system.

:unsmith:

Curiously I think that I might have put bugs in the ear of the interview to use himself even if I'm not hired lol.

https://boyter.org/2016/07/chaos-testing-engineering/ Also "Chaos Engineering" immediately struck me as what I was born for. How do I become a code monkey who makes monkeys?

Space Whale
Nov 6, 2014

uncurable mlady posted:

go work for a company with too much money because those are practically the only ones where chaos monkey bullshit actually flies

why is it BS tho?

Also what about if I don't want to be a stupid monkey

Space Whale
Nov 6, 2014

Symbolic Butt posted:

honestly it's mostly about if you've seen the problem or a variation of the problem before, because then you go straight to writing the right classes/methods.

if it's a completely new problem to you, you just gotta pray that the interviewer is able to appreciate you brainstorming some ideas that maybe converge to the right design. (in my experience OOP is not very good with this :ssh:)

but yeah my point is that experience is the key, practice these kind of questions and look up the answers.

Isn't that EXACTLY the wrong way to do interviews? If candidates can study for it, it's a pretty poo poo way to test if they can think, since you're really testing if they memorized poo poo.

:smith: :respek: :geno:

Space Whale
Nov 6, 2014

qhat posted:

Disagreed, freshening yourself up on core techs which you might not have used in a while but will be tested on none the less is important. Unless you just apply for jobs that are a 95% fit for what you're doing currently.

Staying fresh on concepts and technologies by being able to really understand use use and apply them? Oh absolutely that's a good.

Stuff like "memorize the canonical way to OOP a Sudoku or tic-tac-toe for an interview" isn't the same as "do OOP for something new to both of us" and talk through the process. That's what I mean.

Space Whale
Nov 6, 2014

Notorious b.s.d. posted:

doesn't matter if it's poo poo

that's how people actually do it, so it behooves you to study up

Oh I am.

Space Whale
Nov 6, 2014
So if people think SQL can't scale horizontally (sharding?) and you gotta do stuff in the :cloud: and you need to go NoSQL is this a redflag?

Space Whale
Nov 6, 2014

Sapozhnik posted:

yes. this is resume-driven development.

a competently designed and administrated traditional database cluster can get you surprisingly far, and judicious use of application-level partitioning can get you further still.

your poo poo startup is not amazon or google, you do not need amazon or google-scale solutions for your 100 daily active users.

5000 tho and a tb of data?

Space Whale
Nov 6, 2014

Sapozhnik posted:

good heavens, an entire terabyte you say?

That's kind of how I felt about it but wanted some feedback from people who aren't just OMG DYNAMODB!!1one

Space Whale
Nov 6, 2014

qhat posted:

I don't know why but there's a team in my company using some dynamodbs because they think a million records is apparently too much data to query on without nosql. This is the same team whose webpage load time I brought down from 15 seconds to half a second by adding a single index to one of the SQL tables they do have.

The funniest thing is they're not even sharding their dynamodbs rofl.

Jesus Christ why do I have imposter syndrome ever then

Space Whale
Nov 6, 2014

MononcQc posted:

afaict whatsapp has over a billion users and most of their work is done by regular DBs (in fact bad ones like in Erlang that can't store more than what RAM fits -- unless they have patches not mentioned in their talks) and very clever sharding adapted to the replication and query schemes they need.

They probably don't have that much data in terms of absolute storage (I'd bet all poo poo like videos and images get thrown in a separate store and they just keep a ref/URI in the main DB), but thing is you can get really loving far with just sharding.

So how does sharding actually work? Is there a load balancer or do the SQL servers just talk to each other?

Space Whale
Nov 6, 2014

Janitor Prime posted:

Distributed Hashing and black magic or some poo poo

I thought that was red and green, since you're sharing the hash

Space Whale
Nov 6, 2014

Arcsech posted:

i mean there's a few different ways to do it

if your data has very clear logical divisions - say, every users data is 100% constrained to a geographic region - you can manually shard on that and just have a different server for each region/shard and have basically separate copies of your app for each region. see also: blizzard, a bunch of other online games where you have to specify whether you're logging into "North America" or "Korea" or whatever

some databases have it built in - you choose a sharding key and your queries all get routed to the correct server using the shard key specified in the query no matter which node they go to in the first place. some databases may provide options for cross-shard queries, but this varies

really "sharding" on its own doesn't imply a lot of detail, it just means "put your data into different buckets somehow so that each bucket is mostly independent", which is how all of the big-data systems like dynamo and cassandra work anyway. what matters is how much you do manually with knowledge of your application and query patterns vs. how much you rely on your database to do for you, which may or may not be well-suited to your application's actual workload

it probably won't be well-suited to your actual workload because designing your data model so that it does work well with dynamo/cassandra/bigtable/etc requires actual thought *sharts*

So if you have a lot of, say, MLS data and real estate poo poo you could... split by those divisions? :q:

Space Whale
Nov 6, 2014
Vancouver Washington or B.C. tho

Space Whale
Nov 6, 2014
So I'm in a pickle:

Is it polite/a good idea to say "Hey I have two in-person interviews in town, let's see how that goes before you fly me out to DC from Denver."? I'd like to spare them buying tickets and poo poo if I end up taking something down the street. The job is in Rockville MD and apparently they like me, but if I'm nearly done here, what do I say?

Edit:

quote:

Hi Mr. Whale,

I hope you had a great weekend! I got great feedback from the team regarding your interview last week and they'd like to bring you here to meet with your potential future managers and teammates! I'm hoping you're as excited as they are; we'd love to get you out here quickly.

We'll cover flight and lodging, but I'll need to get some info from you to get everything booked properly. First and foremost, your availability to come out to DC, then I'll gather info for booking the flight, etc. I assume you'd be flying from Denver?

Let me know what your schedule is looking like and if you have any questions at all. I'm happy to chat if you want more info! We're excited to meet you.

I have a final today and tomorrow with two in town opportunities.

Space Whale fucked around with this message at 17:10 on Apr 30, 2018

Adbot
ADBOT LOVES YOU

Space Whale
Nov 6, 2014
Thanks.

Also, :yotj: > :confuoot:

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply