what are the skills that every software engineer should have regardless of the tech stack he uses

Edit : they* instead of "he" in the post title

As a software engineering student, I think There are some topics/skills that most software engineers should know and that are not related to a specific technology/programming language/framework...

Said otherwise, transversal skills that will always be useful to have no matter what technology a software engineer works with and that can never become "outdated" like a framework/library could.

I want to know what are some of those topics so I can put some effort in mastering them before graduating.

Here is a list on the top of my head and I would appreciate if you completed it

  • System design
  • SQL
  • data structures & algorithms
  • computer networking
  • Shell scripting