Computer guy, occasional gamer, shitty music producer. Denver, CO

https://corytheboyd.com

  • 1 Post
  • 39 Comments
Joined 1 year ago
cake
Cake day: June 16th, 2023

help-circle








  • Strings became ubiquitously used for a reason, they map really clearly to the way we think as humans. Most importantly, when you’re debugging, seeing string data is much friendlier than whatever data your symbols map to (usually integers, from enum structures)

    No, obviously it’s not the most efficient thing in the world, but it hardly matters, and you’re not getting anyone to stop because you’re “technically right”.





  • This right here. Get good at navigating code of questionable quality that you didn’t write. If you can’t do it, start questioning your tools, and mastery of those tools. For the big boy jobs, you should be working with existing code much more than writing new code. Learn to get excited by tweaking existing systems with a few well placed, well researched changes, instead of being The Asshole that adds a new abstraction wart.


  • To me, a corporation cannot maintain quality code because requirements are ill defined, and there is no “done” state. With those two conditions present, unable to be changed, it’s not possible to form a coherent codebase. Those who try will make things worse, because their abstractions won’t fit in a year or two.

    This is exactly the “messy code” people then leave behind. Bad code can come about for other reasons too, of course, but this is one of the more annoying reasons, because someone wrote it with self-righteousness, as if they were the only people to truly SEE the problem. Sigh.

    It’s fine, this is how enterprise works. You can learn to navigate and make a living from it. You MUST internalize and accept that it is NOT the same as maintaining code for an open source library or whatever people think it’s going to be.



  • Bar is on the floor. This is easily my best interview experience:

    • My prospective manager was clearly present and engaged in the process
    • All other interviewers were also prospective team members, and very engaged
    • I can’t state this enough, nobody didn’t want to be there. This is my absolute biggest peeve when interviewing, and I will leave if you clearly don’t give a shit. If you don’t care, you’re either just bad at interviewing and should not do it, or you know the role doesn’t really matter. You get an hour to judge me, perhaps erroneously, I’m going to do the same
    • The questions were deep, offering plenty of ways to express my experience. I get that I need to do some coding because even very tenured engineers can be very bad at it, but making me do 3 leetcode questions is fucking dumb for a Rails interview, and they clearly knew that
    • There was no punishment for answering with few words when it was warranted— the interviewers were good enough to riff off that to make the questions deeper. You can’t just put any random junior on an interview panel (do have them shadow if they are interested though), it’s a skill, and if you don’t respect that I won’t respect you
    • My point of contact was attentive and helpful


  • It took me a long time to really grok iterative methods like this, but once it clicks, you will absolutely know and feel like you have unlocked a new super power.

    It starts with completely understanding that you are just passing functions as arguments, and those functions are being invoked, in a loop, for each item in the collection. Once you have that concept internalized, you should then learn the difference between filter, map, reduce, etc. The general difference boils down to: 1. How the iterator function changes the value being iterated over (most don’t) 2. What does the iterator function itself return (i.e. map itself, not the function passed into map. map and filter both return a new list, reduce returns the data structure being reduced into)

    I would skip trying to understand reduce at first, though it’s the method you can implement all other such iterative functions with. The derivations like map and filter are just easier to start with.

    And again, seriously, it took me like 2 years to completely internalize all of this, even after CS classes.