Oh hey, I've been in two of FMWC's live competitions (though not this one) and their regular offline almost-monthly competitions.
VBA is allowed - I've used it but no one else seems too. Power Query and LET/LAMBDA is a little more common and named ranges (variables) even more common.
It's fun but going into the challenge blind is so stressful. What if your brain goes blank and you can't figure out where to begin? But there should be another Open live tournament this November or so with cash prizes, check it out.
> What if your brain goes blank and you can't figure out where to begin?
Hah, this is me with many interview questions, because you rarely ever get something like: "How would make a RESTful API to allow retrieving and changing some data from a PostgreSQL DB", instead it's just Leetcode problems that have (comparatively) little to do with the day to day, especially when you're expected to know, not look up the solution like you would normally. So there's not a lot that you can do, but just familiarize yourself with algorithms and ways to solve common problems and write plenty of code. :)
I imagine it's quite a lot like that in most specialized domains, be it solving physics or maths problems, or even using Excel for interesting use cases.
Coming up with algorithms on the spot isn't a viable strategy for technical interviews any more, even if you're a super-genius. Here's a question that the page author claims took Donald Knuth 24 hours to solve [1], which is classified on Leetcode as a Medium(!) difficulty question [2]. Leetcode Medium questions are typically the cut-off point for most FAANG-tier interview questions--and while this is a hard medium, I know someone who got a variation of it at a Meta interview, and was expected to solve it in 30 minutes. So unless you're 48 times faster at inferring algorithms than one of the best algorists in the world, memorizing tricks is the game you have to play if you want a FAANG-adjacent job!
Of course, then the natural reaction is "if your hiring process would pass on Donald Knuth, your hiring process is broken," which is absolutely true, already known, and (apparently) deemed acceptable.
That problem is a terrible interview question, mainly because it's completely trivial with O(n) memory (just use a Set), but requires a different branch of comp sci at O(1).
Personally I also feel that any question that needs an O(1) memory when you _start with an array_ is disingenuous. O(1) memory was used for things like tape storage, where N was some huge external storage. If you already have an array, then the chance you don't have double that memory are dibcus.
Not sure I agree. It's very simple if you look at what's "wrong" with the input: it has a duplicated number, which means there's a "right" version of it without. That right version is just the count from 1->n. Once you see that, you can see that all you have to do is sum each list and calculate the difference.
It’s not, on Leetcode. I submitted it as an answer and it worked. In the case where the number is repeated more than once (m times), you have an array of n+m elements. Divide the sum by m, subtract, problem solved.
In that case, their test suite doesn’t cover all relevant cases. Consider nums = [1,1,1,1,4]: There are 5 elements, so n=4, and all elements are within the range [1,4]; only the 1 is duplicated. This fulfills all of the listed requirements.
The actual sum is 8, and the 4th triangular number is 10, so the duplicated number according to your algorithm must be -2 (or some fraction thereof, depending on how you calculate m).
The LeetCode version doesn't require linear time, and caps the number of elements to 10^5, so the brute-force O(n^2) time solution seems perfectly acceptable.
I recently did the Foobar with Google challenge and yeah, I feel this.
Question 4b was a Max Flow problem. And question 5 was Polya's enumeration theorem.
With both of those, I was not aware of the algorithms beforehand. I understood what 4b was asking, "Ok, I need to find out the bottlenecks and figure out how many bunnies I can feed through the maze at once." And 5 was more incremental. "This is a matrix.", "Ok, I know if I know the number of distinct row mixes and column mixes, I could also maybe figure out how many distinct matrix configurations I could make", etc, which led me to Burnside's lemma, which led me to Polya's enumeration theorem.
It took me a long while to make all those increments however. Given 30 - 50 minutes, I doubt I'd be able to even implement Polya in the blind.
FAANGs would pass on Donald Knuth, their entire process is made to find devoted soldiers who will memorize every algorithm and sit through 10 interviews and are too naive to think for themselves. Corps want to say "Do this, fast, using what you know" and the candidate says "Right away!". Knuth on the other hand would say "Hold up, there might be a better way, screw the deadline, I'll find it". Corps don't want that.
I just looked at this for 30 seconds, do you just XOR everything together? Then you could XOR it with all the numbers 1 to n again to get just the duplicate number, as every number would appear in the XOR twice except the duplicate number which would appear once.
Edit: I misread the problem :D I initially read it as every number appears once and one number appears twice, but alas it's not so simple :D
Yeah, sadly you're not guaranteed some of the things that are needed for this to work. I defo believe the story that it took Knuth a day to figure this out, although when you see the answer it's pretty easy to understand.
With only one repeated number, you can sum the array and subtract 1+…+n to get the answer. Still an annoying trick you wouldn’t expect in an algorithm problem. Though the leetcode version also doesn’t require linear time, so I guess you could just iterate and compare in quadratic time to solve it?
Edit: or even easier, because I didn't read the question properly the first time, sum all the numbers from 1 to n (use Euler's trick for extra points) and sum your array and take the difference.
After solving problems like that for years, eventually almost anyone will develop such an ability, like one also would in regards to DB schema design, system design and picking architectures/design patterns.
The problem is that the majority of people simply don't spend time on issues like that, either in their day jobs or weekends/evenings. The closest you can get to things like that if you work in pretty boring domains, is having to pick between a Set or a Map for some data structure in the app. Or avoiding things like N+1 issues which have relatively little to do with algorithms and more in regards to how frameworks implement things.
You can customize your quick access toolbar. I've never seen a rule against 3rd party add-ins so I'm not sure about those. Keyboard shortcuts and lookup/logic/date/math/dynamic array functions are key along with data tables if you want to try and solve the challenge in one go.
ASAP Utilities was my weapon of choice when I was deep in excel data extraction work. But I think that should count as "auto aim" in a sport setting...
They really would. I feel like kaggle is mostly teams slowly grinding for very small incremental improvements over each other. Adding a time component would really sort the wheat from the chaff.
Metrics for scoring: error/cost/fitness, time to solution (t), dollars to solution ($), resources in terms of {carbon, kWh, USD,}, costs in terms of costed opcodes,
Whether there's a logically plausible causal explanation (for quickly-discovered probably just associative relations)
There are many ways to do ~no-code GUI analysis with [Jupyter] notebooks (e.g. with the VSCode jupyter notebook support) pretty quickly; with some pointing and clicking of the mouse if you please.
Any good recommendations for starting points to learn how to work with these? I'm not a programmer, but do have programming ability, and use excel all the time. Having a more flexible system with better inputs (tying in web scraping, data pipelines, etc) sounds like a great idea.
I watched one of these a few months ago - VBA was allowed, but the whole thing was very clearly about Excel specifically and all of the competitors came from the finance world. Honestly, I saw way less cool use of formulas than I was expecting - a ton of competitors had an approach of "make a big data table and use Goal Seek". Maybe the All-Star is different?
I work in finance, big spreadsheets. These guys are doing more puzzles that are easy to score. Its interesting but the guys who maintain very large dynamic models i find more impressive. Can your model survive the abuse of a 9 month m&a transaction?
Considering sports like 'Battle Bots' (A RC robot fighting event) have viewership beyond Engineers, I would assume 'Excel sports' has its own appeal considering its one of the widely used software for a long time.
But I can't dismiss the feeling that, Some assistant to an accountant in a scrappy building somewhere who has never heard of such event is actually extremely talented with excel and could win the championship if they participated.
I would assume you have to use stock. Excel/Office ships with a VBA IDE that you get to with alt-F11 (and I think by viewing macro source through the menus.)
There's a macro recorder, but the code it generates isn't meant to be efficient or readable.
VBA is easy, you can just google it. It's very bad, but once you know it well, and if you stick to a functional style, you can do what you want. For Excel, get to know Range objects well, and to wring some polymorphism out of VBA, learn interfaces.
I've seen basically Mario in VBA in Excel, so I know it's real. "Show formulas" && [VBA, JS] vs an app with test coverage.
Are unit and/or functional automated tests possible with VBA; for software quality and data quality?
GSheets has Apps Script; which is JS, so standard JS patterns work. It looks like Excel online can run but cannot edit VBA macros; and Excel online has a JS API, too.
This person definitely worked at a tech company where as soon as someone has to wait more than 2 seconds they start histrionically marking tickets as blockers.
Every $BIG_BANK still uses humongous Excel spreadsheets and xll add-ins for the heavy lifting. It is no longer a right of passage to learn arcane techniques for calling C, C++, or even Fortran from Excel. There are several good libraries to make that easy, including one I wrote: https://github.com/xlladdins/xll.
Only the ancient Excel C SDK allows you to get a pointer to 2-dimensional arrays of doubles in Excel. Every other API requires the data to be copied out and copied back in again.
I'm more of a fan of EVE than I am of Excel, but I think competitive Excel would be more interesting, if not as visually stimulating. Competitive Excel shows off quick problem solving, EVE battles are really slow and dull if you're not invested in them
Not the most outlandish thing I've seen on ESPN. I remember during the early days of the pandemic tuning in and seeing the US cherry pit spitting championship.
Back in college, me and my friend hosted a text editing tournament, where you would compete to see how could edit a text file the quickest, thereby proving which text editor is unquestionably the best (and which one sucks the most =P).
I'd be very interested in watching a live time-limited code golf competition, but after a cursory search I couldn't find anything. I guess it's too niche of a sport still.
Fascinating. This makes me wonder. How legit can things get with LO Calc? That's been under heavy development. Or Calligra Sheets, Gnumeric, sc-im, Pyspread. Like what's really power-user stuff in those worlds. What level of business logic, what level of gamedev, what level of appdev, etc.
Just learned about pyspread[0] from your comment, it's surprisingly powerful. I'm well-versed in Python and in Excel, and I'm already more comfortable in pyspread than in Excel after 10 minutes.
I give ESPN credit for morphing itself past being the pioneering sports channel.
It's become kind of a joke, but at least it's moved outside the niche. Maybe someday it'll find relevancy again. For now, there's no way I'd pay for ESPN.
I don't think that's true at all - it seems like Finance, Fashion, and Politics people are the richest in general, with geeks coming tied for 3rd or even 4th overall. Of the richest (known) 25 in the world [1], only 4 or 5 can be said to be "nerds", with some financiers and magnates in the tech industry doing fairly well also. The rest are all financiers, inheritors, politicians, etc.
I think you are using a pretty narrow definition of the word “geek” - and I would probably classify 7 of the top 10 of having some level of “geekiness”.
They are just different kinds of geek - Warren Buffett is a geek, just a “securities-pricing geek” rather than a “tech-geek”
You are talking about private wealth held in things like bank accounts, etc. These are always subordinate to the actual sovereign owners of the property. I think those who can ultimately control final disposition of resources are far richer.
The Medicis actually ran Florence. If you're wealthy in Russia or China or the USA today, you don't actually get to decide what happens with your biggest assets, push comes to shove, that's up to Putin or Xi or the CIA.
Do you mean programming competitions? They were a huge thing for me in high school, and that was 20 years ago. I have to imagine they’re an even bigger thing now.
What makes horses special. If you can find some eccentric millionaire who's willing to stump up prize money for any sort of race, crowds and gamblers alike will start to take things seriously. I have been to dachshund races. People will bet on anything.
Seen in a bathroom in an Australian bar/grill: A poster with two flies.
Fly 1: "Bet you I can run up this wall faster than you."
Fly 2: "Bet you you can't."
At the bottom: "They say that Australians will bet on anything, even two flies running up a wall. If you have a gambling problem, call <helpline number>."
Also seen on that same bathroom wall: A poster reading "Win a trip for two to Las Vegas".
For sharing and viewing, yes. For anything else including speed, macros, options, keyboard shortcuts, MS Excel kills anything. Google is for convenience, I wouldn't even consider it a professional software at its current level.
Yes, that's a crazy thing to say without explaination.
I think Excel will be unbeatable as an offline spreadsheet application for many years, if a competitor ever appears.
Now, if what you're looking for is not offline spreadsheets, but a tabular interface that can be messed around in JS, with an API integration, Sheets is an excellent product that fills Excel's niche but in a connected system.
disclaimer: I haven't touched much of office 365's online part, but am under the impression scripting with cloud services is not the direction MS is going for.
>scripting with cloud services is not the direction MS is going for.
It absofuckinglutely is the direction they're going for. MS Flow, Teams and Sharepoint integration, upgrades to simultaneous-editing-documents-in-the-browser... the main problem is that they're trying to go too big too quickly which is causing hiccups especially from MS Teams, and also that anyone that doesn't use Excel seriously is already on Google Sheets with no real reason to migrate.
Excel has had a JavaScript api since at least 2016. Excel online definitely has the ability to integrate with online services, although at that point you really want something like Power Automate. See also Microsoft Graph, which has an Excel API as well.
Totally agree that Sheets is better as a quick and dirty web-based spreadsheet app. I’d still prefer something like Airtable for most of the use cases you outlined, but Sheets is absolutely a good quick and dirty tool.
But once you go beyond that, all, as we’re both saying, it’s not even a conversation. And anyone who is trying to argue against Excel on its merits as a power app (no pun intended) is on something or not arguing in good faith.
(O365 has improved a lot but I still think GSuite feels faster. But I don’t hate Office Online or whatever it is called.)
Everyone leaves, they have no partners and it’s all run by college grads?
Just thinking through the premise of: Big4 folks arent capable of high level thinking that’s why they leave for “greener pastures”, implies that the “greener pasture” employees are less competent than the Big4. Otherwise, why would they hire folks from Big4?
No professional organization that depends on Tool A to make things with real consequences should be using Tool B? /pedantry
An argument could be made that no organization should use Excel/Sheets for anything with "real" consequences.
I agree that Excel is stronger than Sheets in some regards, but Sheets with App Script and a little JavaScript knowledge goes a loooong way towards empowering people to build useful things collaboratively.
SQL and excel are pretty different tools. When used as a database, SQL is far superior to Excel. When used for calculation, SQL isn't even particularly good:
- Depending on which implementation you're using, it has a pretty anemic set of built-in functions.
- Building calculations on top of other calculations is trivially easy in Excel and basically not available in SQL.
- SQL forces you into a tabular mindset - Excel is often used that way but it's more freeform and you can have individual calculations that don't map to a particular schema.
- Excel has much better UX in terms of visually representing what you're building as you build it, where SQL doesn't have any real interactivity in terms of building queries.
Your product does look cool, but I think it's very much addressing specifically the "Excel / CSV as database" use case and less the analysis side.
It's only dead when Microsoft thinks they can make more money on Excel being an e-sport, and start changing it in a way that helps with e-sports but annoys normal users.
I'd like any readers of this thread to know that there was once a million dollar Farming Simulator tournament. The competition was haybale stacking. I always found that hilarious
VBA is allowed - I've used it but no one else seems too. Power Query and LET/LAMBDA is a little more common and named ranges (variables) even more common.
It's fun but going into the challenge blind is so stressful. What if your brain goes blank and you can't figure out where to begin? But there should be another Open live tournament this November or so with cash prizes, check it out.