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
text editor
Jan 8, 2007
The real trick is to do the hard problems last and do the low-hanging fruit first, so you can push a half-working product out the door. Then you take your sweet time doing the hard problems while having money thrown at you because the sunk cost fallacy is the most powerful force in the IT world.

Adbot
ADBOT LOVES YOU

Maluco Marinero
Jan 18, 2001

Damn that's a
fine elephant.
Yeah, that's what I've found with my project. You've just gotta push and get runs on the board sometimes (and write tests).

shrike82
Jun 11, 2005

kitten smoothie posted:

I work on a team of 20 people. So a one hour team meeting means you've soaked 40 hours of productivity. If everyone in the room is a software developer making $75K then that means that one hour meeting cost you almost $1500. I bet it wasn't worth it.

I really think this metric of counting the cost of time by salary is stupid and leads to dumb behavior. I don't think you should judge meetings (or any use of time for that matter) by this.

covener
Jan 10, 2004

You know, for kids!

shrughes posted:

Sounds like a a college student who never had a programming job to me.

I also have to admit to cringeing when reading the cover letter. I kept expecting Jack Handy punchlines at the end of each bullet.

covener fucked around with this message at 12:56 on May 21, 2012

csammis
Aug 26, 2003

Mental Institution
The salary metric of meeting value only works if you're trying to convince budget-minded people to not invite half the R&D department to a meeting about quarterly gains or something. Really the trick to meetings is not to have regularly scheduled "you must sit here and talk about this" time and not "broadcast things to everyone you think might ever work on the project so bring everyone to the table" time but to have "hey we need to talk about this okay hm let's do that" time with the people who are actually working on a project, and do that only as necessary. As long as the results are recorded / acted upon then ad-hoc meetings are great.

Example: I am in a senior position and I only have a half-hour every couple weeks* scheduled with my direct reports and that's just to shoot the poo poo. If I need to know something I go talk to them. If they need to know something they come talk to me. If I found out they were sitting on an issue or an idea until Meeting Time I'd hang my head in shame for they have been Taught Wrong and I have been Teaching Wrong :smith:


* this doesn't count daily standups but those are like ten minutes absolute tops

how!!
Nov 19, 2011

by angerbot

hieronymus posted:

I'm not sure the "pontifications" convey the right attitude - they don't seem borne of experience.
Each one of those things comes from experience working at the various companies so far in my career. I could go on and on for each one explaining why I have those opinions, which is kind of why I put them there. I don't think anything I wrote is completely disagreeable, maybe slightly, but not completely. BTW, all of my experience is with startups and I'm only every going to apply to startups, which I think are a much, much different world. Startups want people who will be disruptive, whereas corporations just want someone who will just do whatever they're told. (At least thats how I see it)

quote:

For example:

What about the easy problem that would piss off our customers a lot versus the hard problem that no one but the developer would ever notice? Priority should be customer focused.

I'll give you an example of what I mean. I once worked for a company who was building a real time auction site. An auction page always had to have up-to-the-second information. When a bid came in, the page had to be updated in real-time to reflect the new price. When I joined the company, we were using short-poll for this. The browser would make an ajax call every 1 second and the server would return the info and it would then get plugged into the DOM.

The business requirement was that we needed to handle X number of users ('X' being "a really big number") using the site concurrently. It was obvious that this was not going to scale well once we got past a few hundred users. So someone came up with the idea of using browser push. Instead of the client polling the server, the server would "push" changes out to the browser when the data on the server changed. Everyone thought "wow thats the way to go, thats totally scalable! lets get started!!". The underlying code was complete spaghetti so it took maybe two weeks to rip out all the short poll stuff and replace it with orbited/stomp.

Half way into the conversion from short poll to push, someone noticed that if two different users get a push at the same time for a single auction, the connection would drop and both users would no longer get pushes unless they refreshed their browser. (Or something like that, I don't fully remember the exact problem, but it was complex in nature, and had a very negative impact). What caused this? No one knew. At the time browser push was still a fairly new concept, (orbited was still in beta) so there was a lot of weirdness all around.

The problem was that no one wanted to think about this issue. No one wanted that ticket assigned to them. That was the hardest problem in out ticket tracker. That should have been #1 priority. No one wanted the problem, because they were afraid of the solution. We may have to go back to short poll. We'd look like fools. So everyone pretended like the problem didn't exist. Everyone thought it would go away all by itself.

So instead for the next few months we worked on all the easy stuff. Fixing misaligned images. Fixing typos on the terms & conditions pages. Those are easy, so people are always willing to do those. Users want terms and condition pages that have properly set margins, right? No argument from me.

And then we went live. The company spent thousands of dollars spamming craigslist (or whatever it was they did to get so much traffic), but we weren't converting poo poo. The landing page was breaking in a way that was not letting users signup. Turns out this is because of the problem earlier with orbited dropping connections. We had to tell pointy haired boss guy (who happened to be the CEO) that we have to drop real-time updates because we're stuck and we can't figure out whats wrong. He yells at us and wonders why we couldn't have told him this after he wasted thousands of dollars buying traffic. He throws a hissy fit and shuts the company down.

It actually wasn't just that one thing that made him close shop, but more or less the overall reason was because we had this unspoken philosophy of only going after the easy, waiting/wishing someone else would do the hard stuff for us. After a few months of this, we found ourselves in a situation where the only stuff left was the hard stuff (which meant very little visible progress). The bosses thought we were a bunch of boobs who couldn't do anything. The CEO was a 21 year old trust-fund baby who would rather spend more time at the clubs than have to worry about us. I then became unemployed.

So thats why I think it's best to handle hard problems first.

JehovahsWetness
Dec 9, 2005

bang that shit retarded

how!! posted:

So thats why I think it's best to handle hard problems first.

Hmm, okay, interesting. Well, we'll keep your resume on file and let you know when we've made a decision. Let me show you back to the receptionist, I believe she'll have some papers for you to sign.

etcetera08
Sep 11, 2008


You asked if your cover letter was good, people in this thread responded that it didn't explain why you should be hired, and then you responded with an anecdote about a time your dev team failed.

:confused:

mustermark
Apr 26, 2009

"Mind" is a tool invented by the universe to see itself; but it can never see all of itself, for much the same reason that you can't see your own back (without mirrors).

how!! posted:

BTW, all of my experience is with startups and I'm only every going to apply to startups, which I think are a much, much different world. Startups want people who will be disruptive, whereas corporations just want someone who will just do whatever they're told. (At least thats how I see it)

Ok, so I'm still at Uni so correct me if I'm wrong... but if you're not focused on delivering a product at a startup, aren't you kind of doomed to flop? I mean, venture capital runs out after a certain point and people with money "want someone" who can make them more money. I can't think of any recent successful startups that didn't at least in part do iterative development and deployment.

tk
Dec 10, 2003

Nap Ghost

how!! posted:

BTW, all of my experience is with startups and I'm only every going to apply to startups, which I think are a much, much different world. Startups want people who will be disruptive, whereas corporations just want someone who will just do whatever they're told. (At least thats how I see it)

Put this in your cover letter.

Dijkstracula
Mar 18, 2003

You can't spell 'vector field' without me, Professor!

how!! posted:

BTW, all of my experience is with startups and I'm only every going to apply to startups, which I think are a much, much different world. Startups want people who will be disruptive, whereas corporations just want someone who will just do whatever they're told. (At least thats how I see it)
If this is the kind of condescending nonsense that comes out of startup culture, then I'm glad I joined an established company.

shrughes
Oct 11, 2008

(call/cc call/cc)

how!! posted:

Each one of those things comes from experience working at the various companies so far in my career. I could go on and on for each one explaining why I have those opinions, which is kind of why I put them there. I don't think anything I wrote is completely disagreeable, maybe slightly, but not completely. BTW, all of my experience is with startups and I'm only every going to apply to startups, which I think are a much, much different world. Startups want people who will be disruptive, whereas corporations just want someone who will just do whatever they're told. (At least thats how I see it)

I work at a startup and worked on a recently hired startup team at my last job (and an academic institution before that, and a very tiny scientific test equipment company before that, and a medium sized financial company before that), and, uh, your worldview is completely wrong.

shrughes fucked around with this message at 00:21 on May 22, 2012

Maluco Marinero
Jan 18, 2001

Damn that's a
fine elephant.

Dijkstracula posted:

If this is the kind of condescending nonsense that comes out of startup culture, then I'm glad I joined an established company.
I dunno, feels like a misconception of what makes a successful startup. It not - come up with cool idea, throw rockstar devs and designers at it, become massively popular, rake in the cash.

To me it seems to be - come up with an idea, build a minimum viable product that tests whether you can make your idea work. Change what doesn't work, then test that with customers, change what doesn't work then, then test that with customers.

There's nothing that inherently different between an established company and a startup's management, but the length of iterations is what changes, because a startup doesn't know what it's return on investment with any accuracy yet so it makes sense to limit the size of that investment.

shrike82
Jun 11, 2005

Maluco Marinero posted:

There's nothing that inherently different between an established company and a startup's management, but the length of iterations is what changes, because a startup doesn't know what it's return on investment with any accuracy yet so it makes sense to limit the size of that investment.

There're a lot of differences between managing ongoing operations of an established company and building out a start-up so I'm curious about your statement.

Maluco Marinero
Jan 18, 2001

Damn that's a
fine elephant.

shrike82 posted:

There're a lot of differences between managing ongoing operations of an established company and building out a start-up so I'm curious about your statement.
Thats a fair comment, poor choice of words on my part. I think the word management was wrong, maybe more like project management.

What I was trying to get at is that even big companies build risky products at times, and when they do they can adopt short iterations just like a start up. That doesn't mean the companies team suddenly gets let off the chain, it means they have different goals to a long term release cycle.

A startup doesn't inherently need to fly fast and loose, on a hope and a prayer of an idea hitting big. Thy can do things in a controlled and structured manner if they wish, and the ones that are successful usually did just that. It was no accident they succeeded, they made careful choices and properly evaluated how their product was doing in its early stages, and built on what worked.

kitten smoothie
Dec 29, 2001

how!! posted:

So thats why I think it's best to handle hard problems first.
The lesson to take home from this isn't "do what is hard first." It's "do what is critical to the business/getting a viable product out the door, and be prepared to admit when you're wrong."

The team knew there was a blocker, and chose to ignore it because they were afraid of admitting a bad decision was made. You may feel like you look like a fool pointing this out before you launch, but you'll look like a way bigger fool after you go live and stuff goes bad.

There could well be problems that are easy and critical to getting the project off the ground, and if you look past them because they are not hard, you could just as easily take your eye off that ball.

You could end up hypothetically focusing on getting some highly available, auto-scaled on EC2, Varnish-cached frontend with a sharded Redis object store to provide lightning fast response time, because it seemed hard and thus getting the app to run at "Web Scale" was the appropriate problem to choose to solve. Meanwhile while doing that you ignore the fact that the front page is full of typos and nobody wants to use it because it looks like a Russian phishing site.

pigdog
Apr 23, 2004

by Smythe

how!! posted:

... The underlying code was complete spaghetti so it took maybe two weeks to rip out all the short poll stuff and replace it with orbited/stomp. ...
Reckon this is where your problems started. At no point should code be "complete spaghetti". Guessing as the codebase grew and people couldn't memorize the entirety of it anymore, they started to become afraid of refactoring and changing it, because they couldn't be sure if changes, even for mere refactoring, wouldn't introduce new bugs or break the whole thing. If you're afraid of your codebase, that's where the paralysis starts.

The solution lies in coding for testing, and in through coverage of relevant and fast running unit tests. Unlike every normal line of code, which introduces potential bugs, writing more good unit tests decreases entropy in the production code. If a piece of code is throughly covered with unit tests, then you can be henceforth be sure of it and "swap out" all worries about whether changing something would cause that piece of code break. Thus freeing up more RAM in your mind, so to speak, to deal with other, troublesome parts of the application. It's not obvious, but cases like these are implicit advocacy for TDD. As such TDD only deals with the basic correctness of the code, but once the basic correctness is at all points guaranteed and instantly verifiable, you cease to be afraid of your codebase, which allows for much more aggressive and confident optimization and rework.

tef
May 30, 2004

-> some l-system crap ->
"Hacking your program is no substitute for understanding your problem."
Richard O'Keefe

:pwn:

SimpleCoax
Aug 7, 2003

TV is the thing this year.
Hair Elf
edit: irrelevant now

SimpleCoax fucked around with this message at 06:54 on Jun 8, 2012

aBagorn
Aug 26, 2004
If we're going to move to salarychat(tm), what kind of salary hit should I be expecting to take as an entry level WITHOUT a degree in a related field? My fancy Music Ed degree isn't really of any use.

I'm thinking 15% below CS grads?

shrughes
Oct 11, 2008

(call/cc call/cc)

SimpleCoax posted:

I just got a job offer in the Denver/Boulder area in which I would be programming fancy scientific applications for $64k. The thing is, I have a PhD, and this offer seems quite low to me, and the benefits aren't that great either. I'm fresh out of school and don't have much real experience, but am I crazy to expect more? I've only just begun my job search really. I have a friend fresh out of his bachelors in nebraska making $67k. I'm really planning on turning it down, but I just want to make sure I'm not being arrogant about it.

It's completely reasonable that some programmer with a freshly minted Bachelor's make more than somebody else with a freshly minted PhD. A PhD does not necessarily make you a better programmer. (A PhD in what? What programming experience do you actually have? These are relevant questions in that regard.)

shrughes
Oct 11, 2008

(call/cc call/cc)

aBagorn posted:

If we're going to move to salarychat(tm), what kind of salary hit should I be expecting to take as an entry level WITHOUT a degree in a related field? My fancy Music Ed degree isn't really of any use.

I'm thinking 15% below CS grads?

If there's evidence that you can actually code and took CS courses, there's no reason it can't be 0% or 15% above. The notion of a uniform salary level for "CS grads" is a bit off, as well. The thing to realize is that if you are right now an actual programmer, after a year of experience you'll be equivalent to a generic CS grad with a year of experience. This is a question of negotiation, and how you can convince a hirer that you're useful. For example, if you have multiple offers you could say "I have a competing offer" and get offered more.

SimpleCoax
Aug 7, 2003

TV is the thing this year.
Hair Elf

shrughes posted:

It's completely reasonable that some programmer with a freshly minted Bachelor's make more than somebody else with a freshly minted PhD. A PhD does not necessarily make you a better programmer. (A PhD in what? What programming experience do you actually have? These are relevant questions in that regard.)

This is understandable. My PhD is in Computational Science and my research is directly applicable to the company's products. Their products are very specialized in my field and I am formally educated in programming them. I've just never worked directly for a company in programming and I'm sure I suck. I was just under the impression that general entry level programmers would expect this amount. I am unaware of a more appropriate thread for this question, so I apologize for discussing salary here.

Cicero
Dec 17, 2003

Jumpjet, melta, jumpjet. Repeat for ten minutes or until victory is assured.

SimpleCoax posted:

I just got a job offer in the Denver/Boulder area in which I would be programming fancy scientific applications for $64k. The thing is, I have a PhD, and this offer seems quite low to me, and the benefits aren't that great either. I'm fresh out of school and don't have much real experience, but am I crazy to expect more? I've only just begun my job search really. I have a friend fresh out of his bachelors in nebraska making $67k. I'm really planning on turning it down, but I just want to make sure I'm not being arrogant about it.
Well, is the job actually leveraging what you got out of your PhD? Like, does it use either deep experience in whatever field you studied, or does it require extensive research skills? If it does, then you should be able to demand more. If not, then the fact that you have a PhD is basically immaterial to the company, and you may want to look for a different job that matches your skillset better. Have you looked for research-oriented positions?

edit: Ok, if your research experience is relevant, then I'd say you should definitely be able to get more. You may want to look for salaries of research positions at places like MS and IBM at glassdoor and then adjust for cost-of-living.

Cicero fucked around with this message at 20:03 on May 22, 2012

Safe and Secure!
Jun 14, 2008

OFFICIAL SA THREAD RUINER
SPRING 2013
Are there (m)any development jobs/areas where a master's degree would greatly benefit my employment prospects? I want to get an MS at some point, and whether I should be looking into a CS or statistics or maybe even math MS. I am interested in all these fields, so I figure that the one most likely to help me in the most in the long run would be the best choice.

shrike82
Jun 11, 2005

Safe and Secure! posted:

Are there (m)any development jobs/areas where a master's degree would greatly benefit my employment prospects? I want to get an MS at some point, and whether I should be looking into a CS or statistics or maybe even math MS. I am interested in all these fields, so I figure that the one most likely to help me in the most in the long run would be the best choice.

Some companies pay MS degree holders a higher starting salary (or bump them up 1 "rank" to start with) over BS degree holders. I started with a salary 15K higher than my BS counterparts.

I'm not sure if you'd have a "better" chance of getting a job though.

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

Safe and Secure! posted:

Are there (m)any development jobs/areas where a master's degree would greatly benefit my employment prospects? I want to get an MS at some point, and whether I should be looking into a CS or statistics or maybe even math MS. I am interested in all these fields, so I figure that the one most likely to help me in the most in the long run would be the best choice.

It depends on what you're trying to do.

If your undergrad was CS, I wouldn't bother with the master's in CS. There are some jobs postings that ask for it, but they seem to be few and far between (although granted, I've seen more job postings looking for a master's in computer science than for other master's degrees.)

I was a philosophy major undergrad, and I wiggled into development through QA. I'm getting a master's in CS because
a) My boss hinted at a promotion if I had the degree
b) The CS degree seems to come up a lot in all the online site job ads.
c) My tuition is reimbursed by my company.

Education alone isn't going to get you in the door for any job though - I saw enough people with M.S. in Computer Science apply for 30k manual software testing jobs back in 2009 to know how much that degree is worth without experience. The classes have shored up a lot of background information that I didn't realize I was lacking but you definitely learn faster on the job than in classes.

If you are already at a job and the people who are getting promoted have master's degrees, and they're willing to fit the bill/you get into an academic program that's willing to pay you to go to grad school, do that.

unixbeard
Dec 29, 2004

SimpleCoax posted:

This is understandable. My PhD is in Computational Science and my research is directly applicable to the company's products. Their products are very specialized in my field and I am formally educated in programming them. I've just never worked directly for a company in programming and I'm sure I suck. I was just under the impression that general entry level programmers would expect this amount. I am unaware of a more appropriate thread for this question, so I apologize for discussing salary here.

IMO take the job, its a good starting salary. Yes you know a lot but it will likely take you some time before you can really translate all your skills into deliverables. So go in and work for a year or two, then once you know all the systems and their software and have a few good delivered projects under your belt, go and talk to them again. And if you are still not happy then, you will have some solid experience under your belt if you want to look around elsewhere. If you're transitioning from academia, you have the rest of your life to work so don't worry if it doesn't seem to happen immediately.

All that said you could always ask for 20% more, or negotiate for extra leave or whatever. There was a link to a blog post about salary negotiation that maybe someone can share.

Safe and Secure! posted:

Are there (m)any development jobs/areas where a master's degree would greatly benefit my employment prospects? I want to get an MS at some point, and whether I should be looking into a CS or statistics or maybe even math MS. I am interested in all these fields, so I figure that the one most likely to help me in the most in the long run would be the best choice.

There are a lot out there, and they are way more interesting then grinding out enterprise c# with a offshore team/being a mid level corporate manager. My undergrad is comp sci but I'm doing a masters in maths and stats, with no particular end goal in mind other than "something more interesting." I was looking around for stuff I would like to do when I was thinking of leaving my previous job, there was a bunch of stuff I thought sounded cool but they mostly wanted an MSc or PhD.

I really enjoy machine learning and I could implement stuff and use the algorithms, but my maths/stats just wasn't up to scratch to really get what was going on. The way I see it is comp sci is basically a branch of applied maths, and with my existing background in comp sci I'm better off getting good at math and I'll be able to pick up the applications as they manifest in the real world with just a little bit of reading/extra work, cause I know the comp sci stuff pretty well.

Depending on how Life Pans Out, once I am mostly done with my MSc I might try and do a semesters exchange somewhere that specialises in ML.

Also if I ever really get over computing, maths/stats has applications in lots of other areas.

unixbeard fucked around with this message at 23:39 on May 22, 2012

Twerk from Home
Jan 17, 2009

This avatar brought to you by the 'save our dead gay forums' foundation.
So I have made it past phone interviews and a code evaluation where they sent me some program skeletons and test cases, and am now travelling on their dime for an interview tomorrow.

I didn't think I was going to make it with these guys, so I never seriously considered the pros / cons of working at a place that does Agile development. I know little about the actual software industry, is everyone doing agile now?

Also, I know this isn't the best place for salarychat, but on glassdoor it looks like they pay general "software developers" 60k-80k, but they also have 3 people reporting "Junior Java Developer", the specific position I was applying for at 68k-73k. Salary hasn't come up at all yet, and it's an intimidating issue. If they as me how much I want, dare I ask 70k and they guide me down to where they start brand new fresh guys? I'm a fresh BS graduate with an engineering degree, but it's a company in oil & gas so I've been told by the recruiter that salaries are higher. I don't know if I trust him. I'd be happy with anything livable, $60k+.

Twerk from Home fucked around with this message at 17:33 on May 29, 2012

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Weinertron posted:

I didn't think I was going to make it with these guys, so I never seriously considered the pros / cons of working at a place that does Agile development. I know little about the actual software industry, is everyone doing agile now?


Agile can work really well; a lot of places are doing it nowadays. Be forewarned: Some people say they do Agile and just mean "we change requirements a lot". Waterfall works poorly in my experience; someone who has no idea what the hell the project is actually going to entail picks a date a few months out in the future, and then when the requirements change and unexpected challenges arise, everyone works like a slave for weeks to meet the completely arbitrarily chosen "milestone".

I've worked in a Scrum environment before, and it's pretty great. The entire team sat down with the product backlog, figured out what needed to be done for a particular feature, and gave rough estimates for the tasks involved. We used "points", not hours, because a developer day never actually includes 8 hours of coding. If you say "16 hours", then people will think "2 days", not "3 or 4 depending on how busy a developer is". A junior developer might be able to get close to 8 hours a day of coding in, since they have fewer demands on their time, but a senior might only get 15 hours of coding time in an entire week.

The business decides what things they want done in a given timeframe (usually 2-3 weeks) within their budget. It may have been determined based on historical data that the team can get 10 points of stuff done in a 2 week period. Management gets to pick 10 points worth of stuff, and then they commit to it. Once you start your 2 weeks of coding, they cannot change it, but the contract is that you deliver the things they chose.

It worked really well, and it changed the working environment from 16-hour-a-day sweatshop conditions into sane, 8-10 hour days in the space of a few months.

New Yorp New Yorp fucked around with this message at 17:53 on May 29, 2012

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

Weinertron posted:

So I have made it past phone interviews and a code evaluation where they sent me some program skeletons and test cases, and am now travelling on their dime for an interview tomorrow.

I didn't think I was going to make it with these guys, so I never seriously considered the pros / cons of working at a place that does Agile development. I know little about the actual software industry, is everyone doing agile now?

Also, I know this isn't the best place for salarychat, but on glassdoor it looks like they pay general "software developers" 60k-80k, but they also have 3 people reporting "Junior Java Developer", the specific position I was applying for at 68k-73k. Salary hasn't come up at all yet, and it's an intimidating issue. If they as me how much I want, dare I ask 70k and they guide me down to where they start brand new fresh guys? I'm a fresh BS graduate with an engineering degree, but it's a company in oil & gas so I've been told by the recruiter that salaries are higher. I don't know if I trust him. I'd be happy with anything livable, $60k+.

The big gotcha is that many development places practice "fragile" development rather than "agile" development - mostly characterized as taking the not documenting everything and pushing stuff out the door fast aspects of agile, without taking the positive aspects of agile, such as automated tests, continuous integration, listening to customers, and involving all groups early in the process.

It is good to move around a bunch of places and see what works and what doesn't - I really don't like using buzzword terminology to describe processes because an abstract concept like agile can mean a lot of things to a lot of people (even though it shouldn't) and you'll often find that places claim to use it simply because lots of people think it's a good idea. You should ask more specific questions about process (How often do we release? How is testing handled? Who handles documentation? What happens if a bug is found? What kind of source control do we use? How often do we do code reviews? How is work assigned? What does the organizational structure look like? What happens if an estimate is missed? Who's doing the testing?)

I find that I get much better results (in terms of information value) if I stay away from asking about abstract or undefined concepts and focus more on specific details - a lot of time if you talk on an abstract level, people will do things like, say, confuse what has actually been implemented with what people think has been implemented.

aBagorn
Aug 26, 2004
So, I had a pretty bad phone interview the other day, and I know why.

The interviewer asked me about 20 questions, going from broad OO principles/design patterns to specific C# specific syntax.

It was clear to me (and I'm sure to him as well) where I neglected in my self study of programming/coding. I breezed through the latter half (specific C#) of the questions and struggled with the concepts.

I learned the language, but not the structure, apparently.

If anyone has some great 'generic' OO books to recommend I would be eternally grateful.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

aBagorn posted:

So, I had a pretty bad phone interview the other day, and I know why.

The interviewer asked me about 20 questions, going from broad OO principles/design patterns to specific C# specific syntax.

It was clear to me (and I'm sure to him as well) where I neglected in my self study of programming/coding. I breezed through the latter half (specific C#) of the questions and struggled with the concepts.

I learned the language, but not the structure, apparently.

If anyone has some great 'generic' OO books to recommend I would be eternally grateful.

What sort of questions? Polymorphism? Inheritance? Design patterns?

This is a good design patterns book: http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124

You can't beat yourself up too much if your design skills aren't quite there yet; it takes a lot of experience to be able to decompose a problem into a sane object model without a lot of trial and error.

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

Ithaqua posted:

What sort of questions? Polymorphism? Inheritance? Design patterns?

This is a good design patterns book: http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124

You can't beat yourself up too much if your design skills aren't quite there yet; it takes a lot of experience to be able to decompose a problem into a sane object model without a lot of trial and error.

That's a pretty good book.

I'll throw in some others:

Heads First Object Oriented Design is probably tailor-made to your problem... Some overlap with the design patterns book, but it goes into more detail about how/why/when to implement design patterns.

Heads First Software Development is good if you need to brush up on agile/scrum.

Programming Interviews Exposed doesn't go into any real detail in one aspect of software development but you should know literally everything in the book to the point where you could have written it yourself. Good starting point.

Cracking the coding Interview should help you once you get to the whiteboard stage.

Bruegels Fuckbooks fucked around with this message at 13:57 on May 30, 2012

aBagorn
Aug 26, 2004
I stumbled on OO basics (polymorphism/inheritance/encapsulation), but sort of got them out.

I threw my hands up in the air with design patterns.

NovemberMike
Dec 28, 2008

aBagorn posted:

I stumbled on OO basics (polymorphism/inheritance/encapsulation), but sort of got them out.

I threw my hands up in the air with design patterns.

What design patterns did they ask about?

aBagorn
Aug 26, 2004

NovemberMike posted:

What design patterns did they ask about?

I know he asked me what I knew about Factory Method, Observer, Mediator, and maybe one other (Builder?)

E: yeah, just got a call back, "We were really impressed by your knowledge of the C# language and syntax, but feel that your grasp of OO programming as a whole is a bit less than what we were looking for"

Back to the books I go

aBagorn fucked around with this message at 16:06 on May 30, 2012

NovemberMike
Dec 28, 2008

I'm not really a fan of questions like that because it's mostly a familiarity thing. I'd read through "Design Patterns: Elements of Reusable Object-Oriented Software" though to get an overview, I think that's the standard still.

Cicero
Dec 17, 2003

Jumpjet, melta, jumpjet. Repeat for ten minutes or until victory is assured.
Honestly all the design patterns start to feel like the same after a while, so I think it's kind of dumb to just say "What's pattern X?" instead of just saying "You're in this situation, what would you do design-wise?".

Pretty much every design pattern: "Instead of hard-coding this relationship, insert a layer of abstraction so that it's easier to swap things around."

Adbot
ADBOT LOVES YOU

Paolomania
Apr 26, 2006

But it is just so much more impressive to say something ostentatiously verbose like "use a Proxy Pattern" rather than "use a proxy".

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