As someone who spends time programming, I of course find myself in conversations with people who aren’t as familiar with it. It doesn’t happen all the time, but these discussions can lead to people coming up with some pretty wild misconceptions about what programming is and what programmers do.
- I’m sure many of you have had similar experiences. So, I thought it would be interesting to ask.
I think that non-tech people think that tech just goes. Like you pull it out of a box and turn it on and it just works. They have no idea how much jenk is in everything and how much jenk was eradicated before a user came went anywhere near.
What do you mean by jenk? Is that a specific term used to refer to tech junk?
They mean jank:
jan·ky adjective, informal adjective: jank
of extremely poor or unreliable quality. "the software is pretty janky"
Jank?
I’m not in IT but used to work with a very old terminal based data storage and retrieval system.
If the original programmers had implemented a particular feature, it was very easy to enter a command and have it spit out the relevant info.
But as times changed, the product outgrew its original boundaries, and on a regular basis clients would ask for specific info that would require printing out decades worth of data before searching and editing it to get what the client wanted.
I can not tell you how many times I heard the phrase, “Can’t you just push a button or something and get the information now??”
The thing that infuriated me the most was the idea that somehow we could do that, but didn’t want to, as if there was some secret button under the desk that we could push for our favourite clients. Ugh.
Just 2 days ago some friends thought that I could get any job from the huge pool of available jobs out there…
It has been a long time since I’ve interacted with people who are largely tech ignorant, but back in the day people always assumed I could hack anything since I’m a website developer. It wasn’t uncommon for people to ask me if I can hack Facebook. I mean the answer is “probably not, but maybe”, but they think that means furiously typing for 20 seconds and yelling “I’m in!”, when the reality would be months worth of snooping and social engineering.
Why wouldn’t you just create a GUI interface in Visual Basic to track their IP addresses tho?
That was a decade or two ago. Now you need a react SPA webapp using angular and Rust and utilize the bandwidth of the Cloud with machine learning. To find the IP.
that’s not going to work anymore, you need iot on the edge now
I mean the classic is that you must be “really good at computers” like I’m okay at debugging, just by being methodical, but if you plop me in front of a Windows desktop and ask me to fix your printer; brother, I haven’t fucked with any of those 3 things in over a decade.
I would be as a baby, learning everything anew, to solve your problem.
I work in service design and delivery. It’s my job to understand how devices actually function and interact. Can confirm that dev types can learn the stuff if they want to but most have not. Knowing how to set up your fancy computer with all the IDEs in the world is great but not the same as doing that for 5,000 people at once.
fuck printers
fuck you. my uncle was a dot matrix.
That reminds me of one of those shit jokes from the eighties:
“There’s two new ladies in the typing pool who do a hundred times the work of anyone else.”
“What’re they called?”
“Daisy Wheel and Dot Matrix.”
Oh man love it. In the 80s, I used to go to my grandmother’s work after school. She was a stenographer at the neighborhood newspaper in Brooklyn. If she was alive she’d probably love this. My mom ran a copy room for a high school but I think it would go over her head.
I use a car analogy for these situations: You need a mechanic (IT professional.) I’m an engineer (coder.) They’re both technically demanding jobs, but they use very different skillsets: IT pros, like mechanics, have to think laterally across a wide array of technology to pinpoint and solve vague problems, and they are very good at it because they do it often.
Software engineers are more like the guy that designed one part of the transmission on one very specific make of car. Can they solve the same problems as IT pros? Sure! But it’ll take them longer and the solution might be a little weird.
Can they solve the same problems as IT pros? Sure! But it’ll take them longer and the solution might be a little weird.
Well the person just wants a solution that works. They didn’t say it has to be the best solution of all solutions.
I enjoy your comment so much because your methodical and patient approach to debugging code is exactly what’s required to fix a printer. You literally are really good at computers even if your aren’t armed with a lot of specific knowledge. It’s the absolutely worst because troubleshooting without knowledge and experience is painfully slow and the whole time I’m thinking"they know so much more about this than I do! If they’d just slow down and read what’s on the screen …" But many people struggle to do even basic troubleshooting. Their lack of what you have makes them inept.
I was gonna say, the OP here sounds perfectly good at computers. Most people either have so little knowledge they can’t even start on solving their printer problem no matter what, or don’t have the problem solving mindset needed to search for and try different things until they find the actual solution.
There’s a reason why specific knowledge beyond the basic concepts is rarely a hard requirement in software. The learning and problem solving abilities are way more important.
I go to excuse now is “I haven’t used windows in 10 years”, when people call me for tech support.
I literally can’t help them lol
“I don’t know anything about your apple device, I prefer to own my devices and not have somone else dictate what I can use it for”
I can definitely solve their problems, but I’d have to go through all of the same research they would have to. They’re basically just being lazy and asking us to do their work for them.
I think the difference is that they don’t know where to even start, and we clearly do and that’s the way to differentiate from perfectly working computer and a basically brick in their minds.
That the business idea, the design, the architecture, and code for the next multimillion dollar app is just sitting in my head waiting for the next guy with enough motivation to extract from me.
I was at a party explaining that we were finishing up a release trying to decide which bugs were critical to fix. The person that I was talking to was shocked that we would release software with known bugs.
When I explained that all software has bugs, known bugs, he didn’t believe me.
That IT subject matter like cybersecurity and admin work is exactly the same as coding,
At least my dad was the one who bore the brunt of that mistake, and now I have a shiny master’s degree to show to all the recruiters that still don’t give my resume a second glance!
Idk I’m not sure I’d trust any dev who doesn’t consider cyber security in their coding. So much development is centered around security whether that’s auth or input sanitization or SQL query parameterization…
If you’re working on an internal only application with no Internet connectivity then maybe you can ignore cybersec. But only maybe.
Well, at least I know from this that some folks give my résumé the first look! Not exactly more than cold comfort though, especially when I’ve already built a career in business management after a family friend gave me a leg up when the “I don’t want to do my job!” HR sorting bots kept discarding my resume for not having gone to Harvard for either my Bachelor’s or Master’s.
… You know not all development is Internet connected right? I’m in embedded, so maybe it’s a bit of a siloed perspective, but most of our programs aren’t exposed to any realistic attack surfaces. Even with IoT stuff, it’s not like you need to harden your motor drivers or sensor drivers. The parts that are exposed to the network or other surfaces do need to be hardened, but I’d say 90+% of the people I’ve worked with have never had to worry about that.
Caveat on my own example, motor drivers should not allow self damaging behavior, but that’s more of setting API or internal limits as a normal part of software design to protect from mistakes, not attacks.
It’s fair to point out that not all development is Internet connected, but ~58% of developers work in web dev.
5% in desktop apps
3% in mobile
2.4% in embedded
And then of the remaining I’d be shocked if few of their domains excluded Internet facing devices.
https://survey.stackoverflow.co/2023/#section-developer-roles-developer-type
But you’re right to point out development isn’t a monolith. Professionally though: anyone working in a field where cybersecurity is a concern should be thinking about and knowledgeable of cybersec.
I didn’t realize just how siloed my perspective may be haha, I appreciate the statistics. I’ll agree that cyber security is a concern in general, and honestly everyone I know in industry has at least a moderate knowledge of basic cyber security concepts. Even in embedded, processes are evolving for safety critical code.
No one’s saying to ignore it.
If I own and run a sandwich shop, I don’t need to be on the farm picking and processing the wheat to make the flour that goes into my bread. I could do that, but then I’d be a farmer, a miller, and a sandwich maker. All I need to know is that I have good quality flour or bread so that I can make damn good sandwiches.
I’m confused where cybersec sits in your sandwich analogy. If every time you sold a sandwich someone could use it to steal all the money in your business you’d probably need to know how to prevent reverse sandwich cashouts.
I’m not talking about advanced, domain specific cybersec. I don’t expect every developer to have the sum total knowledge of crowd strike… But in a business environment I don’t see how a developer can not consider cybersec in the code they write. Maybe in an org that is so compartmentalized down that you only own a single feature?
“But why? It both has to do with computers!” - literally a project manager at my current software project.
That IT subject matter like cybersecurity and admin work is exactly the same as coding,
I think this is the root cause of the absolute mess that is produced when the wrong people are in charge. I call it the “nerd equivalency” problem, the idea that you can just hire what are effectively random people with “IT” or “computer” in their background and get good results.
From car software to government websites to IoT, there are too many people with often very good ideas, but with only money and authority, not the awareness that it takes a collection of specialists working in collaboration to actually do things right. They are further hampered by their own background in that “doing it right” is measurable only by some combination of quarterly financial results and the money flowing into their own pockets.
Doesn’t help that most software devs don’t have the social IQ to feel comfortable saying “no” when they’re offered something that they don’t feel comfortable with and just try making it work by learning it on the fly, even learning a company enforced format of code layout is often left for new hires to just figure out. If it weren’t for how notepad++ has an option to replace tabs with spaces, I’d have screwed my internship over when I figured out that IBM coding (at least at the time) requires all spaces instead of any tabs after a stern talking to from my supervisor!
that programmers make $300-500k/year
That you can mix and match bugfixes like lego blocks an hour before release.
That just because I’m a programmer that must mean I’m a master of anything technology related and can totally help out with their niche problems.
“Hey computer guy, how do I search for new channels on my receiver?”
“Hey computer guy, my excel spreadsheet is acting weird”
My friend was a programmer and served in the army, people ordered him to go fix a sattelite. He said he has no idea how but they made him try anyways. It didn’t work and everyone was disappointed.
Don’t pretend you suck at these things. You know very well you are fucking equipped to fix this kind of thing when you work with programming. Unless you’re, like a web developer or something ofc
You are part of the problem
Nope
Why should I fix any of those peasant problems if I can order the lowly technician to fix my computer which I use to make crappy SQL queries? 🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐
Because you are a nice person to your relatives???
He said he has no idea how but they made him try anyways.
Uh, I’ve been present when such a thing happened. Not in the military, though. Guy should install driver on a telephone system, despite not being a software guy (he was the guy running the wires). Result: About as bad as expected. The company then sent two specialists on Saturday/Sunday to re-install everything.
And everyone expects you to know how to make phone apps.
Like, I think I know what to google in order to start learning how.
If you know Java or Javascript you can easily build apps.
But like in every other software field, design is often more important.
Ironically, most of those things are true, but only with effort. We are better than most people at solving technical problems, or even problems in general, because being a programmer requires the person to be good at research, reading documentation, creative problem solving, and following instructions. Apparently those aren’t traits that are common among average people, which is baffling to me.
Sometimes I’ll solve a computer problem for someone in an area that I know nothing about by just googling it. After telling them that all I had to do was google the problem and follow the instructions they’ll respond by saying that they wouldn’t know what to google.
Just being experienced at searching the web and having the basic vocabulary to express your problems can get you far in many situations, and a fair bit of people don’t have that.
I used to get a lot of people asking for help with their printer. No, just because I am a software developer doesn’t mean I know how why your printer isn’t working. But, yes, I can probably help you…
My neighbour asked me to take a look at her refrigerator because it wasn’t working. I am a software developer.
Doesn’t happen as much, but family and non tech friends would present me to other people that “worked with computers” thinking I could take new job opportunities. They were always wildly unrelated to my field.
I know I know,… they acted in good faith, and probably could have adapted a bit, but like 30 years ago there was a lot of overlap and systems where somewhat similar, but now somebody trained in Linux kernel maintenance isn’t going to learn how to create SharePoint SPFx webparts. Development is very specific now!
That they have any business telling me how complicated something is or how long something should take for me to implement.
I was coming here to talk about that recent post saying how easy it is to make a GUI and every program should already have one…
Command line is a GUI, change my mind
Yeah like “Just add a simple button here”. Yeah of course, the button is not the difficult part.
Its like they think we just tell the computer what they asked us to do and we’re done.
That it’s dry and boring and even I must hate it because there’s no place for creativity in a technical field.
I’ve been listening to stuff you missed in history class pod from the beginning and whenever something about computers, science or tech comes up they start being like hush hush don’t worry we won’t actually talk about it; as if the mere mention will scare away listeners
The best programmers I know are all super creative. You can’t solve real world problems with the limited tools available to us without creativity.
The files are IN the computer.
I found it useful when explaining programming to lay people to try to put various programming paradigms in everyday terms.
Imperative programming is like a cooking recipe. You need specific ingredients in certain amounts and you need to perform actions in a very specific order, or the recipe won’t turn out right.
OOP is like a bicycle. Lots of pieces interconnected and working together, hopefully interchangeable and standardized. It can also be used to explain unit testing to juniors. Clock mechanisms or engines can also work but people tend to relate better to bicycles.
Declarative programming (SQL) works like ordering at the restaurant. You still need to know how restaurants work and about meal courses and how to read the menu etc. but you don’t need to know how the sausage was made, only if it’s good or not.
SELECT food FROM menu WHERE name LIKE ‘Fried %’;
Lemme
cat menu | grep Fried
real quickgrep -i fried < menu
grep -i fried menu
Of course! It’s amazing how this stuff just flows from the keyboard when you’re typing in a shell window, but feels awkward when typing in a Lemmy comment.
You don’t want to order from the cat menu.