Where’s
Using Solutions that Already Exist
No, seriously, you don’t have to build everything from scratch by yourself. Other people write code too.
It’s a double-edged sword and understanding when to re-use and when to re-implement is an art that goes wrong more often than right.
We desperately need to teach people when a 3rd party dependency is necessary and not just optional to save writing a single function (cough left pad cough).
Also when the dependency is really good but other considerations override it being a viable option like security or code ownership.
How we all didn’t collectively learn our lesson from left pad baffles me.
Yeah, the problem is the balance. In-house code sucks. Nobody outside the team tests your code. Self-developed code is not battle hardened. You can only use the skills available in your team and especially for specialist topics like databases, security or cryptography having in-house expertise is rare and expensive.
Using external dependencies sucks. You are dependant on externally developed code and on someone elses skills, quality controls and trustworthyness, and you usually don’t have time or ability to really verify any of that. Even a good dependency can get stuck in some kind of development hell (like e.g. OkHTTPClient) and not deliver updates for years, and supply-chain attacks are constant threat.
In the end both options suck for different reasons and it really depends on the scenario where one or the other is useful. Leftpad is an extreme example, but most options are less obvious.
Well said. I find I have a hard time with trying to get devs who cut their teeth on Node to take a moment and think before just reaching for a dependency. A dependency might be the right move but taking a moment to consider is a bare minimum and most people don’t do that.
I’m trying to keep my panic over how that behavior translates to AI code in check but it’s a struggle given human behavior time and time again.
Got caught in that trap at my first coding job. Made a sort formula and a sr dev asked my I didn’t just use the array.sort.
My answer: I didn’t know it was there.
Ah, the ever-elusive, mysterious stage in my process - the one I can’t ever seem to move much before the “planning” and at least “beginning to implement” stages, and sometimes stubbornly comes even later than that.
There’s a lot of humour in there, but this:
CSCI 3300: Classical Software Studies
Discuss and dissect historically significant products, including VisiCalc, AppleWorks, Robot Odyssey, Zork, and MacPaint. Emphases are on user interface and creativity fostered by hardware limitations.I’d take that course in a heart beat. I’ve read some of Atkinson’s ideas and thoughts, and the man was deeply sane.
It must be decades now that my LinkedIn background banner is a screen shot of Zork source code.
I feel like I’m the only CS major to have taken a CS focused ethics class
Would be nice if all engineers had to take ethics
I’m a CS major who had to take ethics, but the REQUIRED textbook was written by the professor teaching the class. Managed to get through the semester with an A without buying it and called him out in the class survey.
I was required to take an ethics class, but it was a complete joke. Guy just wasted a bunch of time on very surface-level, Philosophy 101 stuff like talking about who Aristotle was. I’m not sure we even had homework actually. Real ethics were nowhere to be found.
I’m fairly certain that people who advocate for teaching ethics, only do it under the assumption that people are being taught to do what the proponent wants. In reality learning ethics is just learning different theories of ethics.
Problem is: non-ethical projects tend to pay more or take advantage of the situation. I know what I mean: when one of my projects fell apart recently I was approached by a “Battlefield Management App” which I could develop, of course for “the good guys”™.
I chose unemployment because that’s not the world I want to develop, but I can totally imagine that in a more dire circumstances (I’m in debt with family to take care of or it’s war and I’m running out of money fast) my choice could’ve been different.
Still, ethics would be good, even if it wouldn’t magically save the world 💪🏻
History of software design would be an AMAZING course.
It’d be a good idea. Hopefully it’d see an end to those idiots claiming single exit means there can only be one return statement.
It’d be fun to talk shop with the fast code in slow languages folks. I do that for a living. I remember three ways, but I’m sure there’s more:
- “Just use a better data structure”
- “My language is a DSL for a faster language” (Polars, Numpy, etc)
- “My compiler is surprisingly good if I’m careful” (Julia, JVM, etc)
Arguably “we can just put it in docker, and create an auto scaling microservice with a load balancer, behind a CDN for avg request latency” fits this group too. The hoops I have to jump through to get a good user experience on top of our shitty PHP backend are unreal
That’s not what I was thinking but I like it! Http caching is pretty magic. Stateless nodes and easy scaling too.
For some kinds of problems you really can’t beat varnish and friends. It’s how we have Wikipedia, after all.
It’s almost always slow is ways that the language choice doesn’t matter even a little
I’ve never seen a course on functional programming. That would be interesting.
It’s what the Wizard Book (Structure and Interpretation of Computer Programs) was written for.
I had one. I wish I remembered more of it.
“Key Search Words 101”. Make it quicker and easier to find other programmers solutions on the web.
-1 for unlerning OOP
But
+1 for Zork
+1 for unlearning OOP
It’s a cult
Like everything that’s impressive at first sight, but misunderstood because you never go past that first impression.
Why? I find it quite useful.
That’s because you haven’t unlearned it yet
While the concept has it’s uses as a tool, the fallacy that OOP advocates fall into is overusing it.
I’ve seen many people completely swear off of using scripts, which is absolutely ridiculous. While you may use some tools more than others, swearing off an entire code structure for no reason is ridiculous.
Say there’s a module of code you need to write that has hundres if not thousands of variables that come into play in combinations that would be extremely difficult to organize as functions. You’re then stuck with passing all those as inputs and outputs between functions.
Sure, you could organize all those variables as a giant array and pass them around as one big block, but at that point you’re just emulating the shared workspace that you get with scripts, and you’d just be better off working with scripts from the start.
The issue with OOP is that it completely ignores this reality and insists that nobody should ever need a script, and if they think they do then they just aren’t clever enough.
Well you’re not wrong, but man, you’re hating the screwdriver because you work in a bolt factory.
Use the took that best suits your problem, right?
Also: what’s that code that has thousands of variables that cannot be organised? If it isn’t just an example for the sake of an example, I’m genuinely curious! And how does scripts “fix” that?
Also: I have always hated java for their overuse of OOP, but also restricting its use, wtf.
Also: I love a straightforward script, on linux at least!
Well you’re not wrong, but man, you’re hating the screwdriver because you work in a bolt factory.
Like I said, the problem with OOP advocates is that most of them are calling for bolts to be destroyed in this analogy. If they weren’t so fanatical about it we wouldn’t be havining this conversation.
what’s that code that has thousands of variables that cannot be organised?
It’s not a random example. I can’t go into detail, but it’s the code I work on on a daily basis. It’s a physics model for industrial equipment. Highly customizable for customers, and I need to know exactly where various sub assemblies are located and be able to move them in various configurations.
And scripts doesn’t “fix” the problem. It’s more that using functions is infeasible due to the difficulty in cramming everything into input arrays, so scripts end up being orders of magnitude more efficient to work with. The scripts are all called from a function, which does allow us to interface with other groups or our own custom GUI.
That’s wild, I have worked on large scientific software, coupled with electron microscopes (off all kind of types, bio, material, big, small) and we had over 700 types of processings of different data and visualisation. Without OOP in there it would have been a one man orchestra-mess per client.
We had those people clinging to their scripts too, they were actually the best getting the results out from bad aquisitions, but it’s kind of complicated because it’s not the scripts that are important but the dude using them.
The OOP was good because it tied it all together (you could easily string compute modules together to form new treatments of data for example), that’s not needed in a small, one-situation setup, but still I’d code something to manage it all if I were you (and had the possibility to do so ofc), maybe your gui does that. But then again, I don’t know how it all works where you work so what do I know 🤷🏻♀️.
Cheers
still I’d code something to manage it all if I were you (and had the possibility to do so ofc)
You’re continuing the exact problem I described. Quit. Dictating. To. Me. How. My. Code. Should. Work.
“Best practice” is a fucking guideline. You can’t bilndly apply it to every single situation and expect it to work all the time. There’s always exceptions and nuance that must be accounted for, and the people that refuse to ackowledge that are fools.
Go find someone else to gaslught, jackass.
Have you ever seen a real-world project that actually uses OOP in any significant capacity? I haven’t.
When using Java, you might write “class” on top of your structs and modules, but actual OOP with self-contained classes that contain both data and business logic using inheritance and all the other OOP concepts, that’s incredibly rare.
Hello programmers, electrical engineer here.
I work in MEP design, basically power design for commercial buildings and multi-tenant residential.
I am constantly saying I wish every fucking engineer, architect, interior designer, building manager, etc. had been forced to take a class on project management and accountability.
Curious if some of you run into a similar desire…

I would actually love to take 3300! That sounds fun.
As for 4020, writing performant code in Python typically means calling into libraries that are written in C.
Missing “how to politely but firmly tell management ‘that’s a dumb fucking idea’”







