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
unixbeard
Dec 29, 2004

That sounds like a good role for someone relatively new to the industry, especially if you are at a smaller shop now and have never worked in a big enterprise place. The pay can be good in finance, and they are generally well resourced so dont need to cheap out on stuff every step of the way, which can be common in smaller places.

If you have no other burning career goal, working somewhere that might be a bit mundane but will give you valuable experience and good pay is a good choice. Later on you will have a better idea of the stuff that really interests you and direction you would like to go. You will be in a better position to pursue that because you have good experience in a big complex enterprise environment, and presumably the means to sustain yourself if you need to take a break from working. The latter depends on outgrowing the "spend all my money every paycheque" stage that everyone goes through once they start making bank.

Adbot
ADBOT LOVES YOU

Good Will Hrunting
Oct 8, 2012

I changed my mind.
I'm not sorry.

Sab669 posted:

Anyways, job description: http://pastebin.com/WVfVpiBm
It's with Citigroup. I really don't give a gently caress about the finance industry, no, doesn't interest me at all and you're right, I would ideally like a position where I'd be working on a small / medium sized team with actually intelligent people. The other day I had a math problem I was unsure of how to figure out, asked my current "mentor" and his response was to iterate over the value adding 0.01 until it worked :haw:

I loosely know someone who worked at Citigroup for 2 years and now works at a way cooler, also very well paying, place in NY. It seems she got good experience there from her LinkedIn. I'd go for it.

Tunga
May 7, 2004

Grimey Drawer

Skuto posted:

So I guess you didn't end up taking a pay cut after all :)

Congrats. (Or given that you'll be doing Android: condolences)
No, you were right, my attitude was stupid. Never undervalue yourself. This experience (interviewing) taught me a lot of things:
  • I am a much better programmer than I had convinced myself that I am because my current role doesn't stretch me at all.
  • I am, as a result, worth more to a company that wants a good developer than I am to my current company even though I have a tonne of industry and product-specific knowledge here. My current place offered me 3-4k less than this new role to stay here and be a developer and then spent nine months pissing around not making it happen (and refused to give me the rise until it did).
  • A company that values what you wear more than what you do is not worth working for.
  • As soon as you start wondering if it's the right time to move on, it's probably is. I sat here for six months pondering the idea of moving and waiting to see if this company would give me the role that I wanted and honestly I should have just left as soon as I felt that way.
  • Interviews are not really all that terrifying after all because even if they go badly you just move on and look elsewhere. And the more you convince yourself that it isn't a big thing, the better they actually go because you are relaxed and natural.
  • Self-confidence goes a long way. I nearly went to this interview thinking that I just wasn't good enough for it. Instead (with a bit of help from this thread) I went there thinking that they've seen my CV and they want to meet me so they must be genuinely interested.
  • Developer roles right now are an applicant's market, so don't be terrified by the recession or whatever. There are plenty of jobs around (at least in Europe) and not enough competent developers to fill them. There's also a lot of noise that you have to get your CV through to be noticed. Having someone who can refer you is a big benefit since you can skip over those first stages, I know I was really thankful to have been able to do that because without that referral I doubt I would have got the interview when I have zero experience with Android.
Regarding working in a role where you contribute to revenue, I can vouch for that too. My role has always been somewhere between the two and the response and interest that you get to each kind of project is night and day. Twice I built someone an internal tool to make their job easier and instead of actually using it they just went and sold it to the customer. Without asking me. That's when I stopped building nice things for people and just built them stuff to sell instead. That's all they cared about.

Bognar
Aug 4, 2011

I am the queen of France
Hot Rope Guy

Tunga posted:

  • A company that values what you wear more than what you do is not worth working for.

Unless, of course, you like wearing suits and lazing around all day.

Stanos
Sep 22, 2009

The best 57 in hockey.

NovemberMike posted:

Wow. I know a company in Missouri that's hiring at ~$70k for fresh out of school programmers and they trend towards a 30ish hour work week and nice benefits. What's letting that job get away with $36k?

Penalties: Living in Missouri. Although that is a fantastic salary for fresh blood out here.

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome

HondaCivet posted:

Why is that? Difference in working conditions/pay/etc.?

which do you like more, things that cost you money or things that make you money?

Good Will Hrunting
Oct 8, 2012

I changed my mind.
I'm not sorry.
What if you work for a consulting company and you make them money by building internal tools for other companies that pay your parent company :razz:

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome

Good Will Hrunting posted:

What if you work for a consulting company and you make them money by building internal tools for other companies that pay your parent company :razz:

i am unable to follow the chain of who pays you based on your post.

the general rule is: make money for the person who signs your paychecks

Z-Bo
Jul 2, 2005
more like z-butt

Good Will Hrunting posted:

What if you work for a consulting company and you make them money by building internal tools for other companies that pay your parent company :razz:

If you work for a consulting company, the way to advancement is politics and knowing the industry those companies work in incredibly well. When I worked in finance, the reference data team absolutely loved me, to the point where I got to overstay my welcome by 3 months while I looked for a better job. That's pretty rare, but I did save the financial institution millions in SEC fines several times by my acute awareness of design flaws early in the design process.

There are some consulting companies which are extremely high end consulting companies, and they do have strong technical career paths, but they are very rare. They're much more common in Europe than in the US.

For high-tech finance, if you want to learn a lot, you can just look at InfoQ. Just in the past few days they have had a ton of great talks about how to deal with financial solutions.

Good Will Hrunting
Oct 8, 2012

I changed my mind.
I'm not sorry.
It's mostly politics. The partners have clashing agendas to make the company money, and will staff employees on the first project they can find. I'm on a project that's a terrible fit for me - I've never worked with C#, WPF, or this Caliburn framework - and it's taking a serious toll on my mental and physical well-being. I'm slowly learning, but I feel like I'm pulling loving teeth when I ask the developers above me questions. I get this constant vibe that they know I'm a poor fit and that I shouldn't be there, like I'm just getting in the way. One isn't happy with management himself. Being on your first assignment with someone who is already disgruntled sucks. It's an extremely negative experience for my first job out of school.

I was actually told by the partner who staffed me here "It doesn't matter if you accomplish anything, all that matters is that you convince them you're smart enough to bring on long-term."

Good Will Hrunting fucked around with this message at 18:19 on Aug 15, 2013

Pseudo-God
Mar 13, 2006

I just love oranges!
Does anyone else think that this interview question is bullshit (this is C++):
code:
int a=5,b;
b=a++ + ++a + ++a;
cout << b << endl;
Turns out it's 21. Who would willingly write such code, and why would you test it?
Also, I got an honest-to-god fizzbuzz as well.

Sab669
Sep 24, 2009

What role were you interviewing for? Reading over it the first time I did get 21, but honestly it probably would've tripped me up on the spot just because it's so ugly.
And what's wrong with FizzBuzz for a junior interview? I've gotten it once during an internship interview and once for a large company.

astr0man
Feb 21, 2007

hollyeo deuroga

Pseudo-God posted:

Does anyone else think that this interview question is bullshit (this is C++):

Yeah I got 21 too :smug:. It's a dumb interview question, but I'm assuming the point of it is to make sure you understand the difference between prefix ++ and postfix ++. But yeah it's a dumb question.

piratepilates
Mar 28, 2004

So I will learn to live with it. Because I can live with it. I can live with it.



Pseudo-God posted:

Does anyone else think that this interview question is bullshit (this is C++):
code:
int a=5,b;
b=a++ + ++a + ++a;
cout << b << endl;
Turns out it's 21. Who would willingly write such code, and why would you test it?
Also, I got an honest-to-god fizzbuzz as well.

That depends on if they expect everyone to get it right, I understand what they're going for and you can see how a person thinks about the statement but if this is for a junior developer position it's also possible that someone just might not be exposed to how post and pre increment operators differ.

What I don't understand is why it's 21, if it's evaluated right to left wouldn't it be (a++ + (++a + ++a)) which is ((7) + ((7) + (6)) ) =20, and if it's evaluated left to right it's (((a++) + ++a) + ++a) which is (((5) + (7) ) + (8)) = 20. Unless I'm missing something or I'm really dumb which I probably am.

piratepilates fucked around with this message at 21:49 on Aug 15, 2013

Sab669
Sep 24, 2009

piratepilates posted:

That depends on if they expect everyone to get it right, I understand what they're going for and you can see how a person thinks about the statement but if this is for a junior developer position it's also possible that someone just might not be exposed to how post and pre increment operators differ.

What I don't understand is why it's 21, if it's evaluated right to left wouldn't it be (a++ + (++a + ++a)) which is ((7) + ((7) + (6)) ) =20, and if it's evaluated left to right it's ((a++ + (++a)) + ++a) which is (((5) + (7) ) + (8)) = 20. Unless I'm missing something or I'm really dumb which I probably am.

b=a++ + ++a + ++a;

so B is 5, but now A is 6
Then you're adding 7 (to 5, total 12) then increase A to 8
Then you add 9 (to 12, total 21) and increase A again.

But I guess I went left to right :saddowns:

astr0man
Feb 21, 2007

hollyeo deuroga
edit: a bunch of stuff that was wrong!

astr0man fucked around with this message at 22:19 on Aug 15, 2013

Cicero
Dec 17, 2003

Jumpjet, melta, jumpjet. Repeat for ten minutes or until victory is assured.
There are way less terrible ways to check if someone knows the difference between postfix and prefix.

Pseudo-God
Mar 13, 2006

I just love oranges!
I really wasn't expecting FizzBuzz, I thought it was just an internet urban legend. Anyway, I did good on the other questions, so I am hopeful I'll get accepted.

Janitor Prime
Jan 22, 2004

PC LOAD LETTER

What da fuck does that mean

Fun Shoe

piratepilates posted:

What I don't understand is why it's 21, if it's evaluated right to left wouldn't it be (a++ + (++a + ++a)) which is ((7) + ((7) + (6)) ) =20, and if it's evaluated left to right it's (((a++) + ++a) + ++a) which is (((5) + (7) ) + (8)) = 20. Unless I'm missing something or I'm really dumb which I probably am.

This is how I reasoned about it, can't figure out how you get 21 :saddowns:

Che Delilas
Nov 23, 2009
FREE TIBET WEED

Hard NOP Life posted:

This is how I reasoned about it, can't figure out how you get 21 :saddowns:

You don't, everyone who got 21 was adding an extra 1 somewhere.

Pseudo-God
Mar 13, 2006

I just love oranges!
I checked online here:
http://www.compileonline.com/compile_cpp_online.php
and I got 19. gently caress this problem, like others said, this is one of the worst ways to check understanding of pre and post increment.

Sab669
Sep 24, 2009

Che Delilas posted:

You don't, everyone who got 21 was adding an extra 1 somewhere.

...Hmm...So we have :argh:

astr0man
Feb 21, 2007

hollyeo deuroga
C++ code:
#include <stdio.h>

int main()
{
    int a = 5;
    int b = a++ + ++a + ++a;

    printf("%d\n", b);

    return 0;
}
code:
$ ./a.out
19
So we were all wrong :v:

efb;

Xerophyte
Mar 17, 2008

This space intentionally left blank

Pseudo-God posted:

I checked online here:
http://www.compileonline.com/compile_cpp_online.php
and I got 19. gently caress this problem, like others said, this is one of the worst ways to check understanding of pre and post increment.

That would be because it isn't -- or at least shouldn't be -- a way to check your understanding of pre- and post increment. Quoth the standard: "between the previous and next sequence point a scalar object shall have its stored value modified at most once by the evaluation of an expression." This expression is undefined behavior. It's also worth mentioning that while C++ does guarantee that addition is parsed as left-to-right associative, there are no guarantees whatsoever on the order of evaluation of operator parameters.

E: To take a simplest "failing" example,
C++ code:
int main() {
  int i = 5;
  printf( "%i\n", ++i + ++i );
}
prints "14" compiled with VS2012. No modifying a variable more than once per expression.

Xerophyte fucked around with this message at 22:24 on Aug 15, 2013

Sab669
Sep 24, 2009

Got 20 in C# :shrug:

eh, meant to edit my last post..

Safe and Secure!
Jun 14, 2008

OFFICIAL SA THREAD RUINER
SPRING 2013
b = a++ + ++a + ++a; // a = 5
b = 5 + ++aa + ++a; // a = 6
b = 5 + 7 + ++a // a = 7
b = 5 + 7 + 8 // a = 8

b = 20

E: So it's supposed to make you go "hey, this isn't defined!"?

Che Delilas
Nov 23, 2009
FREE TIBET WEED
I feel like this topic should go into the coding horrors thread.

Safe and Secure! posted:

E: So it's supposed to make you go "hey, this isn't defined!"?

This question is probably just a stupid way of checking whether a candidate knows the difference between pre- and post-fix. Unless the opening is for someone with a PHD and 15 years of experience in C++ specifically, an interviewer looking for "undefined" as the right answer is insufferably up his own rear end.

Che Delilas fucked around with this message at 22:27 on Aug 15, 2013

Bognar
Aug 4, 2011

I am the queen of France
Hot Rope Guy
The answer is that it's undefined in C++. The behavior depends on the implementation of the compiler. In C++ the increment's assignment can happen at any time, as long as it does happen by the end of the statement.

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Pseudo-God posted:

I checked online here:
http://www.compileonline.com/compile_cpp_online.php
and I got 19. gently caress this problem, like others said, this is one of the worst ways to check understanding of pre and post increment.

It's me, I'm the person relying on non-standard insertions of sequence points.

http://c-faq.com/expr/seqpoints.html

JawnV6
Jul 4, 2004

So hot ...

piratepilates posted:

That depends on if they expect everyone to get it right, I understand what they're going for and you can see how a person thinks about the statement but if this is for a junior developer position it's also possible that someone just might not be exposed to how post and pre increment operators differ.

Yeah if it's a binary yes/no "Did you get (21|19)" then it's a lovely question. If it's an open question that lets you express what you know about pre- and post- operators and think out loud as you trace through code, it's not as lovely.

Chosen
Jul 11, 2002
Vibrates when provoked.
Well, I've been extended an offer for a Software Engineer job for a demanding company in Chicago. This will be my first full-time pure development job -- I've developed tons of small internal tools as a SysAdmin and Automation/QA Engineer, but nothing I've had to maintain for more than a few months, and certainly nothing I've ever collaborated on. I've basically been a one-man shop for almost everything I've ever worked on, so I've never had to go through a painful merge, for example.

I feel competent technically, but I have apprehension about diving in on large, high-volume systems in a collaborative atmosphere. Anyone have tips on how to approach this situation? I was thinking about offering to help increase test coverage, or maybe stay on bug-fix duty for a while if possible, just to learn the ropes.

Bonus example resume that got me the job: https://www.dropbox.com/s/wg5q4rj87nppc78/AnonymousResume.pdf

UnfurledSails
Sep 1, 2011

So wait I keep finding 20 am I going insane?

Pseudo-God
Mar 13, 2006

I just love oranges!
It's undefined behavior, who knows what you may get!

Janitor Prime
Jan 22, 2004

PC LOAD LETTER

What da fuck does that mean

Fun Shoe
In java you get 20

Krenzo
Nov 10, 2004

UnfurledSails posted:

...am I going insane?

That's undefined. :mmmhmm:

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Hard NOP Life posted:

In java you get 20

How is this not a Shaggar post?

Che Delilas
Nov 23, 2009
FREE TIBET WEED

Chosen posted:

Well, I've been extended an offer for a Software Engineer job for a demanding company in Chicago. This will be my first full-time pure development job -- I've developed tons of small internal tools as a SysAdmin and Automation/QA Engineer, but nothing I've had to maintain for more than a few months, and certainly nothing I've ever collaborated on. I've basically been a one-man shop for almost everything I've ever worked on, so I've never had to go through a painful merge, for example.

I feel competent technically, but I have apprehension about diving in on large, high-volume systems in a collaborative atmosphere. Anyone have tips on how to approach this situation? I was thinking about offering to help increase test coverage, or maybe stay on bug-fix duty for a while if possible, just to learn the ropes.

Bonus example resume that got me the job: https://www.dropbox.com/s/wg5q4rj87nppc78/AnonymousResume.pdf

I'm going to presume that the company knew that you've been flying solo until now when they made the offer; presumably they know that you don't have the experience with formal development processes and that that's going to be part of the overhead in getting you up to speed. Same goes for collaborations on huge codebases. Every company is going to do things a little differently and it's going to take time for new hires to figure everything out.

I wouldn't worry too much about making suggestions either. I'm sure they will assign you to a project and duties, or at least give you a few choices. They aren't going to hire you and then have nothing for you to work on right out of the gate (unless, you know, their bureaucracy fucks up and your computer isn't there the day you start or something. Cough.)

Mostly just stop worrying. They are hiring you, which means they think you can do the job. The only reason you are unsure is because you're aware of how obscenely much you don't know compared to what you do know. That's normal for smart people. Just don't be afraid to ask questions, and you'll be fine.

Cicero
Dec 17, 2003

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

UnfurledSails posted:

So wait I keep finding 20 am I going insane?
20 is actually what I thought it would be.

Chosen posted:

Well, I've been extended an offer for a Software Engineer job for a demanding company in Chicago. This will be my first full-time pure development job -- I've developed tons of small internal tools as a SysAdmin and Automation/QA Engineer, but nothing I've had to maintain for more than a few months, and certainly nothing I've ever collaborated on. I've basically been a one-man shop for almost everything I've ever worked on, so I've never had to go through a painful merge, for example.

I feel competent technically, but I have apprehension about diving in on large, high-volume systems in a collaborative atmosphere. Anyone have tips on how to approach this situation? I was thinking about offering to help increase test coverage, or maybe stay on bug-fix duty for a while if possible, just to learn the ropes.

Bonus example resume that got me the job: https://www.dropbox.com/s/wg5q4rj87nppc78/AnonymousResume.pdf
Diving into a large codebase is extremely painful. There's no way around it, as extensive documentation of one is basically an intractable human problem. My recommendations are to ask a more senior developer to give you at least a high-level tour of the parts of the codebase that are relevant to you, and that as you get confused or want to ask questions about parts of the codebase you're looking at, keep a running list so you can ask your mentor/team in batches, rather than constant individual questions. Take notes on the answers you get, or you'll probably regret it later.

Oh yeah, and start getting comfortable with ambiguity and black boxes.

no_funeral
Jul 4, 2004

why
Another one I was presented with today(which thankfully only took me 5 minutes to figure out.) This was given in an interview where the interviewer wrote the code, and asked the interviewee to simply name the function.

code:
uint _____________(uint x){
  uint i = 0;
  while(x){
    x &= (x-1);
    i++;
  }
  return i;
}
It counts bits.. Give it 13(1101), becomes 12(1100), becomes 8(1000), becomes 0, returns 3(number of 1's in the input.) ... I guess..

Adbot
ADBOT LOVES YOU

greatZebu
Aug 29, 2004

Sitting Bull posted:

Another one I was presented with today(which thankfully only took me 5 minutes to figure out.) This was given in an interview where the interviewer wrote the code, and asked the interviewee to simply name the function.

code:
uint _____________(uint x){
  uint i = 0;
  while(x){
    x &= (x-1);
    i++;
  }
  return i;
}
It counts bits.. Give it 13(1101), becomes 12(1100), becomes 8(1000), becomes 0, returns 3(number of 1's in the input.) ... I guess..

Weirdly I got asked a very similar question when I was interviewing last year (they were asking for the implementation given a description if I remember right). I was already familiar with the technique because it's commonly used in chess programs to count the pieces on bitboards. The common name for it is popcnt; some processors will do it in hardware.

greatZebu fucked around with this message at 07:52 on Aug 16, 2013

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