It's all really just basic calculus, with a couple nifty tricks layered on top:
1) Create a bunch of variables and initialize them to random values. We're going to add and multiply these variables. The specific way that they're added and multiplied doesn't matter so much, though it turns out in practice that certain "architectures" of addition and multiplication patterns are better than others. But the key point is that it's just addition and multiplication.
2) Take some input, or a bunch of numbers that convey properties of some object, say a house (think square feet, number of bedrooms, number of bathrooms, etc) and add/multiply them into the set of variables we created in step 1. Once we plug and chug through all the additions and multiplications, we get a number. This is the output. At first this number will be random, because we initialized all our variables to random numbers. Measure how far the output is from the expected value corresponding to the given inputs (say, purchase price of the house). This is the error or "loss". In the case of purchase price, we can just subtract the predicted price from the expected price (and then square it, to make the calculus easier).
3) Now, since all we're doing is adding and multiplying, it's very straight-forward to set up a calculus problem that minimizes the error of the output with respect to our variables. The number of multiplication/addition steps doesn't even matter, since we have the chain rule. It turns out this is very powerful: it gives us a procedure to minimize the error of our system of variables (i.e. model), by iteratively "nudging" the variables according to how they affect the "error" of the output. The iterative nudging is what we call "learning". At the end of the procedure, rather than producing random outputs, the model will produce predictions of house prices that correlate with the distribution input square footage, bedrooms, bathrooms, etc. we saw in the training set.
In a sense, ML and AI are really just the next logical step of calculus once we have big data and computational capacity.
Having "extremely basic understanding" of prime numbers immediately at one's command is important for approximately 0% of software engineering jobs. If you instant-fail a candidate for this, it says a lot more about you and your organization than the candidate.
Approx 0% of devs need to know what the earth is, but from lots of interviews I've given I've found consistent correlation between lack of basic knowledge and lack of ability to solve many things. It was so strong we found it much more cost effective to cut people early that didn't know at least a few of some standard knowledge items.
This is some really good advice here.
It's always a good idea to throw out all candidates that can't immediately recall what the first theoretical result of the rest mass of a Higgs boson was in the first paper describing was. Basic knowledge like this just correlates so well with ability to make proper decisions in API architecture.
I'd also save time and money cutting people that read as poorly as you're demonstrating.
Try actually measuring basic knowledge with competency at programming before thinking your opinion is better than measured data. Peer reviewed research finds similar results [1].
And yes, we tested all this carefully before enacting it. Interviews cost time and money, so giving 100% on every candidate despite quick signals is a waste of time and money that would be better spent on other candidates. If you want the best outcome then you allocate scarce resources based on expected returns, not on unfounded beliefs.
You probably do not have a child of 7 years old because they do not know at that age what is a prime number.
Second, basic math still that you never or rarely use or with very large time between usage might get rusty. You may understand the concept but not find the optimal solution. The way you are responding here shows quite a lot about how you are short sighted by instant-failing someone with a single question instead of trying to asses the whole person as much as you can. On you side, you are wasting opportunity to have a great person that could be a key player in your team by bringing other set of skill on the table.
> You probably do not have a child of 7 years old because they do not know at that age what is a prime number.
it's part of the curriculum for children of this age where I grew up (I did check)
> The way you are responding here shows quite a lot about how you are short sighted by instant-failing someone with a single question instead of trying to asses the whole person as much as you can. On you side, you are wasting opportunity to have a great person that could be a key player in your team by bringing other set of skill on the table.
it may also be the case that I have more in depth knowledge about the roles that I've interviewed candidates for
most recently: hiring people to work for quants
not instantly knowing that even numbers (other than 2) are not prime is a very strong signal
You're not testing for "basic math skills" here. What you're testing for is more like "immediately retrieves an irrelevant math fact after many years of having no need to think about it."
Look, if you think this sort of thing allows you to identify great candidates, good for you. But in my experience, not only is this kind of practice stupid on its face, but it leads to engineering orgs packed with people who are good at memorizing trivia but terrible at solving real problems.
I think the key problem here is that is is a bad programming question. If you know anything about prime numbers then coming up with an answer is trivial. If you expect a more optimized solution, then you are really only gauging the interviewee’s understanding of prime numbers. So effectively the interview is more about mathematics than it is about programming or problem solving.
You happen to remember a particular piece of knowledge, so you project that expectation onto others. Theory of mind.
> yes, we expect professional software developers to have basic maths skills
Skill != knowledge. "What is a prime number" can be looked up and understood by any competent programmer in <5 minutes.
> "what is a prime number" is taught to 7 year olds, it's not vector calculus
Then it's reasonable to expect that an interviewee would be able to learn it as well, given the same resources. It does not however follow that an interviewee would inherently have that knowledge, just because 7 year olds are taught it.
Bottom line is, you're making too many assumptions about complete strangers.
If they know "prime number" is some technical term to look up. They might confuse it with amazon prime or anything else depending on context. You waste time explaining, they get indignant they are supposed to coding not do maths, complete mess.
"There’s a lot of collaboration and spontaneous connection that happens in hallways and kitchenettes."
I've seen this idea repeated many times, but in over 20 years in the tech industry, I've never once seen a meaningful collaboration spring up in a kitchenette or hallway. It's invariably "how was your weekend?" fare. Don't get me wrong, there's value in connecting that way, but it's never the sort of thing that directly leads to any of the productivity gain that the anti-remote crowd would like you to believe.
I scored most (if not all) of my career-defining opportunities from hallway convos after a meeting, or chatting while waiting for coffee to brew, so YMMV.
So we should require that everyone be in an office, so that people like you can get their career-defining opportunities? Maybe many of us would be fine making that trade-off: fewer opportunities for career-defining opportunities in exchange for the elimination of a commute, more-comfortable working arrangements, and a much more flexible work schedule.
Not everything in life is about career advancement.
I think people who wants to work from home should be able to. I'm doing hybrid personally as well now, it's great for keeping my chronic pain under control. And I enjoy coming in couple days a week to a quieter office (as lots are doing hybrid/mixed wfh as well).
Internet has conditioned us to think that people can only have extreme beliefs, and any disagreement means their opinion must be the polar extreme opposite of mine. I can simultaneously appreciate opportunities I've got from socializing with people in a fully-WFO setting while also appreciating benefits of WFH ¯\_(ツ)_/¯
Why go off one example and pretend it's the whole topic? They were just saying it's easily possible to have meaningful conversations, as a counter to the previous comment.
The problem is that for all these alleged career-defining opportunities to happen, you need a bunch of people in an office. That means that people need to be required to go to an office.
I explicitly did not say "everyone should work from home", using words like "many of us", so right, "that's not what [I] said", and you're just making up an argument where none exists.
Yes, and when people going to the office get more opportunities, more advancement and higher compensation, he/she will be complaining for making "less money for the same work". Or they will start complaining about how unfair is that those opportunities only arise in the office and demand that there will be "procedures" for them to be available remotely.
Long ago I accepted that if I want better work-life balance and more flexible arrangements, there would be consequences. In my post above I explicitly called it out as a trade-off: I am totally fine with lower pay and fewer promotions if it means I get to live more of my life outside work.
If you're not ok with that, that's your choice to make: find jobs that give you those opportunities, and tilt your work-life balance toward work. Hell, you should be happy that I have more flexibility in my working arrangements and can make this trade-off: less competition for you to get what you want.
I commend you for having this approach. I'm biased from my experience from colleagues that got annoyed when they realized they couldn't have their cake and eat it too.
Not speaking for GP, but as far as I’m concerned I’m happy to stay far far far away from office politics games and getting paid less than those who do while having half or a quarter of their workloads.
> Not everything in life is about career advancement.
But you see, all the decision makers about the RTO are the sort of people who would be obsessed with career development. So they would be very biased against this sentiment. In an employer's market, they have all the power now.
This seems wild to me. It seems like the company and managers are doing something wrong if all your advancement is coming from random unofficial chats.
Beyond a certain level, career advancement happens only by doing work which is much more than just delivering technical projects. That level is typically attained in 4-6 years by a competent software engineer.
(Yes, I am aware of a few exceptions who attain "fellow" or equivalent levels, but they are the exceptions to my observation and such positions are anyway <1% of the technical workforce; not everyone can be a fellow).
If you’re not just a code monkey than those chats are great for coming up with new ideas and fleshing them out over time. But hey you can also just be a code monkey that completes projects assigned to them. To each their own I guess.
Maybe what you describe works at some places or for specific people. Many companies will ignore your ideas. Your title is code monkey and that's all you do - shut up and listen to us important people. Some managers are very threatened by their subordinates, or are unimaginative. The business side generally wants what they want. God forbid you suggest some new approach.
I think you're missing the point, this is not about the split between management and engineering. Code monkey is here somebody who accepts assignment and produces code, without having a lot of understanding for the larger whole.
And that's mostly what you get with this attitude that doesn't value any meetings / communication which doesn't relate directly to one's work.
But the organizations don't want to have code monkeys (typically), because to produce value, people can't just churn out code to complete assignments, they need to also understand the context, be able to identify made up problems, be able to design the most minimal solution covering the business needs etc. That requires understanding, certain alignment, communication.
I don't see anyone arguing that communication isn't a critical part of working.
> And that's mostly what you get with this attitude that doesn't value any meetings / communication which doesn't relate directly to one's work.
But all the things you've listed in the following paragraph are totally communications that relate directly to one's work. What is the case that unrelated communications are also essential?
Technical folks simply cannot do their jobs without solid working relationships, and those are not as well formed digitally.
Remote work will continue to reduce over the next couple of years. If you don’t have a real reason for being at home during the work day, expect to be back in the office soon.
"Technical folks simply cannot do their jobs without solid working relationships, and those are not as well formed digitally."
Any real data on this? All the data our company has shows increased performance during WFH, such as an increase in deliveries and decrease in cycle time. So even if it's not as well formed, it seems it's formed sufficiently.
I think you focusing on delivery and cycle time is kind of emblematic of my point; none of that matters if you ship the wrong thing, and don’t correct over time, but to you that’s where the conversation ends.
That’s not where it actually ends, however. How do you know what to work on? How do you know if you built a profitable thing? Being remote lets you ignore those things in ways that are harder to do in person.
Hybrid is probably here to stay, but “remote first” was a pandemic only thing.
"I think you focusing on delivery and cycle time is kind of emblematic of my point; none of that matters if you ship the wrong thing, and don’t correct over time, but to you that’s where the conversation ends."
Lol don't tell me what I think. Those are the metrics that our management uses. That's their focus, and are pervasive in the industry. Sure, you can talk about shipping the wrong thing. What's the metric called for that, or would it fall under rework? Our rework has not gone up. There's no noticeable increase in failed projects either.
"Being remote lets you ignore those things in ways that are harder to do in person."
No, it really doesn't. These same ritual and due diligence conversations take place remotely. Or maybe your org doesn't have good procedures?
If you don’t know why or how your management figures out what to build or if what you’re building is what they need, and don’t see how that’s related to remote work, there’s not much I can do to help you.
What are you even going on about? Discussing what to build isn't what we are talking about here. Mor to mention, my management doesn't talk about that. The business side does. And this topic is covered via meeting. Whether those meeting are remote or not do not matter. Now please stop trolling this topic.
Not trolling, I just know in difficult conversations it’s sometimes helpful to restate what the other person is saying to try and figure out the disconnect.
I mean sure, but there’s no real way of knowing what you’ve left on the table by working remotely.
And I say this as someone who was also working remotely before the pandemic. I’m always wary of people who refuse to acknowledge the downsides of ideas they support…
There's not, but I do know what's on my table: a career doing things I find reasonably stimulating that provides me more material comfort than I know what to do with. I am doubtful these hallway conversations I keep hearing about could provide me anything else that I would want, and I'm definitely not willing to give up my freedom and flexibility just to find out.
It's not really yours to give up, is my point. You're not looking at this from the employer's perspective, and it's making it hard for you to understand that what you want is only part of the equation.
It’s not some solvable, technocratic equation, it’s a conflict between labor and management. I don’t look at it from my employers’ perspectives because I don’t care about their outcomes.
If I expect my employer to care about my outcomes, 9 times out of 10 I'll be disappointed, no matter what I'm doing or how much I'm caring about theirs.
You may have had a better experience. If so, then, with all sincerity, I congratulate you on your luck; I bear no ill will to those who happen to find genuinely good employers.
Just don't take your experiences as typical and use them to argue that the rest of us should act as if our experiences either didn't happen, or aren't common.
Tell me again how long have you been working? For as long as human society has existed, advancements came from in-person connections which were fostered by these random unofficial chats.
If you expect anything else, you might expect humans to not be like humans.
Norwich Union (Aviva) the insurance company have a system called The Wall iirc (been over decade).
Its a free for all for asking questions, sending messages, making unofficial FYI notes, its an attempt to document those conversations that would have otherwise taken place between individuals. Everyone from the top down has read/write access. Main objective to document those conversations, so nothing gets missed, like people being otherwise engaged in meetings/phone calls. Self Censorship takes place because everyone can view it, reduces staff harassment problems.
Management doesn't have it together, but they do make suggestions about taking on certain projects etc that are good for your career and at least talk about plans to getting to the next level (sometimes).
How much of your working life was in person vs remote?
I agree most of my 'big breaks' were face to face, that was due to the point I was in my career at that time. I've still had some great progression during remote working times - sometimes you just need to make these things happen - contacting someone just for a chat if that is what you need, turning up to online meetings early to spend a little time chatting before the proper meeting, or asking specific people if they have time to stay on.
I really think half the problem is that we aren't yet used to the new rules of engagement, and are still figuring out what feels right. But opportunity is still there.
Not really. I'm very introverted and not good with strangers, actually in the process of getting an autism diagnosis right now.
But I really enjoy socializing with folks with similar interests (e.g., tech), and I work with a lot of neurodivergent colleagues which puts less of a strain on my social battery as I don't have to be "normal"---we're all weird and it's fine.
Still, my social battery drains quickly nonetheless, I tend to have to leave after hanging out for an hour or two.
Moreover, personally I'd prefer it stays this way. When I take a break and go to the kitchen to get a coffee, it is also a part of mental hygiene - I need to clear my mind as it needs some rest, too. So the last thing I want is someone bothering me about a merge request or some planned feature. A weekend trip, on the other hand, is perfectly fine.
Hear hear. I worked at a place that pair programmed all the time (I liked it that way—it's why I joined the company) but it meant that I always had to eat lunch at my desk. To me it's crazy to be talking all morning then talk all through lunch then talk all afternoon! But to each their own.
Completely disagree. I probably have 3 or 4 of these spontaneous conversations that wouldn’t otherwise happen a day when I’m in the office. It might start with ‘what are you working on’ and branch off from there, it’s not just small talk.
I have a ton of informal conversations with people I don't have formal meetings with, just because we happen to go to the coffee machine at the same time or happen to go eat lunch at the same time. Some of those conversations are non-job-related (which is valuable, since strong social connections with colleagues are valuable), but a lot end up being on job stuff. I end up just informally talking with sales people, customer service people, managers, etc, and hearing about stuff from their perspective or the stuff that's on their minds is incredibly useful.
I would probably say that 95% of my creative problem solving type work happened in unstructured conversations like hallway conversations. A lot of value was definitely lost there.
Some of my best ideas that ended up being company changing started as a conversation walking to lunch with colleagues.
Initially these ideas were just undeveloped thoughts and I would never dream about booking a meeting to present them. Having a chance to develop them in a casual conversation might have been the difference between successfully building the thing and not doing it at all.
I love working from home but miss the unstructured collaboration.
> Initially these ideas were just undeveloped thoughts and I would never dream about booking a meeting to present them.
Your company doesn't have informal communications channels for this sort of thing? Team/Slack/whatever? In every place I've worked for the last 15-20 years (it was different before that), such informal "watercooler" talks have never happened in person, whether everyone was in the office or not. It was always over electronic communications.
The reason for this is that it's less disruptive to other productive work.
I have had a lot of interesting conversations with colleagues from other teams while grabbing a coffee. Sometimes it's just meaningless small talk about the weekend but sometimes we talk about work and help each other find solutions to problems, or realize we should collaborate. And even if it's just small talk, making those kinds of connections can make it a lot easier to get in touch with them in the future.
What? This is a crazy anecdote. I believe you but understand that's not the norm. I have had many and know if others having many as well.
Companies that are all remote will survive but they won't thrive and in a competitive market will lose to those that are in person.
I say that after running a company that was one or the other at various times. The periods when we were all in person (constantly, not as a special event) is when real innovative progress was made.
> I've seen this idea repeated many times, but in over 20 years in the tech industry
Exactly, and how many of those conversations are wasted on nothing? Sure, there's a social element to it, so how about we highlight that aspect and not some "lightbulb" moment that derives from small talk.
there’s no point adding 2+ hours of commuting to my day for what could be a video call.
I don’t really understand why many commenters here are expressing a sentiment that you can’t get to know someone digitally. Some of the best people in my life were met online, both personally and professionally.
You don't get coincidental conversations between people of different department with no set agenda through a zoom meeting.
I'm not saying it's worth 2+ hours of commuting. And honestly, I think it's bullshit that employers expect commuting time to be unpaid; if having people in the office is something they consider valuable, they should be paying for that commute time. But I reject the idea that those conversations have no value.
I accept the idea that those conversations have value. I reject the idea that they can only happen in person. I have no data on this, just my own personal experience and observations over the years.
The problem is that it is obvious how useless and misconfigured our entire corporate management structures are with remote work so the easiest solution is to go back to the office.
The pandemic was a fun exercise in forced, real efficiency but we need to get back to the Dilbert cartoon version of life because the Dilbert cartoon characters call the shots and put a ton of time into becoming those characters.
The most meaningful collaborations I have seen in my 20+ years of work involved a small group of 3 to 5 people huddled around a whiteboard. I can make a list of top 10 collaborations I recollect and none of them were remote interactions. In-person somehow made the collaboration easier.
Exchanges and trading firms are not "Crypto". They're human institutions which happen to sit atop cryptocurrency instruments. What we're seeing play out in realtime is what happens when unregulated human institutions come to possess fantastical amounts of wealth -- in short, they go pathological.
It's a two-faced ethos, praising decentralization and thumbing its nose at banks while simultaneously entrusting the bulk of its assets to entities that are strictly worse than banks.
"Happen to sit atop" is so far from an accurate accounting of the multi-headed hydra that is the crypto/defi space. Good thing I'm not expecting much in the way of accurate accounting.
Yes. Implicit in these "free speech" arguments is the idea that the government should be able to force private companies to publish user content that violates their policies. This is the sort of thing that the 1st Amendment is actually supposed to protect us from.
In all the above cases (person spouting epithets at your bar, social media users posting hate on your website) these are people with whom you have no contract. They are there at your permission, as long as they behave according to your standards.
When you rent space to someone, and they start using it in a way you don't like, maybe even specificially violating their lease, you can throw them out, but it becomes a legal process called eviction. You can't just put their stuff on the sidewalk and change the locks without going through that process. This is how the game is played when you get into that business.
Maybe that is the part that's missing with the AWS/Parler situation. AWS doesn't want them, but they leased space and services to them and there is a contract. Breach of contract is not something that either party to the contract can determine, because they both have conflicts of interest. If we had a judge review the contract, and approve the eviction, at least there would be a lot less basis to claim that are acting capriciously or out of bias.
Amazon is not a utility, they are a private company which leased Parler "space" in an unregulated industry. The contract that Parler agreed to has an Acceptable Use Policy which is very broad. If Parler believes AWS breached their contract, they can sue just like in anyone else in a contract disagreement.
Maybe in the long-term we'll look at hosting more like real-estate and it will have more laws and regulations about what the providers can and cannot do, but I doubt it and I'm willing to bet the trade offs that come with that are truly terrible. Imagine how many things wouldn't get off the ground if hosting contracting was even 1/3 of the real estate process.
More importantly, hosting isn't a monopoly. There's no government provided moat that justifies that level of regulation. The way I see it there are only two things that are in utilities in the internet space, ISPs (both consumer facing and interconnects) and DNS, and DNS is arguable.
Landlords are also private, and infinitely farther away from being a monopoly, but they are still not allowed to just throw people out because they don't like their politics. There's a process.
I've been doing this for a long time, and I've never seen any kind of correlation between how well someone solves silly algorithm puzzles in a 45 minute window and any kind of real-world performance. Also, there's no apparent a prior reason why this would be the case. It might be that the way performance rating is done at Google is constructed so as to be correlated with silly brain teaser performance.
I'm guessing he's relying on common knowledge of variance here. If you know that variance is always nonnegative, and you also know that variance can be defined as (mean square - square of the mean), then it's obvious.
1) Create a bunch of variables and initialize them to random values. We're going to add and multiply these variables. The specific way that they're added and multiplied doesn't matter so much, though it turns out in practice that certain "architectures" of addition and multiplication patterns are better than others. But the key point is that it's just addition and multiplication.
2) Take some input, or a bunch of numbers that convey properties of some object, say a house (think square feet, number of bedrooms, number of bathrooms, etc) and add/multiply them into the set of variables we created in step 1. Once we plug and chug through all the additions and multiplications, we get a number. This is the output. At first this number will be random, because we initialized all our variables to random numbers. Measure how far the output is from the expected value corresponding to the given inputs (say, purchase price of the house). This is the error or "loss". In the case of purchase price, we can just subtract the predicted price from the expected price (and then square it, to make the calculus easier).
3) Now, since all we're doing is adding and multiplying, it's very straight-forward to set up a calculus problem that minimizes the error of the output with respect to our variables. The number of multiplication/addition steps doesn't even matter, since we have the chain rule. It turns out this is very powerful: it gives us a procedure to minimize the error of our system of variables (i.e. model), by iteratively "nudging" the variables according to how they affect the "error" of the output. The iterative nudging is what we call "learning". At the end of the procedure, rather than producing random outputs, the model will produce predictions of house prices that correlate with the distribution input square footage, bedrooms, bathrooms, etc. we saw in the training set.
In a sense, ML and AI are really just the next logical step of calculus once we have big data and computational capacity.