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.
 
  • Locked thread
MrMoo
Sep 14, 2000

Most in the UK are ~3.5GPA (2.1) but thankfully HR don't always block lower applicants.

I'm starting to look at the jobs on Gambit NY and they are seriously :lol: How do they filter out the masses of applicants for jobs with 350-700K posted salaries? Some of the shortest job descriptions ever.

I'm starting to see less of the Boost hatred adverts, but one dufus one is still there:

quote:

The Millennium Falcon went down, and you crash landed on an unmarked planet in the Tatoo Star System. Searching for shelter, you travel with your mentors Scott Meyers and Herb Sutter, masters of the C++ force. Suddenly, a rogue destroyer droid surprises you! However, it is clearly disoriented by the poorly built Boost libraries that power its laser targeting system.
Memory leaks have disrupted its ability to lock on as it fires erratically. Its functions have been overloaded improperly and the custom allocators that power its shield have malfunctioned, and you attack at just the right time. You power up your old school Roguewave Lightsaber and slice it clean in two, but as you look into the distance you can see an army of Stormtroopers charging towards you at full speed.
Just then, An ANSI battleship flies overhead and you can’t believe your eyes as Bjarne Stroustrup jumps out and joins you as the battle for C++ supremacy begins!

If you are a C++ Application or System Developer with strong Data Structures and Algorithms, and who has solved complex problems in large scale distributed systems. The roles are at Start-ups, Tech Product Shops, Market Data Firms, Ad Server, and High Frequency Hedge Funds in NYC/CT.

MrMoo fucked around with this message at 02:47 on Jul 18, 2016

Adbot
ADBOT LOVES YOU

MrMoo
Sep 14, 2000

Sex Bumbo posted:

What the hell is this, I can't even read it.

The so called "real developers" like to reinvent the wheel a lot and for some reason have an utter hatred of the Boost C++ collection and for many years many job adverts have been trying to attract said developers. Rogue-wave offered an alternative STL implementation for most platforms before they shipped something actually useable. Similarly there is still quite a consistent hatred of std::string due to memory usage, the Qt project I believe has written their own versions of a lot of containers to reduce memory usage in KDE.

I don't know how such "developers" reacted to the parts of Boost that moved into TR1 and eventually C++11, 14, etc.

MrMoo fucked around with this message at 20:02 on Jul 18, 2016

MrMoo
Sep 14, 2000

I'm looking at four on-site coding interviews in the coming week all in startups of various descriptions :derp: I've managed to go through three languages in one coderpad screen already because I didn't want to touch a nested array of arrays of arrays in <language-of-choice>. One of them is a second on-site but with different people, only 2 hours :shrug:

MrMoo
Sep 14, 2000

Received a random call at 2pm which was an hour long tech screen before a planned one at 4:30. I do not understand how this code actually appears to produce the correct results, the calculation of maximum cost is weird. I am dangerous with algos.
Java code:
 private static int maximumCost (Vector<Job> jobs) {
     Deque<Job> running = new ArrayDeque<Job> ();
     int max_cost = 0;        
     int time = 0;
     for (int i = 0; i < jobs.size(); i++) {
        time = jobs.get(i).begin;        
        running.push (jobs.get(i));
        max_cost += jobs.get(i).cost;
            
        /* find jobs that have finished */
	    for (Iterator<Job> it = running.iterator(); it.hasNext();) {
			Job job = it.next();
            if (time > job.end) {
                max_cost -= job.cost;
				running.remove (job);
            }
        }   
     }
 
     return max_cost;
 }

MrMoo
Sep 14, 2000

Check it out: https://is.gd/OMjCsI

MrMoo
Sep 14, 2000

ShoulderDaemon posted:

Is it supposed to return the high-water-mark for total cost of running jobs at any time during the schedule?

Yes, I have three very bad options so far and they're not really getting better. The idea with this version is to walk through a (sorted) list of time events and increment the cost as each job starts and decrement as they end.

MrMoo fucked around with this message at 02:39 on Aug 13, 2016

MrMoo
Sep 14, 2000

Ok, looks a bit better now. Still seems odd I never have to do much with the begin time but as they only have to overlap for at least one time unit it works.
Java code:
 private static int maximumCost (Vector<Job> jobs) {
     Deque<Job> running = new ArrayDeque<Job> ();
     int cost = 0, max_cost = 0;        
     int time = 0;
     for (int i = 0; i < jobs.size(); i++) {
        time = jobs.get(i).begin;        
        running.push (jobs.get(i));
        cost += jobs.get(i).cost;
            
        /* find jobs that have finished */
        for (Iterator<Job> it = running.iterator(); it.hasNext();) {
            Job job = it.next();
            if (time > job.end) {
                cost -= job.cost;
                running.remove (job);
            }
        }   
        if (cost > max_cost) max_cost = cost;
     }
 
     return max_cost;
 }

MrMoo
Sep 14, 2000

Ooh, yes that brings better clarity, thanks "Linus Torvalds". As a polyglot I start with the lowest common denominator and see a big warning about invalidating the iterator on the collection on the remove(). Per the documentation that should fail with an ArrayList instead of a synchronized Vector because the modification is outside the implicit iterator of the foreach loop.

MrMoo fucked around with this message at 16:51 on Aug 13, 2016

MrMoo
Sep 14, 2000

I guess they liked it as they are lining up another interview :lol: Another company said I "crushed it", giving a JavaScript answer of all things.

Today I had a pretty quick 30 minute interview which was a weird set of fast questions on C++11 including "what is the most misfortunate feature of C++11?" idk :wtf:

I was interviewed on C++11 by a vendor of the company I am actually applying to and which are a Java house and the interviewer in question is a networking engineer :derp:

MrMoo
Sep 14, 2000

Well I don't like the lack of make_unique and that was fixed in C++14, but the implication was on a mistake in the release, I know the bits I like as they make things better.

I think the question was looking for acquire/release semantics around volatile

I use C++14 but I'm no expert on templates, more critically I say I'm not a Java developer either but this is a Java developer role, ha.

MrMoo fucked around with this message at 13:58 on Aug 16, 2016

MrMoo
Sep 14, 2000

Oh yay I have a five round interview in Philly on Thursday and another five rounder in Manhattan on Friday, and these are supposed to be small startups. One of the rounds is a debugging session which admittedly sounds pretty cool, another one slightly concerning is called a "behavioral interview".

MrMoo
Sep 14, 2000

3 × interviews in Philly, 1 included CSS questions of all things and coding in Java, another included a dynamic programming problem in C++, and another a complex dynamic programming algorithm for image analysis on a whiteboard. So I asked the CSS interviewer questions about cheesesteak :derp:

MrMoo
Sep 14, 2000

4 × interviews in NYC, some dynamic programming in Java but not to worry about the DP bit, something that appears a classic zig-zag array walk on a white board, debugging some Java AWT game-of-life app with way too many off-by-one errors, "have you experienced burdensome colleagues" question session and some chillax time at lunch. I even got an interview phone call on the train home.

A lot of interviews using a Macbook Air shared around. Someone decided to set it up with a super high resolution, non-natural scrolling, and Eclipse with the most awful and broken autocomplete popups ever. The CEO apparently dictated that the entire office is grey, grey carpets, grey walls, grey tables, no signage anywhere, at least the dining area has a nice view onto Madison Square Park.

Philly cheesesteak history is apparently: cheddar cheese, replaced with provolone as cheddar did not go well with beef, then the prodigal milk product made an appearance later.

MrMoo fucked around with this message at 14:23 on Aug 22, 2016

MrMoo
Sep 14, 2000

Yay, so the results are coming in. One tech interview said to "use any language" in a Python shop so I started with Java and changed course when the problem domain was a high level data structure, to JavaScript and finished quickly. It was clearing designed with Python in mind and I mentioned that as both Java and C++ would have been terrible choices to solve promptly. That was a belated "no".

Philly cheesesteak company says "we're going in another direction", :shrug:

MrMoo
Sep 14, 2000

A couple more interviews today, a time warp back 10 years. Seriously tenuous questions, like is this valid?
C++ code:
new A();
Will this compile and will this run in a ctor, dtor, member function, static function, const function?
C++ code:
delete this;
:bang:

The best one was, if you have a single source file app and you add this line to the top will it build and will it run?
C++ code:
#define struct

MrMoo
Sep 14, 2000

csammis posted:

Asking a candidate about the potential consequences of delete this; is a perfectly good C++ question :shrug:

A single question ok, but laboring the point in every permutation of usage is just too much. Having coding standards and following them is more acceptable than C++ rule lawyering that some developers love a bit too much. Using delete this; in a constructor is valid apparently but that does not make it not stupid.


quote:

#define struct...not sure where they might have been going with this, maybe wanting the candidate to recognize that #defines are just text replacement so if you and the files you include don't ever use the word 'struct' you'll be fine?

The interviewer was trying to replace class with struct and ask me where it would break.

MrMoo
Sep 14, 2000

hobbesmaster posted:

Then thats #define class struct
And it should always work.

The interviewer was looking for something in templates, e.g.
C++ code:
template <class T> // template argument
void qux() {
    T t;
}
Although I guess one should be able to template a struct there is probably some conditional operator that breaks.

Maybe something like nested templates:
C++ code:
template <template <typename> class Store, typename T>
struct CachedStore2 {
  Store<T> store;
  Cache<T> cache;
};

MrMoo fucked around with this message at 18:57 on Aug 23, 2016

Adbot
ADBOT LOVES YOU

MrMoo
Sep 14, 2000

Hammerite posted:

If you want to determine whether the candidate knows the difference between a class and a struct, why not ask them "what's the difference between a class and a struct?"

I was asked but then followed up with this more trivia type questions, it was really a bit tenuous. They still want to interview me which suggests there are not a lot of C++ people really looking for jobs.

  • Locked thread