Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "analogy"
-
!rant
Customer: What's the difference between an antivirus and an antimalware?
Me: *thinks for a second* So an antimalware program is like if you're on a beach with a metal detector. You're looking around for metal that's already buried in the sand. An antivirus is like actively watching people for if they drop metal on the ground.
Customer: That's an interesting analogy.
Coworker: *quietly* That's a actually a really good analogy...6 -
D: “Did the attackers exfiltrate any data?”
M: “I can’t say for sure, but most likely based on—”
D: “—but did you find any undeniable evidence of it?”
M: “Keep in mind that the absence of evidence isn’t necessarily evidence of absence. There was very limited logging to begin with and the attacker erased artifacts and logs.”
D: “If there’s no evidence, then there was no exfiltration.”
M: “If a business doesn’t have cameras on its front door and then gets robbed, it can’t claim there was no robbery just because they didn’t video-record it.”
D: “That’s a poor analogy. Nothing’s missing here. I couldn’t care less if a robber made a *copy* of my money. That isn’t robbery.”
M: “... If the Titanic really hit an iceberg, then how come no pieces of an iceberg were ever found in the wreckage?”19 -
I tutor people who want to program, I don't ask anything for it, money wise, if they use my house as a learning space I may ask them to bring cookies or a pizza or something but on the whole I do it to help others learn who want to.
Now this in of itself is perfectly fine, I don't get financially screwed over or anything, but...
Fuck me if some students are horrendous!
To the best of my knowledge I've agreed to work with and help seven individuals, four female three male.
One male student never once began the study work and just repeatedly offered excuses and wanted to talk to me about how he'd screwed his life up. I mean that's unfortunate, but I'm not a people person, I don't really feel emotionally engaged with a relative stranger who quite openly admits they got addicted to porn and wasted two years furiously masturbating. Which is WAY more than I needed to know and made me more than a little uncomfortable. Ultimately lack of actually even starting the basic exercises I blocked him and stopped wasting my time.
The second dude I spoke to for exactly 48 hours before he wanted to smash my face in. Now, he was Indian (the geographical India not native American) and this is important, because he was a friend of a friend and I agreed to tutor however he was more interested in telling me how the Brits owed India reparations, which, being Scottish, I felt if anyone was owed reparations first, it's us, which he didn't take kindly too (something about the phrase "we've been fucked, longer and harder than you ever were and we don't demand reparations" didn't endear me any).
But again likewise, he wanted to talk about politics and proving he was a someone "I've been threatened in very real world ways, by some really bad people" didn't impress me, and I demonstrated my disinterest with "and I was set on fire once cos the college kids didn't like me".
He wouldn't practice, was constantly interested in bigging himself up, he was aggressive, confrontational and condescending, so I told him he was a dick, I wasn't interested in helping him and he can help himself. Last I heard he wasn't in the country anymore.
The third guy... Absolute waste of time... We were in the same computer science college class, I went to university and did more, he dossed around and a few years later went into design and found he wanted to program and got in touch. He completes the code schools courses and understandably doesn't quite know what to do next, so he asks a few questions and declares he wants to learn full stack web development. Quickly. I say it isn't easy especially if it's your first real project but if one is determined, it isn't impossible.
This guy was 30 and wanted to retire at 35 and so time was of the essence. I'm up for the challenge, and so because he only knows JavaScript (including prototypes, callbacks and events) I tell him about nodejs and explain that it's a little more tricky but it does mean he can learn all the basis without learning another language.
About six months of sporadic development where I send him exercises and quizzes to try, more often than not he'd answer with "I don't know" after me repeatedly saying "if you don't know, type the program out and study what it does then try to see why!".
The excuses became predicable, couldn't study, playing soccer, couldn't study watching bake off, couldn't study, couldn't study.
Eventually he buys a book on the mean stack and I agree to go through it chapter by chapter with him, and on one particular chapter where I'm trying to help him, he keeps interrupting with "so could I apply for this job?" "What about this job?" And it's getting frustrating cos I'm trying to hold my code and his in my head and come up with a real world analogy to explain a concept and he finally interrupts with "would your company take me on?"
I'm done.
"Do you want the honest unabridged truth?"
"Yes, I'd really like to know what I need to do!"
"You are learning JavaScript, and trying to also learn computer science techniques and terms all at the same time. Frankly, to the industry, you know nothing. A C developer with a PHD was interviewed and upon leaving the office was made a laughing stock of because he seemed to not know the difference between pass by value and pass by reference. You'd be laughed right out the building because as of right now, you know nothing. You don't. Now how you respond to this critique is your choice, you can either admit what I'm saying is true and put some fucking effort into studying cos I'm putting more effort into teaching than you are studying, or you can take what I'm saying as a full on attack, give up and think of me as the bad guy. Your choice, if you are ready to really study, you can text me in the morning for now I'm going to bed."
The next day I got a text "I was thinking about what you said and... I think I'm not going to bother with this full stack stuff it's just too hard, thought you should know."23 -
A client asked me to do a website completely vanilla instead of using frameworks and libraries. Then asked why the quote is so much more. Is this a good analogy?
Using frameworks and libraries is like you going to the grocery store to buy eggs.
Making a website from scratch is like going into the wild to capture hens, building an enclosure, and caring for the hens at least until they lay eggs.8 -
Story time.
Not sure it counts as data loss, more temporary corruption (and in my own brain).
> be me.
> be clinically depressed
> be recently out of an awful breakup
> recently nearly committed suicide by train
> be bored and lonely one night
> take lsd
> feel fine
> go to McDonald’s
> feel fine
> while eating question the nature of reality
> become convinced I’m an observer of a cosmic story and cannot die
> go outside in only jeans
> run in traffic at 1AM to prove my point
> don’t die
> run around the streets more sure of my new reality than I’d ever been of anything
> feel free and no longer sad
> walk around observing the world
> sit on wall and wonder why the story had the structure I was observing
> fall off wall into grass and mud
> follow cute guy into apartment building
> follow into lift
> ask what everything means
> spend better part of couple hours in lift pressing emergency button asking for help
> get no response
> scare poor Russian lady that gets into lift and finds an overweight topless man on the floor babbling incoherently
> ride to top floor
> get out
> sit on leather chair in corridor
> feelsnice.tiff
> decide I’m actualising my desires and reality
> don’t realise this is just the trip wearing off and consciousness exerting more control
> walk into random apartment (door is unlocked because why wouldn’t it be for the god that I believe I am at this point)
> explore
> gorgeous apartment
> realise it’s a family apartment from clothes in hallway and items
> find bathroom
> decide I want a bubble bath
> run bubble bath
> can’t work out how to drain water. Bath now full of twigs and mud #sorry
> decide that I’d like to go home, or onto my next adventure. Hopefully the seaside as I’m now realising I have more control.
> open bathroom door
> not the seaside. Ah well. Try to walk home
> walk home wrapped in fluffy towel from nice family’s apartment
> get home
> realise what had happened
> throw remaining drugs away
> sit and rock in utter paranoia and guilt for hours until flatmate wakes up.
MFW first bad trip ever.
MFW I wonder whether that family knew I was there and were scared / discovered the mess in the bathroom the next morning and not knowing which is worse.
MFW I still have the towel because it’s fluffy AF.
The moral of the story kids, is that when it comes to the OS rattling around in your brain, installing a virus that is sensitive to what apps you have running is a bad idea when those apps make the virus go to fucking town.
Terrible analogy I know, but fuck it.29 -
Pressing Ctrl + S only once to save your code in the editor is the tech equivalent of locking the door to your mansion and not pulling the knob to check if it has indeed been locked.5
-
The IT Crowd got it right about facebook 10 years ago.
Talk about Simpsons predictions coming true.
https://youtube.com/watch/... -
My teacher at school who taught me programming. We were taught Java.
You see, Java is not a beginner's language, most say. But the way she taught it, the examples, the analogy, the explanation; she made it so easy.
She made us execute our first Hello World program (using BlueJ) and proudly said, "you're all programmers now!", that was when fascination took me over. I remember that moment till today.
Also, unlike regular exams, the programming exams required extreme competency. Marks were split up for algorithm and syntax. There were also questions like find the error in this algorithm for this output. She would always surprise us at the exams!
I had several glorious moments in class by being the first to answer most of her questions. At 13, it was kind of a big deal for me.
(Okay, who am I kidding, it still is :-P)
*sigh*
It was mostly just self learning from there. I switched schools and then there was college. Attending classes in college was like going to the gym with fat trainers. Utterly useless :-/ It just made me appreciate her even more.5 -
The amount of rants on here I see of 'Devs' complaining that other non-tech people aren't knowledgable/ can't understand 'simple' explanations / etc and are mean, or even cruel to those non-techy people is alarming.
Just because you've spent a lot of time on something youre interested in, doesn't mean:
A. Everyone else is interested in it.
B. Everyone knows everything about it.
These 'Devs' are the reason most Universities require mandatory social classes so they can make sure you can talk to people in a nice manner and get your point across.
Majority of the time I need to explain a concept I find simple or I know to someone, I try to find an analogy about something both parties know. I know that pulling the documentation information and giving to them will just result in more questions and they won't understand.
You just gotta know how to talk to people without getting angry at them for being who they are, human.
String TLDR = "Don't be a dick because someone doesn't know something you do"10 -
do you guys agree with my analogy that the biggest challenge we face as devs is not actually the challenge itself but how to describe your challenge.1
-
Customer: So I have operating system corruption? What does that mean?
Me: *thinks for a moment* Okay, so you have a bag of potato chips, right? And you're looking forward to eating those potato chips. However, when you open the bag, there are only crumbs because the guy in front of you in line had accidentally stepped on the bag and crushed them all.
Customer: ...Okay...
Me: So what we can do is we can grab a can of Pringles--because Pringles are delicious--and dump those in the bag. That way you have a good, full bag of uncrushed digital potato chips.
Customer: I like that, let's do it!
Coworker: ...why are you talking about digital potato chips?8 -
++-ing a random rant from the feed is like a one night stand whereas subscribing to a user's rant is like a long term relationship!53
-
Tech startups, an analogy:
After 18 years going from help desk teams to NOC teams, telecom engineering and all manner of startups in between I have concluded the following:
Imagine wanting to start an aerospace company because you know how to fold a paper airplane, but not how to actually design and engineer an actual craft that will pass basic air worthiness checks.
That’s 99% of “tech” companies.
Discuss. I’ll make drinks.9 -
This rant is particularly directed at web designers, front-end developers. If you match that, please do take a few minutes to read it, and read it once again.
Web 2.0. It's something that I hate. Particularly because the directive amongst webdesigners seems to be "client has plenty of resources anyway, and if they don't, they'll buy more anyway". I'd like to debunk that with an analogy that I've been thinking about for a while.
I've got one server in my home, with 8GB of RAM, 4 cores and ~4TB of storage. On it I'm running Proxmox, which is currently using about 4GB of RAM for about a dozen VM's and LXC containers. The VM's take the most RAM by far, while the LXC's are just glorified chroots (which nonetheless I find very intriguing due to their ability to run unprivileged). Average LXC takes just 60MB RAM, the amount for an init, the shell and the service(s) running in this LXC. Just like a chroot, but better.
On that host I expect to be able to run about 20-30 guests at this rate. On 4 cores and 8GB RAM. More extensive migration to LXC will improve this number over time. However, I'd like to go further. Once I've been able to build a Linux which was just a kernel and busybox, backed by the musl C library. The thing consumed only 13MB of RAM, which was a VM with its whole 13MB of RAM consumption being dedicated entirely to the kernel. I could probably optimize it further with modularization, but at the time I didn't due to its experimental nature. On a chroot, the kernel of the host is used, meaning that said setup in a chroot would border near the kB's of RAM consumption. The busybox shell would be its most important RAM consumer, which is negligible.
I don't want to settle with 20-30 VM's. I want to settle with hundreds or even thousands of LXC's on 8GB of RAM, as I've seen first-hand with my own builds that it's possible. That's something that's very important in webdesign. Browsers aren't all that different. More often than not, your website will share its resources with about 50-100 other tabs, because users forget to close their old tabs, are power users, looking things up on Stack Overflow, or whatever. Therefore that 8GB of RAM now reduces itself to about 80MB only. And then you've got modern web browsers which allocate their own process for each tab (at a certain amount, it seems to be limited at about 20-30 processes, but still).. and all of its memory required to render yours is duplicated into your designated 80MB. Let's say that 10MB is available for the website at most. This is a very liberal amount for a webserver to deal with per request, so let's stick with that, although in reality it'd probably be less.
10MB, the available RAM for the website you're trying to show. Of course, the total RAM of the user is comparatively huge, but your own chunk is much smaller than that. Optimization is key. Does your website really need that amount? In third-world countries where the internet bandwidth is still in the order of kB/s, 10MB is *very* liberal. Back in 2014 when I got into technology and webdesign, there was this rule of thumb that 7 seconds is usually when visitors click away. That'd translate into.. let's say, 10kB/s for third-world countries? 7 seconds makes that 70kB of available network bandwidth.
Web 2.0, taking 30+ seconds to load a web page, even on a broadband connection? Totally ridiculous. Make your website as fast as it can be, after all you're playing along with 50-100 other tabs. The faster, the better. The more lightweight, the better. If at all possible, please pursue this goal and make the Web a better place. Efficiency matters.9 -
Customer: *brings in laptop and printer* My internet has been terrible lately, so this printer hasn't been working very well as a wireless printer. Could you fix it?
Me: Well, it wouldn't help much because it would be hooked up on our network, so when you take it home it won't work on yours.
Customer: I don't understand...
Me: *thinks for a second* okay, so it's like you have two streams of water. Whatever you do in the first stream doesn't effect the second stream of water.
Customer: I still don't understand....
Me: Never mind. Just go home and give us a call. We'll be able to help you better that way.
Customer: Okay, thanks!
Coworker: You can't cross the streams, Rider!2 -
"How useful was your CS degree and why?" - I studied CS at university, my education always was incredibly useful.
Firstly, the knowledge you gain in itself is useful. Furthermore, we explain and understand the unknown in terms of the known. Thus, the more you know, the easier you learn new things.
But secondly and more importantly, university teaches you *how* to think. In a structured way, like a scientist or engineer. To see the bigger picture.
I originally wanted to end here, but I've read a couple of entries doubting the usefulness of any CS degree.
Our profession isn't all that different from others. It is, however, relatively young. How's this for an analogy: We're still in the stage of building sand castles. That's fine, and can be self taught. But in years to come we'll want to build bridges and sky scrapers, which are not just "sand castles scaled up". Our sand castle knowledge won't help us here. Sky scrapers need entirely different materials and a good understanding of architectural statics.
Can you still teach that yourself? Maybe. Will a formal education with a degree be useful and generally more trusted? I bet.3 -
I've been a bit "removed" from .NET lately and I've been slowly forgetting about it. It's like I grieved a loss, and now I was moving on, for lack of a better analogy. I was just beginning to get used to my new environment of Node JS and PHP. And, recently, I was put on track to complete a full project using Node JS.
And then suddenly a new company reached out to me, interested in my skills, and asked for me to build a simple .NET web app to showcase my abilities.
I got started, and holy crap I forgot how nice it was to be coding in this environment. Everything I had forgotten about switched on for me, like riding a bike. I was done with the app in a matter of hours. It was probably the most productive I've been with a coding assignment in forever. I was beaming with pride at the fact that I could code so fluently despite some time away. Everything here just made sense to me.
After I submitted it to the company for review I sat back and thought, damn, do I have to go back to Node/Express JS? I barely have any experience with it 😂. The only reason I know anything is because I watched a 20 minute quick tutorial on how to build an API. That's it.
I really want my current company to give me projects that are in my preferred language and they aren't and that's killing me right now. I can learn, that's not a problem, but my effectiveness as an employee is completely shot by not allowing me to build in code that I know and understand. I was fuckin hired for my specific coding experience, why not take advantage of what I know?
I should say something to my manager but I know they will just tell me no because they want it to be built in Javascript as it's the preferred language of the Gods.
Joking aside, I don't think they will go for it because it is another language that they would have to manage and maintain if I ever leave.
Oh well 🤷8 -
Ok I completely lost it... Been in a prod issue all week and basically just said the root cause is bc this team is blind....
Use the forest and trees analogy first but they still didn't seem to see it so I sent them this.
And then the chat went silent....2 -
JavaScript is a rollercoaster. From "Golly hello world is easy and I can make webpages now", to "wtf '1'+1 is '11' kill me now", to "it's not be that bad if you know how to use it", to discovering typescript and it starts feeling like a real language.
... until you can't build the project because you have too many types so you blow the memory limit in node. I can up the limit, but I can't guarantee that we won't blow past this in the future. Browsing issues on the ts repo reveals that this has been a thing for years.
Sticking with the rollercoaster analogy I'm now at "Burn it all to the ground".5 -
A real chef will rant about a freaking knife sharpness and weight and handle and all that shit. Because a real chef knows what he is holding.
Us? We are happy as long as the knives in our hands can cut some stuffs or stab some people.
// Disclaimer : I just left this comment on a rant where OP claimed many users (average users) have no issues with a particular OS while a bunch of self proclaimed developers have lots of trouble with that particular OS.2 -
Looks like it's time to update the old CV... Christ have I really been here for 8 years.
It's been fun, the most fun time of my life but with new owners breathing on everything stuffs starting to fall to shit.
To use a SysOps analogy there are category 1 - critical warnings ringing in my ears.
I can accept a lot, but I'm genuinely concerned for the future of this place, and after trying to fix things for long enough to realise the new owners are the ones drilling the holes in the ship it's time to sink or swim, and I don't feel like sinking.
To quote billy Joel,
It seems such a waste of time
If that's what it's all about
Mama if that's movin' up
Then I'm movin' out1 -
Hello devRant fellows, I have a question for those who avoid Google products...
What are your main motivation behind the decision of not using any (or almost any) Google product?
Respectful-for-everyone analogy:
Google is meat, you are a vegan and your non-vegan friend asked you why to start being vegan?
I'm going to highlight the word -friend- because I'm looking for constructive, argumentative, educational and respectful answers.30 -
I was telling MisterArie how to get into the productive mode and this analogy pop in my mind.
Getting into a productive mode is pretty much the same as having intercourse.
You just have to successfully start the first push and the rest will eventually follow along smoothly.
// Disclaimer : this analogy is from male perspective only since I'm one.2 -
These ignorant comments about arch are starting to get on my nerves.
You ranted or asked help about something exclusive to windows and someone pointed out they don't have that problem in arch and now you're annoyed?
Well maybe it's for good.
Next comes a very rough analogy, but imagine if someone posts "hey guys, I did a kg of coke and feeling bad, how do I detox?"
It takes one honest asshole to be like "well what if you didn't do coke?".
Replace the coke with windows.
Windows is a (mostly) closed source operating system owned by a for profit company with a very shady legal and ethical history.
What on earth could possibly go wrong?
Oh you get bsod's?
The system takes hours to update whenever the hell it wants, forces reboot and you can't stop it?
oh you got hacked because it has thousands of vulnerabilities?
wannacry on outdated windows versions paralyzed the uk health system?
oh no one can truly scrutinize it because it's closed source?
yet you wonder why people are assholes when you mention it? This thing is fucking cancer, it's hundreds of steps backwards in terms of human progress.
and one of the causes for its widespread usage are the savage marketing tactics they practiced early on. just google that shit up.
but no, linux users are assholes out to get you.
and how do people react to these honest comments? "let's make a meme out of it. let's deligitimize linux, linux users and devs are a bunch of neckbeards, end of story, watch this video of rms eating skin off his foot on a live conference"
short minded idiots.
I'm not gonna deny the challenges or limitations linux represents for the end user.
It does take time to learn how to use it properly.
Nvidia sometimes works like shit.
Tweaking is almost universally required.
A huge amount of games, or Adobe/Office/X products are not compatible.
The docs can be very obscure sometimes (I for one hate a couple of manpages)
But you get a system that:
* Boots way faster
* Is way more stable
* Is way way way more secure.
* Is accountable, as in, no chance to being forced to get exploited by some evil marketing shit.
In other words, you're fucking free.
You can even create your own version of the system, with total control of it, even profit with it.
I'm not sure the average end user cares about this, but this is a developer forum, so I think in all honesty every developer owes open source OS' (linux, freebsd, etc) major respect for being free and not being corporate horseshit.
Doctors have a hippocratic oath? Well maybe devs should have some form of oath too, some sworn commitment that they will try to improve society.
I do have some sympathy for the people that are forced to use windows, even though they know ideally isn't the ideal moral choice.
As in, their job forces it, or they don't have time or energy to learn an alternative.
At the very least, if you don't know what you're talking about, just stfu and read.
But I don't have one bit of sympathy for the rest.
I didn't even talk about arch itself.
Holy fucking shit, these people that think arch is too complicated.
What in the actual fuck.
I know what the problem is, the arch install instructions aren't copy paste commands.
Or they medium tutorial they found is outdated.
So yeah, the majority of the dev community is either too dumb or has very strong ADD to CAREFULLY and PATIENTLY read through the instructions.
I'll be honest, I wouldn't expect a freshman to follow the arch install guide and not get confused several times.
But this is an intermediate level (not megaexpert like some retards out there imply).
Yet arch is just too much. That's like saying "omg building a small airplane is sooooo complicated". Yeah well it's a fucking aerial vehicle. It's going to be a bit tough. But it's nowhere near as difficult as building a 747.
So because some devs are too dumb and talk shit, they just set the bar too low.
Or "if you try to learn how to build a plane you'll grow an aviator neckbeard". I'll grow a fucking beard if I want too.
I'm so thankful for arch because it has a great compromise between control and ease of install and use.
When I have a fresh install I only get *just* what I fucking need, no extra bullshit, no extra programs I know nothing about or need running on boot time, and that's how I boot way faster that ubuntu (which is way faster than windows already).
Configuring nvidia optimus was a major pain in the ass? Sure was, but I got it work the way I wanted to after some time.
Upgrading is also easy as pie, so really scratching my brain here trying to understand the real difficult of using arch.22 -
How can people don't even fucking try to see if there is a better way?
Fuck, I'm constantly even trying to improve my fucking bath routine for fucks sake and these brainless monkeys are gonna be stuck forever with fucking "right click-copy right-click paste instead of keyboard shortcuts" ( just an analogy )
Fuck that makes me angry...2 -
Forcing the dev to be the only one doing QA should be considered animal cruelty. That's like making the plumber take a shit after every new toilet installation. That was a terrible analogy.3
-
For whatever ungodly reason my containers library, which has extensive testing, profiling, and benchmarks against other containers libraries receives regular emails directed towards me about it, always one of two things
1) "don't reinvent the wheel" I have to assume these people haven't looked at the performance characteristics or features at all. I didn't waste away weeks of my life. I needed something and couldn't find it anywhere. I'm outperforming many crap implementations by nearly an order of magnitude, and can offer queries upon the containers in both generalized and specialized forms. As an analogy, I made airless 3d printed wheels, and people are regularly telling me I should still be using ancient wooden spoke wheels; they probably would argue in favor of using a horse drawn carriage as well. How is it possible technically minded people can also be so anti-progress?
2) "Please rewrite this in X language." You know what? YOU rewrite it. I chose what I did because it made it easy to do what I needed to do. Hilariously, the languages I get asked to use most often, are the same who's containers libraries perform worst in the benchmarks.
Both sound like half baked developers trying to sound superior. Pull your head out of your ass and actually outperform me and others. I'm so fucking sick of this "all talk no action" bullshit.5 -
Here comes lots of random pieces of advice...
Ain't no shortcuts.
Be prepared, becoming a good programmer (there are lots of shitty programmers, not so many good ones) takes lots of pain, frustration, and failure. It's going to suck for awhile. There will be false starts. At some point you will question whether you are cut out for it or not. Embrace the struggle -- if you aren't failing, you aren't learning.
Remember that in 2021 being a programmer is just as much (maybe even moreso) about picking up new things on the fly as it is about your crystalized knowledge. I don't want someone who has all the core features of some language memorized, I want someone who can learn new things quickly. Everything is open book all the time. I have to look up pretty basic stuff all the time, it's just that it takes me like twelve seconds to look it up and digest it.
Build, build, build, build, build. At least while you are learning, you should always be working on a project. Don't worry about how big the project is, small is fine.
Remember that programming is a tool, not the end goal in and of itself. Nobody gives a shit how good a carpenter is at using some specialized saw, they care about what the carpenter can build with that specialized saw.
Plan your build. This is a VERY important part of the process that newer devs/programmers like to skip. You are always free to change the plan, but you should have a plan going on. Don't store your plan in your head. If you plan exists only in your head you are doing it wrong. Write that shit down! If you create a solid development process, the cognitive overhead for any project goes way down.
Don't fall into the trap of comparing yourself to others, especially to the experts you are learning from. They are good because they have done the thing that you are struggling with at least a thousand times.
Don't fall into the trap of comparing yourself today to yourself yesterday. This will make it seem like you haven't learned anything and aren't on the move. Compare yourself to yourself last week, last month, last year.
Have experienced programmers review your code. Don't be afraid to ask, most of us really really enjoy this (if it makes you feel any better about the "inconvenience", it will take a mid-level waaaaay less time to review your code that it took for you to write it, and a senior dev even less time than that). You will hate it, it will suck having someone seem like they are just ripping your code apart, but it will make you so much better so much faster than just relying on your own internal knowledge.
When you start to be able to put the pieces together, stay humble. I've seen countless devs with a year of experience start to get a big head and talk like they know shit. Don't keep your mouth closed, but as a newer dev if you are talking noise instead of asking questions there is no way I will think you are ready to have the Jr./Associate/Whatever removed from your title.
Don't ever. Ever. Ever. Criticize someone else's preferred tools. Tooling is so far down the list of what makes a good programmer. This is another thing newer devs have a tendency to do, thinking that their tool chain is the only way to do it. Definitely recommend to people alternatives to check out. A senior dev using Notepad++, a terminal window, and a compiler from 1977 is probably better than you are with the newest shiniest IDE.
Don't be a dick about terminology/vocabulary. Different words mean different things to different people in different organizations. If what you call GNU/Linux somebody else just calls Linux, let it go man! You understand what they mean, and if you don't it's your job to figure out what they mean, not tell them the right way to say it.
One analogy I like to make is that becoming a programmer is a lot like becoming a chef. You don't become a chef by following recipes (i.e. just following tutorials and walk-throughs). You become a chef by learning about different ingredients, learning about different cooking techniques, learning about different styles of cuisine, and (this is the important part), learning how to put together ingredients, techniques, and cuisines in ways that no one has ever showed you about before. -
I don't think "main" is the best replacement for "master" on GitHub, I mean Git already uses branches so why not continue with the whole tree analogy and call it the "root" branch?15
-
Analogy: Assume a JVM is a kingdom, Object is a king of the kingdom, and GC is an attacker of the kingdom who tries to kill the king(object).
When King is Strong, GC can not kill him.
When King is Soft, GC attacks him but King rule the kingdom with protection until resource are available.
When King is Weak, GC attacks him but rule the kingdom without protection.
When king is Phantom, GC already killed him but king is available via his soul.
So Phantom ref is basically GC saying "Omaewa mo shindheru" and the object saying "Nani???"1 -
Sometimes I feel like my brain has a really fast CPU. But the RAM frequency really bottlenecks the whole system.
Any suggestions to upgrade the RAM?1 -
My manager asked me why would our server would get overloaded, after analysing the issue and giving him a technical analysis over the last N weeks.
So I used an analogy:
Imagine an empty tank. The water coming in comes through a giant hose where the output is like a tiny tap.
Then just now I was thinking how to explain the Node event loop... And thought of this analogy:
Imagine fireball Mario running around in a circular track throwing fireballs to the side as he runs.
Maybe not entirely true but got made me chuckle...
Does anyone else come up with these sorts of analogies to explain programming problems to "nonprogrammers"?8 -
!Rant
Had a shoulder operation, and currently unable to move my arm. Getting pretty frustrated with being unable to move and feeling useless.
A mate just explained that I was basically patching my body. After a little downtime I'll be stronger and better.
Somehow, with this logic/analogy, it seems sensible and acceptable!4 -
I've thought of the perfect analogy for people who constantly interrupt us while we are coding.
It's like you're a mechanic and you are working on a complex engine. You're focused on what you're doing, your hands are filthy, and you're just about to fit the part in that you've been trying to fit in for the past hour.
Someone comes along and asks you to help them open a pickle jar in the middle of your work. So you have to stop what you're doing, wash your hands, and then help them open the jar. By the time you're done your focus has completely shifted, you lost all momentum, and your progress comes to a complete halt.
This is what it's like for us when you come into our office or call us to ask us a question that isn't important or urgent whatsoever. It's especially frustrating when it's the same question that has already been asked 100 times. -
Don't you guys think we need live programming?
Like a development runtime, instead of doing this whole file based development thing? We edit files, and then run them, why aren't we just running a program constantly and editing it as it runs? It would let us inherently take advantage of concepts like objects and lists instead of having to build plugins that analyse and modify our files to sort of act like complex programming data structures.
If we just programmed using these complex data structures to begin with.
Like do you realise how antiquated the idea of a file is, and folder, that's literally a paper based analogy.
Imagine if we just had objects, with pointers and property names, the best we have is ln -s file1 file2 but that's not a real pointer.
Anyway, hope someone understands me!
I'm writing a medium article called a world beyond files but I'm stuck at how low level to go and who the audience of the article should be.
I went really in depth into what this idea of an "object" is, and how it can be expressed in a file but once a program picks it up it becomes much more and almost alive.12 -
I am a single-pass compiler.
Why?
Well, when I have to do the food shopping for the week, I have a look at the buying list, keep the things in mind, go through the shop exactly once and everytime I see a match with the list, I put it into the shopping trolley.
Efficient and quick.
Soo, on the other hand, my girlfriend is a multi-pass compiler.
What that mean, you ask?
Well, she doesn't have any look at the buying list until she is in the shop. Then, she runs through the whole building until she finally finds the first thing on the list... and repeats with the next one until there's no entry left.
She needs three times longer than me for this, is totally exhausted after it, and, not forgetting, then SHE is angry about ME, because I wanted to have these "special" sweets she had too run through the shop twice for because she couldn't find it at first try.1 -
Bloody superglue. Every time I think I'm remotely skilled enouh to make a "quick repair" using the stuff, it always goes beyond horribly wrong and ends up with blobs of superglue all over the desk, one hand stuck to the thing I'm meant to be repairing, and the other stuck to some random nearby object. Dahh. Seems so simple.
I'm sure there's a dev analogy there with your least favourite language too.6 -
so I come with the analogy for "go to hell" it's just expressions when people asks you something very irrelevant and you try to say "go to help" and in anger you just say it "go to hell".
-
So I was thinking about SSL and trying to understand it (random thought that just came up while eating lunch). I came up with this analogy, not sure if maybe I've heard it before... Is this understanding correctly?
A and B want to send letters but make sure no one other than them can get in on the conversation or impersonate them.
Each is able to create a pen and glasses that must be used to see the ink.
So when they first connect, they exchange the pens.
So even if a middle man can duplicate the pen he can't actually read what anyone is saying. And if he tried to write something, the receiver will know it's not sent by the other since it makes no sense. So they then write a new letter and agree to send each other new pens and use new glasses?1 -
I've always sucked at OOP and OOD, _in part_ because I have never encountered a good, common sense, relatable real-world example or analogy of why one would use protected or private variables/objects/functions over public. I watch tutorials and it all just sounds like static in my head and the explanations are just like "well, it's obvious you want to do blah blah blah because reasons."
Maybe it's just painfully obvious to everyone but me and my tiny brain just isn't capable of understanding. But if anyone has the example or analogy that made OOP click for you, please share.7 -
These days i like to think of our data privacy as that of an amazon package delivery between person A to B
- Person A wants a packet of condoms and guns, but don't want society to know about it
- person B wants to send guns and condoms to B
- Amazon is willing to provide transportation with a pinky promise that it won't tell anyone about the delivery.
- Thus B gives the condoms and guns to Amazon wrapped up in hard box hoping that Amazon or anybody else won't open it. Similarly A receives the packet hoping that nobody else got to know about it.
But the problem is a LOT of people could possibly know of the contents, even if A or B aren't willing to share details
- Amazon can look into it.
- government can stop the amazon car transporting the packet and force them to look into it.
- some 3rd person(aka hacker) could fool the delivery truck and get access to packet contents.
=======================================
and this morning, my neighbour, A very radical hindu supporter, frustrated by the recent tablighi jamaat fuck-up , gave a very strange statement "you know in future, the government would pass a law which will allow them to hear these ppl's calls /whatsapp messages. This will allow government to detect and take actions on every of these anti-national scums"
I wanted to say WHAT THE FUCK ARE YOU HOPING FOR, BOOMER? THAT'S CENSORSHIP!! but i couldn't say because his illiterate vision is no longer a hope, i can see it becoming reality.
Personally i am equally angry with that whole incident and how that community handled it. But how can anyone ask for censorship, just because a few elements misused it? The problem lies with thise elements and people who support their thoughts not the whole community or the communication medium.
From what i have heard in the recent US and indian law news, they are essentially trying to peek into the data we send to each other legally.
So going by the package delivery analogy, its like government now wants to have every amazon delivery happen in transparent boxes in a transparent truck, just because a few people ordered illegal items via amazon delivery.
This world is going crazy and stupid.3 -
The best analogy I could find to this meme :
"the Hitchhiker's Guide to the Galaxy itself has outsold the Encyclopedia Galactica because it is slightly cheaper, and because it has the words 'DON'T PANIC' in large, friendly letters on the cover." -
analogy for overfitting :
cramming a math problem by heart even the digits of any problem for exam.
now if the exact same problem comes to exam i pass with full marks else if just the digits are changed however the concept is same and simce i mugged up it all rather than understanding it i fail. -
tech D&D
dev = fighter
ops = cleris
network = wizard
design = bard
dba = warlock
infosec = rogue
it is not mine but i think its great analogy. and because i always choose the warlock1 -
I recently came to the realization that my knowledge of APIs is very basic. The idea I have right now is based on the "waiter" analogy. I want to dive deeper into the topic. Does anyone know any sites with decent information on them, other than Wikipedia?1
-
There was a project I took over that was supposed to be at 90% when the previous developer quit. The project was in QA with some "minor" bugs that needed to be fixed. When I looked at the minor bugs I realized that the project had major underlying data issues. So after working 80 hour weeks I managed to hobble it together and make the release date.
That was a little over three years ago. Since then another developer has taken over maintenance and enhancements on the product and overall the application works pretty well for what it is.
So his analogy is, that the application is a tank that was made out of aluminum foil that has been hit many times in battle. Whenever it has been hit we have patched the tank with random things like bricks, soda bottles, and old car doors yet somehow it keeps going. The tank is still surviving the war but we really don't know how.
🐜 -
I lost my cool and got into a trembling furious mode yesterday. The outcome is an ugly pile of mess. After calming myself down and reflecting, this is what I end up telling myself this morning.
I let myself touched shit. When someone was throwing shit at me, I went and touch it and throw it back instead of avoiding it. I created a shit storm instead of a cleansing rain. And now not only me, everyone around me has to breath in shit air.2 -
!rant but tips
TL;DR consistent commitments form a habit.
I didn't write any code or do any major tasks past 5 days. Rest at home 2 days and went to short trip for remaining. Answered a few business calls. Made few important calls. Didn't bring my laptop with me and used my gf's one for less than 2 hours. (Majority of that 2 hours was spent on changing her W10 Japanese display language into English.)
This morning I found it hard to gain the productivity and concentration I had past few months. I thought I have lost it and got back to my old lazy 🐒 self.
Couldn't able to touch, well didn't have the mood to touch to be precise, my major tasks. I did my best to sit at my desk and finish minor small tasks that I can find the whole morning. That's the best I could do and probably the wise one I did.
After lunch time around 2pm, I gained my concentration back. I worked on my major tasks till 7pm. And now going home happy.
So my "productivity-is-a-lot-like-intercourse" analogy belief became stronger. As long as I commit to my desk and keep my work routine, I won't be losing my concentration and productivity for a long period. -
“Lazy mom lazy wow” presented by Gail Swanlund was probably the most impactful piece of art to me.
Through simplistic form, this art piece presents the idea of caring about oneself and quit the eternal rat race for money. But somehow for its metaphor, Lazy mom lazy wow chooses the notion and aesthetics of death and decay. The closest analogy I can think of is the music of American Football. Some kind of liminal, eerie aesthetics. Also, the movie Gummo and the game Life is Strange, part one.
The piece deliberately avoids being aggressive and celebrating its notion. It’s not “quit the rat race and celebrate because life is so good”, it’s “quit the rat race by putting yourself into coma so nothing matters anymore”. The descent into eternal comfort of realization that you don’t have to do anything anymore, but also sorrow of losing meaning.
It feels like launching Counter-Strike Source in the year 2051, only to walk around cs_office and realize there are no players anymore, and they will not return ever again. The sense of watching an old VHS tape of you having a conversation with your mom in the hospital as she’s counting her last days because of cancer. The sense of comfort of coming back to your hometown. You remember your childhood and your high school crush, only to realize that those moments won’t happen ever again. -
"Write a tech tutorial without explaining something via a fucking stupid as hell analogy" challenge IMPOSSIBLE.5
-
Football/futbol/soccer analogy:
Frontend engineers are like strikers - you see their work, good and bad, and you don’t notice how many contribute to their success. Backend engineers are like goalies - you only really notice when they do a _bad_ job and don’t see how many things contribute to their failure.5 -
When someone says that a company is Java/Python/Ruby "shop", they are implying that company sells those programming languages instead of its products. Would you call macys/nordstorm a cottonshop? See how ridiculous that sounds!2
-
Does anybody else compost at home? I’ve recently started considering our teams backlog like a compost pile. You need a mix of Carbon rich and Nitrogen rich products for proper compost. (Greens and browns, fruits and paper shreds). It seems like a healthy team would have a mix of features and debt reduction stories in their backlog. Am I too far off here to make the analogy work ?1
-
!rant
Just finishes my ITIL course (basically IT support management). It was pretty interesting, if somewhat irrelevant to me, but I got paid to do it (and get a qualification) so that's fine.
My issue was with one specific thing the instructor said - 'IT support always complain people who can't fix basic issues shouldn't be allowed to use computers. Wrong. Customers don't need to know anything about IT, that's your job'.
His analogy was that we can drive, or cook with a microwave, but we don't know how cars or microwaves actually work in at a technical level. In the same way, customers can use Word, but need us to recover their deleted files and install Office.
This seems sensible, but if you follow the analogy, there's a disparity.
I might not be able to *fix* a microwave, or know how the components inside it work. I can, however, cook with it. I know it won't work if the door isn't closed, or if it isn't plugged in.
Similarly, you need a license to drive.
Customers don't need to be able to *fix* the tools, but they should be able to *use* them properly. Turn them on, log in, open & use some programs, browse the web, etc. If they aren't confident in this - well, why are we giving an expensive bit of kit to them? I wouldn't hand a chainsaw to someone who doesn't know how to use it. Or a fine piece of china to someone clumsy.
I think people should need to prove they can use the tools before they are allowed them. They'd be happier in the long run.2 -
Does anybody have any good analogies for explaining the difference between frontend and backend?
I have been thinking about a possible keyboard analogy since a keyboard is very well understood these days. This only really works for membrane keyboards, but that's fine.
We can all guess where this is going. If you remove the keycaps from a membrane keyboard, you pretty much cannot use it unless you poke into the membrane with something else. So the keycaps are the frontend. They are generally labeled so you know what they do, they are organized into some form of layout which can vary even on a country-by-country basis, they may have pretty colors and they make it easier to interface with the backend. The backend is the rest and the users don't really have to know how it works, its just supposed to work.
For mechanicals, obviously, the removal of the keycaps means it becomes a shitty frontend that is not easy to use, but does have great potential.5 -
I vaguely remember some joke about how difficult networking is and how some Jeff Atwood blog post I think makes the comparison about analogy of sending actors in a taxi to somewhere being compared to a packet, anything can happen inbetween but you will get the packet or something indistinguishable from the original at the other end if all goes well.
Are occasional/intermittent 503 service unavailable or 504 gateway timeouts unavoidable for microservices calling another external microservice?
Like at that point isn't receiving a 503 or 504 from something else, somewhat outside my jurisdriction, albeit I am fucked if I am depending on them and need to fail gracefully.3 -
Is there a way to search within comments, or within comments of a user?
I cannot find a way on the desktop webpage. I don't use the app.
I am trying to find a post where someone asked for an analogy of Javascript to something in the home. I want to get the comment I made and save it. I was particularly proud of that comment.6