Hacker News new | past | comments | ask | show | jobs | submit login

I recall an interview I was brought into early in my career to talk with someone being brought into be a senior architect... in my mind this meant this dude must be crazy smart right. Everyone in room had all basically made up thier minds and loved the guy. I gave a variable like

a = [1,2,4,8,9];

And asked if he could write a loop and print out the values of each element. He embarrassingly could not.

I always ask this question and then talk and then have everyone solve a problem a simplistic one but it always involves an Http request and some loops...

I like to see how people type too... if you can’t type it’s usually easy to tell if you spend most of your time with a computer or not...




> I like to see how people type too... if you can’t type it’s usually easy to tell if you spend most of your time with a computer or not...

I disagree. When nobody's looking I type pretty fast, but when the whole interviewee team is looking at my screen I suddenly forget all the shortcuts and mistype a lot due to anxiety.


I work with a fantastic developer who types with his index fingers only, hunt and peck style. It boggles the mind.


Being a fast programmer has nothing to do with how fast you type.


But are architects supposed to write code? The example you give is embarrassingly simple and anyone should be (expected to be) able to write code for it. But aren't architects designing architecture. I don't think the architect or anyone in his team at my previous organization's IT dept could write code, but he could design system architecture.


How can you design something that needs to be implemented in code if you yourself can't write code?

If you can't produce in the trenches, what makes you qualified to dictate what those that are in the trenches are doing?


This reply applies to several here.

I know a few architects (as in for buildings and civil structures) who wouldn't be able to pour a foundation, frame a wall, or run plumbing properly. They're working at a different level of abstraction and are concerned with different problems.

Or to put it another way, if you can code does that mean you should be able to design a CPU, even a very basic one? After all, how can you write a program if you don't understand how it works at the instruction, transistor, etc level?


I think this is a linguistic strawman.

Civil Architect is to Builder as Software Engineer is to Datacenter Technician. Software architect is to software engineer as partner at an architecture firm is to architect, or something.

You don't expect a plumber[0] or a building constructor[1] or a civil engineer[2] to become an architect[3], they're different degrees or certifications. A software architect is normally considered a software engineer who works at a grander scope of design. That doesn't map correctly.

[0]: http://dlca.vi.gov/businesslicense/steps/mppcrequirements/

[1]: https://bc.gatech.edu/master-science-building-construction-a...

[2]: https://arch.gatech.edu/bachelor-science-architecture

[3]: https://ce.gatech.edu/academics/undergraduate/bsce


Civil Architect is to Builder as Software Engineer is to Compiler.


Exactly (from experience working in a top 5 consulting engineer) an Architect is nothing like a Chartered civil engineer.


I wouldn't expect a building architect to do a great job pouring a foundation, framing a wall, or running plumbing. But I would expect them to be able to do it, at least to a basic level.

Architects that don't understand how to do the fundamentals of implementing the designs they make tend to make unrealistic designs, that are expensive to implement and may look pretty, but function poorly for the owners and occupants.

This applies to architects of buildings, architects of software, and architects of hardware. Probably to most high level design and supervision type positions.

Edit to add: many of the best architects of buildings are able to do amazing things specifically because they've studied the fundamentals and are able to do innovative things with materials. Of course, time will tell it the innovation worked out well or not.


> I wouldn't expect a building architect to do a great job pouring a foundation, framing a wall, or running plumbing. But I would expect them to be able to do it, at least to a basic level.

waaaaat? That is completely utterly 100% unreasonable. Unless you mean that you expect every adult member of society to do those things?


I agree with GP. If the civil architect doesn't know that you need to put up plywood to pour the concrete in, they will make impossible to build designs.

And I'm not saying that everyone needs to do everyone's jobs. But you shoupd be able yo do at least a bumbling job of the layers of abstraction you work on top of if you want to make a decision in how those things should work.


If an architect that hasn't coded in 5 years or more dictates technological decisions to you, when they are out of touch of current best practices, how do you bridge that gap?

Building codes change. Architects are required to design buildings according to the new codes. There is no such thing in software.

When I first started in industry, storing plaintext passwords in the database was what everyone did. We have moved on from that. I've worked on j2ee web apps, where the EJB tier absolutely had to be on a separate server or servers. Times have moved on from there. I've met very few "software architects" that have kept current without writing code at least 5-10% of their job.


Times do change, but it doesn't mean you need to know every single detailed implementation. If the standard practice was plain text, and then became hash...the architect dictates that passwords needs to be hashed. They don't necessarily need to know how to code it.

In my company my 'enterprise architect' oversees at least 40 applications in my space in various languages and platforms (and he works in other spaces too so I can't give an exact number). I need him to give a good direction on what apps are needed, how apps talk to each other and certain detailed design. He also pitches to management and the business to defend how/why we do certain things.

Last thing he would be required to do is remember to write basic code (though I would hope he can do a swag).


> Or to put it another way, if you can code does that mean you should be able to design a CPU, even a very basic one? After all, how can you write a program if you don't understand how it works at the instruction, transistor, etc level?

You'd be surprised, but this is what computer engineering actually is. From p-n junctions and transistors and all the way to distributed systems.


Most software architects aren't working at a level of abstraction that's as much higher as that. They're making decisions like "we should use this framework" or "we ought to have 3 9s of reliability", which can't be meaningfully analyzed without knowing the details of how the coding will be done.


Difference of terminology I guess, but I worked at a Pharma company and I am talking about the Enterprise Architect, so maybe not the same kind of architect you are talking about. He and his team made decisions related to tech stack. They never made software design decisions. Over at the Pharma company IT higher ups weren't technical anyway.


I'm not sure if this is a common sentiment, but wouldn't an architect that does not know how to code have a very hard time convincing the other (seniors, but in particular juniors I guess) engineers to follow their designs? I guess it is possible to fake a while , but only a while...


I don't expect my architect to know the ins and outs of Go, I expect them to have a strategy that is forward thinking a few years out. Plans on cloud integration, ci/CD requirements, updating legacy systems to be containerized, managing kube clusters, etc. They should know the pros and cons related. They don't need to write a for loop.


If he can architect worth a damn, he should be able to code his way out of a paper bag.


I don't understand how one could possibly design a system that they couldn't even begin to implement. Not framework/tool specific stuff, but can't right code? At all?




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: