DEV Community

Kaleb M
Kaleb M

Posted on

What Makes a Great Engineer/Programmer Great?

I've been trying to boil down various opinions from different sources throughout the web to determine the answer to the following questions:

"What Makes a Great Engineer/Programmer Great?"

Here are a few of my notes and resources -- would love to get more opinions!

Resources:

Getting to 10x (Results): What Any Developer Can Learn from the Best
Good Developers vs Bad Developers
What makes you a great programmer?
7 QUALITIES THAT DIFFERENTIATE A GREAT PROGRAMMER FROM A GOOD PROGRAMMER
What Makes a Good Programmer Good?

Things to do

Focus on things that improve your multiplication factor more than your own productivity (I feel that both go hand in hand, if you are more productive you can make more time for multiplication factors)

Always be kind and helpful
- Be a team player

Be willing to ask for help and provide it

Be willing to take responsibility for your mistakes and learning from them

Problem Solver
- Solving the right problems
○ Cleaning up old code no one wants to maintain because its challenging, so you take it on to make it easier
○ Automating common processes to make the team faster
○ Focus on problems that make the most impact
○ Problem pattern matching to find solutions
- Solve problems for the business and team

Skilled
- Understanding
○ Knowing the reasons why and being able to explain
- Practice
○ Practice the foundations of the language and craft of programming
○ Architectural patterns and programming concepts that are fundamental in large apps
- Mentor / Teacher
○ Share code snippets / ideas with the team to get feedback / context share
○ Knowing a lot is great, teach others!

Excellent Learner
- Ppl who can quickly adapt if you decide to make important tech changes
- Eager to learn
- Mentors and mentees - aka they do both roles by learning and teaching

Passionate
- Go above and beyond basic job requirements
- Commitment to excellence
- Passionate devs master their craft, develop a sense of pride and ownership in the work, and become happier in their jobs
- Hunger to learn

Honest, communicative
- Encourage trust
- Ask for help, go through code reviews often, ask ppl to help
- Let's ppl know they can rely on you to keep them in the loop and make constant, stead progress
- Communicate complex ideas to simple concepts and understanding
- Understand concepts quickly, understand problems clearly, break them down and explain or propose solutions coherently
- Ask the right questions to understand

Efficiency
- Focus on things that improve the multiplication factor
- Javascript New Year Resolutions Countdown
- Time management / Task management - highly reliable, respect deadlines, and are great at managing it all

Compassion
- More friendly UX / page loads / animations
- Solve actual custom probs
- Compassion for teammates: write bette maintainable code, put real effort into better code reviews, mentor
- Employees and reports - improve dev process, improve dev UX, protect devs from interrupts, handle probs and performance issues with empathy and kindness
- Everyone appreciates compassionate ppl

Humble
- Take feedback and grow from it

They act as their own QA engineer - testing all edge cases

Put People/Team First
- Software we're writing is for ppl
- Write documentation bc its important and helps ppl use their code
- Willing to work extra and deal with a bit more complexity to give the ppl using software the right solution

Be Adaptable
- Projects and requirements change, change with it :D

Patient and positive attitude
- Care about the product
- Dedicated, positive, and patient to work through the most boring/difficult problems

Write GOOD Code
- Performant (uses the right data structures)
- Maintainable (logically structured and commented)
- Readable
- Follow coding standards
- Names that convey meaning
- Strong tests

Deep and Broad Technical Experience
- Worked with a handful of technologies long enough to become experts / competent
- Ability to recognize recurring patterns, and know how to rectify issues they foresee
- Versed in best practices


I'll be putting these notes into better format and potentially writing an article to summarize any of the discussion.

Would love to hear what others think from their experiences!

Top comments (9)

Collapse
 
evgeniir profile image
Evgeniy • Edited

A great engineer is an engineer who likes to do complex things, and likes to do them well.

Collapse
 
sebbdk profile image
Sebastian Vargr

I would tend to agree, making complex things into simple things has always been my impression of mastery for the generic developer.

Juniors write computer-code, seniors write (verbose)people-code. :)

Collapse
 
avatarkaleb profile image
Kaleb M

And seniors try to help them along the way :).

Collapse
 
avatarkaleb profile image
Kaleb M

That's true! What do you mean do them well?

Researches and takes the time to do them correctly?

Collapse
 
evgeniir profile image
Evgeniy • Edited

"What do you mean do them well?

Researches and takes the time to do them correctly?"

Yes, and can justify why it is correct without resorting to the "collection of best practices"(such collections are rarely good, really).

Also, Self-reflection is one of most important things to avoid getting stuck in understanding some topic.

Thread Thread
 
avatarkaleb profile image
Kaleb M

I love the thought of self-reflection on the things great engineers do regularly. Recently, I learned Ray Dalio does this for decision making - he records decisions he makes, then reflects on them later to see how they went and what went wrong in his decision making process if they don't go well.

How do you typically track best practices?

Collapse
 
bbarbour profile image
Brian Barbour • Edited

If you're working in the corporate world, you need to be able to care about other people's problems enough to put in a real effort to solve them. That can be the hardest part sometimes. If it's your own project, it often seems like a breeze to get the motivation to finish things or fix them. But, if it's someone else who hired you to fix their problems--sometimes it can be a struggle to get yourself invested.

Collapse
 
avatarkaleb profile image
Kaleb M

That can be really tough, agreed! I find it helpful to try and find work in the corporate world for organizations you care about or admire, where you can find projects you're passionate about. Definitely not an easy task.

How have you combatted this?

Collapse
 
castrike profile image
Cristóbal

looks at mirror there is your answer!