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
 
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
 
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
 
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
 
frkntkny profile image
frkntkny

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

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
 
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
 
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
 
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.