What kind of person is best suited to software development?
Software development (and other positions in IT) used to be associated with autistic people, but that's not so appropriate anymore because of the workplace focus on working in software development teams. Also I've noticed in job advertisements for this kind of work that there is mention of soft skills requirements related to social behavior. They want people who can communicate well verbally. I don't think that was focused on before. Large companies like Google and Facebook also seem to focus on creating social activities for their employees.
Of course it was kind of a stereotype, but it had truth to it—autistic people seem to like and do well with technology, and being a capable programmer requires lots of attention to detail.
So how would you describe the sort of person who is well-suited to software development now? Is there a specific category of people, like autistic people and nerds were a specific category for old-school programming?
Hey, great question! I've been a software engineer for over a decade at this point, so happy to answer.
Generally, I don't know how important being "social" is as a software engineer. I've found that the most useful traits are:
1. Grit - The ability to bang your head on the desk until you figure out how to solve annoying and unexpected technical problems. I'd say this is what differentiates good and great software engineers.
2. Curiosity - You like solving puzzles and reverse engineering stuff.
3. Love of simplicity and order - This is another very important trait that separates good and great engineers. Lots of engineers make things "too complex", e.g. they "overengineer". The best engineers find the simplest solution to the most complicated problems.
4. Kind and patient - Being kind and patient with your peers when there is a differing opinion and you "know you are right" is super important.
Stuff that doesn't really matter:
1. Leetcode / algorithm whiteboarding. This happens during interviews at some companies but it's not really that important at most jobs. You'll pick this stuff up as needed.
2. Being a social butterfly - There is a reason that the software engineer stereotype exists.
Hope this helps!
Ability and Ambition.
You need ability to handle just about every programming language available, as well as abilities in networks, scripting, databases, security protocols, and even a little cryptology. A few esoteric skills can be useful, but are not essential (mine include amateur radio, astronomy, statistics, and more).
You need ambition to apply these abilities to the job for which you were hired -- that is, no web surfing, no MMORPGs on another monitor, and no social apps that are not directly related to your work. Also, if you lack the ambition to learn new abilities, you may as well get a job in retail.
It also helps if people:
• hold themselves accountable for their own actions, and don't try to blame others for their mistakes
• keep their philosophical, political, and religious opinions to themselves
• complain quietly, and to only those people who can provide a resolution, or not complain at all
• contribute more than their fair share to support "Free Donut Friday"
Other than that, rhyneandrew posted some really good stuff too.
_________________
Similar Topics | |
---|---|
Has Anyone Seen A Kind of Spark? |
03 Sep 2024, 2:47 pm |
What are the best strategies to study for person with ASD? |
31 Oct 2024, 10:09 am |
Person whose post started Haitians eat pets speaks |
20 Oct 2024, 2:18 pm |