I was part of a fun era at my university where they switched from C++, which is what I took in intro to programming, to java. So by the time I was doing some group projects senior year, I was working in C# with people who had only done Java.
They wanted to abstract everything. Everything had to be a class. Any time they repeated 2 lines of code it got put into a helper class.
We ran into an issue where the code just would not run no matter how hard we tried and of course no one on the project but me bothered to use git (they would literally send me the zipped up project on discord and I had to copy and paste everything into the actual code). I ended up rewriting the entire project overnight. It actually wasn’t that bad once I got into the flow of things. Turns out none of them knew how to program without being explicitly told how.
Still not the worst college group project though. Maybe top 5.
I’ve worked with Java for decades (kid you not: learned it from reading the Java Language Specification 1.0 back when it came out) and there’s definitivelly a stage (often a long one) in one’s career when one thinks him/herself so great at OO and just overengineers every single software design way (way, WAY) beyond the actual objective of behind the whole OO design concept (maintenability and bug reduction), actually achieving the opposite objectives (an unmaintainable POS, riddled with hard to track bugs because of way too many unnessary details having overwhelmed the developer’s ability to keep track of it all).
Eventually you learn KISS design and Refactoring as a sort of housekeeping practice for code and design.
But yeah, as a freelancer I’ve very commonly landed in the middle of maintenance-stage projects with existing code bases that were clearly done by somebody at that oh-so-special stage in their career, and often it’s better to just reverse engineer the business requirements from the application and redo the whole thing (in the process cutting the codebase size to a small fraction of what it was).
One thing I always talk about is how DE is much more important for new user than a distro. New users will only use GUI anyway so their choice of DE has to be the most comfortable.
Took me years personally to switch to Linux, trying stuff like Ubuntu or PopOS, and I couldn’t understand why it doesn’t “click” for me until I understood that I simply personally dislike Gnome (being an ex Windows user). Tried a KDE distro and it clicked immediately, never looked back. Now I don’t even use KDE but it helped me to get through initial frustration period.
Man if I were in the US I’d apply for that job in a heartbeat, looks like that was written by a head dev who actually knows what he’s talking about rather than some recruiter
I’d say its probably, among other thigs, hardware compatibility issues.
Running Linux on a mashine, most notably portable, that is somewhat recent and is not specifically built with linux in mind is, imo, almost certainly going to cause some, for the average user unfixable, issues. Things like wifi, bluetooth, audio, etc. not working due to missing or broken drivers.
The best way to fix that would be official Linux support by the OEMs, which realistically is never going to happen. Or extremely time consuming reverse-engineered community drivers.
That’s a wrong take. The issue is when you install Linux. Once installed and running, it works fine.
And users don’t install computers. So it’s not their problem. You merely need to not break you distro once it’s working. And if it’s not arch Linux it’s been a long time since I read it can break on an update.
But it could do. I bought a mainstream laptop from a European big-box retailer 17 years ago which came without Windows installed and nothing but a Knoppix CD. It all worked great out of the box. It would work greater still today.
The corporate monopoly in OS software is just as outrageous as the one in browser software. It’s time for Brussels to step in.
This is harder than it first appears. Microsoft actually subsidizes vendors for selling machines with Windows installed. So these cheap laptops would actually be a bit more expensive without the Windows installation.
Most folks have been sold a story that every new technology they start using is supposed to be “intuitive”; and that if it is not “intuitive” then it must be defective or willfully perverse.
For example, novice programmers often stumble when learning their second or third language, because it differs from their first. Maybe it uses indentation instead of curly braces; maybe type declarations are written in a different order; maybe it doesn’t put $ on its variables; maybe capitalization of identifiers is syntactically significant.
And so they declare that Python is not “intuitive” because it doesn’t look like C; or Go is not “intuitive” because it doesn’t feel like PHP.
It should be obvious that this has nothing to do with intuition, and everything to do with familiarity and comfort-level.
Commercial, consumer-oriented technology has leaned heavily into the “intuitive” illusion. On an iPhone or Windows, Android or Mac, you’re supposed to be able to just guess how to do things without ever having to confront unfamiliarity. You might use a search engine to find a how-to document with screenshots — but you’re not supposed to have to learn new concepts or anything. That would be hard.
That’s not how to learn, though. To learn, you need to get into unfamiliar things, recognize that they are unfamiliar, and then become familiar with them.
Comfort-level is also important. It sucks to be doing experimental risky things on the computer that’s storing your only copy of your master’s thesis research. If you want to try installing a new OS, it sure helps if you can experiment with it in a way that doesn’t put any of your “real work” at risk. That can be on a spare computer, or booting from a USB drive, or just having all your “real work” backed up on Dropbox or Google Drive or somewhere that your experimentation can’t possibly break it.
It should be obvious that this has nothing to do with intuition, and everything to do with familiarity and comfort-level.
Not to be petty, but I think that intuitive is not that different to familiar.
I mean, the problem is in using the word intuitive when “selling” something in the first place. User interaction involves ton of things, large and small, and the intuitive things are rarely noticed. Such promise is likely going to lead to disappointment.
Adapting to these small differences is a skill in itself.
Correct. It’s lack of familiarity. Once Linux gets around 10-15% market share, enough people who know the quirks of Linux to help new people who then Linux will be big.
lemmy.ml
Active