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
CPColin
Sep 9, 2003

Big ol' smile.

That article posted:

Premature optimisation is not good, but cargo-culting the avoidance of premature optimisation is even worse.

What a weird thing to say.

Adbot
ADBOT LOVES YOU

Volguus
Mar 3, 2009

CPColin posted:

What a weird thing to say.

To me it looks reasonable. At the end of the day, nobody says " do not use them", just "do not abuse them". Streams are awesome. Beer is awesome too. Too much of it though, not awesome at all.

Jose Valasquez
Apr 8, 2005

Volguus posted:

To me it looks reasonable. At the end of the day, nobody says " do not use them", just "do not abuse them". Streams are awesome. Beer is awesome too. Too much of it though, not awesome at all.

I don't care about streams but I won't stand for lies about beer

Knockknees
Dec 21, 2004

sprung out fully formed

Knockknees posted:

I'm not a programmer.... can I ask about being a Project Manager for software development?
[...] they've asked me to do a week-long audition.
[...] I don't have a software background.

The audition begins Monday.

I received some details about how the week will go: They'd like me to attend all of the daily stand-ups for four of the projects that are running in the office. After each stand-up, I'll have an opportunity to chat with the internal team about the project. I'll also be given access to the issue tracker. Then, at the end of the week, I am to give a presentation that covers the following for each project:
project history
points of friction
what can be better
pitch ideas for change

I feel confident that I can roughly figure out the history and the challenges through observation and asking questions. But, I'm nervous about being able to speak to the last two points.

I have some idea that, for example, I might identify a point of friction as technical debt, and I might suggest communicating with the client about ways to budget time to address that debt across future iterations. Or, I might see an expectations mismatch between parties that might be improved through a communication re-frame.

They probably aren't expecting me to be an expert in a week, so I suppose the goal is to show that I can understand what's going on and that I'd have enough insight to see ways to support the team.

Thoughts on anything I could be doing or reading to prepare? Are there common points of friction and standard ways to address them I should be aware of? What should I even be looking for in an issue tracker?

Or just... wish me luck.

Volguus
Mar 3, 2009
So you're gonna work for a week for free? During a time when most employees are completely useless (they're adjusting)? Good luck. Have Fun.

kitten smoothie
Dec 29, 2001

That's not an "audition," that's a weeklong consulting engagement.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

kitten smoothie posted:

That's not an "audition," that's a weeklong consulting engagement.

Yup.

So observe and make the key suggestion to hire you.

White Light
Dec 19, 2012

Knockknees posted:

The audition begins Monday.

I received some details about how the week will go: They'd like me to attend all of the daily stand-ups for four of the projects that are running in the office. After each stand-up, I'll have an opportunity to chat with the internal team about the project. I'll also be given access to the issue tracker. Then, at the end of the week, I am to give a presentation that covers the following for each project:
project history
points of friction
what can be better
pitch ideas for change

I feel confident that I can roughly figure out the history and the challenges through observation and asking questions. But, I'm nervous about being able to speak to the last two points.

I have some idea that, for example, I might identify a point of friction as technical debt, and I might suggest communicating with the client about ways to budget time to address that debt across future iterations. Or, I might see an expectations mismatch between parties that might be improved through a communication re-frame.

They probably aren't expecting me to be an expert in a week, so I suppose the goal is to show that I can understand what's going on and that I'd have enough insight to see ways to support the team.

Thoughts on anything I could be doing or reading to prepare? Are there common points of friction and standard ways to address them I should be aware of? What should I even be looking for in an issue tracker?

Or just... wish me luck.

Maybe it's just me and personal experiences, but I would not commit with this week long 'audition'. Most people who do/have done PM work in either FED or software development usually leap-frog from having done said work for at least a couple of years before switching gears. Not having much of any experience in those fields is really gonna screw with everything from setting feasible project milestones, calculating proper allowances and contingency plans, making promises that your development team might not be able to keep, the list goes on.

I worry that you'll spend a week at the company flailing about trying to keep tabs on all sorts of technical jargon, concepts and methodologies (all while trying to cover things like Agile on your off time!), only to have them shoot you an email from an HR goon with a 'thanks for coming out/we went with another candidate with more experience/we'll keep your resume on file' response.

If you already have about 10+ years of PM experience, even in another field, it doesn't feel right for them to ask you to 'prove' that you're right for the position even though you've been doing it correctly for roughly a decade already. Tread cautiously.

Knockknees
Dec 21, 2004

sprung out fully formed

Volguus posted:

So you're gonna work for a week for free? During a time when most employees are completely useless (they're adjusting)? Good luck. Have Fun.

Well, they're paying me at least.

As for the rest - I'm already committed to doing it. Silver lining is that even if I don't get the job for the reasons Parrotline outlined, I'll walk away with some experience and some cash.

Parrotine posted:

Not having much of any experience in those fields is really gonna screw with everything from setting feasible project milestones, calculating proper allowances and contingency plans, making promises that your development team might not be able to keep, the list goes on.

From previous conversations, it sounds like initially I'd let devs continue to lead those conversations in the stand-ups. Which sort of begs the question - why are they having me go through all of this? I think the best I can do is demonstrate that I am capable of learning.

They're too small to have an HR which might have something to do with why they devised this scheme.

White Light
Dec 19, 2012

Well as long as your time is compensated I suppose it's not too much of a risk. I was under the impression you were working for free!

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.

I'm going to disagree with the author here. The speed of your for loop is not going to be the limiting factor of your algorithm. Functional programming is almost invariably easier to read than the imperative equivalent (even in his example), and not adopting that style just because performing the for loop on 500,000 elements in a regular array takes 5 ms instead of .5 ms is crazy given the benefits in readability.

Captain Cappy
Aug 7, 2008

Bruegels Fuckbooks posted:

I'm going to disagree with the author here. The speed of your for loop is not going to be the limiting factor of your algorithm. Functional programming is almost invariably easier to read than the imperative equivalent (even in his example), and not adopting that style just because performing the for loop on 500,000 elements in a regular array takes 5 ms instead of .5 ms is crazy given the benefits in readability.

This program sure is slow, but thank god the programmer's had a very slightly easier* time writing and reading it!

*citation needed

Jose Valasquez
Apr 8, 2005

Not all for loops (#notallforloops) lend themselves to streams, but some do and are more readable as streams. Unless the section of code is very performance critical the readability improvement will outweigh the performance hit.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Captain Cappy posted:

This program sure is slow, but thank god the programmer's had a very slightly easier* time writing and reading it!

*citation needed

On the other hand:

This program sure is slow, and because we prematurely optimized things that aren't actual performance bottlenecks, it's harder to refactor!

fantastic in plastic
Jun 15, 2007

The Socialist Workers Party's newspaper proved to be a tough sell to downtown businessmen.

Knockknees posted:

Well, they're paying me at least.

As for the rest - I'm already committed to doing it. Silver lining is that even if I don't get the job for the reasons Parrotline outlined, I'll walk away with some experience and some cash.


From previous conversations, it sounds like initially I'd let devs continue to lead those conversations in the stand-ups. Which sort of begs the question - why are they having me go through all of this? I think the best I can do is demonstrate that I am capable of learning.

They're too small to have an HR which might have something to do with why they devised this scheme.

I've worked at an agency before and the owner had no idea how to hire for non-technical roles. He would come up with all kinds of nutty tests for PM & sales. (Possibly related: the agency had a very hard time recruiting and retaining PM and sales.)

That said, good luck, hope it works out for you.

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.

Captain Cappy posted:

This program sure is slow, but thank god the programmer's had a very slightly easier* time writing and reading it!

*citation needed

i dunno about you guys but

code:
char[] grades = ....
for(int i = 0; i < grades.length; i++) {   // for i goes from 0 to grades.length
    System.out.print(grades[i]);           // Print grades[i]
}
This is schoolkid and old person java. Notice the ugly variable scope that lets people gently caress with the loop counter inside the loop. Watch your coworkers gently caress these up by nesting like six loops with six different counters (ii, jj, kk, ll, mm, nn) that all mutate each other.

code:
char[] grades = ....
for(char grade : grades) {   // foreach grade in grades
    System.out.print(grade); // print that grade
}
This is what your loop should look like.

If I want to descend to the level of performance autism again, I'd like to point out that
- While foreach is much slower than for when going through an array of primitive ints...
- Foreach is only slightly slower than For when using an array of Integers as opposed to primative ints...
- For is slower than foreach when going through collections, such as List<Integer>! You might recognize this as the actual datatype you should almost always loving use instead of raw array!

Captain Cappy
Aug 7, 2008

This is all just a critique of the fact that Java decided that best from a maintainability perspective and best from a performance perspective should be mutually exclusive. What a joke of a language, shame its the best one out there.

Star War Sex Parrot
Oct 2, 2003

Captain Cappy posted:

shame its the best one out there.
[citation needed]

Jose Valasquez
Apr 8, 2005

The best language is the one that I have been paid the most to write stuff in.

speng31b
May 8, 2010

Every language is terrible if I don't understand it or if I'm bored of it.

Volguus
Mar 3, 2009

Bruegels Fuckbooks posted:

I'm going to disagree with the author here. The speed of your for loop is not going to be the limiting factor of your algorithm.
This is false. There are/will be definitely situations where in an algorithm your loop/stream may be run millions of times where that 0.5ms may be significant. Not always, not every time. Which is why the advice is: do not abuse it, use it judiciously.

Bruegels Fuckbooks posted:

Functional programming is almost invariably easier to read
"Almost" is the key word here. Yes, that stream forEach(lambda) usually is nicer to read and to maintain. Not all the time, not for every lambda. Which is why the advice is: do not abuse it, use it judiciously.

Bruegels Fuckbooks posted:

and not adopting that style just because performing the for loop on 500,000 elements in a regular array takes 5 ms instead of .5 ms is crazy given the benefits in readability.
As before, that 0.5ms may become 5 millions ms in certain conditions. As before, functional programming is not a gift from god which shall be used every single time no matter what. Which is why the advice is: do not abuse it, use it judiciously.


TL;DR: Think before you write that new line of code. Sometimes a stream with a lambda is the best way to go about it. Sometimes, just isn't.

Space Gopher
Jul 31, 2006

BLITHERING IDIOT AND HARDCORE DURIAN APOLOGIST. LET ME TELL YOU WHY THIS SHIT DON'T STINK EVEN THOUGH WE ALL KNOW IT DOES BECAUSE I'M SUPER CULTURED.

Bruegels Fuckbooks posted:

i dunno about you guys but

code:
char[] grades = ....
for(int i = 0; i < grades.length; i++) {   // for i goes from 0 to grades.length
    System.out.print(grades[i]);           // Print grades[i]
}
This is schoolkid and old person java. Notice the ugly variable scope that lets people gently caress with the loop counter inside the loop. Watch your coworkers gently caress these up by nesting like six loops with six different counters (ii, jj, kk, ll, mm, nn) that all mutate each other.

code:
char[] grades = ....
for(char grade : grades) {   // foreach grade in grades
    System.out.print(grade); // print that grade
}
This is what your loop should look like.

If I want to descend to the level of performance autism again, I'd like to point out that
- While foreach is much slower than for when going through an array of primitive ints...
- Foreach is only slightly slower than For when using an array of Integers as opposed to primative ints...
- For is slower than foreach when going through collections, such as List<Integer>! You might recognize this as the actual datatype you should almost always loving use instead of raw array!

Yes, foreach is usually easier to read. It's more flexible in some ways, too - you can iterate over stuff that you can't necessarily address by index. But that's not a functional versus imperative thing; it's two different imperative methods.

Remember, Java foreach is essentially just syntactic sugar for "get the Iterator for this Iterable, then while hasNext is true, pass the next item into the loop body." It looks like some constructs from functional languages, but the underlying mechanism is jammed full of saved state. Iterators are anti-functional. Streams are interesting because they give you similar functionality but explicitly throw out the "this will be processed one at a time, in whatever order an Iterator gives" guarantee of a foreach loop.

As for the larger debate between functional and imperative languages, you can come up with all kinds of interesting, relevant problems that are trivial in one and annoyingly difficult in the other. Learn both, don't get wedded to either one, and use whatever language features offer the best tools for the job.

PS: if you can't trust your coworkers to not come up with crazy duct-taped hacks on for loop indices, you can't trust them to not reinvent the same hacks in even uglier ways under a foreach loop ("hey, why not just declare a boolean that says whether we skip the loop, track how many iterations we've been through, and mutate the boolean based on some logic deep in the inner loop?"). Catch bad decisions in code review or refactor them out. Banning language features because they might lead to bad decisions will just lead to people reimplementing those bad decisions in even worse ways.

Ghost of Reagan Past
Oct 7, 2003

rock and roll fun

speng31b posted:

Every language is terrible.
Fixed that for you

huhu
Feb 24, 2006
I've got a pair programming interview tomorrow for about ~2 hours, I believe. I've never pair programmed before so I'm reading up on it now. Curious if anyone has any tips/gotchas/etc. I should keep in mind.

kitten smoothie
Dec 29, 2001

huhu posted:

I've got a pair programming interview tomorrow for about ~2 hours, I believe. I've never pair programmed before so I'm reading up on it now. Curious if anyone has any tips/gotchas/etc. I should keep in mind.

If I had money to put on it, I'd say you're likely going to be dropped into a codebase you don't know and be made to fix a bug, while your interviewer sits by you and is your pair-partner in it. Keep talking with them, asking questions, communicate what you're thinking. Treat it as a conversation that happens to take place in front of an open editor.

The absolute worst thing you can do is to shut up and start unilaterally writing code.

huhu
Feb 24, 2006

kitten smoothie posted:

If I had money to put on it, I'd say you're likely going to be dropped into a codebase you don't know and be made to fix a bug, while your interviewer sits by you and is your pair-partner in it. Keep talking with them, asking questions, communicate what you're thinking. Treat it as a conversation that happens to take place in front of an open editor.

The absolute worst thing you can do is to shut up and start unilaterally writing code.

So basically everything you'd do for a whiteboard problem but with a computer instead?

langurmonkey
Oct 29, 2011

Getting healthy by posting on the Internet

huhu posted:

So basically everything you'd do for a whiteboard problem but with a computer instead?

We run our interviews with a pair programming session. It’s pretty different to a whiteboard interview.
We get the candidate in and introduce the problem (we have a sudoku solver). We ask them to choose 2 or 3 features to implement from our list of 6 or 7. Things like implementing a depth first solver, adding a new strategy, adding logging. We then work on fixing the (fairly obvious) bug causing the tests to fail then we TDD the features. Asking questions is encouraged. It’s a good way to see if we can work together plus it’s hard to waffle through a problem if you don’t know how to program.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


If you love GitHub and hate Microsoft, I've got some bad news for you.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

ultrafilter posted:

If you love GitHub and hate Microsoft, I've got some bad news for you.

I just posted about this in the VCS thread. Crossposting:

This sounds simultaneously fishy and plausible to me for a few reasons, the biggest of which is that Microsoft is in the process of rolling out a direct GitHub competitor (https://blogs.msdn.microsoft.com/devops/2018/04/27/vsts-public-projects-limited-preview/). If true, I take it as a sign that someone at Microsoft has no faith in public projects catching on, or Microsoft has a long-term desire to fold GitHub into VSTS.

Assuming this comes to pass, what's our prediction on the aftermath of this? Does a new, non-MiKKKro$oft GitHub equivalent rise? Do the Richard Stallman-esque OSS zealots go insane?

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


I meant to put that in the working in development thread. Too many programming threads....

Edgar Allan Pwned
Apr 4, 2011

Quoth the Raven "I love the power glove. It's so bad..."
https://imgur.com/HrLsRKH

ok i found a few laTex resumes you can work on online and decided to go that route.

Now it looks very empty.. I realised im completely missing the skills section from before. should I just try to be more descriptive in the jobs to cover this, or should i add a section?

Edgar Allan Pwned fucked around with this message at 15:07 on Jun 4, 2018

huhu
Feb 24, 2006

Edgar Allan Pwned posted:

http://imgur.com/dJxgyOh

ok i found a few laTex resumes you can work on online and decided to go that route.

Now it looks very empty.. I realised im completely missing the skills section from before. should I just try to be more descriptive in the jobs to cover this, or should i add a section?

You should probably get imgur working.

Edgar Allan Pwned
Apr 4, 2011

Quoth the Raven "I love the power glove. It's so bad..."
Ok, I think I fixed the error.

Shirec
Jul 29, 2009

How to cock it up, Fig. I

You can put a skills section in, I recommend below your education (other people feel free to disagree, I have it as skills, experience, education in that order in mine). I'd really do that, otherwise it's hard to see what you're proficient in.

You've got an extra bullet point underneath your degree

You've got strange capitalization all over the place (Created Automated Testing...) which I find distracting. I'd also make it a bit more punchy, you're still very sentence heavy instead of easy to read bullet points.

Overall though, a million times better than before. I'm gonna think on some stuff to give some deeper critique.

Pseudoscorpion
Jul 26, 2011


Yeah, I'd shunt Education down to the bottom of the page. There's several minor clerical things, some of which Shirec posted, but others like your date ranges are '$START to $END' on some of them, but your last one is '$START - PRESENT'.

Also, this is just aesthetics, but I don't like the 'first three letters are red' thing on your header. Your resume already looks sharp without it; it just detracts from the professionalism of it.

Grimoire
Jul 9, 2003
As ^^ said, a generic "known languages/frameworks" or "skills" section under professional experience would pad it out nicely. Education should only be at the top for academic-ish jobs (alg research scientist that requires a PhD), new grads up to 1 year, and interns. Finally if at all possible, note the $$$ impact of your work with specifity - this can be hard because the money guys hardly ever talk to jr. engineers, but "developed interface for clients" is less catchy than "developed interface for $5 mil DoD contracted application"

Edgar Allan Pwned
Apr 4, 2011

Quoth the Raven "I love the power glove. It's so bad..."
Ok third go -around.

https://imgur.com/zuNLgE8

I did notice Present and PRESENT are different. I will fix that after some more suggestions. The extracurricular activity is still on going, hence why it is current but at the bottom. Should I put it in experience? Its feels a little new for it, and I assume experience is paid, but that's probably a false assumption to have.

I did try to reword some of the sentences, and get rid of the chaotic capitalization. I'm also trying to think of more sentences to put in to describe my work. Unfortunately I don't know of any financial impact of my work. I will start drafting a cover letter for the job I would like at the local company. I've never applied to them before because I was always worried I'd totally toast it and drat any ability to try again. I think I feel more confident in my baby developer skills, and know they would probably let me re-apply. They have a few meetups I plan on attending. Should I be upfront about me wanting to apply, or should I not really mention it until I actually apply?

Star War Sex Parrot
Oct 2, 2003

I don't see projects there to support "advanced: C" in your Skills. Typically that entails systems-related (embedded, kernel-level stuff, or HPC) projects, otherwise I'd just think you're full of it. Maybe my definition of "advanced: C" skills is off base from other people, but that seems like an invitation to get destroyed by tough C questions in an interview if you're not ready for them. Do you have more projects to lend credibility to that in your Skills?

Star War Sex Parrot fucked around with this message at 17:44 on Jun 5, 2018

Edgar Allan Pwned
Apr 4, 2011

Quoth the Raven "I love the power glove. It's so bad..."
I havent done any work with Kernels/Embedded C. I guess it was the main language I used when I first started out and I used it for 2-3 years, so i interpreted my comfort with it as advanced. I will shift it to intermediate.

Adbot
ADBOT LOVES YOU

Slimy Hog
Apr 22, 2008

Is there a good rule of thumb for putting a language as beginner/intermediate/advanced on your resume?

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