Thread: Career Advice

  1. #1
    Registered User MutantJohn's Avatar
    Join Date
    Feb 2013
    Posts
    2,665

    Career Advice

    So...

    I think a fellow programmer at work has a serious case of "if all you use is a hammer, all you see is a nail" syndrome and I don't think it's making it a great place to work.

    I think a good programmer should be able to shift styles as need be.

    Basically, this is all started because I used a for-loop. But, MutantJohn, you might think, were you using the for-loop incorrectly? After all, they are relatively fragile and are oftentimes used to do too much at once.

    Well, fear not! For my for-loop had but one statement in it. Yes, my goal could easily be accomplished with a single statement for-loop. It gave me everything perfectly, I could break as I needed to, it ensured order when order actually mattered.

    I was very proud of it its rudimentary simplicity. A task at work could literally be solved by a dumb-as-dirt for-loop.

    But what about the bounds of the loop, you might ponder. How do we ensure those? Simple. We were only looping over a hard-coded static array. It was sort of guaranteed to be there.

    I even wrote a pretty decent test suite to catch breaking refactors. Okay, I attempted to write a test suite with good testing behavior. Whether or not I actually did that was surprisingly not debated so this is really to be determined.

    But no. It wasn't functional enough. In fact, this fellow programmer responded to my pull request with literally 6 function calls from a library we use. Even without that library, he wanted a reduction which was okay but it wasn't as versatile as I would've liked. And just like the sort of for_each construct, I don't think you can break out of a reduction.

    I sort of pushed back with, "this was over-abstracting the code". It didn't need the abstraction layers that they had proposed and I may've said that it was venturing into Enterprise FizzBuzz territory. And now there's just this bad air hanging around.

    JavaScript is a great language because it's so multi-paradigm (though it favors OO the least) and part of that boon is the ability to shift styles as need be. To me, you should be thanking programming God if your problems could be solved by a single-statement for-loop, even if it is written in an imperative style.
    Last edited by MutantJohn; 05-05-2016 at 07:03 PM.

  2. #2
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Git is an excellent tool. The best. And pull requests are an awesome organizational tool. The best.

    But there is a social aspect to all organizational tools that some companies (I advise SMBs, maybe not LBs) really should give some thought and enforce in their internal guidelines. If I see a pull request from one of my programmers which I don't agree with, I'll make sure to discuss it with them personally. Unless there is a physical barrier, I never encourage discussions on the comment system and I strongly discourage (I enforce) that no pull request should be rejected. All pull requests must be pulled down by their own authors. This has helped contribute to a friendly working environment where programmers discuss code face to face and away from the communicative misconceptions and limitations typical of online discussion, while respecting the work of everyone and contributing to the individual own personal development as a programmer.

    Sometimes this may not be possible. Physical barriers won't allow for this. And large complex projects may demand a more formal organization that must indeed force an hierarchy if it wants to function properly. But if your team consists of a group of people all working together in the same space, there is no reason for the behavior you described.
    Last edited by Mario F.; 05-06-2016 at 07:48 AM.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  3. #3
    Registered User MutantJohn's Avatar
    Join Date
    Feb 2013
    Posts
    2,665
    Actually, yeah, this all took place in person. Idk, man. I feel bad about calling it Enterprise FizzBuzz but I think that was joke was created out for situations like these.

  4. #4
    Registered User MutantJohn's Avatar
    Join Date
    Feb 2013
    Posts
    2,665
    Btw, if anyone is interested, this is literally almost a verbatim copy of what I wrote: ramda/props.js at v0.21.0 * ramda/ramda * GitHub

    We use the Ramda library at work. It's amazing, btw. If you like Node or just wanna try it out, I highly recommend incorporating Ramda into your toolbelt. JS does functional programming in a non-bad manner

    But yeah, that was literally the code that I wanted and wrote. I didn't know at the time that Ramda actually had a function that did what I wanted (and neither did my fellow programmer) but now that I'm looking at the source code, I'm kind of laughing. I feel like illusion is a very key component to people's perception.

    The only difference was, I just used a for-loop instead of a while-loop because JS finally​ introduced block scoping.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Career Help Advice
    By RocketMan46 in forum General Discussions
    Replies: 6
    Last Post: 04-09-2015, 09:24 PM
  2. Need serious career advice from the elders here
    By scarecrow- in forum General Discussions
    Replies: 5
    Last Post: 12-16-2014, 01:21 AM
  3. Career advice
    By MSF1981 in forum General Discussions
    Replies: 1
    Last Post: 07-09-2009, 01:53 PM
  4. Who's telling the truth??? Career Advice Needed Badly
    By Ican'tCjax,fl in forum C Programming
    Replies: 1
    Last Post: 11-06-2002, 06:16 PM
  5. programming career advice requested
    By blight2c in forum C++ Programming
    Replies: 9
    Last Post: 03-19-2002, 08:15 PM

Tags for this Thread