DEV Community

Discussion on: What does it mean to be a Software Engineer?

Collapse
 
adamvinueza profile image
adamvinueza

You've raised a number of interesting questions that I'd hesitate to say have definitive answers.

Computer science and software engineering are vast, varied fields, so much so that a person specializing in cryptographic algorithms may be so different from a web UI designer that it would be highly misleading at best to say they do a single thing, called "software engineering".

That is to say, some "software engineers" are basically applied mathematicians; others are your garden-variety software developers; others are more like artists; still others are technically competent managers. The things they're expected to know can be as different from one another as vanilla ice cream and the Riemann hypothesis.

But you're getting at something else here:

It's not really clear who can do what, and resumes and interviews can be extremely difficult for figuring out what a candidate can actually do.

That is absolutely true, but it has less to do with any "wild-west" quality to the tech field than with the fact that hiring good people is hard. If I wanted to know what you could do vis-a-vis a job I have, the only proven way of finding out is to plonk you in front of a machine and give you a job to do. That said, if I'm looking for someone to write web services in Java, or to work on machine-learning algorithms for identifying flowers on pictures of shirts, I have a pretty clear idea of what I'm looking for, and if I'm hiring I had better know the difference between a person competent at the one but not the other.

Many of the (very valuable!) resources already mentioned in the comments can help give you a good view of what many of us think of when we think about software engineering, what we might call "general-purpose software development". But what, exactly, we need to know to be effective in such jobs tends to differ from job to job and to change over time. So if I'm looking for a general-purpose developer, it's been my experience that being intelligent, open, and willing to learn goes much farther than the data structures class the candidate took in college.