DEV Community

Cover image for Skills to Become A Software Engineer
Maddy
Maddy

Posted on

Skills to Become A Software Engineer

Hello!

I'm opening this discussion because I'd love to know your thoughts around what are the top skills someone should have to become a software engineer.

My list would be:

  1. Problem solving
  2. Coding
  3. Communication
  4. Team Work
  5. Humility

Do you agree? What would you add/remove/replace?

Let me know in the comments! 😁

Top comments (18)

Collapse
Β 
joelbonetr profile image
JoelBonetR πŸ₯‡ β€’ β€’ Edited

To become an engineer you need a master's degree in Engineering πŸ˜…

Engineer !== Developer // true
Enter fullscreen mode Exit fullscreen mode
Collapse
Β 
patracio profile image
Patracio β€’

So true, unfortunately, software companies do not understand that condition

Collapse
Β 
joelbonetr profile image
JoelBonetR πŸ₯‡ β€’

Oh they sure do. Developing is part of the daily job of most engineers but it has -usually- a different scope.
You'll have engineers doing PoCs, stablishing E2E workarounds with Archiitecture team and providing abstraction layers whereas devs will use this abstraction layers (or frameworks, libs or tools) to develop the solution according to the specifications and acceptance criteria.

Collapse
Β 
maddy profile image
Maddy β€’

Thanks for your comment @joelbonetr ! What do you think is the difference between engineer and developer?

Collapse
Β 
joelbonetr profile image
JoelBonetR πŸ₯‡ β€’ β€’ Edited

An Engineer oversees the system as whole using engineering principles, whilst a developer focuses on creating functional software.

You can act as engineer without the engineering of course, the required skills would be those that permits you to understand the whole system such linear algebra, computation, OSs, compilers, software engineering and so. Depending on the environment you are working on, it will relate to some group of subjects or another.

Collapse
Β 
chacalonchacaloso profile image
Paul Cortes β€’

Seltaught,I thinking that is a important skill

Collapse
Β 
maddy profile image
Maddy β€’ β€’ Edited

Thanks for this, Paul. Self-taught is a great one because software engineering evolves all the time and you should be able to teach yourself stuff. πŸ‘πŸΎ

Collapse
Β 
huncyrus profile image
huncyrus β€’ β€’ Edited
  • Open mind (open to investigate or solve something from a different angle)
  • Understand and know yourself (comfort zone, when to leave it; time management; ...)
  • Understanding and oversighting (low and high level concepts, Oversight or understanding the system as whole)
  • Decent human being (this one hard, for example not slandering ppl with titles to say, no thats not engineering, thats development and such stupidity).
  • Ability to adapt and learn.
  • Ability to deliver and help.
Collapse
Β 
eddycorderol profile image
Eddy Cordero β€’

Attention to detail

Collapse
Β 
maddy profile image
Maddy β€’

Thanks for your comment @eddycorderol , this is a good one. Why do you think it's important to have an attention for detail? :)

Collapse
Β 
harithzainudin profile image
Muhammad Harith Zainudin β€’

I would like to add into the list,
"Skill to search in Google" hahaha

Collapse
Β 
lico profile image
SeongKuk Han β€’

Passion...? I'm not sure this can be on the list. But there is Humility, so,
I enjoy working with people who are passionate about their job.
Who can smile while talking about coding...?

Collapse
Β 
maddy profile image
Maddy β€’ β€’ Edited

Thanks for your comment!

I put humility because it's challenging to know everything in this field. Plus, I find software engineering a field where it's easy to make mistakes (no wonder we use many error-correcting tools), and it takes humility to admit them.

Having fun while coding? For sure, I agree. But I'm not sure if it's a must-have skill. πŸ˜…

Collapse
Β 
andrewbaisden profile image
Andrew Baisden β€’

Proactive and passionate are valuable traits to have as well.

Collapse
Β 
maddy profile image
Maddy β€’ β€’ Edited

Thanks for your comment @andrewbaisden ! Those are good traits to have. 😊

Passion is something that not all software engineers have. Still, if you have it it's a bonus.

Collapse
Β 
wiseai profile image
Mahmoud Harmouch β€’

Just dropped an article about engineering and stuff. Hope you will find it useful one way or another.

Collapse
Β 
frkntkny profile image
frkntkny β€’

These days most crucial and necessary skill is having a time management if you are working remote

Collapse
Β 
joelbonetr profile image
JoelBonetR πŸ₯‡ β€’ β€’ Edited

Anyone can act as engineer with the proper training and experience tbh, acting and being are different verbs.
The issue with bootcamps/codecamps is that you only get trained to get surface knowledge about some tech stack, just enough to be able to develop solutions with proper help of the rest of the team.

You'll need mentoring and push yourself on learning satellital thingies to become a good dev.
Your life should be Code, Eat, Sleep and Repeat for months (or years) to speed up this process to receive equivalent knowledge to vocational studies (that are -usually- a 2 years official certificate).

Most people I met at work that come from bootcamps simply don't do that, they assume googling everything and asking about everything as normal part of the job where it is not, you need to be autonomous to get a raise and much more to reach a senior state. And to reach this skill level you need to practice a good amount of time daily. It requires commitment, constancy and effort.

This also applies for anyone (even having a degree or an official certificate form vocational studies) on the first couple of years as software engineer/dev, almost the entire life when on software architecture or tech leadership and so on, you just start the game at a higher level with a higher tier equipment plus boostsπŸ˜‚ base knowledge leads you to faster learning processes.