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
baquerd
Jul 2, 2007

by FactsAreUseless

John Matrix posted:

A more advanced question to test problem-solving skills would be...

Suppose I have an Employee table with EmployeeID (guid, PK) and Age (int). Based on use-cases, I know that I will be selecting employees based on "where EmployeeID = X" or "where Age between A and B". How would you index this table?

I'm looking for someone to think to themselves "well, if we're selecting a range of values based on Age, then I should cluster the Age index on disk to reduce I/O time". Hence, you would create a clustered index on Age and a non-clustered index on EmployeeID.

I think a better answer would be "show me your use case data", but that's just me. Perhaps you only select on Age once a month but do many selects and joins on EmployeeID daily.

Adbot
ADBOT LOVES YOU

baquerd
Jul 2, 2007

by FactsAreUseless

John Matrix posted:

I disagree, but I'm open to discussion on it. If you're scanning an index for one id, why would the database perform better when the record data is stored sequentially, being that the index is simply a pointer to the location of the data?

The only valid argument in my opinion is a performance hit when inserting and updating records, but for the purpose of demonstration is ignored. Thoughts?

You never said "X" was a scalar value, it could very easily be a joined column. But at any rate, at this point in the discussion I would say to take a step back and detail the use cases because as you note your performance on the ranged queries is going to be impacted significantly more than the employee IDs if not clustered.

baquerd
Jul 2, 2007

by FactsAreUseless

2banks1swap.avi posted:

Your starting wage determines your lifetime wage, for better or worse, in a big way. Lifetime earnings of people who entered the workforce in a recession is much lower than people who started in boom times.

This is only true statistically, as in when you look at a population as a whole. In practice you will have many real and potential opportunities to drastically improve your salary if only you have the proper skillsets and ability to apply them.

You want to match your salary to your skillset and ability as well as your regional information. You don't want to undersell yourself, top performers can still easily find jobs.

baquerd fucked around with this message at 19:30 on Apr 26, 2011

baquerd
Jul 2, 2007

by FactsAreUseless

2banks1swap.avi posted:

It just irks me a great deal. There is no such thing as "only statistically true." That means it IS true. If you're giving me a pep talk you might as well say "well I sure hope you're super talented because that means as a super-talented person you'll do better!"

1. "Lifetime salaries are on average lower for people who start work in a recession."

2. "My lifetime salary will be lower because I stared work in a recession."

1 does not cause/imply 2, it is merely correlated. You're treating the recession like everyone takes X% off their salaries, when it's just not that simple.

baquerd
Jul 2, 2007

by FactsAreUseless

2banks1swap.avi posted:

You're not special, neither are they.

Real life tends to segregate into special and non-special rather abruptly, but special people do exist. In fact we could even loosely define them as the top 10% or so of productive workers who tend to skew the salaries when they're compensated fairly.

quote:

Pursuing the highest growth is in my best interest, which was my point. People saying that it doesn't matter should probably consider retaking statistics at some point if they haven't taken it yet. Reality applies to everyone, even college kids and white collar professionals.

Your point is invalid because the problem space grossly dwarfs your vector space so far. Again, seizing individual opportunities will determine your growth so much more than any general market movements that to try to plan around the movements becomes pointless. Forest for the tress.

baquerd
Jul 2, 2007

by FactsAreUseless

2banks1swap.avi posted:

Most people reading this post are not hot poo poo. Mos workers and most people are not hot poo poo. Even if you are, you still have better job prospects in a growing field than in one that is growing slower or not at all! I don't understand why you feel that doesn't matter.

So you going to fix up that recession or just stand around worrying about it affecting your earnings all day?

baquerd
Jul 2, 2007

by FactsAreUseless

2banks1swap.avi posted:

If you're hot poo poo in a field where the average is 45K, you might get 47-50.
If you're hot poo poo in a field where the average is 65K, you might get 68-72!

Why do people here really think that they're not affected by what happens to the wider world around them. Do you really think you can literally make your own destiny, period, and nothing matters? Why not go be a hot poo poo super-awesome burger flipper? There's a reason you're going into a good sector and not a bad one.

Let's do a real world example. "Average" software engineer salary in one location is $70k a year, you'll see a lot of postings of 50-60k entry level crap. "Hot poo poo" starts at $100k a year out of college if they can negotiate well and have some exemplar background work ("hot poo poo" inevitably will).

Working on becoming "hot poo poo" >>> worrying about why you are (not) hosed because of the recession.

baquerd
Jul 2, 2007

by FactsAreUseless

2banks1swap.avi posted:

You REALLY hate it when someone suggests that poo poo happens outside of your personal control, huh? Massive locus of control disagreement going on here. At least now I know to not suggest such things when networking in the future.

That the recession was out of your control was the point I was making - not to worry about it and take control of what you can.

baquerd
Jul 2, 2007

by FactsAreUseless

Mike1o1 posted:

Does anybody have any suggestions on how to transition from a business analyst to a full time software developer? I have experience creating my own Access/VBA applications, and am familiar with C# and .Net from a hobby perspective.

All my google searching finds people trying to do the opposite - going from developer to business analyst. Am I crazy for trying to do the opposite?

"Business analyst" is the most incredibly generic job title in both scope and function. Our developers would be taking heavy pay cuts moving in that direction using our terminology.

baquerd
Jul 2, 2007

by FactsAreUseless

Safe and Secure! posted:

What kind of background in finance and statistical analysis? By "rapid application development", do you mean something similar to what are usually called agile development practices?

A very thorough background because large institutions are nothing if not diverse in their investments if they have any clue whatsoever. I've been in finance for 4 years and I still get lost in some business conversations.

Rapid is not agile, in fact agile programming is a misnomer in terms of overall development time unless you have a team trained to do it well. Being rapid is about quickly and correctly applying creative solutions to problems that would take others more time.

baquerd
Jul 2, 2007

by FactsAreUseless

shrike82 posted:

RAD's basically rapid prototyping. A trader asks you to build a model to price something - you have a day to build it. Even for "longer term" projects, we're talking about delivering a usable product to business in months. Contrast this to a pure tech company like Microsoft where it takes several months for a code change to filter up all the way to the main code-base. It's not a good environment for writing code - no thought for architecture or long term use.

I didn't realize you were speaking of the formalized design process. Not to put too fine a point on it, but there's a large contingent of the software industry that thinks the entire category is a terrible bunch of bullshit compared to a programmer that simply knows the business side well enough to talk about the product on an end-user level. This is from the perspective of someone who writes proprietary in-house code in finance, I suppose a more open ended and design oriented program might find better use for this stuff.

Paolomania2banks1swap.avi, read up on the topic and remember to ask what a company is using for these types of processes if you develop an opinion of your own.

baquerd fucked around with this message at 23:32 on May 9, 2011

baquerd
Jul 2, 2007

by FactsAreUseless

shrike82 posted:

I'm only on my 2nd job outside of college so I've only been through 5-6 complete interview processes. All of mine have been prosaic - standard online resume drop-off, phone screen, multi-day onsite technical & personality interviews.

Am I being paid hourly for these? But really, I hope you describe this process up front.

baquerd
Jul 2, 2007

by FactsAreUseless

A Jew in Manhattan posted:

So from what I've gathered from this thread the best course of action is to specifically list lack of certification on your CV for developers, list them for HR (put a big note above the section that says, "FOR HR'S EYES ONLY!"), and to show up to interviews in casual Hawaiian themed business suits.

Am I on the right track to getting a developer job?

Include code samples commented well enough that HR can read them like a seasoned professional developer and you're a shoe-in.

baquerd
Jul 2, 2007

by FactsAreUseless

Meliv posted:

Got my first ever job interview tomorrow at a sports good company, maintaining and updating their website. Just wondered what you guys think of trying to be funny in the interview? I don't mean strutting into the room being all goofy but just trying to keep the atmosphere light so they think I'm confident and could be easy to work/get along with? Or is it to my advantage to keep is stoic and professional?

I know those guys - they hate non-striped ties and enjoy receiving pudding as a gift.

baquerd
Jul 2, 2007

by FactsAreUseless

IMlemon posted:

Don't people quit their jobs by themselves all the time?

Generally they're moving to another job if they're doing that, or alternatively they are financially retarded.

baquerd
Jul 2, 2007

by FactsAreUseless

shrughes posted:

Or they just don't feel like working.

I forgot about retirees, yeah.

baquerd
Jul 2, 2007

by FactsAreUseless

TasteMyHouse posted:

...or they're facing a personal crisis (family illness etc) that means they have no time to work.

We don't have sissy leave in America, there's sick time for that.

baquerd
Jul 2, 2007

by FactsAreUseless

Orzo posted:

...or they just want a few months off. There's nothing wrong with taking time off for personal reasons, travel, leisure, etc. You don't need to be 'retarded' to want to have a summer off after working hard for a few years.

Taking a summer off when you are say, 35 means you lose at least 1/4 of your annual income that year (assuming you can get a company to hire you quickly when you want a job again at a similar wage and don't have to settle for less money or wait another 3 months finding a position).

Not only do you lose 1/4 of your income, you also need to eat your savings. Assuming you're a pretty good saver and are saving 25% of your monthly income every month, your other expenses (75% of your monthly income) will eat up 3 months of savings every month you don't have income.

So by taking 3 months off you have just conservatively thrown away an entire year of savings with the above numbers if you live as you are accustomed to.

baquerd
Jul 2, 2007

by FactsAreUseless

Smugdog Millionaire posted:

Which doesn't make you retarded. People are allowed to spend their money on what makes them happy and aren't required to follow your personal financial plan.

Well, if you're anywhere closing in on retirement it's not so bad.

A year's worth of savings in your mid 20's could literally be a half million dollars or more by retirement if you didn't do your 3 month splurge.

baquerd
Jul 2, 2007

by FactsAreUseless

Orzo posted:

That argument is wrong in so many ways, I don't even know where to start. I could just as easily call you out for not working 2 jobs right now. LOL, you're trying to tell me you don't work nights? Okay, you're literally throwing away millions of dollars. Who cares about personal happiness or sanity?

I work 24 hours a day between SA posts and refilling my caffeine IV drip.

Not saying you can't have a break, I am saying that quitting your job for several months has the same financial impact of splurging all your savings money for an entire year (while working). You should always consider long-term financial impact of a major decision like that, and if you think saving enough for retirement is easy you're making at least mid six figures all by yourself.

baquerd
Jul 2, 2007

by FactsAreUseless

Orzo posted:

This is complete bullshit if by 'mid six figures' you mean ~500k. Families with a combined income of less than 100k are able to do fine saving for retirement. So a couple that brings in, say, 180, is going to have a hard time retiring if they take 3 months off?

Sorry, my language was off there. I meant ~150k. If you live in a rural area or are comfortable living in one for retirement, your costs may be much less. If you want to retire at 55 or 65 or whatever you've got an entirely different game than if you're intending to work to 75. Everyone needs to take their own plans into consideration.

On a strictly financial level, don't take a break.

baquerd
Jul 2, 2007

by FactsAreUseless

Orzo posted:

Okay, I have a question about a really bizarre phenomenon I've come across when giving interviews. One of the questions we use to ease into CS topics is to ask the candidate to describe a few sorting algorithms that they're familiar with, and then depending on what they say we go from there. Anyway, some ridiculous number like 6 of the last 10 candidates have said 'binary sort.' What the gently caress. That isn't even a thing, or if it is, it's almost certainly not what they meant. Why does everyone keep saying this?

Ask them to describe it and see what you get. Maybe a tree sort. Why are you asking about sorts when if they use anything other than default library sorts 99% of the time they are wrong.

baquerd
Jul 2, 2007

by FactsAreUseless

Chasiubao posted:

A better question than, "Do you remember X algorithm from a class you took 5 years ago?" might be, "So write me a sorting algorithm."

Very open ended, lets the candidate ask lots of clarifying questions, see how they approach the problem. And if they do whip out quicksort, change the problem by giving them conditions that make quicksort particularly bad. Say one where mergesort is a better choice :v:

No, that's a worse question because you're going to be referencing a standard implementation 99.9% of the time for sorts. Knowing the difference is much more important than being able to write it, and even that is not all that important (but a dev should know the general concept and runtime of each).

baquerd
Jul 2, 2007

by FactsAreUseless

iam posted:

I'd guess that was the distinction I was looking for - i.e. a software engineer at Google and a software engineer at IBM are going to be doing very different things. (As far as I know Google always advertises its positions as 'Software Engineer'?).

I guess the answer is don't apply for jobs at Google; but then surely they must have a need for application/solution/system builders and not just algorithm gods.

No one fresh out of school can cut the mustard as a systems architect at Google, that's predicated on years if not decades of real world experience. Algorithms and clever thinking are much easier to test on.

baquerd
Jul 2, 2007

by FactsAreUseless

Orzo posted:

Sources? This sounds like something you just made up.

What other branches of engineering are in any way useful for a software "engineer" (domain specific knowledge notwithstanding)?

http://en.wikipedia.org/wiki/List_of_engineering_branches

Wikipedia calls software engineering a subset of computer engineering which is a subset of electrical engineering.

If we don't accept that defintion, why would a software engineer have any reason to have engineering experience?

baquerd
Jul 2, 2007

by FactsAreUseless

Superhaus posted:

I graduated with a CS degree 6 years ago and I have been doing user support ever since. I have not programmed a thing since college.

The only languages that I studies in school were C and C++. I have heard good things about Java marketability, and I am interested in mobile app development, so those are a couple of places that I was thinking about starting. Am I better off getting a book to pick up the fundamentals? Are there good iTunes U courses out there that I can download and follow?

Why did you wait 6 years in support after graduation? You need a good answer because literally every interviewer is going to ask you that.

Most programmers are hired on the basis that they have demonstrable skills which have been kept up with. Mobile developer roles in particular demand a considerable technical skillset to get hired in a company (though contributing to projects for free is quite attainable).

Starting with undergrad academic knowledge from 6 years ago of C and C++... start throwing your resume out to every junior programming role you can find, or try to move into a senior operations/support role with scripting and work on your skills there.

baquerd
Jul 2, 2007

by FactsAreUseless

shrughes posted:

Two people are on a boat. Fred Lowenol falls off. Who is left?

What does this mean?

Your questions remind me of programming contest questions. I guess if the job requires a lot of algorithm optimization work or something they might be valuable, but for example, I write front office financial software where large scale resource management skills, ability to quickly learn new frameworks, and domain knowledge are far more important than being able to generate solutions to academic problems in an interview.

I like these since you're looking at concurrency and dynamic programming:

quote:

You want to implement the locking of intervals of an array. Think of how to do it.

Given a 2D array of zeros and ones, find the largest square of ones.

But these seem excessively academic and not very useful unless you're just testing to see how the programmer approaches the problem and you're not actually looking for an immediate correct answer:

quote:

Write a program that computes the number of tic-tac-toe games.

An array of N elements has the property that if you sort it, each element is within K units of its final position in the sorted array. That is, the position of the J'th smallest element of the array (for 0 <= J < N) is in the interval [J-K, J+K]. Figure out a sorting algorithm that is more efficient because it exploits this property.

You have a B-tree and want to randomly select a key. You want to support randomly and uniformly selecting a key from the btree. You can modify the btree data structure if you want. How do you do it?

What if you can't modify the btree data structure?

Invent an algorithm for finding the area of a union of rectangles that have vertical and horizontal edges. (This is excessively difficult.)

Here are the type of questions we'd ask:

quote:

A database supports only 10 concurrent connections. A distributed client must be able to be run by 20 users simultaneously. How do you protect against resource lock?

A third party service is only licensed for 1000 distinct queries a day, after which requests will fail silently. How do you support user initiated real time queries through this service?

A new proprietary API with 100 classes is to be used to interface with an existing reporting server. This project must be delivered to UAT by the end of the week. API documentation and sample code has been made available. What is your approach to learning how to use the API?

baquerd
Jul 2, 2007

by FactsAreUseless

shrughes posted:

Also, "What is your approach to learning how to use the API?" seems like a bad question to me, not that I've tried it. What is a "good answer" to this question and how does it mean the candidate is a better learner or better candidate than a "bad answer"?

The question as I put it should be further specified: "What is your approach to learning how to use the API for this particular problem?" We're looking for "practical" programmers who are used to looking at others code and are able to extend that code in a short time frame.

A good answer reveals a developer who is going to be deadline focused. Generally this means heading for the code samples and extending those examples towards practical usage as soon as possible. The API is then for reference, taking the time to browse the class list when looking for expected functionality or just to get a general idea of the full structure is alright, but no more than a day should be spent attempting to learn from the documentation before starting to put code together. I'd also expect 2 days to be budgeted to testing and deployment.

There are a surprising number of people who answer they'll start by reading all of the API documentation, which in practice tends to mean they're not used to producing things in a short time frame or want to spend more time getting it 100% right instead of meeting deadlines. They tend to want to get the full picture of how everything works together instead of jumping right in to produce a working product. This can certainly be a good thing, but not in the constraints of the problem.

It's not about learning so much as quickly producing a functional and well-tested product (assuming a week is tight but reasonable). It's far better to have a inefficiently designed but workable product (that can be later revised) than to miss certain deadlines.

baquerd
Jul 2, 2007

by FactsAreUseless

Safe and Secure! posted:

However, the position(s) is/are for immediate hire, and I'm taking 24 credit-hours this semester, so I don't think I could do it right now. Should I save the handout and send him my resume in a few months when I would be free, or should I put together a resume and a cover letter explaining that I'd be quite glad to work for them a few months from now if they are still looking to hire?

When a (conceivably 20hr/wk) job gets dropped in your lap in your situation, apply for it. The worst that can happen is you get interview practice. If they want to hire you, explain your situation. If you can't swing a 20hr/wk job for a couple of months with school I don't know what to tell you, but this is an excellent opportunity.

baquerd
Jul 2, 2007

by FactsAreUseless

Freundlich Freund posted:

they will offer me a 6-month contract on a £14,000/year salary. After this 6-months (or even earlier) they will review me and most likely give me a pay-rise.

My question is, is this a good deal?

That's ridiculously low pay if you are remotely competent, and yes get paid for the two weeks. If it comes down to it, take the job with the idea of getting everything you can out of it in a year and move on ASAP.

baquerd
Jul 2, 2007

by FactsAreUseless

Freundlich Freund posted:

Thanks for your advice guys. I did have a shock when they offered only £14,000 as a starting salary, and obviously seeing other graduate jobs being a lot higher seems a bit strange. However, I have applied to about 10-15 jobs in the past 2 weeks and this has been the only one that has given a reply (bar 2 rejections) and obviously given an interview. So I could either stick it out and reject the job offer and wait to get something better, or do it, get the experience and then use that to my advantage in maybe looking for a new job?

Take the job while looking for another job. I looked up your degree and apparently 2:2's are roughly equivalent to a 3.0 in the American system, so with limited postgrad opportunities I can see how it may be rough out there. Practice coding all the time until you are excellent at it.

baquerd
Jul 2, 2007

by FactsAreUseless

Captain Cappy posted:

Why would someone using C# and making websites need to know what a pointer is?

It's kind of like asking why someone would need to know how to implement a linked list. It's not that you need it, but if you don't know anything about it there's a serious gap in your general knowledge.

baquerd
Jul 2, 2007

by FactsAreUseless

Otto Skorzeny posted:

That's 18k GBP, ~28k USD, still terrible but not below the poverty line at least

I was making twice that fresh out of undergrad in Chicago working nights in finance (supporting London interestingly enough) where my job entailed browsing SA while working on whatever side project I wanted (main job took maybe 2 hours a night). I'm sure I could have been more ambitious too, I was doing grad school at the time and the easy job was very welcome.

baquerd fucked around with this message at 04:24 on Oct 11, 2011

baquerd
Jul 2, 2007

by FactsAreUseless

Look Around You posted:

And I haven't had an internship yet.. there's a pretty long story behind it, but it comes down to the fact that I was having a hell of a time finding a major till like last year, so while I had most of the basic courses done for CS, I didn't even know if that was what I had wanted to do at the time. The plus side is I have my gen-eds done, the downside is I haven't had an internship or anything yet. I applied for a development job at a research lab in a different academic department, but I haven't heard back yet (I probably will by the end of the week).

Where I work, a lifelong commitment and interest in computers and programming is seen as nearly essential. Probably grew out of the dot com era where everyone was throwing their hat into the ring for the money. It sounds like you have roughly one year of programming experience ever. You're going to be competing against people who have been programming since they were 12.

Edit: I'm just trying to say, you need to either have more experience than it seems or have utterly worked your rear end off for the time you've been learning to be even remotely competent.

baquerd fucked around with this message at 21:51 on Oct 31, 2011

baquerd
Jul 2, 2007

by FactsAreUseless
If you can't get a 3.5+ GPA either you didn't try very hard or you're pretty terrible. Particularly in undergrad, but increasingly in masters programs, academic programming simply isn't that difficult as Cicero insinuates. Having social skills has nothing to do with showing up to classes and turning in your homework while knowing the material.

I almost bombed out of my first development job because I learned very quickly that if I had to be told more than once how my project was supposed to work in particular and as part of the overall system (in a subject area unfamiliar to me) my boss was already annoyed with me. I had to quickly learn that I wasn't going to be spoon fed information until I was bored like in school and I had better pick poo poo up quick and start taking notes. If a person can't master the material in classes with teachers that repeat the concepts several times, I don't think they're going to make it in a high end company.

baquerd
Jul 2, 2007

by FactsAreUseless

Markov Chain Chomp posted:

Signed, A Person Who Went to a Bad School.

Wasn't a big name or anything but it was ranked in the bottom half of the top 100 for computer science. I suppose I should qualify that statement since I'm not really familiar with the course load at MIT or wherever. Had some good teachers with interesting backgrounds, but the courses were too simple. I got my masters at a so-so school while working and in many ways that was even easier to complete. There may be a lot to be said for valuing tough schools, and I wonder how familiar most companies are with the different programs.

baquerd
Jul 2, 2007

by FactsAreUseless

csammis posted:

It's likely that if the employer cares about GPA then they will see the major GPA, think you're hiding your cumulative, and ask you about it immediately. Trust me :v:

But that's easy to spin, who cares if you scraped by in Philosophy 101 if your major GPA is respectable?

baquerd
Jul 2, 2007

by FactsAreUseless

pokeyman posted:

Wouldn't it be trivial for a company to correlate GPA and success rate for new hires over a year or two, then decide to either care or not?

In a huge company, you might have a sample size of 20? Maybe 50-100 if we're talking Microsoft or Google.

baquerd
Jul 2, 2007

by FactsAreUseless

pokeyman posted:

In other words, nearly every company making interview/hiring decisions has no clue if it's useful to take GPA into account?

I guess a related problem is figuring out how many low-GPA people you turn away would have been star performers.

Does anybody have a clue when interviewing/hiring?

I think that in broad terms, it's going to be a useful metric but when zeroing in on candidates it will lose value. If someone scrapes by with a 2.2 or something, they're either going to be absolute crap or have huge motivational issues. The difference between a 3.3 and a 3.6 on the other hard is going to be marginal, especially with the curriculum issues already brought up. My perception and experience lead me to think it's mostly going to be used in these terms, with a cutoff point beyond which value needs to be demonstrated in other ways to distinguish a good candidate.

Adbot
ADBOT LOVES YOU

baquerd
Jul 2, 2007

by FactsAreUseless

Fiend posted:

There is no need for someone to accrue thousands of dollars of student loan debt to attain a title rendered meaningless by a couple of years of experience as a programmer.

They need to show equivalent expertise in another fashion then. Not many companies are going to toss someone with no CS experience into any sort of role where programming is the focus of their job. Plenty of people simply can't wrap their head around the work and it would be a huge gamble for the company, with a significant commitment of the resources of experienced programmers for training and questionable returns.

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