Live data from Hacker News

What Makes a Great Software Engineer? [pdf]

faculty.washington.edu

21–30 of 134 posts

Re: What Makes a Great Software Engineer? [pdf]

#21
This article seems to limit itself to the "enterprise" definition of a great software engineer.

The greatest software engineers in small businesses (or personal projects) don't do much development work. Instead they are working as true engineers: making good compromises and solving problems outside of the software which usually leads them into roles that don't have "software" or "engineer" in the title.

Re: What Makes a Great Software Engineer? [pdf]

#22

People skills. Empathy is hugely underrated and profoundly important. Whoever said "software is meant for other people to read, and only incidentally to be executed by machines" was on to something. All meaningful projects require cooperation and collaboration with other people. Most of the time, a solid coder with exceptional EQ will have more impact and effectiveness than an exceptional coder with indifferent (let…

In small companies, a software engineer is a social job, it requires to talks with lot of people, specially with the customer (may be not all customers) but also, with others colleagues, with the people of infrastructure, sometime even with the people of finances (such as asking for a new server), with marketing or sales (if any), with design and so on.

In a big business, a software engineer is only a cogs that follows specific orders. I remember a blog of a former engineer of Microsoft that talked about it, he said that, in the past, Microsoft was direct, and having a technical meeting with Bill Gates was something usual. However, the company grow and those perks are long gone, now MS has a lot of bureaucracy and level and sub levels of complexity (so many executives and managers).

Re: What Makes a Great Software Engineer? [pdf]

#23
post #18

I'm surprised to not hear an engineer's memory as an important correlator to skill. I find that working memory especially (or the lack thereof) really can hinder my performance when dealing with a complex problem. Sometimes I think it is THE defining factor!

Notetaking makes working memory much less of a issue. I recommend you find a way that works for you, if you're interested in career longevity as an engineer. Personally I alternate between todo lists for completion and coverage, and dialectics of theory and test for design and troubleshooting.

Yeah, I've never really understood the note taking thing. I'll be working on simple algorithm problems that require me to hold 3-4 elements in my mind and constantly have to mentally reference them over and over. "what was the value of x again?" — which distracts from solving the actual problem! Maybe the experience that others have is different.

Re: What Makes a Great Software Engineer? [pdf]

#26
post #20

I'm surprised to not hear an engineer's memory as an important correlator to skill. I find that working memory especially (or the lack thereof) really can hinder my performance when dealing with a complex problem. Sometimes I think it is THE defining factor!

Memory? It depends, knowing technical knowledge by memory is useless since we could use google. However, if memory means EXPERIENCE then, its a different matter. A seasoned engineer costs a lot more for this reason.

Working memory is more about remembering what happened two minutes ago than retrieval of technical knowledge.

Re: What Makes a Great Software Engineer? [pdf]

#27
post #13

I don't get the "9 to 5 wouldn't make you a great engineer" about not being passionate, some people are passionate but have other life obligations like kids or other activities. Being personable: "Can I have a beer with this guy?" is the worse in my opinion. I care about your professional skills and if you're communicating well, but you definitely don't have to be a beer buddy, we might have 15 years difference, a ve…

> I don't get the "9 to 5 wouldn't make you a great engineer" about not being passionate, some people are passionate but have other life obligations like kids or other activities.

I think what the engineer is trying to convey is that a great software engineer thinks about code beyond just the job. I don't think the engineer literally means being a workaholic or the literal 9am-5pm shift, but the engineer has pet projects of his or her own that aren't necessarily related to work, as well as thinks of programming beyond just a paycheck as a personal interest (just as a photographer or any other craftsman would).

I've hired many programmers. The most disappointing ones were ones that only did exactly what their work told them to do. They would never read technical stuff or things like Hacker News on their days off.

The best programmers were the ones that built pet projects for their own needs. I remember one guy would write a script to download new wallpapers for his laptop to cycle through the hours of the day. If I recall correctly, Gmail was an engineer's pet project (when 20% time existed). Some contribute to Stack Overflow; others to open-source and to blog posts.

It's a lot like being a good restaurant cook or musician. You enjoy cooking, not just for the pay, but for how the craft empowers you. A good cook will think about what sides will pair with that steak, while an average cook will probably robotically sling together a dish. A good engineer will show passion.

Re: What Makes a Great Software Engineer? [pdf]

#28
post #13

I don't get the "9 to 5 wouldn't make you a great engineer" about not being passionate, some people are passionate but have other life obligations like kids or other activities. Being personable: "Can I have a beer with this guy?" is the worse in my opinion. I care about your professional skills and if you're communicating well, but you definitely don't have to be a beer buddy, we might have 15 years difference, a ve…

This.

> Being personable: "Can I have a beer with this guy?" is the worse in my opinion.

Social Drinking is a very western activity. In the East (India, Pakistan, China, etc...) a large majority of people are what are called "teetotalers" - never drink alcohol. Yet they socialize as much, if not more.

Re: What Makes a Great Software Engineer? [pdf]

#29
post #13

I don't get the "9 to 5 wouldn't make you a great engineer" about not being passionate, some people are passionate but have other life obligations like kids or other activities. Being personable: "Can I have a beer with this guy?" is the worse in my opinion. I care about your professional skills and if you're communicating well, but you definitely don't have to be a beer buddy, we might have 15 years difference, a ve…

> I don't get the "9 to 5 wouldn't make you a great engineer" about not being passionate, some people are passionate but have other life obligations like kids or other activities. I think what the engineer is trying to convey is that a great software engineer thinks about code beyond just the job. I don't think the engineer literally means being a workaholic or the literal 9am-5pm shift, but the engineer has pet proj…

That's a relief. Three kids mandate 9 to 5 work hours. There isn't much quality time or mental energy to dedicate after that.

It's a relief because whatever energy I have left I spend on books, articles, papers. Those things have helped my 9 to 5 in a big way. I bring what I learn to the job.

It doesn't beat hands on practice. I do itch to work on practice projects and I'm hoping when the kids are a little older, I'll have more time and energy for that.

In any case, my kids are my number one. The day my first was born was the day my motivations and my reason for being shifted.

Post reply on HN