DEV Community


Posted on

Am I A Good Software Engineer

I was thinking about writing this piece, for the past couple of weeks. It's more of a personal catharsis mixed with some observations I've made in the last 3 months. This post ain't about bashing others. Rather, it's about me trying to find to figure out about myself. Feel free to share your thoughts, critiques and suggestions about this.

Let me start with a confession: I've started to feel that I've this love/hate relationship with LinkedIn. Every day I see 100s of posts about someone passing X certification, contributing in Y OSS project or something else. Then there's another trend going on where people quote something like If you don’t come out of this quarantine with a new skill, your side-hustle started, or more knowledge gained, that you never lacked time, you lacked discipline. This is utter nonsense. Am I a bad SWE if I am not busting my ass coding during weekends, not writing tech blogs every week or taking deep learning courses online? Who gets to decide who's a good and bad engineer? I work with engineers who've 10+ years of experience, worked on commercial projects only, don't have any certifications and never written a tech blog. Are they bad too?

Every time I see these kinds of posts, I feel guilty. of not doing enough. The anxiety keeps growing. Yes I want to improve, work on a side project and prepare for my masters applications. But it's really hard!. Keeping motivational level stable is a daily grind for me. I tried contributing in Zulip, pursuing AWS certification but I failed either because they were too difficulty or I didn't had time because of my 9-5 hr job. In fact, I've failed more often than I would like to admit. What does this make me then?

I studied electrical engineering for a year before transferring were to computer science. There were 2 reasons: first, I wasn’t happy studying it. Second, job market is for software engineers is much better compare to others. The last point is important especially if you're living in country like Pakistan where economy is in pretty bad shape. Money is the primary motivation for most of the people, for obvious reasons. The idea of passionate programmer and 10x ninja developer is a myth. Whole field of CS has become so much complex that impossible to be jack of all trades and master of all simultaneously. Most people just want to have a strong work-life balance with financial stability.

I am still struggling with my demons. I don't know about the future. All I know is that I've to wake up every day and try...

P.S: I am happy for those who're still doing productive work during these awful times especially those who've families to take case of, switching career and/or facing some other life issues. More power to you!

Top comments (3)

mohammedasker profile image
Mohammed Asker

Hey, Mirza. I can relate your pain and I'd like to share my own opinion:

  • First of all, this quote "If you don’t come out of this quarantine with a new skill, your side-hustle started, or more knowledge gained, that you never lacked time, you lacked discipline" is utter nonsense. We are living in difficult times where so many people around the world have lost jobs, are struggling financially, and loved ones get contracted with COVID-19 and even lost their lives. It takes so much more time and effort to stay composure in this situation. The guy who made that statement is less likely to be affected by the pandemic and may lack empathy and compassion.
  • Secondly, no one is obligated to own a portfolio or blogs to get a job in software development and be successful in the career. You often hear this advice because it helps you to come off as an expert which in turn will give you an edge on the recruitment over other candidates although how much of this is true depends on circumstances such as locations and the technologies they are covering. Personally, I am writing blog posts as a way of fighting Imposter's Syndrome and give back to the tech community who helped me to learn to program.
  • Thirdly, no matter what you do, there will be always someone who is better than you in terms of knowledge, skills, and amount of money they make. However, there will be also other people who are below you and it's all matter of perspectives. If anything, I suggest you compare yourself against the previous you. For example, is there programming concepts and tools you used to struggle so much and now you can use it easily? Or, is there a bug that you can fix it without having to google every single time? By thinking this way, you'll notice how much you know your stuff. You're a more capable person than you initially thought!

In the end, you should not listen to someone who frequently puts you down and instead looks for someone who lifts you and makes you a better developer and a better human being.

P.S: In case it's not clear: you are a GOOD software engineer!

spiritupbro profile image

dont worry living your life as much as you can enjoy your life whatever the life gave you gave him lemon means that we can be bsd programmer good programmer most important thing we gave back to community no matter what the community gave us just like JFK said dont ask what your country ask what you gave for your country

guitarino profile image
Kirill Shestakov • Edited

Notice something.

This article is called "Am I A Good Software Engineer". Yet, the content of the article is not about whether you're a good software engineer or not. It's about how your perception of yourself is skewed because you compare yourself to others, and because you believe the world believes in 10x ninja myth. I think there's also a deeper question that you haven't expressed consciously, but I think it lingers in your subconsciousness, and I'll get to it.

First of all, what actually defines whether you're a good software engineer or not? There's different ways to slice the pie: e.g. does "good" mean experienced? Can a novice developer be good, and what distinguishes them from a bad novice developer? Honestly, if you start thinking of this, it becomes uncomfortable to attribute "good" and "bad" to people, and it's much easier and fairer to attribute "good" and "bad" to code. I'd argue the following: (1) Good code is easier to read, easier to maintain, has better performance, and (2) A more experienced developer produces good code more consistently and more intuitively. So, the question "am I a good software engineer" boils down to "do I produce good code consistently and intuitively".

Now, as you see, this definition doesn't have anything to do with working every weekend, writing blog posts often, having certifications, etc. Those things are completely irrelevant. However, something made you think they are relevant... and that's where things get interesting.

Why do people get motivated to write blog posts and do side projects after their work? Why are some people more motivated than others? Those are legitimate questions. It is one thing to dismiss those questions by saying "maybe they're just better than me", but it is another to actually look into these questions with curiosity, self-compassion and open-mindedness.

Look into the following questions: (1) Why do you feel unmotivated? And (2) why do you think world believes in 10x ninjas myth?

More often than not, our subconsciousness is onto something, but it doesn't tell our consciousness the whole story. So we feel unmotivated, and start blaming the world for causing our anxiety and stress. There's a perception of a kind of peer pressure. However, this whole time, your subconsciousness was trying to tell you something else.

For example, maybe you feel unmotivated because you're not learning anything new at work. Perhaps your work is a mindless grind, and you've already learned everything you can. Perhaps you're forced to work on stupid bugs in legacy code, digging through piles of crappy code, even worse if under stringent deadlines. This situation might call for the change of a job. A job where people inspire you, where you learn things every day, where challenges are interesting rather than mundane, is a job that will deeply motivate you and is likely to inspire you to do your own projects.

Or, perhaps, there's another problem. Perhaps you spend so much time in your head, in abstraction, thinking and conceptualizing, that you lose touch with phenomenological reality (the quality of your experience of seeing, hearing, feeling). Hence, when you come home, you feel depleted and don't want to do any other thinking and conceptualizing. That's a common reason for burnout, and it may soon bleed into your job, no matter how interesting it is. The antidote for this issue is (1) being outside more, (2) being more physically active, (3) crucially, introducing mindfulness into your life. In mindfulness, you train your attention to focus on phenomenological experience and get out of conceptual level, get out of your head, which usually leads to an overall increase in your happiness.

I'd like to end my long analysis of your post by saying a few things. First of all, have self-compassion, it is always important. Secondly, challenge your own beliefs - the world does not necessarily believe in 10x ninjas - it is only your belief due to irrational impulse to compare yourself to others. I would argue that the world prefers developers like you, developers that deeply care and think about global and local issues, developers that ask questions and desire to improve, desire to be more motivated. And lastly, look into the deep reasons for your anxieties and motivation blocks - if done from a place of self-compassion and reason, this may transform your life for the better.