DEV Community

Discussion on: What was the hardest concept you had to wrap your head around?

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

Odd as it sounds, avoiding premature optimization was my biggest issue when coding. I have a natural tendency to always try for the most performant solution at the expense of readability/maintainability without considering what really is 'good enough'. It's not even just been an issue coding, but with any kind of design or engineering thing, I have the same tendency to optimize long before I should and far more than I should.

Other things that come to mind that I thought were difficult to wrap my head around at the time but now look back on as not being that hard include:

  • Using the command line.
  • 0 indexing of arrays (and lack thereof in languages that are obtuse and don't zero-index their arrays).
  • JSON's super picky syntax rules (it still ticks me off to not be able to use single quotes or trailing commas).
  • Low-level networking.
  • Pointers.
  • Immutability.
  • Assembly language (x86 still is hard IMO, but I have no issues with most RISC ISA's).
Collapse
 
arikaturika profile image
Arika O

Did you use to have the premature optimization "issues" even as a junior? I'm still at that that point whee first I make the code work and maybe at the end I try to refactor it, but I can't really code with optimization in mind. I guess it's an experience thing? And I fell the pain of all the other points except for the last one, cos' I never used assembly language.

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

Actually, yes, I had the same issue even when starting out. I was a bit of an odd case at that point though because I already knew a lot more about the low level operation of computer hardware and the mathematics underpinning theoretical computer science than a vast majority of new developers do.