this post was submitted on 16 Apr 2024
1550 points (98.7% liked)

Comic Strips

12679 readers
3435 users here now

Comic Strips is a community for those who love comic stories.

The rules are simple:

Web of links

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 17 points 7 months ago (2 children)

Semaphores. It was obviously C++ code with a bunch of threads, but as it was a standalone C++ program it wasn't really clear why it was lol

[–] [email protected] 4 points 7 months ago (1 children)

By low level guys, you mean he knew about circuits and EE? But he got stuck teaching a C++ class but he couldn’t code?

[–] [email protected] 11 points 7 months ago (2 children)

By low level, I mean like kernel work. I'm told he worked on one of the 'nixes way back when.

It was a data structures class, we did Java or Python in the into classes, php & js for Web + db basics and C++ for theory classes. Then you pick your path

Anyways, the guy taught OS, language design, and data structures. He could code fine, he was just a terrible lecturer - extremely disorganized, no lesson plans. He only wasted the one full class forgetting why we were there, but reading his code (labeled by week) then scribbling on the whiteboard was his lecture

I guess I ended up understanding data structures and I never fell asleep, so maybe he wasn't a bad teacher. It was just mostly just assignments, he didn't really do quizzes and the final wasn't much of the grade

[–] [email protected] 1 points 7 months ago* (last edited 7 months ago) (1 children)

Why data structures weren't in C/C++? It would make sense to care about structures, cache locality, SoA/AoS, indirections and stuff in some language that compiles in native code.

[–] [email protected] 3 points 7 months ago (2 children)

Ah, I phrased that ambiguously - it was in C++, all of our computing theory type classes were.

I just got distracted realizing I graduated proficient in 9 languages and reasonably comfortable in another 3. 2 were from internships, but the rest were all from coursework. The last couple years, I was juggling 2-4 at all times, plus the odd scripts

I always thought I was really good at picking up and switching languages, but I just realized my program was designed that way.

That feels like a lot, do other colleges do something similar?

(I guess you could knock off 3 because we ended up switching every semester in software engineering because cross platform apps were pretty bad at the time)

[–] [email protected] 1 points 7 months ago

Once you are in the industry long enough, you won’t even remember how many different languages you have worked with.

A good education and experience should get you to the point where you are comfortable picking up and using any language, even if it is new to you.

[–] [email protected] 1 points 7 months ago (1 children)

My undergrad officially required Pascal, C, C++, Java, PHP, Prolog, Lisp, x86 and MIPS assembly. You couldn't work around those. There was also Tiger, VHDL, and Bash that were required, but you would probably not count as languages. (I'm certainly forgetting some stuff too.)

There was a virtual certainty you'd need some more languages, but not everybody would need the same ones.

[–] [email protected] 1 points 7 months ago (1 children)

Damn... That list sounds terrifying. I'm working on a legacy code base in VB (although I finally have time to try out this c# converter to start the slow march out of depreciation), and 8 months later I still feel gross with VB. I'm pretty sure VB is uniquely horrible because of the inconsistency. .

I've heard good things about pascal and lisp... But lisp syntax also makes me irrationally uncomfortable

I did prolog as well in an elective, that was a weird and interesting language. It's not very practical, but it was fun. Plus graph theory is one of the weird maths that pops up everywhere, maybe one day I'll find an excuse to try to use it for something

So it sounds like you had even more than me, I'm now wondering why even my relatively young co-workers all seemed to specialize so hard straight out of school

What did you end up working in? Did you specialize, or keep up with the language juggling?

[–] [email protected] 1 points 7 months ago (1 children)

Picking up languages is quite easy, you just have to learn it. Turns out nowadays I mostly work with SQL (it's on the required list too, I just forgot about it) and C#. Learning new paradigms is harder, but there aren't that many of those.

I’m now wondering why even my relatively young co-workers all seemed to specialize so hard straight out of school

That's imposed by the job market, not natural thing to exist. In fact, it's very much unnatural.

[–] [email protected] 1 points 7 months ago

That's imposed by the job market, not natural thing to exist. In fact, it's very much unnatural.

I mean, maybe my first job was an outlier, but I literally mean chose to specialize. Out of the people who graduated within 5 years of me, two got into Python because of the project, and just stayed there like you said... One of them could only never have run his code before pushing commits, the other one was middle of the road.

Another went strict UI - he wasn't unable to do other things, he got hired after a couple years and said this is what he wanted to do.

Two more started in Python, then decided they wanted to do exploit stuff, the guy ended up going back to programming after he was let go for non-work reasons, and I don't know where he ended up... He worked for Amazon for a while.

I guess a good chunk did keep using what they're using and happen to specialize like you say, but I saw a lot of people choose something intentionally, a few years after doing something different too. Most of the team looked for something using their existing languages or even stack when we all moved on, regardless if they picked it or fell into it

I don't think it's difficulty - like you say, if you've learned a couple high level languages, jumping to a new one is mostly syntax

Maybe it's a comfort/effort thing? A lot of the people who chose to specialize left their work at work. Only one person I worked with was like me - several would adapt to whatever was practical without difficulty, but without a clear best opinion I always pick something new, because it makes things more fun... He was fun to work with, because the client loved him and he pitched the weirdest and most fun features

Maybe it's just personality thing... I'm now convinced my school probably wasn't an outlier though

[–] [email protected] 1 points 7 months ago (1 children)

I was thinking that you meant like, machine code, by "low level" and yeah. C wouldn't make a lot of sense to someone who handles machine code.

[–] [email protected] 2 points 7 months ago (1 children)

I'd call that hardware - if you're code enough to the metal to be writing machine code (or even assembly), the physical architecture of the hardware is part of your code

Low level generally is one step up - manual access to memory, compiling to an architecture rather than a virtualization layer, etc

Strangely, the guy that taught OO theory did our hardware class, we built bit shifters and wrote programs in risc assembly... And ONE program in machine code with the promise we'd never have to do it again

I could understand someone who writes in assembly, but machine code is a nightmare...I think I got it without any mistakes, but my butthole was clenched for 4 hours, terrified I'd have to debug it

[–] [email protected] 2 points 7 months ago (1 children)

Right. That's my bad. I'm not a programmer or developer, so I conflate machine code and assembly far too frequently.

[–] [email protected] 3 points 7 months ago (1 children)

Nah, you've got the concepts down, I always try to drip feed this kind of information to people when it comes up.

It's a lot - it takes years to absorb all of it even with a degree in it, and new concepts are always spreading. Gently correcting and being corrected is the only way

It's part of the methodology my brother passed to me when I was learning - using the same terms as everyone else is critical, because if you can describe it correctly you can search it

And if your understandings don't line up, you have to iron out the differences or you'll waste time talking past each other

Knowing there is a difference between assembly and machine code isn't something most people know, are you technical or interested in programming?

[–] [email protected] 2 points 7 months ago (1 children)

I work in IT. I don't have much use for knowing the difference, but as a point of principle for me, I want to be correct, so if I'm not correct, I'd rather be corrected.

So I appreciate it.

Also the fact that there's a lot to know, phew, you said it brother (or sister? Idk, doesn't matter). IT is a minefield of information on all kinds of things. I used to get overwhelmed by spec sheets, now I look at them and think "there isn't enough information here".

How the turn tables.

[–] [email protected] 2 points 7 months ago (1 children)

as a point of principle for me, I want to be correct, so if I'm not correct, I'd rather be corrected.

Couldn't have said it better myself. It stings at first to be wrong, but once you get used to it all that remains is the joy of learning something

It is pretty wild how quickly endless hieroglyphs turn into barely hints.

My sorta boss and I started building this accounting system for our customer a few months out. We knew nothing about accounting. What's the difference between a sales receipt and an invoice or payment? What's the difference between the identical objects, customers and vendors? Wtf is a class... It was just a flag you can put on things. What's the difference between a chart of accounts, journal entry, and a ledger?

I still don't half understand the why (half of these things are combined versions of other things), but 3 months in I suddenly understood what double entry accounting was, I had heard of it in an anime but had no idea how you would do it. 6 months in and we're brainstorming if we want to drop journal entries and just do in chart of accounts

I have zero interest in accounting (it literally gave me headaches for the first few weeks), my dad likes doing that sort of thing. I found myself explaining accounting to him the other day

How the turn tables indeed... It just creeps up on you one day

[–] [email protected] 1 points 7 months ago (1 children)

I feel this. I started a new job recently and the place I'm working at now specializes in IT for accountants, so all of my clients are some form of certified accountant. I didn't think it was a big deal at first, since I've done some work for accounting firms before while working for more generalist IT support companies (who were not picky about what their clients did), but the requests I get at this place are way more in depth for accounting than at previous jobs. Sure, we get the usual requests about file permissions, password resets, etc... But the clients seem to also expect us, as IT, to know way more about accounting than I have ever known. Preparer profiles for taxes, managing the nuances of how some accounting programs interact with eachother, just crazy stuff I've never gotten before. The list goes on.

My co-workers tend to shrug it off, since they've been dealing with it for a while, but I'm frequently asking them about that stuff while thinking, are we really expected to know this?

I'm no stranger to accounting. I took business in college with my IT diploma (I actually have two college diplomas, one is for business, which includes accounting), and all of this stuff is still way over my head.

But, ask me about the nuances of instruction scheduling in a VM hypervisor and I'll run circles around whatever you think you know about the subject.... At least for most people. Routing protocols? You want a list of them? And what they do? And how they do it? I'm your man. But show me a general ledger and I'll know some of what I'm looking at. I don't know enough to know if it's "in balance" or anything, I'm just privy enough to make sense of the words and numbers, not enough to know if it's correct, or even how to tell if it's correct.

Luckily, my manager has pretty clearly stated that we're IT, and we shouldn't be expected to know things like that, but my co-workers often know more about it than I do. I have no shame or pride that I know or don't know something, I'll ask others all day long about it, and learn everything I can. If I can't figure it out, I just tell the user to ask the company that made whatever software they're referring to and that's it.

Life is an adventure, you're bound to get more wrong than right, the important part is how you handle those situations. IMO, that's what defines you. I want to be known as someone who isn't afraid to ask, isn't afraid to be wrong, and isn't afraid to learn something new in order to be helpful.

My least favorite response that I hear when dealing with users is that "I'm not techy" because it demonstrates a willful ignorance of the technology that they use every single day, and an unwillingness to learn that technology. I don't expect them to learn IT, and all is nuance, because I'd be out of a job, but c'mon Deborah, this is the third time this week that your problem has been that OneDrive isn't connected to your account. You should know to log into OneDrive when this happens. FFS.

[–] [email protected] 2 points 7 months ago (1 children)

Congrats on the new job!

That's kinda crazy, because I know literally none of the accounting terms you used... There's probably terms for both sub-fields, mine might be bookkeeping or something?

I like to tell high schoolers that programming is great because it mixes with everything, very few coding jobs don't touch on some other field - I guess the same applies to IT.

My least favorite response that I hear when dealing with users is that "I'm not techy" because it demonstrates a willful ignorance of the technology that they use every single day, and an unwillingness to learn that technology.

I used to believe this, but I did some summer IT work for a small business once. I'm going around, updating things, and the accountant is super stressed about me touching her computer...I tell her I'll be able to roll it back if something goes wrong and the other computers are fine, and she grabs lunch.

Then I see this sticky note on her monitor: windows, excell, file, open file. There's others, import to peach tree, print invoice - all of her sticky notes are all the buttons you have to press to do something. Super weird, I figured she just never bothered removing them.

Then a while later, I come back and need her to grab something from an Excel file. I give her the flash drive, she opens explorer from the start menu, drags it into her documents, and she picks up the Excel sticky note. At this point I'm feeling anxious - I explain she can just double click on it and it'll open, but she tells me "no, that'll just confuse me, I need to do it my way"

This woman, who has been doing accounting for the company for almost 40 years, and doing it on a Windows PC many times a day for decades, has not learned how to open a spreadsheet. It's not an OCD thing either - she genuinely read off the next step and starts looking around for it and (viscerally uncomfortable now) I tell her "file" is in the top left corner. She thanks me and reads the next step on her sticky note, "open file", and I'm just sitting there slack jawed. And when done, she made sure to exit out of Excel before relaunching it for the other file.

She's an outlier for sure... My dad for example can use a computer fine, I found him a guide for an antivirus scan and he ran and uninstalled it no problem, but he's the type that would get frustrated and go to IT

But this woman, who had been in front of a computer longer than I'd been alive at the time, genuinely did not know how to use a computer. She was perfectly fine in her spreadsheet, arrowing around and processing the numbers faster than I could, but the concept of opening a file was something she was unable to process.

Then I realized the sticky note was new. Year after year, through multiple versions of Windows, she had been copying this sticky note. She unstuck it every time to read it too... How long could that last? A week? Maybe 2? And there was a good dozen of them for all sorts of operations

Bare minimum, she'd written it down 500 times, and she didn't remember the steps. She'd easily performed the steps well over 10k times, and nothing stuck. She did not remember the file button was in the top left corner.

I started grading technical attitude based on how much people can tolerate before their eyes glaze over. Imagine you're doing something like cycling Wi-Fi because it stopped working. People that watch silently or check their phone? Average. People who look confused? They could be technical if they bothered to learn. People who ask questions? I start watching how they see technology to recommend a discipline to them.

And then there's the people who immediately get a thousand yard stare, they go into a trance when presented with a screen. It's like they were cursed at birth to never understand anything about electronics, specifically. They can be accountants or doctors. It's not about complexity, they're not necessarily stupid, it's like a deity cursed them to rely on computers but to be unable to use them

I just can't understand how a mind can work like that, but I've seen it

Life is an adventure, you're bound to get more wrong than right, the important part is how you handle those situations. IMO, that's what defines you. I want to be known as someone who isn't afraid to ask, isn't afraid to be wrong, and isn't afraid to learn something new in order to be helpful.

Hell yeah. That's one of the pillars of who I am and strive to be - I live to learn and create, and I pride myself on turning on a dime when I realize I'm wrong mid argument

Otherwise, why be here? If you're not learning and growing, you're just waiting for death

[–] [email protected] 2 points 7 months ago

Amen to that. My late father only went into a mental decline when he settled into a retirement lifestyle. He was a sharp and intelligent person. As year after year rolled by with him watching TV, and essentially doing nothing differently, year over year, he slowly lost any ability to think critically, and eventually the ability to even form a coherent sentence. This is a man who held multiple degrees, in bookkeeping and teaching, and has taught highschool computers courses since before I was born, for at least 20+ years (I'm not entirely sure how long). When he was forced to retire from teaching, he kept busy with some odd jobs, usually security work. It kept him active and thinking about things, and he drew up procedures and documentation about his post-retirement jobs that I'm certain are still used at those jobs. Once he gave it all up, things started to slide away from him. Within 10-15 years he was nonverbal, living in a nursing home before passing away. I think he made it to age 80. He passed a few years ago now, and I'm still disappointed in myself that I didn't learn more from him.

That said, he was human and had his flaws. I won't get into that. The point is, he was with it until he started to get into a set routine which didn't encourage him to do any thinking. His mind withered away and left him incapable of even forming words. You have to exercise your brain. We all lose it eventually, but ignoring it will make it happen faster. I feel like my dad's story is proof of that.

The bookkeeper you describe is what I refer to as a "lister", aka, someone who can follow a set list of instructions to the letter very well, but lacks any additional critical thinking. If they're presented with something that is unexpected, they shut down. Listers tend to refuse to learn, and lack the skills to interpret what's in front of them and make a rational choice given the options that they have.

I'm not trying to demean people who need lists, they're usually very capable, possibly well learned individuals, but they always think inside the box, so to speak. These people are great at doing repetitive tasks that cannot be otherwise automated. They can complete very complex tasks as long as the dialogs, knobs, buttons, switches, and other controls are consistent.

Some are so inept that even changing something as trivial as a background image in their desktop will cause them to be incapable of finding the buttons that they need to do what they need to do.

I never actually scorn or ridicule such people, clearly they do a sufficient job for what they've been tasked with. I try to be understanding, but I can't help but express my frustration having to fix their problems, time and time again, simply because they have no way to learn to do it themselves. Again, I don't express this to them. When dealing with them I'm very understanding. "That's fine", "that's what I'm here for", etc.

My job exists, in large part because of such people. Their inability to comprehend the information in front of them is simply my job security. I do what I can to eliminate or at least minimize the frequency of such things and they are usually grateful for it. Sometimes there's nothing to be done and the user simply needs to learn to perform additional tasks before things work, so I tend to try to review what was done, as a list of steps, with pictures if possible, to them via email, so they can go about fixing it themselves as long as they can find my instructions.

I don't give them my pity, they don't need it. Most of them are making more money than I am anyways. I don't hate them for it, it provides job security. I'm very neutral on it, but it can be rather frustrating sometimes.

I have a similar story from a legal assistant. I don't know how long she had been working the job, but the only way she knew to find a file was through the word open dialog. She didn't use sticky notes, but otherwise it was much of the same story. If she needed to open a word perfect document, she would open ms word, file, open, browse, navigate through the folders quite competently, then find the WP file, right click and open with word perfect. WP would open and the file would appear. I was baffled the entire process. I tried to tell her that she can just use Explorer, but I couldn't get the words out, I was just so shocked at what I was seeing.

In the end, I just told myself: "well, if it works for her, I guess it's not really a problem that needs to be fixed".

I corrected whatever issue she was complaining about and moved on.

That was one of the worst, but certainly not the only story I have about people doing stuff in weird ways. Everyone is different, and I embrace that difference. If they've found a way that works and works for them consistently, who am I to say it's wrong? It's still baffling at times though.

I usually get "I'm not techy" from people who are otherwise very competent users, who have a handle on all of the basics. They navigate file systems appropriately and efficiently, they have an understanding of the structures and rules that govern the digital landscape; but they are willfully ignorant of expanding that knowledge any further. If they would take the time to look into it, they could easily figure it out, but they're unwilling to learn any more than they already do.

It's the willfully ignorant that I have a problem with. If you need lists of instructions to do simply tasks, then you're not willfully ignorant, you're in the category of being a lister. If you're constant adapting to new technology and able to learn how things that you currently use are changing, but refuse to expand into new areas for your own betterment, then they're willfully ignorant.

I have a ton of thoughts on this and it's hard to create simple criteria to qualify whether someone isn't capable or isn't willing, so I'll stop there. IMO, everyone on Lemmy, at least right now, doesn't fall into these categories, if they did, they'd still be on Reddit (or whatever social media system they came from). An active refusal to accept change is a cornerstone of the mentality, both for listers and the willfully ignorant. Anyone with that mentality hasn't made it to this platform yet.

I have to go back to work. Have a good day.

[–] [email protected] 2 points 7 months ago (1 children)

Oh no, synchronization primitives!

Well, you can end up implementing synchronization primitive if you are writing game. Sometimes game engine is kernel in userspace.

[–] [email protected] 1 points 7 months ago

I've done it in a Python system at work before. We used a mutex?(The int, not the lockout) to track worker threads

It's a hell of a lot easier these days... It's amazing how quickly programming advances when you look back

I'm interested in how this came up in a game engine though, and how recent it was