Software developer loves and hates

Cheeky3

Member
Joined
Apr 20, 2022
Posts
24
I seek to connect with members in the same field as me. đź’—

Just wondering what your preferences are as a software dev - do you prefer fixing bugs or developing features?

I find both satisfying, but in different ways.

When you build a more complex feature there are various approaches and a more experienced dev often shares their approach and likewise, I learn from approaches other devs have taken on sites like Stackoverflow and from websites like medium where often frameworks provide you with the tooling.

Whilst I don’t particularly enjoy fixing trivial bugs, my primary enjoyment comes of bugs that are hard to find and easy to fix, affecting large parts of the system producing a funny result.

The most enjoyable ones I find are the bugs that are only replicated in specific situations. Replicating the problem itself is like solving part of the puzzle. Then the other part is understanding the “why”. Then it is so satisfying when your one line change performs a miracle and you learnt something new in the process, often times realising a fundamental misunderstanding about the “why”.

The second most enjoyable type of bug I enjoy fixing are easy to find and hard fo fix. Often you find yourself breaking something in the process and then realise you had a fundamental gap in your understanding of something technical.

On the whole, I’d say it’s the “not knowing what you don’t know” that’s the kind of challenge where I very much thrive . It’s the satisfaction of figuring out what you don’t know, and filling in that gap that I enjoy the most.

Just curious about others - what are your favourite and worst things about software engineering ? :-)
 
What I care the most when coding is code design and coding style, perhaps for code design it's more appropriate to say API design but I prefer "code design" because
API sounds like it's limited to making API's and in fact that's what you'll find out if you google for API design.

Code design on another side is more about general meaning where API design is a subcategory of code design.
Sadly the term seems like non-existent, if you google for "code design" you won't find anything meaningful, however I've heard from some coders using the term.


Code in some xyz project may be well designed or badly designed, a well designed code is one which is:
1. Well structured
- ex. split into translation units, functions and classes serving a specific purpose
2. Not duplicated or bloated
- ex. you don't find same or similar program logic in 2 or more places
3. Minimum dependent
- ex. as few external dependencies as possible and only if it will be useful for a good portion of a project.
4. No reinvention of the wheel
- ex. No chunks of code that implement something that is already well established and natively available
5. Easy to understand what the code does
- ex. Can code be rewritten so that's it's easier to understand what it does? in a lot of cases it can without affecting performance or program logic.

Code style on another side is more about things such as:
1. naming conventions
- ex. do you name some string variable as "str" or "WindowTitle" is a big difference
2. commenting your code
- Do you document your code with code comments?
3. Writing in line with well established style guidelines
- ex. do you care about compiler or linter warnings? or do you suppress them?

Code style is dependent a lot on language being used but some principles are universal.

With all this being said, it's easy to conclude why I hate the most :-)
I hate working with code which feels like it can be refactored every now and then, or one that is difficult to grasp.

I'm pedantic kind of coder and I pay a lot of attention on these things, sadly there is a downside to my style, which is that it takes
additional time which could otherwise be spent on writing code, but that's something I've used to live with.
 
Back
Top