5

Perhaps as a tip for the junior devs out there, here's what I learned about programming skills on the job:

You know those heavy classes back in college that taught you all about Data Structures? Some devs may argue that you just need to know how to code and you don't need to know fancy Data Structures or Big o notation theory, but in the real world we use them all the time, especially for important projects.

All those principles about Sets, (Linked) lists, map, filter, reduce, union, intersection, symmetric difference, Big O Notation... They matter and are used to solve problems. I used to think I could just coast by without being versed in them.. Soon, mathematics and Big o notation came back to bite me.

Three example projects I worked in where this mattered:
- Massive data collection and processing in legacy Java (clients want their data fast, so better think about the performance implications of CRUD into Collections)
- ReactJS (oh yes, maps and filters are used a lot...)
- Massive data collection in C# where data manipulation results are crucial (union, intersection, symmetric difference,...)
Overall: speed and quality mattered (better know your Big o notation or use a cheat sheet, though I prefer the first)
Yes, the approach can be optimized here, but often we're tied to client constraints, with some room if we're lucky.

I'm glad I learned this lesson. I would rather have skills in my head and in memory than having to look up things and try to understand them all the time.

Comments
  • 0
    Maps and Sets are the most obvious ones we use all the time for their constant time lookups and comparisons
  • 2
    Heh. The legendary golden boys at $work would see this and chastise you for “premature optimization.”

    According to them: “you should only ever think about optimizing anything after you run into a performance wall.” … which explains the horrible performance and memory issues we keep running into everywhere.

    Fucking hell I hate my job.
  • 0
    Good tip, but to be honest the noobs will learn that the hard way when they're on the job wondering why their app is slow as shit. It's a shortcut to learn it in theory but it's empty knowledge until you're facing the real deal.
  • 0
    I was never even taught big O notation

    probably would forget it soon after anyway
Add Comment