Top 10 what makes a good software engineer That Will Change Your Life

Mục Lục

Below is information and knowledge on the topic what makes a good software engineer gather and compiled by the team. Along with other related topics like: What makes a good software engineer Reddit, What differentiates a good software engineer from a great one, What is your greatest strength software engineer, 5 best qualities of software developer, Areas of improvement for software engineer, Strength of software engineer, Qualities of a good developer, Skills and qualities of a software engineer.

s a Good Software Engineer? – Make Me a Programmer

On this blog, we cover a lot of topics about how to break into programming.  So that practically begs us to answer the question, “what makes a good software engineer?”

Well, let’s answer that question today.

What Makes a Good Software Engineer: The Short Answer

In fact, let’s answer it briefly, right out of the gate.  This will set the stage for the more detailed answer below, where I’ll offer 13 different traits that will help you become a good engineer.

A good software engineer is someone who is not only competent at writing code, but also competent in everything else required to build, deliver, and ship valuable software.  A good software engineer is someone that their company can trust to help them make money.

Some people might disagree holistically, or at the margins, with this.  They might emphasize things like algorithms and data structures knowledge, mathematical aptitude, or prodigious command of programming languages.

But I would argue that those things make you a good computer scientist, which is an academic designation.

“Software engineer” is a job title.  And jobs exist to help companies grow, earn money, and deliver value to their customers.

Before We Get to the List, Who Am I to Weigh in on This, Anyway?

Now, before I go any further, I’ll offer some bona fides.

This isn’t to stroke my own ego, I promise.  It’s because some of you are probably wondering who I am to proclaim these things anyway.  (If you don’t care, feel free to skip to the next section where I start my list.)

So here’s a quick-hitting bullet list of my experience on this topic:

  • I have two degrees in computer science (BS/MS).
  • I’ve spent more than a decade working with some variant of the job title “software engineer.”
  • After spending that decade-plus as a software engineer, I managed software developers as a dev manager and an executive.
  • Following that, I worked as an independent consultant, training software engineers in enterprises and doing IT management consulting.
  • I’ve interviewed/hired a lot of developers as well as helped companies build software departments and structure their software group’s org charts.

Does any of this make my opinion some inviolate?  No, of course not.  But it does tell you that I’ve seen and answered the question, “what makes a good software engineer” from a lot of different angles.

So with all of that established and out of the way, let’s get to it.  A good software engineer does/is all of the following.

1. Is Good at Programming (Don’t Overthink It)

In the beginning, I made a point to say that mastering countless languages, trivia, and programming arcana isn’t necessary to be a good software engineer.  But don’t outsmart yourself.  Don’t go too far in the other direction.

You need to be good at programming to be a good software engineer.

This doesn’t mean that you need to be great or to have 500,000 points on Stack Overflow.  But you need to be able to deliver good working software, without supervision, and consistently.

So if you want to become a good software engineer, you’re definitely going to want to work early and often on your programming.  This doesn’t mean you need to go get a degree, necessarily.  You can attend a boot-camp, or simply self-teach.

But however you do it, start practicing.

2. Avoids Programming by Coincidence

Alright, now let’s get into some relatively philosophical stuff.  (I mean, anything has to be more philosophical than “get good at software to become a good software engineer.”)

Let’s talk about something called programming by coincidence.  Put simply, programming by coincidence means that you’re content with your program working, even if you don’t understand why it works.

This might seem like a strangely specific consideration for this list.  But here’s the thing.

Programming is a very precise and very detailed discipline.  It builds on itself as you go.

Xem Thêm:  Top 10 comcast residential installation & service technician salary That Will Change Your Life

So good software engineers need to pay attention to detail and work with precision, or they make messes for themselves.  Good software engineers don’t call it a day until their code works and they can explain exactly why it works.

3. Is Curious

In that same vein, a good software engineer is curious.  They’re interested in new technologies, new approaches, new patterns, and new state of the art stuff.

They have to be.

The programming landscape changes unimaginably quickly.  The world constantly churns out new versions of everything they work with like

  • Tools and editors
  • Operating systems
  • The software that their code runs on
  • The programming languages themselves
  • All frameworks that they use

I could go on, but you get the point.  It’s like being a handyman in a world where new, radically different kinds of hammers and screwdrivers come out every year.

If you’re not curious, you’re going to find software engineering to be a slog.  And folks that find it a slog tend not to be good at it.

4. Loves to Build a Thing

Speaking of avoiding the slog, good software engineers enjoy what they do.  Specifically, they enjoy the feeling of building a thing.

At first blush, this might seem strange.  You might associate this feeling with cabinet-making or being a sculptor or something.

While many of the things that software engineers produce don’t exist in the physical world, per se, there’s still a strong analog.  So good software engineers tend to feel a strong amount of drive to keep working, tweaking, and perfecting their software.  They’ll also feel a great deal of pride when it’s complete.

5. Is Very, Very Good at Being Understood

Pardon my slight riffing on the HMS Pinafore song, but it felt like a good way to go.  A good software engineer is, well, good at being understood.  (I didn’t want to go with the eye-roll-inducing “good at communication skills.”)

Getting others to understand you is actually a fairly active concern.  And it’s important for software developers to help others understand them, and not just other software developers.  After all, developers interact a lot with non-technical folks.

So if you want to be a good software engineer, practice getting other non-technical folks to understand what you’re talking about.  Use analogies and metaphors.  Break things down simply.  Get into the habit of considering it incumbent upon you to bridge the understanding gap.

There are a number of ways that you can do this:

  • Train/mentor other software engineers.
  • Speak at lunch and learns or user groups.
  • Start a blog or a Youtube channel or something.
  • Get in the habit of creating executive presentation power points.

If you manage to cultivate a superior ability to communicate, you’ll go far in your career and deliver outsize value as a software engineer.

6. Refuses to be Defeated by a Stupid Computer

Next up, you need persistence.  But I prefer to think of this as “I will not be defeated by some stupid computer.”

When you get into programming at first, it’s a lot of initial sugar high.  You’re writing “hello world” programs and enjoying lots of small wins as you learn.

But as you dive further down the rabbit hole, you start to encounter frustrations as well:

  • Your code just will not compile and you can’t figure out why, even with Google’s help.
  • A bug that seems impossible just won’t go away.
  • Something in your development environment keeps crashing and you can’t even write code.

I could go on, but I don’t want to depress you or myself.

The point is that good software engineers understand that these setbacks are inevitable.  They also understand that they’ll need to get used to overcoming them.

They’ll need to refuse to let the stupid computer win.

7. Constantly Seeks to Tighten the Feedback Loop

Another sign of a good engineer has to do with the so-called feedback loop.  To understand what that is, I’ll lead with an example in contrast.

  • First, imagine that you take a test, like the SAT.  The proctor mails it somewhere and you get your results in 6 weeks.
  • Now, imagine that same test, administered at a computer.  You finish up, and the computer displays your score immediately.

Example one is a very long, loose feedback loop, while example two is a tight one.

A good software engineer constantly seeks to tighten feedback loops in development.  To a non-programmer, the most obvious one is writing some code and then running it to see what it does.  But there are a lot of others as well in software development that I won’t dive into here.

But the point is that good software engineers actively think about this and seek to tighten feedback loops to become more efficient.

8. Learns and Masters Their Tools

This next item is closely related to the tightening of feedback loops.  In fact, mastering your tools will help you tighten feedback loops.

But it’s also a good goal to chase in and of itself.

Software development involves using many more tools than you might think:

  • Various editors (“IDEs”) for actually writing code.
  • Source control tools for keeping versions of the software straight.
  • Collaboration tools for tracking work.
  • Debugging tools to help you chase down defects.
  • Performance profilers that tell you if your app is performing well or if it’s slow and sluggish.

And that’s just a representative sample.  There are actually plenty more.

To really stand out as a software engineer, you need to make it a point to take full advantage of the tools you use.  Don’t just get by.  Actively look to learn about them and master their usage to make yourself as efficient as possible.

9. Can Deliver Products (So-Called “Full Stack” Engineers)

We’ve talked before on this blog about the idea of a full stack engineer.  I would say that good engineers are “full stack” engineers.

What does this mean?  What is a full stack engineer?

Well, to quote from that post,

A “full stack” developer is a software developer with a general enough skill set to build all required components for a working piece of software. They can handle the database, the programming logic, and the user interface, and they put it all together to deliver.

If you want to become a good, well-rounded software developer, you need to be able to deliver a product.  And you can’t do that if you’re so specialized that you require other people to intervene in order to deliver software.

Xem Thêm:  Top 10 what is a sales lead position That Will Change Your Life

This isn’t to say that you can’t specialize in part of the “stack,” nor does it mean you need to master all parts of it equally.  But to call yourself a good software engineer, you need to be able to, well, deliver working software.

10. Thinks About More Than Code—Cares About the Business and the Product

In a sense, delivering working software is about more than just the software.  After all, someone might reasonably ask, “What do you mean by working?  Who says that it’s working?” Quote

If software isn’t useful to the people using it, then it’s not really working.  And to understand and measure that usefulness requires skills that you won’t find in an “Introduction to C++” book.

Good software engineers think beyond the code.  They think about the users of the software, and they think about the impact their decisions have on their team, their company, and the broader world around the app.

  • Would migrating to a new database cause downtime and outages for the users?
  • If we use global variables today in order to get something out the door quickly, are we hamstringing our ability to deliver features down the road?
  • How are we treating personally identifying and sensitive information that we’re storing?

These kinds of questions enter the minds of good software engineers.

11. Knows When to Embrace Laziness

Here’s a fun one.  Learn to constructively embrace laziness.

Relax.  I don’t mean that good engineers refuse to work or come to the office hungover and read Reddit all day.  It’s more about a programming philosophy that’s something of an adage in software.

Spending all morning doing data entry is hard work (and boring).  Copying all of the customer records over from one database to another is hard work (and boring).

Rather than doing a bunch of lazy, boring, and thus, error-prone work, good software engineers take a different approach.  They think about how to use their skills to automate the process and let a computer do it for them.  Hence, lazy.

The real takeaway here is that good software engineers are always looking for automation opportunities and ways to make things more efficient.

12. Has a Good Attitude and Isn’t a Prima Donna

I’ll close with one that I think, in some senses, is the most important.  And this isn’t some kind of mushy, feels-based sentiment.  It’s about business.

Good software engineers have a good attitude, and they aren’t prima donnas.

This doesn’t mean they have to be chipper all the time or conduct themselves with the buttery smooth insincerity of the sales guy.  It basically means they have to not be insufferable to peers and coworkers and that they should be generally cooperative and helpful.

The image of the anti-social, “tell it like it is” genius programmer is a truly unfortunate one.  And it’s a canard largely perpetrated by Hollywood and popular media.

Because here’s the thing, and here’s why I say the most important thing is about business.  As someone who has managed, hired, and commissioned software developers to do work, I will take a slightly less proficient software developer that isn’t a team cancer ten times out of ten.

Talented prima donnas infect their entire team/organization, making people miserable, tanking productivity, and creating employee attrition.  And that’s bad business.

Good software engineers, on the other hand, combine all of their technical acumen and other skills with a tendency to make the people they’re working with better.

Skills Matter.  But Delivering Value Matters More

And this really speaks to the overarching takeaway here, which is that, while skills and efficiency matter, participating in value delivery matters a whole lot more.

Unless you’re writing software as a pure hobby, it’s a business.  And if you have a title like “software engineer,” then you’re ipso facto engaged in business.  And business is all about value delivery.

So if you want to do well as a software engineer, first and foremost, learn to program.  But you should also adjust your mental model of what programmers do and how they help.

Good software engineers take programming skills, and they leverage them into collaborating well with others to build cool stuff.  And to do all of that requires a good, well-rounded, business-friendly skill set.

This post was written by Erik Dietrich. Erik is a veteran of the software world and has occupied just about every position in it: developer, architect, manager, CIO, and, eventually, independent management and strategy consultant. This breadth of experience has allowed him to speak to all industry personas and to write several books and countless blog posts on dozens of sites. 

Extra Information About what makes a good software engineer That You May Find Interested

If the information we provide above is not enough, you may find more below here.

What Makes a Good Software Engineer?

What Makes a Good Software Engineer?

  • Author:

  • Rating: 5⭐ (5614 rating)

  • Highest Rate: 5⭐

  • Lowest Rate: 2⭐

  • Sumary: What makes a good software engineer? A lot of things, but they share some common themes. Learn what it takes to be good in this field.

  • Matching Result: A good software engineer is someone who is not only competent at writing code, but also competent in everything else required to build, deliver, …

  • Intro: What Makes a Good Software Engineer? – Make Me a ProgrammerOn this blog, we cover a lot of topics about how to break into programming.  So that practically begs us to answer the question, “what makes a good software engineer?”Well, let’s answer that question today.What Makes a Good Software Engineer:…
  • Source:

What Makes a Great Software Engineer? | Scout APM Blog

What Makes a Great Software Engineer? | Scout APM Blog

  • Author:

  • Rating: 5⭐ (5614 rating)

  • Highest Rate: 5⭐

  • Lowest Rate: 2⭐

  • Sumary: There are qualities that developers and software engineers should strive to embody as they navigate their roles. Read more in our blog!

  • Matching Result: The best software engineers foster values like honesty, trust, transparency, humility, reliability, and open-mindedness in the groups that they …

  • Intro: What Makes a Great Software Engineer? What Makes a Great Software Engineer? Excellent developers are the lifeblood of software companies. Therefore, organizations and HR teams must think hard about the values that make an individual the best fit for their teams. Different organizations follow different practices and working styles, and…
  • Source:

Xem Thêm:  Top 10 how much do ct techs make That Will Change Your Life

5 Qualities of High-Performing Software Engineers

5 Qualities of High-Performing Software Engineers

  • Author:

  • Rating: 5⭐ (5614 rating)

  • Highest Rate: 5⭐

  • Lowest Rate: 2⭐

  • Sumary: One of the biggest myths about software engineers is that all they need to know is how to write great code. But, a quick look at questions asked at software

  • Matching Result: 1. Knowledge of the full stack · 2. Ability to learn, adapt and grow · 3. Business acumen · 4. Time management · 5. Interpersonal skills.

  • Intro: 5 Qualities of High-Performing Software Engineers Sakshi Gupta | 5 minute read | July 8, 2020 In this article 1. Knowledge of the full stack2. Ability to learn, adapt and grow3. Business acumen4. Time management5. Interpersonal skills One of the biggest myths about software engineers is that all they need…
  • Source:

What makes a great software engineer? | by James Beswick

What makes a great software engineer? | by James Beswick

  • Author:

  • Rating: 5⭐ (5614 rating)

  • Highest Rate: 5⭐

  • Lowest Rate: 2⭐

  • Sumary: Knowing algorithms and data structures will get you the job. But to be great, you’ll need a whole lot more. Many coders enter the industry armed with a prerequisite knowledge of algorithms and data…

  • Matching Result: What makes a great software engineer? … Knowing algorithms and data structures will get you the job. But to be great, you’ll need a whole lot more. Many coders …

  • Intro: What makes a great software engineer? – ITNEXTKnowing algorithms and data structures will get you the job. But to be great, you’ll need a whole lot more.Many coders enter the industry armed with a prerequisite knowledge of algorithms and data structures, whether they come directly from college, online class or…
  • Source:

Career Crush: What Is It Like to Be a Software Engineer?

Career Crush: What Is It Like to Be a Software Engineer?

  • Author:

  • Rating: 5⭐ (5614 rating)

  • Highest Rate: 5⭐

  • Lowest Rate: 2⭐

  • Sumary: And how do you become one?

  • Matching Result: You do pair program on the job. So interviews that involve pair programming I think are really great. But coding with someone watching and …

  • Intro: Career Crush: What Is It Like to Be a Software Engineer? Where your work meets your life. See more from Ascend here. I am fascinated by coding. It’s everywhere! Every single one of the digital experiences we enjoy is the result of code. But honestly, I know almost nothing about…
  • Source:

Frequently Asked Questions About what makes a good software engineer

If you have questions that need to be answered about the topic what makes a good software engineer, then this section may help you solve it.

What characteristics distinguish effective software engineers?

What Characterizes a Great Software Engineer?

  • Quality #1: Experience and Intuition.
  • Quality #2: Attention to Detail.
  • {Quality #3} Quick Self-Learning, Flexibility, and Adaptability.
  • {Quality #4} Productivity, Planning and Time Management.
  • {Quality #5} Curiosity and Love of Learning.
  • {Quality #6} Business Sense.

What are a great developer’s top 3 essential skills?

Excellent problem-solving abilities, self-assurance, and a can-do attitude toward any challenge are crucial software developer competencies that elevate the developer to the status of a valuable resource in any organization.

What three qualities do software developers need to have?

Here are the 12 technical abilities a software developer must possess:

  • Coding languages. …
  • Database knowledge. …
  • Data structures and algorithms. …
  • Source control. …
  • Testing procedures. …
  • Debugging knowledge. …
  • Operating systems. …
  • Text editing software.

What sets a good software engineer apart from a great one?

After analyzing the data and synthesizing our conclusions, we believe that the top five qualities of great engineers are: b>writing good code, adjusting behaviors to account for future value and costs, practicing informed decision-making, avoiding making other people’s jobs harder, and learning continuously.

Are software engineers high IQ?

The average IQ of a software engineer, according to a Payscale study, is around 120; additionally, computer programmers’ IQ scores range from 115 to 132; in contrast, the average IQ of the general population is between 85 and 115.

What hard skills does a software engineer need?

Software development, object-oriented design (OOD), software testing, debugging, computer programming, and coding are a few examples of hard skills for software engineers.

Is working as a software engineer stressful?

Software engineers frequently have a variety of programming tasks with tight deadlines; as a result, they put in long hours at work and their high level of chronic stress predisposes them to burnout.

Elon Musk, a developer of software?

Elon and his brother Kimbal founded a software company, Zip2, with 8,000 of their fathers’ funds in 1995, encouraged by their early success.

Are software developers regarded as wealthy?

Let’s go over the many ways that Software Engineers can become millionaires, as it is unquestionably one of the best paid professions to work in.

What age is appropriate for learning to code?

The Massachusetts Institute of Technology (MIT) reports that children should begin learning to code between the ages of 5 and 7.

When did Mark Zuckerberg begin learning how to code?

Bill Gates began coding at the age of 13, while Mark Zuckerberg began at the age of 8.

Are software developers content?

According to a small survey of 350 respondents, about 70.3% of developers reported being content with their jobs, compared to 14.4% who said they were unhappy and 15.3% who said they were indifferent.

Who among the billionaires is a programmer?

Bill Gates contributed significantly to the design and acquisition of Microsoft’s initial software by creating MS-DOS and the BASIC Interpreter.

Video About what makes a good software engineer

Rate this post