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.
 
  • Post
  • Reply
Strong Sauce
Jul 2, 2003

You know I am not really your father.





Sab669 posted:

Personally, if I were in your shoes I'd probably go with Google simply because I believe it'd look better than MS on the resume. But both are pretty solid either way.
Why would Microsoft look worse as oppose to Google? A lot of smart people work there and it's pretty hard to get in.

Adbot
ADBOT LOVES YOU

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Okay so I've been out of college for a while but I'm looking for a new job. Nearly every single company I've applied to has asked me a binary (search) tree question. Almost every single question about binary trees that you can find on Interview Websites I've been asked already (short of asking about balanced trees).

One company had me do an initial code sample, and two interviews where the programming portion was about BSTs. Granted what I gleaned about what they were doing I assumed part of the work involved Decision Trees. But all the other companies have asked me about binary trees, and while I understand their importance, I'm not sure why these companies want someone who can do a BST interview problem (as oppose to say making sure I understand what hashing does or asking me about sorting run-time, iteration/recursion and space/time tradeoffs.)

So my question is this: the only reason I have any depth of knowledge about binary trees was because I took the two AP tests while they were still in C++ and we must have gone over BTs and BSTs multiple times. Do they still teach BSTs in the Java version of the AP test? Do students in CS programs in college even deal with BSTs all that much? I can think of a couple of instances off the top of my head where they were used (decision trees for AI, and parts of my data structures class) and in those classes students were just expected to understand the concept of trees.

Obviously there are differences across different CS programs but I definitely don't remember that much time being taught about binary trees in comparison to how often a question about them comes up in Interviews. Any current students want to chime in on whether you even do coding assignments involving trees?

Strong Sauce
Jul 2, 2003

You know I am not really your father.





I didn't really mention them being difficult, just that they were asked more often than other types of problems. Maybe they're the right amount of difficulty that they can be asked and answered within a certain time period.

I'll try and find some college friends and see if we did as little as I thought on binary trees or if its just because those classes were from about 10 years ago. Honestly I remember the concept of binary trees being drilled into my head more in high school than in college.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Might as well ask this as well. I am interviewing onsite at Twitter, anyone gone up to their offices to interview?

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Sab669 posted:

Alright, career fair at school next Thursday! I went out and blew my tax returns on 2 suits, 4 shirts, 4 ties, and 2 pairs of shoes.

Tips, pointers, recommendations? I've never been to a career fair before so I don't know what to expect from an engagement with a company. Is it just a quick, "hi nice to meet you here's my resume" thing or do you actually spend time with them, generally? I did a little bit of research on the companies that will be attending and I have a list of the ones I definitely want to see / talk to, and then I'll visit everyone else after that.

I always try and prep some generic questions (that don't make you sound stupid) on hand to ask recruiters in case the guy right in front of me asks the same or if I blank out.

If they are actual engineers/developers at the company, it's pretty easy to ask them about company culture and how they work.

If you've worked on projects in a language/framework that you know the company uses, it's best to point that out in the talk. "I did some research on your site and what really interested me the most about your company was you guys work a lot in <language/framework>, I just did a project for <Class, or Work/Company> where I worked primarily in <language/framework>." Then point it out on your resume.

Essentially highlight different parts of your resume and show how they'll fit in with the company. The biggest thing is don't just hand in your resume and not say anything at all. It is important to have a rapport with the recruiter so they have a chance to remember you.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





What city, county are you in.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





etcetera08 posted:

I have a question that, so far, has gotten pretty wildly differing opinions from people I've asked. I am in my fourth year of school and I'm getting a BA in English (with a couple other humanities minors, blah blah blah). However, last semester I decided to take some CS classes to bolster my resume for tech writing jobs or something similar. After I started taking them and looking into programming, I realized that dev work is something that I am definitely interested in at some point in the future. I'm now getting a CS minor and staying an extra semester in school.

Will a CS minor from a liberal arts school be worth anything? Are there positions where I could leverage my mad English skills (writing, communication) alongside some CS knowledge? If I want a dev job of any sort do I need to take another year or two (probably 1.5) to finish a CS degree?*

I'm doing a decent amount of work outside of class, trying to learn as much as I can about all kinds of CS topics while not falling behind in my schoolwork. I will hopefully have something of a github account to show off in 10 months when I graduate. I just don't know 1) how much this is worth on a resume and 2) how I can say "I am willing to seriously work my rear end off if I have to learn stuff on the job!" (or if people even care about that..)




* Normally it wouldn't take that long to pick up a second major, especially with no other classes to take, but since my English degree is a BA and CS would obviously be a BS there are some stupid pre-reqs that I would have to take (mostly fundamental math stuff).

What kind of liberal arts school?

There are companies that don't care if you have a degree anywhere and care more about the fact that you can produce.
There are companies that just care that you went to college and graduated since it shows that you can actually commit yourself to something.
There are companies that want a degree in the CS field.
There are companies that want a degree in the CS field, and it would be better if it were from a top 5, or maybe top 10 CS school. MIT, Stanford, Berkeley, CMU, Cornell.

If you are applying for something like "Technical Writer", having a CS minor will definitely make you look better to all four categories of companies. Having a GitHub would probably be cheaper and better IMO.

If you are applying for a developer position, it is my opinion that the CS minor is probably worthless, and that having code to show them is probably more valuable. The only way I can see it benefiting you is if they have to narrow down their choices.

IMO, just proving you can code trumps everything else. If you can't show them you can write code that is relatively clean and functional, it doesn't matter what kind of degree you are getting. I don't know how well you code ATM, but it may be worth a semester to learn some fundamental algorithms/data structures and maybe learn about AI/ML, but probably not worth another 2 years to get a degree in CS, especially if your LA college isn't known for much rigor in their CS courses.

So in summary, it'll look good for companies that are degree focused, but probably not much elsewhere. If it's only going to take another semester then IMO you should do it just to learn the fundamentals (which are very important if you have to do interviews).

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Knyteguy posted:

Hey Goons, I've been having trouble breaking into the field or programming / website programming.

Anyone think you could let me know what I'm missing (besides a degree)?

Here's my portfolio:


Please note that the C++ code above doesn't have the best programming practices (vars a b c etc), but my C#.NET program has better practices (string thisIsAString, etc.)

I'm having problems even getting an interview (looking both in and outside my current city), so any help would be appreciated!

What kind of jobs are you applying to?

Edit:
Just at a quick glance, your entire resume needs to be reorganized and restructured. Particularly, "advanced loops", "logical solutions to problems" are kind of bullshit bullet points and some of those programming skills are not programming skills at all, and are just basic skills. Also your 2nd bullet point under your experience, "Protected code and forms... Not a single attack " sounds really weird. What is wrong with just writing, "Protected sites from malicious attacks such as SQL Inject, XSS vulnerabilities..." etc.

Least of all there's no mention of any algorithms classes you took. Any decent software company (aka the one's you actually want to work for) are going to be looking for some general understanding of algorithms and data structures.

Also, writing 2 Project Euler programs in C doesn't really demonstrate that you can do actual work in C. I can probably do those examples in any programming language, but that doesn't really show or represent that I'm proficient in C. I suppose it "proves" that you can program but no one knows if you just copy and pasted that code.

And I think nearly all companies now use some form of version control. What do you use for your sites?

Strong Sauce fucked around with this message at 22:43 on Mar 8, 2012

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Knyteguy posted:

I can take mean if it's constructive. Project Euler was pretty much my reintroduction to C++, and I've since moved to much more readable code (thanks to a link here on better programming habits).

Edit: Example of some c# code I've just written up: http://pastebin.com/w0Y0yfu7

There are a lot of things wrong in general with your code and what you're actually trying to accomplish if the first line comment is actually what the program is suppose to do.

There are also thing wrong with the code in general that isn't syntactically wrong but would not get you hired at a company where I was the engineer looking at your code.

The biggest thing though is even if your program runs, its not returning the right result. Look at your loops and look at 'primeFactorNumber' and then look at the problem you're trying to solve. Then also look at ways that are causing your program to run way longer than it should.

I have to goto a class and I'll be back in 2.5 hours, maybe someone else will tell you before but until then you should take a hard look at your code and try to figure out why it is wrong.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





I can think of very few positions where knowing the square root algorithm might actually be required. Excluding those positions, having to write a square root function is a pretty bullshit question to be asked during an interview. And usually when its a question where they're looking for the specific implementation they have in their head, and not whether you'd know of a general algorithm to get the answer. So unless you know the best algorithm, you're probably going to fail the question anyways.

How does knowing a square root algorithm prove anything? That you either 1) memorized the algorithms in preparation that you'd get asked in the interview or 2) are pretty smart or maybe 3) loves math trivia. It's one of those questions that allows the interviewer to feel like Alex Trebek when the contestant answer something that is close but wrong, "Ooh I'm sorry, you did it in O(n^2) time? There's actually a better algorithm that gives it in O(n^1.5) time."

It's pretty hard for a developer to go through his career doing good work without understanding some fundamental programming concepts, knowing the square root algorithm is not one of them. And if it weren't for the possibility that I may get asked the question in an interview I couldn't care less about knowing how to calculate a square root. When the field I'm in actually requires it or if for some reason I end up using a programming language that hasn't implemented it yet, well then I guess I'll just have to search for it on the Internet.

Strong Sauce fucked around with this message at 09:52 on Mar 16, 2012

Strong Sauce
Jul 2, 2003

You know I am not really your father.





It's not truncating multiplication, it is called modular exponentiation

First lets work with smaller numbers so you can see how it works

Say you have 31**23.

First you have to understand that 31^(a+b) is equivalent to 31^a * 31^b, you can further break it down into different factors: 31^(a+b+c) = 31^a*31^b*31^c and so on.

To get the first n digits of a number, you take the number and modulo by 10^n.

So 12345678 % 10^4 will get you the first four digits of the number: 5678.

Therefore you can apply this to the problem by breaking the problem down into smaller problems that are easier to evaluate.

If you wanted to take the first 4 digits of 31**23, one way you can do this is by splitting the factors into smaller equivalents. Since it is easy algorithmically to break down a number into powers of 2 (aka binary numbers) we can write 31^23 as 31^1 * 31^2 * 31^4 * 31^16.

Now since 31^23 % 10^4 will get us the first 4 digits of 31^23, by the powers of modulo we can apply this to the smaller problem, specifically

31^23 % 10000 ~= (31^1 * 31^2 * 31^4 * 31^16) % 10000

However if we apply this to bigger numbers we still run into overflow problems when we move into larger numbers. But since we only care about the first n digits we modulo each number by 10^n to give us accurate results up to the nth digit.

So (31^1%10000)*(31^2%10000)*(31^4%10000)*(31^16%10000) = 889606955391, but since only the first n digits are accurate (and the only ones we actually want), we mod the result by 10^n again, which leaves us with 5391.

31^23 = 20013311644049280264138724244295391 % 10^4 ~= 5391.

Edit: Spacing.

Strong Sauce fucked around with this message at 06:37 on Mar 18, 2012

Strong Sauce
Jul 2, 2003

You know I am not really your father.





It's a bullshit question if the interviewer isn't going to guide you in helping you figure it out. Because at that point it becomes whether you know that exact question or not and not really asking if you have any critical thinking skills.

Don't say "I would consult an expert" however since that implies you are not an expert... at anything.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





HondaCivet posted:

. . . Huh? Admitting that there's someone out there besides you that understands the subject very well automatically means that you aren't good at anything?

No it just looks bad to say that in an interview. The algorithm isn't that hard, its just whether you remember it or not so if you say that you sound like someone who doesn't know their poo poo.

Imagine if it went something like
A: Do you know what a Hash is?
B: No, but I would consult an expert.

So should they give the expert the job instead of you? Why should they hire you? Saying this probably gets you crossed off the eligible list, and if you don't understand why then you should take a moment to figure out why that is a bad response to a question.

But the company shouldn't completely base it on whether or not you bothered to remember this specific algorithm.

For me here is how the interview should progress.

quote:

Interviewer (A): If I wanted to calculate the first 10 digits of this exponent: 2^100, how would I do it?

Interviewee (B): Well I would evaluate 2^100 and then, convert it into a string of chars and then take the last 10 elements of the array, then I concatenate the chars into a string and call a stoi function.

A: Okay lets assume that space is tight and you are only given space to hold a variable containing the ten digits, how would you do it?

B: Well I suppose you can use the modulo function, I guess that would work as well. I guess 2^100 % (10^10), or something like that I think.

A: Okay that's right. Now how about if we had to find the first 10 digits of a really large exponent, like 2^123456. Let's assume that the programming language we are using cannot compute this number in a decent amount of time, how would you solve this problem?

B: I'm not sure exactly.

A: Well do you remember your rules of exponents?

B: Yes.

A: Well can you extract a way to compute this without having to compute 2^123456?

B: Well I guess you can break down the problem by separating out the different powers of 2 into smaller powers until we can calculate them out.

I'm going to stop because its looking like a chat log.

But that's the gist of it, if it appears that the person I'm talking to actually understands some basic maths, or can explain why they are using a hash vs a binary tree vs an array for the data structure in the problem, and can explain the general algorithm use to solve this after talking with him then I think that's good enough for him to move on to the next step, which would probably be a more difficult coding problem.

If the person answers this question very fast I would hope the Interviewer would follow up with an additional question with a slight modification which would distinguish the difference between someone who knows their poo poo vs. someone who just memorized the question from an interview book.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





pigdog posted:

A: Do you know what menstruation is?
B: Of course! I'm the best menstruator in the region and have years of experience with the best menstruation practices!


They would hire the interviewee because of answers to questions that are actually relevant to the job, such as hashes, not stupid gotchas whose answer mostly depends on whether the interviewee has first read the big book of "Bullshit Questions Interviewers May Ask", or not.

Fine, let's say a programmer may be expected to crank out some kind of solution eventually. (It really isn't so hard.) In the context of a phone interview however, it's stupid bullshit. Someone may be a master in all sorts of difficult areas like parallel programming, and "fail" on that question, yet someone who has read a book on interviewer trivia without being able to code anything, may not. So I would presumed it to be gauge of question about how to approach a problem outside of immediate domain of knowledge, in which case the approaches - in terms of ending up with quality code that does what is needed - would be something like

1. "Why exactly do you need that?"
2. Ask an expert
3. Google for a solution
4. Solve it yourself

It's not (just) about laziness and (just) getting things done faster and better, but as long as the programmer avoids assumptions and instead asks questions when unsure, synchronizing the understanding of the problem, then that's how a lot of bugs and rework is avoided.


edit: Check out this article: http://www.unlimitednovelty.com/2011/12/can-you-solve-this-problem-for-me-on.html
Did you not read the rest of my post or were you too angry and stopped right after the quoted part of my post?

I am not even sure what menstruation has to do with programming so your example, maybe it is way over my head.

But your reply is funny for me because I think the question is kind of dumb especially if the interviewer offers no help. And this problem alone shouldn't kill your chances because maybe you haven't looked at modular exponents in forever and only know some vague steps to achieve it.

But maybe you will say something real dumb during the question and the interviewer can cross you off their list of candidates. I haven't interviewed many people but hearing #2 and #3 seem to be immediate "don't hire" answers regardless of whether you are in the 'right' or wrong. The interviewer is trying to evaluate your fitness as a software engineer, so consider how that reply reflects on you as a software engineer.

And I think saying #1 is perfectly fine... after you answer the question.

Are these questions sometimes a little bullshit? Yes. So you can either decide the company is complete bullshit and not continue further with the interview process or you can just try to answer it to the best of your abilities and see if the company is worth working for. If you're just antagonistic about the whole process that doesn't bode well for their perception of your sociability. No one wants a guy who is nitpicky. So politely tell them that you don't feel you are a good fit for the company, thank them for their time and hang up.

Edit: I've read that article before. If you do have a GitHub or some other proof of your code, then yes, I agree maybe these questions are dumb to ask. But if your GitHub is pretty good you'll probably get to skip a lot of the interview process.

Strong Sauce fucked around with this message at 19:11 on Mar 19, 2012

Strong Sauce
Jul 2, 2003

You know I am not really your father.





ETL seems pretty important to understanding data structures / algorithms. You're going to be doing a lot of parallelization for large data sets and if there's any cleaning of data and figuring out what data is important I would assume the techniques you are applying I would classify as algorithms.

If you're just doing Class.extract, Class.transform and Class.load... then I guess you don't have to know any algorithms.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Sab669 posted:

So, I responded to kind of a shady sounding job posting on Craigslist.

Had that "interview" toady. It was more like, he responded to me and n other people and had us come in to his office, show us what he wants done and ask us if it's something we can do.

It was highest level of a business guy trying to talk to IT guys and not knowing whats what I've ever heard of. Pretty unprofessional feeling.

Frankly, it sounded really lovely and I didn't like the guy.. but I'm still a student. I graduate in September. So if I could jump on this project for some quick experience and money do you guys think it's a good idea? I can't really see any sort of ramifications of it.

Abort. If you don't like the guy and you don't even work for him, imagine working for him.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Master_Odin posted:

Except I wasn't outright declined like a couple people I know. I don't have much hope of getting it, but I'd rather to get out of this stage of "I might get it, I probably won't" and just get a final decision, but I'm unsure of if I should send an e-mail at all about it.

I would email them, and just ask them for a status. There is nothing wrong with asking for updates and sometimes they just forget because they are handling so many applicants.

Keep looking though.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





*sigh* so I think I botched yet another technical interview. I don't know why but I can write code just fine but when I get asked over the phone I have an overwhelming desire to not write/say the right thing.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Why not just make it a new heading, "Open Source Contributions" then describe for which project and what you did and then link to the patch/pull request.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Ignoring the rest of your questions for the moment, are you seriously considering working for $10/hour _fulltime_ as an iOS developer? And you think you can only negotiate to $12/hour?

Also if there's a break period between when you finish school and when you start working / start looking for work. I would recommend you travel rather than work on an iOS app for TEN DOLLARS AN HOUR.

No seriously, travel, even if its going to cost some $$$. You're not going to get much of a chance later on when you are working.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





eelmonger posted:

I guess my main concern is getting into the interview mindset, if that's a thing. I can definitely see a difference in how I approach problems now compared to how I did when I first started practicing, and I didn't know if there was a way to focus on that.

I code on a daily basis, both on work and hobby stuff, so I think I can FizzBuzz with the rest of 'em. However, I feel like the coding challenges presented by PhD research are quite different and have a different goal (i.e. just bloody work, Big O be damned) than typical interview questions I see. Since my work has basically encouraged just using brute-force solutions for so long, I'm not really in the mindset of looking for clever tricks to make things run faster.


I've basically done everything there except the red-black tree, but that's cause even in undergrad I never had to code up one of those. Maybe I'll give it a whirl though. I'm also pretty good at eyeballing Big O (some of my research code does make me cry a bit because of that). So does that mean I don't have to freak out as much as I have been?

Edit: To clarify, the job is for one of the big guys and if the phone screen is anything to go by, complexity is relevant.

Every coding question I have been asked always starts with pretty much the O(n) or O(n^2) implementation (either space or time-wise) being really obvious and I think what they want you to "solve" before they move on to the, "so how do you make this faster?" kind of question. These questions are usually so they can see if you notice what data structure to store the data in or what other improvements you can make to reduce the running time to O(1), O(log n), or O(n) time instead. Then afterwords they ask you about space and time complexity/tradeoff for using this data structure/sort/algorithm.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Everybody just uses Singleton pattern anyways.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Aramoro posted:

I've done a lot of interviews and given a lot of interviews in my time, so I can perhaps give some insight into what people will look for.

Expect to write code in your interview, it might not happen but it's becoming more and more common. Even something an simple as FizzBuzz in what ever language you're interviewing for, right up to a small app perhaps implementing an abstract class or something. These tests usually have a pretty tight time pressure which you might think is unfair, that's just kinda tough though as some people will be able to do it fine. Normally I would set the time limit to be about double what I would do it in myself. I usually just do something noddy, 20mins of work max. It might seem obvious but comment your code sample, don't use short hand not matter how common place you think it might be. Also don't do what you've not been asked for. I once asked for the FizzBuzz app in java to print out the numbers from 1 to 100, that is all. The guy spent the full time limit doing it and produced something which took 4 parameters, start, end, fizz number and buzz number. Now it was great and all that, but not what was asked for.

Expect to at least know your UML at a basic a level. They might not be big on modelling but they might be and if you're shown a sequence diagram you need to know what you're looking at.

With both of those, be adaptable. You might blank on the code section or just not be familiar enough with it to do it right in the time. In that case pseudo-code it in comments to show what you were trying to do at the very least.

Most importantly be personable, they're interviewing you which means they probably think you're a good candidate. What they're looking for is people who have lied on their CV (see the programming tests) and people who can fit into a team. No one is going to hire the savant programmer who doesn't know what a shower or a sentence is. No one cares what your qualifications and experience are at that stage of the process, it's on your CV, so don't tell people over and over again, just chat and be yourself*.

*Unless yourself is a horrible human being, in which case be someone else

Why would you need to comment coding tests in an interview? You complain about the guy creating extraneous parameters but you want people to comment during an interview? That just seems superfluous. I mean you are the one asking the question so you know what it's suppose to do. And considering his code is just going to be tossed after the interview, what's the point?

Also most of the people interviewing me are just told to interview me and are given my resume at the time of the interview, I've always been told to talk about my experiences or what I did at company X.

Besides even if they have read your resume, they definitely care about your qualifications/experience. For example if they ask you a question which you can relate back to your experience. You're suppose to be promoting yourself so you should be telling people why you're qualified for the job. Obviously though don't repeat stuff over and over again.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Dijkstracula posted:

Something that I did that seemed to work for me at least when I was doing the over-the-phone shared document coding questions, was to transform the notes I would jot down in the first few seconds of thinking through the question and turn them into comments. This is especially helpful for me if I'm thinking through a recursive or DP problem. So, as an anonymized example from one of my interviews, I might end up with something like


def tree_height(t):
 # base case: height of an empty tree is 0
 if t is None:
  return 0

 # recursive case: this tree's height is one higher than the tallest child
 return max(tree_height(t.left), tree_height(t.right))


which is handy because in this case notice I made a dumb coding error but at least then the interviewer can say "does the code match the comment, heh, oops!" as opposed to "well, *sigh*, let's see if you can spot the bug...".

(Also, FWIW, while I certainly had my fare share of OO-gore questions, I never had to approach anything near UML. In fact I forgot that UML was a thing until it was mentioned a few posts back.)

Yeah actually that is a pretty good idea. I also realized the original post may have been talking about code samples, as in code you send to the interviewer to evaluate. I thought (or maybe he does) he meant during an interview. In which case I don't agree that they should get some marks off for not commenting.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





String reverse questions generally will ask you to do it without using any built-in string methods, no?

Every single language pretty much has a function/method that does this, so when they ask you to reverse a string, they generally tell you that you can't use any built-in methods.

Then after that they usually want you to implement it in a way that you're using the least amount of space possible.

I'm not familiar enough with C#, but does reverse or toArray allocate more memory? (I'm guessing reverse has to, not sure how c# allocates when calling toArray).

Anyways, in my experience being asked the string reverse questions generally means you can't use any built-in functions.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Deus Rex posted:

IANAL but I have an incredibly hard time believing a contract like that is enforceable
IANAL either, but California specifically allows for developers to own the code they make on their own time. I'm not sure about other states but it would seem weird that they'd have to pass a law like that if it wasn't legal in other states.

Regardless even if I decided to work outside of California one of my first points of contention in a contract would be to strike out anything related to the company owning code I do on my own time, or if there isn't then include a point stating that I own the code I do on my own time.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





aBagorn posted:

Well then, I don't feel completely as slighted then.

The gist of the problem was this: Bank X wants to play .wav files for numbers in their clients account balance (filenames were 0.wav-20.wav and then by 10s after, with "special wav files" like hundred, thousand, dollars, cents, cent, and 'and')

They wanted an output of filename strings, delineated by a + sign, for all numbers (inputted in a text box) from 0.00-999,999.99.

E.g. - if you put 4,532.23, the output label should read "4.wav + thousand.wav + 5.wav + hundred.wav + 30.wav + 2.wav +dollars.wav + and.wav + 20.wav + 3.wav + cents.wav"

I'll admit my code was rough and had some pretty gnarly if statements but it worked. I was writing unit tests (well, I had just started them) when time expired (2 hours. Also within this 2 hours I had to build a multi table SQL database and a couple of stored procedures)
There is a similar problem out there where you're essentially given a natural number and asked to spit out the English equivalent. Eg 1234 is One Thousand Two Hundred and Thirty Four. There's some questions you ask in the beginning about input and formatting and such but essentially you should be storing values in a hashmap and accordingly spit out the number and its proper suffix.

They are essentially looking to see if you do that, and then also if you account for the fact that x<19 have unique names for x.

When I had this question asked it was with another engineer, who probably realized my code wouldn't compile if transferred onto a computer but he understood that I knew what problem he was asking me.

Also not sure why you'd spend much time on unit testing (unless of course they asked about it), since you can just explain what test cases you would write when asked.

Edit: Based off reading your solution, why did you have "gnarly if statements?"

Strong Sauce
Jul 2, 2003

You know I am not really your father.





aBagorn posted:

And that is why you are a professional developer and I'm struggling to get a job.

I took over an hour and my result wasn't nearly as elegant.

Edit: As far as comma breakability, you could split the string only at the decimal point, and then when you are parsing the [0] substring, you can check for any commas and throw them out and then check string.length and work it that way, yeah?

I'm guessing C# has some substring replace function? You just remove all the commas. Most of the time though the person asking the question won't care and will just tell you that all input will be a string representing any positive real number.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





The HR person should ever only be in 2 interviews. The first one to make sure you're not a putz and the first or last person to interview you onsite to try and get you to take $20k for the job.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Yeah, learn to negotiate. If you are terrible at asking people for money you will only be getting what people terrible at asking for money will earn. Also learn that even if you're not considering working at a company you should still apply for leverage in the negotiations. Also because it seems like you don't have much of a clue about how much you should be getting paid. More offers means more comparisons.

And sometimes the company just cannot pay you because of their budget. Out of college I went and did the whole interviewing thing here in LA. One "Internet Hosting" company I interviewed at, which was in the Financial District by Downtown LA on this main drag of road that does not allow left turns in the morning with parking lots that cost about $200/month to use. They offered me something like $22k/year but no paid parking with the added bonus of me having to go through the dreck that is traffic in the Financial District. I asked them if they could at least get near the offer I got from another company and they just said no and talked about other 'benefits' (like having an accessible CEO you can talk to, which would be beneficial except you're talking to a CEO that can only pay you $22k a year in LA). I probably wouldn't have taken that job even if I didn't get that other offer but at least it showed me how much worse their offer was in comparison.

If you enjoy the work that's fine but if you can't negotiate for yourself in future interviews, you're going to be spewing out your terrible salary to the HR reps of said future companies and that's going to hurt you a lot.

Out of college you should be doing either one of two things. Building out your skill set or making as large of a salary as you can (preferably both). If you build out your skill set and know you're desirable (;-*) then it is much easier to negotiate salary/compensation. If you're earning a much higher salary and your negotiation skills are poo poo, then at least the 10-15% bump they offer you will be a 10-15% bump from salary $X rather than from a lower salary.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Some articles about negotiating

http://jacquesmattheij.com/Salary+negotiations+for+techies
http://www.korokithakis.net/posts/secrets-power-negotiating/

Also, anecdote!
http://news.ycombinator.com/item?id=1475678

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Loco posted:

Anyone want to look at and critique my resume? I just graduated, and I have one internship under my belt. Unfortunately, it was 2 years ago, only a 5 or 6 week internship, and I struggle to talk about what I did because of how long ago it was.

resume

I'm currently recreating a from-scratch content management system so I can maybe put something on a github account to link on my resume, like you guys suggest to others in this thread.

Drop Objective, and Interpersonal Skills.

Put Work Experience first, then Relevant Projects, then Technical, and Education.
Under technical, I don't really get putting that you completed a prep course for a cert. Do you have the cert or not? Also put in your skill level for each technical portion. E.g. C (Basic, X years), PHP (Advanced, ~Y years) etc, etc is probably better than what you have since HR people sometimes just do scans for like 2 years of C experience.

Also need to flesh out what you did at your 2 jobs better.

Edit:

I would also list whether or not you're a US Citizen, if you're willing to relocate (if for example you're looking for jobs outside of your state) and if you speak any additional languages.

Also I thought Relevant Projects means other projects that you did, you should be putting these kind of things under your work experience.

Strong Sauce fucked around with this message at 18:30 on Jul 13, 2012

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Sab669 posted:

Normally I'd agree with this, but as a fresh graduate you're not going to have much relevant work / project experience (at least, projects outside of class) so I'd probably put skills / education / work / then general work.

Personally I feel like that second bit about posting whether or not you're willing to relocate seems highly unnecessary. If you're not willing to go to where ever the job posting is, why the gently caress are you applying for it??


Hmm...where can I upload a .pdf when I don't have access to my dropbox :v:

And I just don't see the point to an Objective section. Isn't that what the cover letter is for? :confused:

Work Experience trumps all IMO. Unless the company is one that focuses more on whether or not you have a BS, MS or PhD or if you're from a Top 10 CompSci school with high GPA. Skill shouldn't be put so high since that section is mostly for HR people who are keyword scanning resumes through some search tool. Most Engineers who end up interviewing you and looking at your resume don't care if you haven't programmed in X as long as you're willing to learn X (unless of course they _DO_ want you do know X, in which case your work experience should show projects done with X).

I don't know what you mean by work and general work.

Also I've been asked enough times about relocating bit that I put that in my resume. Apparently there are enough people who want to only work remotely that companies have to ask. Also I also get asked if I have US Citizenship. That may also be because I have an obvious Asian last name.

Edit: Also point being that you're trying to stand out from other fresh graduates. By being able to show you have projects and experience you are already a step above everybody else applying. And if you are above everyone else experience wise, why would you hide that behind your Education? That's what _everyone_ else will be doing. Better candidates already have the experience or have projects under their belt. So maybe you're really a "fresh graduate" but you're also an "experienced fresh graduate"

Strong Sauce fucked around with this message at 21:39 on Jul 13, 2012

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Zhentar posted:

They shouldn't really be asking that (it's one of the "illegal" questions). They are asking if you can legally work in the US, and whether or not you need Visa sponsorship. And they're still going to ask that in every interview whether or not you put it on your resume.

edit:


That is a good question. I guess people apply without really looking at the posting? It comes up plenty often.

You're right, the wording is usually, "must be legally authorized to work in the US" unless the position specifically requires you to be a US citizen in which case it's legal to post.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Dijkstracula posted:

A recruiter from a company I applied to back in the spring finally contacted me today, and when I told her that I've already accepted a position elsewhere, she asked where I would be going. Is there any conceivable advantage to me to divulge this? I was asked this by companies I'd had offers from during my interview blitz and answered it sort of without thinking and also because I don't like conflict but it seems weird that the email that immediately follows "hi we'd like to interview you" is "oh ok where are you going?"

Maybe? It's hard to tell since the range of what recruiters use that information for varies. They probably want to know so they know who already "qualifies" to work in the Bay Area since you have to be somewhat competent to work at X.

In other news it looks like my job search will soon be over and if anyone's interested about my experiences I'll post up some stats/stories/problems. But to summarize, don't be stupid like me and apply in bursts (partly my fault and partly for personal reasons) and don't get too attached to working at a company until you feel like you've done well on the on-site interviews, and even then don't get too attached.

And never give a number first.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Yes, follow up. Reiterate why you feel you're a good fit for the position and mention something you talked about during the interview. "I enjoyed our talk about X, I want to reiterate that I have experience doing X when I did blah blah blah in college."

Keep it brief, and to the point but to be sure to thank them for taking to time to talk to you, etc. etc.

This is not needy until you start sending him more and more emails.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Dijkstracula posted:

I don't think this is true. I've had it take weeks for companies to get back to me with a decision (sometimes "hire", sometimes "no hire"). In fact, I can only think of one place I interviewed at where I wasn't biting my fingernails for weeks in anticipation, and they got back to me the day after my onsite :v:

From my experience, if they don't get back to you with ~1 week or so it's because you're not their first choice and they're waiting on their first choice to decide before moving on to the next candidate.

They generally know when you're a "no hire" so if there is a delay it's because you're a possible "hire" just not the best "hire" They also know when you're an "immediate hire" since if they don't get back to you within a couple of days you may be gone.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Never. talk. about. money.

Never. Ever.

At least not until 1. You pretty much have the verbal offer, and 2. After they've talked to you about their number.

First off, putting that you want, "more money, free food, 20% time" is a horrible idea because it sounds like you are the world's greatest moocher. "Yeah man I want to work on stuff only 80% of the time, eating free food while you pay me a whole lot of money." HR/tech recruiters will read this and think, "Yeah this guy might have some skills but he sounds like a huge jackass." *trashes your resume*

Also 20% time isn't time for you to do whatever you want. The 20% has to be related to something that you're doing to benefit the company. It doesn't mean that you get 20% to work on your own side projects.

Free food is pretty much a given in about 99.9% of SF tech companies, but the first rule about free food is that you don't talk about the free food. Hell most job descriptions in SF will mention "FREE FOOD" When you ask about it it makes you sound like a jerkoff who's only interviewing at the company for the free food. Obviously you want a job for selfish reasons but asking about free food signals to them that you probably don't care about the company. You should be spending your time during interviews showing how valuable to are to the company. Free food should not be that big of a factor in your decision. Food is such a negligible cost. Let's say you spend $15 per day at work on lunch and drinks and you work 5 days a week, 52 weeks a year. The cost to you is ~$3900. Honestly that is not a lot of money to make it worth it to inquire about free food. But who cares about that since almost every company will offer free food.

Going into "getting paid" (which is related to my rant about the free food):

If you are actually a competent developer startups in the Bay Area are going to try and pay you as well as possible because there's a risk that you'll get snatched up by someone else in SF. You can't walk in SF without tripping over a startup, so it's not really worth it to them to only pay you $95k if your "true worth" is closer to $125k. Because sooner or later you'll realize you're being underpaid compared to the market and then you'll be unhappy and want to leave. If you're actually good, they're not going to want you to leave.

But of course, if you say, "Oh $100-$120K" when they ask you about salary, you can no longer make $125k, and in fact its more likely they'll price you in the middle and assuming you're somewhat decent negotiating the best you'll end up doing is $115k, which is $10k less than what you could have gotten. $10k can buy you a lot of food.

So even though I talked about food for way too long. What you should take away for this is never, ever, talk about money first. Don't mention anything in your cover letter other than 1: The companies name, (DO NOT FORGET TO CHANGE THE COMPANY NAME.) 2: What you've done and why they should be interested in talking to you, 3: Thank you. 4: Your name (5: somewhere in there, need to put, you want to relocate and can work legally in the US or something similar)

That's it. And really no one is going to look hard into your cover letter. The most difficult part should be #2 if you're applying to a variety of tech jobs. Otherwise your cover letter should be as brief as possible while addressing those 4 points.

Strong Sauce
Jul 2, 2003

You know I am not really your father.





Sab669 posted:

Blah, just got a phone call with some pre-interview technical questions that I did poorly on. My vocabulary is absolutely atrocious :(

Any recommended readings to refresh my memory on some more advanced classes like data structures / algorithm analysis? Just the wikipedia page?

What do you mean "advanced classes?"

Adbot
ADBOT LOVES YOU

Strong Sauce
Jul 2, 2003

You know I am not really your father.





No GPA is fine if you have other things like personal projects or an actual job. You probably won't get into Google though.

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