20

Do you think being a great software engineer is simply hard work and passion?
Or there is also a component of natural affinity, certain personality traits, etc.

Comments
  • 12
    No personality traits. Any arguments that being introverted makes us more able to focus makes me want to hit someone with a keyboard. I'm a huge deviation from the stereotype and I'm shit hot at what I do.
  • 7
    @atheist I actually think that being introverted might make it harder. Engineering is a team effort, and being comfortable exchanging knowledge and collaborating with others is crucial.
  • 7
    @NickyBones I mean, introversion/extroversion is just a preference for 1:1 or group setting. If you struggle to say anything in a group setting, yeah that probably makes it harder but that's a confidence issue, then you get the extreme extroverts, people that see how the group dynamic is working and support those that need the confidence boost, we can all work together. As much as anything, I think diversity is important.
  • 4
    @atheist I also prefer to work with diverse teams. When there are too many extroverts meetings can get very loud :)

    I do have a feeling though, that some people just have a natural affinity for software engineering. I can't really name it, but I notice it a lot. Some people are extremely good at debugging, because they just *know* where and how to hunt it. And this ability also happens in juniors devs that are fairly new to the product, while more experienced devs can chase that bug for weeks.
  • 5
    Personality plays a part, but I don't think it's the key.

    Passion, endurance and willingness to continue learning constantly plays a the main factor.

    Also self humility, and the ability to accept when your wrong and deal with it rather then having that "I am right always" ego.
  • 2
    @NickyBones yup, I know what you mean. That ability to read code and run the mental model in your head (or at least that's what it is for me). And I think with debugging, I can guess how I'd implement most parts of a system even if I didn't write them. Then based on that, I can guess how something being broken would cause a problem, then compare that to what we're seeing.
  • 1
    I think to be great engineer (not just software but in general), it's important to be able to say "I don't know"
  • 1
    @C0D4 I think you mean humility, not humiliation, slightly different 😂
  • 1
    @atheist Yes! To be able to simulate stuff in your head is definitely a huge advantage :)
  • 2
    @LotsOfCaffeine Definitely! It's also super helpful if you know who does know what you don't know :)
  • 2
    @NickyBones I know what "thing" you're describing here, and it's hard to really name it.

    I think a big part of how I "discovered the thing" (?) is really understanding how memory is managed in a C++ program. Or rather, how you manage it.

    It made me understand more of what's going on beneath the hood and I keep it in the back of mind whenever coding.
  • 0
    I don't think you can separate the two generally
  • 3
    Okay, my ++ score is 22002 and today is 2022-02-02
  • 1
    @electrineer I messed your score. *evil laughter*
  • 2
    @electrineer I think sometimes we are passionate about things we are not naturally good at. You can probably think about several amateur singers and actors from your area....
  • 1
    @atheist it's to early for big words 😓
  • 0
    @C0D4 I just woke up from an evening nap. Am a bit achey. I get you.
  • 5
    Yes, there are some personality traits. Like, being somewhat stubborn instead of giving up when a bug isn't easy to find. Thinking things through instead of just vomiting out the first best ideas. Understanding both computer stuff and domain requirements so that you can melt them together. And yes, also team work. The era of lone hackers are gone by and will not return.
  • 2
    @NickyBones 10k hours of practice can make anyone look like an expert, classic is snipers. But it kinda gives the situational reflex, in engineering that might help with fine detail, less the high level problem solving/dealing with new.
  • 2
    @NickyBones
    Don't forget about the ability to abstract and visualise virtual landscapes and infrastructure.
  • 1
    I think perception helps you be better programmer. You can notice what other people don't.
  • 1
    Different people can be great for different reasons
  • 0
    I think being great at something is mostly related to how people feel you not how you feel yourself so being great at something involves being human and being human is opposite of ability to write good code so being great has nothing to do with software engineering.

    Back to your question what it is to be great software engineer is being a dick in real life who doesn’t know how to write proper code and stupid popular person in front of bunch of assholes.

    Being attractive woman / man helps nowadays cause if you’re attractive you’re certainly good at everything.

    So yeah definitely personality.
  • 3
    @vane I'm... Uhhh... What did I just read?
  • 0
    @atheist that you don’t see ugly faces in tv or social media accounts of people great at something :)
  • 2
    @vane think we've seen different people at tech events.
  • 0
    @atheist yeah because instagram filters were made to make people uglier, events are not transmitted in tv.

    If you’re not liked these days people would cancel you and don’t invite to present anything. So you would be forgotten and won’t be great.

    That’s why software sucks, cause of to much wannabe pretty faces thinking they’re rockstars cause they rewrote shit someone did 30 years ago on 80486 but now it’s eating 8gb of ram instead of 8kb.
  • 3
    @vane my brain hurts from trying to understand you. The fuck is your point? Listen to people's words, work out if they're full of shit. Whether you find them attractive only matters if you're thinking of dating them.
  • 1
    @atheist that being great is not something that you can call yourself, same like you cannot call yourself king of England - except when you’re crazy. People who are great at something definitely don’t call themselves great or want to be called that. The more you know the more you don’t know.
  • 1
    @vane uh huh. Accurate self assessment is possible. I spend a lot of time teaching, collaborating. Being trapped by the existential dread of what I don't know seems pointless.
  • 1
    @vane 👀
    So, like, wtf bro!

    So, you're telling me I'm a handsome god like Thor! Eh, I'll take it.
  • 0
    @C0D4 I’m saying that people feel you are like Thor if you’re pretty or famous or rich or great or pretty and famous and rich and great.
    Being great has nothing to do with greatness, that’s just how people feel about you. Do you wake up every day and say I’m great and feel good or you prefer people telling you that you’re great.

    Let’s make a simple mind experiment. You’re great engineer that arrives to foreign planet and during landing your machine accidentally kills whole family of the only historic writer in ancient Egypt, then you built pyramids and fly away and only person who can write about it is that dude who hates you cause he thinks you murdered his family on purpose. After couple of generations and thousands of years are you an alien who arrived and built something or a tyrant pharaoh who killed thousands of people ?

    That’s just subjective story. Our story would be also subjective and lost and being great wouldn’t survive more than couple hundreds years cause history is being rewrote all the time by historians.
  • 1
    Hard, smart work. Interest is obviously important, otherwise you will get bored fast. But you don't need to be passionate about it. I don't think there is a talent for it at all, it really boils down to people learning in different ways. Someone not understanding a concept is more dependent on the teaching method. But that's just my experience. There are exceptions, but they are rare.
  • 2
    "Software Engineer" is such a broad term. There's problem solving to come up with a solution. Then there's solution implementation on a computer. There's code for process/automation. There's debugging to find out a problem. And maybe others too. These require different skill sets and ways of thinking which may be developed with hard work. One may possess some or all of these skill sets so there's really a mix of people. Some also have certain innate talents which makes them better at some or all of these different types of jobs.

    A majority of the jobs these days don't require you to possess all the skill sets which I personally think is not great. Only a small proportion actually problem solve. The rest are mostly involved in rest of the activities.
  • 1
    you need passion. period.

    if you don't have passion, you won't be a good [pick ANY IT-related job]. period.

    also, having an analytical mind helps.
  • 2
    I think it's a little bit of both. And a few things more.

    Break it down it down: what it takes to be a sw eng?

    - analytical thinking

    - logical thinking

    - thinking inside and outside of the box

    - ability to see the big picture as well as the individual pieces; even if they are not there yet

    - heaps of knowledge

    - a good technical 'gut feeling'

    - persistence

    - ...

    Are you born with them, do you acquire them as a kid or do you learn those things in your adulthood? Some can be learned, some you're either born with (at least affinity to) or are taught in early childhood (and they become your life-defining personal qualities), others you can definitely learn.

    IMO it takes all of the above and more to be a *great* sw eng. If you lack something, you can still be a dev or even an eng, even though not the best.

    What do you think? How would you answer your own qn?
  • 1
    @vane I can tell you from personal experience that being pretty as a girl automatically classifies you as an idiot in our industry.

    People assume you were hired as decoration, and not as a skilled engineer, and treat you accordingly.

    Also, if you look at world famous software professionals, you'll hardly find there beauties. Linus Torvalds is not exactly Brad Pit.
  • 1
    @-red For me a software engineer is a someone who is sufficiently good in all fronts - software design, coding, debugging, understanding time/memory trade-offs, collaborations...

    I agree that most jobs don't require that.
  • 2
    @netikras I saw some stark differences in abilities between people that were equally passionate about programming. I am all for working hard and putting in the effort, but I still feel there are certain things that are either natural ability or developed in early childhood that can take you from 8 to 10.
  • 1
    As you can see this is a controversial Topic.

    My two cents are that there are some personal traits, but It's not simple to identify. Anyone that attended a Software dev Uni can probably tell you that some people are very clearly not good at thinking like a programmer and not for a lack of trying. I had several classmates who supposedly enjoyed coding and tried their best but were struggling all the way to their masters degree. They often needes help with the most basic questions and obvious solutions just completely elude them until pointed out.

    So that's why I think there's *something* that makes a person a "natural" dev. But as with everything regarding "talent" you either use it or lose it, and you can completely compensate for it with experience and effort
  • 1
    For me it is dedication, and affinity towards the subject.

    All the talks about, you can learn and if you spend enough time you will be great is not really true.

    Sure you can learn and will probably get better.

    But some stuff you are born with.

    Like Ronaldo. Why aren't there many football players with the same skills ?

    Most can train every day, learn every move and that is still not enough.

    Same for Bold, why can't someone who run everyday and train really hard beat his record ?

    Learning is the same as sports. The more you learn, the faster and quicker you can see patterns, 'run the code in your head'.

    You can test this yourself. Like ask around you about how they read a book.

    Do you actually read the words. Or can you read the text just by looking at it ?
  • 2
    There is the concept of "the knack". If this is interest driven, IQ driven, or proficiency driven I am not entirely sure. I just know I could understand things my siblings could not. Or they had no interest in understanding. I found writing code to be simple and natural.

    What I have struggled with is visualizing more complex problems, unless I break them up into pieces. So when looking at algorithms I don't always get it by looking at a description of the algo. I have to build it sometimes to get it to click. Maybe build it differently than the algo and then back to the algo. I often learn more about he algo when I fail to get it working correctly and have to find solutions.

    Debugging was never that hard for me. I do find challenges debugging other peoples' code sometimes. Just because I don't have a good feel for what might be causing an issue right away. I am getting better at that though. Similar with reading other peoples' code. Was a struggle at first.
  • 1
    @mabbott94 This is super interesting! I'd really appreciate it if you can share your research!
Add Comment