News for hackers. Stuff that matters.
Re:I interviewed at six top companies in Silicon Valley in s... by scarface74 on Friday January 18, 2019 @08:09PM (#18944600)
In the real world software architecture is rarely about “data structures”. Software architecture is about teasing out the needs of the customer - whether that be internal or external - and knowing how to design systems that are maintainable, scalable, fault tolerant, etc.
Re:I interviewed at six top companies in Silicon Valley in s... by SamReidHughes on Friday January 18, 2019 @08:18PM (#18944632)
Scalable, fault tolerant systems is a distributed systems problem, which is a harder form of data structures problem.
Re:I interviewed at six top companies in Silicon Valley in s... by scarface74 on Friday January 18, 2019 @08:20PM (#18944640)
Yes but unless you are actually working on creating the system that other people implement, you are just using work made by others. You don’t need to know the ins and outs of various gossip protocols.
Re:I interviewed at six top companies in Silicon Valley in s... by rapind on Friday January 18, 2019 @08:44PM (#18944738)
Potentially two things here:

1) Gathering requirements.

2) Turning those requirements into data structures.

I think a lot of companies will separate those into different roles, but I strongly believe that's a costly mistake in most situations. There's a feedback loop. Requirements inform your data structures, but your data structures help you contextualize (not pollute) your requirements. If you're working with an existing system, you also want to understand current structures in order to guide requirements. By guide, I don't mean to ignore pain, but if you're building a system to support multiple clients / users, then the real trick is to figure out how to do that in a cost-effective and elegant way.

When these roles are separated, and the requirements are gathered without knowledge of the structures, I believe you're setting yourself for failure in the long term (spaghetti code / everyone gets something different).

Getting these to gel is the puzzle I'm personally passionate about. I don't mind what I would call the math side of programming / code puzzles, but it simply doesn't give me the endorphin rush that building a system that elegantly ties things together does. The best is when you're working towards that or have achieved that and inspiration for further possibilities, improvements, efficiencies start popping up.

I'm not sure how you test for this as part of the hiring process, at least not efficiently. I do think we get better at this with experience, but I doubt it's exclusive to seasoned developers.

Re:I interviewed at six top companies in Silicon Valley in s... by scarface74 on Friday January 18, 2019 @09:01PM (#18944819)
But still “data structures” in the context of most businesses are more Domain Driven Design “Domain Contexts”, “Aggregate Roots”, type structures than any type of complicated CS type data structures.