Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "oop"
My college organised some interview with a company, with the whole demn class. We went there, it was quite far away (50km) and the CEO invites us to a meeting room.
Where he bores me for 2 hours talking about their projects in argiculture and NSA like spying systems at tankstations.
They were caputuring license plates at gas stations and with that information gather data about the person, such as salary (by looking at their car), house adres ect. All without people knowing. And than targeting them with specific ads and offers.
The class of sheep were super excited but it pissed me off. Because he told it like it was some awesome advancement in technology that none of us could probably ever do.
He was demeaning us, saying we would do some simple wordpress sites there and other things. We are probably not good enough forc te big stuff.
Asking him some really hard questions about his projects made him so pissed he almost wanted to kick me out.
When it was finally over, there was some test that you have to do if you want to work there. If you were good enough at the test, you could!!!! (YEEY)
Uhm, I said; no thank you I dont want to work here.
Later I talked to my classmate and friend who always thinks he's better then everyone in class even tho he barely understands OOP programming. He was asking me if he should try to get the internship. I told him; dont. They have no value for us and they think they are the greatest company on the planet.
The fucking idiot go so pissed, he stopped talking to me alltogether and blocked me everywere. I AM NOT EVEN JOKING. Just because I gave my FUCKING opinon about a company he likes for no reason.
So this idiot does the test (which was fucking simple btw, I did it too and compared the results and I had 95%) He gets invited for another interview and gets told he will be paid 200 euro's per month 😂. and a free meal everyday!! 😪 hahaha . That doesnt even cover commuting costs!
My "friend" told him that the train costs more every day. You know what the CEO said? "Yeah but you can learn so much here the also brings value and you're just a last year student. But I think you are really brave for asking more"
So in the end, he couldnt take the internship and I was fucking right. Really I hate these kinds of companies thinking they are heaven on earth when they are clearly not.
I am happy I told them no before putting my dignity on thd line.14
A memorial for my favorite rant of all time "Why did the chicken cross the road?"
Why did the chicken cross the road?
Assembler Chicken: First, it builds the road ......
C Chicken: It crosses the road without looking both ways.
C++ Chicken: The chicken wouldn't have to cross the road, you' d simply refer to him on the other side.
COBOL Chicken: 0001-CHICKEN-CROSSING.
THEN PERFORM 0010-CROSS-THE-ROAD
VARYING STEPS FROM 1 BY 1 UNTIL
GO TO 0001-CHICKEN-CROSSING
Cray Chicken: Crosses faster than any other chicken, but if you don't dip it in liquid nitrogen first, it arrives on the other side frazzled.
Delphi Chicken: The chicken is dragged across the road and dropped on the other side.
Gopher Chicken: Tried to run but got beaten by the Web chicken.
Intel Pentium Chicken: The chicken crossed 4.9999978 times.
Iomega Chicken: The chicken should have ' backed up' before crossing.
Java Chicken: If your road needs to be crossed by a chicken, then the server will download one to the other side. (Of course, those are chicklets.) See also WMI Monitor.
Linux Chicken: Don't you *dare* try to cross the road the same way we do!
Mac Chicken: No reasonable chicken owner would want a chicken to cross the road, so there's no way to tell it how to cross the road.
Newton Chicken: Can't cluck, can't fly, and can't lay eggs, but you can carry it across the road in your pocket.
OOP Chicken: It doesn't need to cross the road, it just sends a message.
OS/2 Chicken: It crossed the road in style years ago, but it was so quiet that nobody noticed.
Microsoft's Chicken: It's already on both sides of the road. What's more its just bought the road.
Windows 95 Chicken: You see different coloured feathers while it crosses, but when you cook it still tastes like........ chicken.
Quantum Logic Chicken: The chicken is distributed probabilistically on all sides of the road until you observe it on the side of your choice.
VB Chicken: USHighways! <TheRoad.cross> (aChicken)
XP Chicken Jumps out onto the road, turns right, and just keeps on running.
The Longhorn Chicken had an identity crisis and is now calling itself Vista.
The Vista Chicken dazzled itself with its own graphics.23
I've seen several rants about dumb/useless teachers, college and the CS degree studies; today is a good day to vent out some "old" memories.
Around two semesters ago I enrolled in a Database seminar with this guy, a tall geek from the 80's with a squeaky voice, so squeaky mice could had an aneurysm if they listened to him.
Either way this guy was a mess, he said he was an awesome coder, that we were still "peasants" when it came to coding, that relational databases had nothing on him since he was an awesome freelancer and did databases every day, that we had to redo the programming course with him and with his shitty, pulled out of the ass own C++ style guide with over 64 different redacted rules.
He gave us sample code of "how it should be done" in Java...it ain't my favorite language but fuck me a fucking donkey could have written better code with his ass!! He even rewrote Java's standard input function and made it highly inefficient. He still wrote in a structural paradigm in OOP languages! And he dared to make this code reviews were he would proyect someone's code and mock it in front of the class as he took off points, sometimes going to the negative realm (3,2,1,0,-1...)
But you know what's shittier? That he actually didn't even attend, 90% of the time, it was literally this:
> Good morning class
> Checks attendance. . .
> I'll be back, I'm going to check in...
> 1 hour 45 minutes later (class was 2 hrs long) - comes back
> do you have any doubts?
> O.o no...? I'm ok.
> We're done
Not only that, he scheduled from 4 to 17 homeworks throughout the week, I did the math, that was around 354 files from everyone; of course he didn't check them, other students from higher semesters did and they gained each point taken from students making students from lower semesters get the short end of the stick.
How did I pass? He didn't understood my code or database schema and he knew he couldn't fail me as he had no ground to stand on.
Thanks for listening, if you got to the end of this long ass post and had a similar experience I'd love to read it.13
Oh, nice. Now Windows 11 doesn't just fuck up AMD CPUs with lack of performance, but also SSDs. NTFS at its finest, but see the tags.23
Story of a penguin fledgling, one of my end users whom I migrated from Win 7 to Linux Mint. She had been on Windows since Win 98 and still uses Windows at work.
Three months before. Me, Linux might not be as good, but Win 10 is even worse. User, mh.
Migration. User, looks different, but not bad.
One month later. User, it's nice, I like it.
Three months later. User, why does Windows reboot doing lengthy stuff?
Six months later. User, I hate Windows. Why is everyone using this crap?
One year later. Malware issues at work. User to IT staff, that wouldn't have happened with Linux. Me, that's the spirit!31
Google cripples ad and tracking blockers: In January, Chromium will switch to Manifest V3 which removes an essential API in favour of an inferior one. As usually, Google is being deceitful and touts security concerns as pretext.
That hits all Chromium based browser, such as my beloved Vivaldi. The team argues with their own browser internal blocker, but that's far worse than uBlock Origin. One of Vivaldi's core promises was privacy, and that will go out of the window. The team simply doesn't react to people pointing that out. They're fucked, and they know it.
So what now? Well, going back to Firefox because that will include the crippled new API for extension compatibility, but also keep the powerful old one specifically so that ad and tracking blockers will keep working. Google has just handed Mozilla a major unique selling point, and miraculously, Mozilla didn't fuck it up.26
Customer: what's the status of the software?
Me: it's a bit of wood work.
Customer: wood work?!
Me: yes, I think it would work.
Special 2022 greetings to the last of us who still run truly static websites: update your footer template, recompile, upload.10
I got two lines of code done today, and they were just changing numeric defines. Time to do that: 2 seconds.
Time for analysing the measurement data of various runs in order to know which numbers will work out: the rest of the day.7
LOL Have I Been Pwned has pwned itself, cost-wise. Here the steps:
1) Go all in on cloud shit like Azure
2) Think you're a smartass
3) Trick the cost side with even more cloud, this time Cloudflare
4) Be not quite as smart as you think
5) Enjoy your 7000 EUR bill
6) Make some tweaks and continue with step 2.
Bonus laughter: he's a "Microsoft Most Valuable Professional", though not an actual employee.27
I ordered a reduction sieve for my espresso cooker from Amazon, but got this instead (Euro coin for size comparison). They'll resend the correct article, but WTF is this shit even?! Crazy crap!23
I should just quit. I am not paid enough to deal with this pissing contest.
Need to add instructions (on readme) for installing pnmp, or if possible, have the top-level npm i install it (lol).
Also, it looks like we are no longer using lerna? If that's right, let's remove the dependency; its dependencies give some security audit messages at install.
it's good enough for now. Added a new ticket to resolve package manager confusions. (Migrate to pnpm workspaces)
I will probably be responsible for automating deployment of this (I deployed the webapp on cloudflare pages and there is no work that needs to be done. "automating deployment" literally means replacing npm with pnpm). I disagree that it's good enough for now.
Imagine all readmes on github document how to install yarn/pnpm.
If you think an OOP static site developer can't handle modern JS framework, you are probably right.2
Wanna know why Windows sucks so much? It's because of the Windows users. No, really!
Windows user: But but but I can't switch away from Windows because MIMIMI!
Microsoft: Ah, is that so? Then why should we even try to make (and pay for) an effort?5
Haha - whoever says Azure is totally fine unless people are too stupid to configure it might want to think again. Apparently, that shit is so difficult to configure securely that even Microsoft fails to do it: https://msrc-blog.microsoft.com/202...9
Nvidia might stop being a douchebag about Linux: https://developer.nvidia.com/blog/... Right now, that doesn't change much yet, but it opens a possible road.20
You think jQuery would finally have died after the IE era? Or that it would only be used to still pander to IE users?
Well... nope: https://w3techs.com/technologies/... says jQuery 3 has overtaken jQuery 1, which was the only version to even polyfill IE.
WTF is wrong with web devs, just WHY?! jQuery's use cases are shit that would be simpler and with less code without jQuery, shit that should be done in CSS instead, or shit that doesn't belong on websites to begin with.42
My GPU blocks the airflow from the lower front intake fan to the CPU, so I wanted to have a fan in the 5.25" drive bay directly targeting the CPU.
While that bay fits a 140mm fan nicely, there was no mounting point. I ended up making four fan struts out of the metal covers for the 5.25" inserts, the ones that you wiggle out. Drilled holes into the case, a bit of foam above and below the fan to seal the larger gaps, and done.
The trick is ofc that the 5.25" case covers are meshed and hence act both as air intake and dust filter. The CPU runs a few K cooler under load.15
The worst thing I've seen a developer do would be becoming a university teacher while not being able to understand simple OOP or good programming practices.
I can't think of a most harmful one, just mediocrity cultivating unknowingly mediocre devs.2
Helped a friend who's currently learning programming in Java
Looked at the slides used to teach them and apparently the teacher explains the "static" keyword as "can be accessed from any function of the class"... Which... Isn't at all what static does
At that point they hadn't started with actual OOP stuff, so I kind of get why they didn't explain what it really does, but why the fuck did they just put down a completely wrong definition?! Instead of just saying "yeah you'll just need that keyword for now, I'll explain it later"19
Just got a new job at an old school hardware company. The codebase is giving me heart attack. They don't care about dev experience or code navigation at all. Every attempts to modernize the codebase is so half assed. All patches are so bloated that make the codebase even worse.
Frontend is migrated from prototype-oop-jquery cluster fuck to AngularJS, then finally angular. Holy moly, all business logics are baked into UI "classes" using prototype chain. When they migrated to AngularJS, someone simply added a wrapper to that jQuery cluster fuck class and overwrote all the prototype with a 10k +lines file. Since all the methods are hidden in either prototype, JS object, or callback function, it's impossible to trace the data pipeline using IDE when "go to definition" on update() method gives you all the update methods/string in all objects/classes. And they don't care about immutability. References are taken out, renamed, and mutated everywhere. Finding the source of a bug is fucking guessing game.
I don't know what trick they use that makes cLion static analyzer fail.
And there is no unit test or spec doc.
Fuck me dead3
to the guys saying "oop is dumb" / "i don't need oop" / "i've never worked with oop"...
i have some questions:
- which language are you working with
- which problems are you solving
- how big is your code base
- how do you maintain readability of your code?
don't get me wrong, i don't believe that oop is always the answer. i'm just curious which fields these statements are coming from. if they all come from a low level (assembler, C, ..) or functional languages or "scripty" languages (python, JS), or if there are also people working with languages like C++ where oop is pretty much established. and if the latter, i'm curious how people design their code and what problems they solve... tell me your story :D31
The good: use the hardware watchdog in your application control flow.
The bad: don't use a watchdog.
The ugly: trigger the watchdog from a fucking timer interrupt.4
I was assigned to maintain the website as full stack dev but the code from backend is horrible previous devs didn't use SOLID principle, DRY, KISS, or Design patterns. I had to adjust from OOP mindset to Procedural its hard to debug in this state.3
Nvidia at it again. After receiving backlash for trying to pass off a 4070 as 4080/12GB, und "unlaunching" it, they did the same shit again.
This time with a 3060/8GB. Yes, as RTX 3060, a well established product with a lot of reviews, intentionally misleading the customers who think that a 3060 is always the regular 12GB model. And the new shit isn't even cheaper.
The main issue isn't the reduced amount of VRAM, it's cutting down the memory bus from 192 to 128 bits, that costs quite some performance.
So if you see a 3060 and think it might be a bargain, watch out that you don't accidentally end up with the "bait and switch" 8GB model.
Or even better, consider a 6650 XT that is both faster and cheaper than a 3060, and RT is lackluster on the small RTX cards anyway.7
Asus announced their AM5 board X670E Extreme. The E already stands for Extreme, which makes it an Extreme Extreme.
My feeling is that AM5 will be extremely - expensive!
That's because the AM5 LGA socket moves cost from the CPU (formerly PGA) to the mobo, but AMD certainly won't drop CPU prices, rather the opposite, and then there's also DDR5 as cost driver, not to mention tons of PCIe 5.0 where we don't even have AIBs.
On the upside, that would finally end the days of GPUs causing a disproportionately large share of the system cost - if only because the rest gets more expensive.6
The Tale of Mouse and Watch
Once upon a time, a mouse wanted to know what time it was. So it asked the first guy who came along, but it didn't understand Suaheli. Anyway, he just had mumbled, gotta kick the cat in its lazy ass.
So the mouse moved on and nearly got it when it met another mouse who bad been sewn to a dead elephant's ear exactly 27 years ago - but unfortunately, it had forgotten the time of day when that had happened.
The seeking mouse came up with the idea of doing something with the sun, but since it was only dumb mouse, it looked right into the sun and was blinded.
Now pretty desperate, it tumbled through the gutters that were full of trash. Accidentally, it fell over a dumped watch, and the mouse broke its nose.
The lesson: sometimes, even a blind mouse may find a broken watch!5
HR: What is Java?
Me: Ah... OOP... uhm... is a programming language... *awkward silence*... Yep, that's all
HR: Congrats, you have bombed the interview
Source: Me from few days ago ._.5
If I find the genius who thought using getters and setters everywhere was a good idea, i'll gladly throw him into an active volcano.28
The bouba/kiki effect is a non-arbitrary mapping between speech sounds and the visual shape of objects. It was first documented by Wolfgang Köhler in 1929 using nonsense words.
Fucking customer industrial machine doesn't work properly because the dumbass who designed the control algo failed to consider basic physics how this shit is even supposed to work. Just to be sure, he also included some race condition in the measurement part of the software.
I dont understand why we must use PHP to
Im a student software developer and this is the first time i will learn about Object Oriented programming but i dont know man im really confused why our prof makes us use PHP to understand the concept of OOP rather than to learn Python or Java which is ten times easier for an OOP based application
I can understand that PHP can be used for OOP but why just why... can someone please explain why this might be and how does it feel to use PHP for OOP purpouses10
Fuck you, Nvidia. Uhm no, this time not from Torvalds, but EVGA: they're fed up with Nvidia's antics towards their AIB partners. No 4000 series EVGA GPUs anymore.
A sweaty furry sodomizing a dead dog would still be less disgusting than the codebase on which I have to work, some highlights are:
- The same class repeated 40 times with little variations instead of using some decent parametrization
- Inexistent encapsulation and separation of concerns, most changes requires to modify and recompile 2-3 indipendent Maven projects
- Abuse of inheritance which instead of being used to create "is-a" relationship as it should be it's used to reuse some methods of a class in another instead of using Spring dependency injection as we should be
It would be understandable in a 20 years old legacy projects but in something which started 2 months ago it drives me mad, I tried to fight to change it but in the big enterprise to which I'm "body-rented" it's impossible1
There's plenty of literature about how to emulate classes and interfaces flawlessly in JS even without es6, but no, let's make a separate language using 20 extra keywords and several unnecessary concepts called TypeScript with its own compiler.10
Wasted a day as Shitlock Holmes with the build chain.
It would not reproduce the firmware hexfile that had been checked in. Reverse engineering that along with the mapfile to find out the cause, it was a const string that was guarded by an ifdef from another file that was auto-generated as prebuild step via a script that fetched some version control info.
Or, it would have been if the installation instructions had been correct and someone had described that no spaces in the absolute path name of the project are allowed. Otherwise, that shit just failed silently.
I then had to reverse engineer the intended workflow from the commit history in the version control to figure out that the last dev obviously hadn't quite understood the project specific workflow and how the version control interacts with these build scripts.
At least, I finally did get a matching hexfile.1
OOP is so ass, classes that extend classes that need objects, of classes that extend classes , passend to their constructor which constructs an object to be given to a constructor of a class that extends a class that implements three interfaces. And in the end it all could have been done with a single function and all of these classes get used a single time.20
FUCK YOU PHP, FUCK YOU SYMFONY AND DEFINITELY FUCK YOU SHOPWARE.
Don't get me wrong, PHP has evolved a lot, but the stuff people are building with it is just the biggest load of fucking shit I have ever seen: Shopware. Shopware is the most ass-sucking abomination to extend. It's nearly impossible to develop anything beyond "use the standard features and shut the fuck up" that is more sophisticated than a fucking calculator.
The architecture of this pile of crap is the worst bullshit ever. A mix of OOP, randomly making use of non OOP concepts and features together with the unnecessarily HUGE amount of useless interfaces and classes. Sometimes I feel like it's 90% fucking shitty boilerplate shit.
And don't get me started with TWIG. It's a nice thought, but WHY THE BLOODY FUCK WOULD YOU NOT USE VUE IF YOU ARE ALREADY USING IT FOR A DIFFERENT PART OF SHOPWARE. This makes no fucking sense whatsoever and makes development of new features a huge pain in the ass. I can't comprehend how people actually like using this shit.
OH AND THE DATABASE. OH MY FUCKING GOD. This one is bad. Ever tried to figure anything out in a database where random strings (yes MySQL "relational" - you might think) that are stored as text in a JSON format make up some object or relations during runtime?? Why the fuck do you have foreign and primary keys if you don't use them properly??
Seriously you can't even figure out which data belongs to what because the architecture just sucks fucking ass. FUCK YOU Shopware wankers, you suck, your product sucks, your support sucks, your architecture sucks and you keep releasing new versions that regularly break shit even in minor versions.
I used to like PHP, but not in projects like these.6
The Zen Of Ripping Off Airtable:
(patterned after The Zen Of Python. For all those shamelessly copying airtables basic functionality)
*Columns can be *reordered* for visual priority and ease of use.
* Rows are purely presentational, and mostly for grouping and formatting.
* Data cells are objects in their own right, so they can control their own rendering, and formatting.
* Columns (as objects) are where linkages and other column specific data are stored.
* Rows (as objects) are where row specific data (full-row formatting) are stored.
* Rows are views or references *into* columns which hold references to the actual data cells
* Tables are meant for managing and structuring *small* amounts of data (less than 10k rows) per table.
* Just as you might do "=A1:A5" to reference a cell range in google or excel, you might do "opt(table1:columnN)" in a column header to create a 'type' for the cells in that column.
* An enumeration is a table with a single column, useful for doing the equivalent of airtables options and tags. You will never be able to decide if it should be stored on a specific column, on a specific table for ease of reuse, or separately where it and its brothers will visually clutter your list of tables. Take a shot if you are here.
* Typing or linking a column should be accomplishable first through a command-driven type language, held in column headers and cells as text.
* Take a shot if you somehow ended up creating any of the following: an FSM, a custom regex parser, a new programming language.
* A good structuring system gives us options or tags (multiple select), selections (single select), and many other datatypes and should be first, programmatically available through a simple command-driven language like how commands are done in datacells in excel or google sheets.
* Columns are a means to organize data cells, and set constraints and formatting on an entire range.
* Row height, can be overridden by the settings of a cell. If a cell overrides the row and column render/graphics settings, then it must be drawn last--drawing over the default grid.
* The header of a column is itself a datacell.
* Columns have no order among themselves. Order is purely presentational, and stored on the table itself.
* The last statement is because this allows us to pluck individual columns out of tables for specialized views.
*Very* fast scrolling on large datasets, with row and cell height variability is complicated. Thinking about it makes me want to drink. You should drink too before you embark on implementing it.
* Wherever possible, don't use a database.
If you're thinking about using a database, see the previous koan.
* If you use a database, expect to pick and choose among column-oriented stores, and json, while factoring for platform support, api support, whether you want your front-end users to be forced to install and setup a full database,
and if not, what file-based .so or .dll database engine is out there that also supports video, audio, images, and custom types.
* For each time you ignore one of these nuggets of wisdom, take a shot, question your sanity, quit halfway, and then write another koan about what you learned.
* If you do not have liquor on hand, for each time you would take a shot, spank yourself on the ass. For those who think this is a reward, for each time you would spank yourself on the ass, instead *don't* spank yourself on the ass.
* Take a sip if you *definitely* wildly misused terms from OOP, MVP, and spreadsheets.5
Interesting: how to hack websites right upon installation. Basically, monitoring issued TLS certificates and trying to access e.g. WordPress installations before the user was able to configure a password.
That relies on a sloppy deployment process, of course - like making a live installation that is online immediately.
Trained model with L2 regularisation. Didn't really see much of a difference to L1. Checked everything again... turned out I had re-run the L1 setup instead of the L2. *facepalm*1
I can now appreciate some design decisions behind react-redux after witnessing some angular OOP clusterfuck.
I am sure there is some clean/correct way to code in angular, but everyone is treating angular as java.
Some angular application (the one I have to work with) is littered with network calls. It's difficult to spot duplicates. People usually resolve promises everywhere. In services, in a top-level component, or in for loops. In react, people use apollo/redux-query or redux-saga to handle network calls. Since these libraries prevent duplicate network calls internally and reassigning apollo network call function or redux action function is always useless, it's easy to spot all network calls in a component tree.
In angular, it's difficult to trace data mutations when data can be updated everywhere. In react, you can easily find UI state updates by tracing state hooks/dispatch/apollo usages.
In angular, it's difficult to trace data pipeline. Since everything is imperative by default, people need to add update functions in data subscriptions. With all the littered mutations. Soon you will lose track of what the fuck is going on.
I hope angular get the agonizing death it deserves and fuck everyone who codes JS OOP clusterfuck UI.11
If you find a programmer that uses getters() and setters() without any complex logic inside them, you should burn him/her/whatev with the strength of a thousand suns.20
I'd like to hear from developers which prefers Angular to React the reason of said preference.
I want to hear that becasue I like React way more than Angular since I find which is easier to learn (making a form with a React hook is easy while it takes days just to get a grip on Angular forms), it usually takes less code to do things, it doesn't force libraries which may not be necessary for your use case and just makes your bundle bigger (for example most things which are done in NgRx can be done just as easily with regular JS promises without the need of an external tool) and I generally prefer functional programming to OOP.
Said that I want to hear the other side, not to argue but because I want to know cases in which Angular may be a better choice than React to become a better rounded dev.10
It's a shame that people don't want to use F# but prise C# for how cool it became and continue becoming. At the same time, little do they know that many of the features were simply drawn from F#.
It's just rediculous how far this OO and C-Style syntax crap has progressed. They keep copying things from functional langugages, making the initial language to be a monstrocity like C++ is now, insted of just using languages like C#. I mean, it was right there before C#: async/task, immutablility, records, indexes, lambdas, non-null by default, who the hell knows what else.
Besides, many people (in my company at least) are just blindly overengineering with patterns and shit, where a simple function would be just enogh.
Watch some some NDC talks about F#, in particular those of Scott Wlaschin. It's just better in so many ways: less noice (I'm looking at you, brackets, commas and semicolons), the whole LOT of type inference and less duplication (just look at the C# signatures of linq methods - it's difficult to read them), immutability by default, non-nullable by default, ADTs and pattern matching, some neat features like type providers (how many times have used "paste special" or an online tool to create C# classes from a JSON/XML file, and how many times have your regenrated it because of schema changes?) and units of measure.
Of course, in some cases it's not optimal, in some cases mutable datastructures of C# are better for performance. But dude, how many performance critical systems have you wrote in C#? I mean, if it comes to performance you should use Rust or C++ or C after all.
Finally, I finally got my dream job, but three weeks after starting, I will say I am going into depression.
First, I have to learn a new language (the lang is less than 7 years old) on the job. The language is so different from the paradigm I am used to-from OOP to functional programming, it has very little confusing documentation and a small but growing community.
Though I have been able to show some work, goddamit, it's taking me blood and sand to adjust and be productive.
My onboarding tasks are fixing bugs and implementing a feature, and it has been like walking in a dark tunnel.
I have to face my problem alone as all the devs in the team have swapped.
I rarely sleep, and I recently started to have an existential crisis!
Also, I work part-time on another project, and my output is so poor due to the fact that I am trying to adjust to the new job. Just this evening, I got a call from the manager who was passively aggressive, complaining and asking me to rethink (a passive way of saying "you are fired, if you do not...").
I am feeling anxious. It is taking so much time daily to adjust to the new job.
Will the depression pass?10
Read this and tell me OOP (or at least C#) isn't broken:
All I want to do is mock System.DateTime is for a few of my tests, and I ended up going down this rabbit hole of absolute horseshit: build a custom class that you can mock in tests, blah blah blah blah, uhhhh... YEAH NO
Such a simple functionality / need, and yet there is no easy way to test for it. Sigh.16
How much of a red flag is it if a programmer gets concepts like interfaces and classes, but when asked what an interface is, can't give me a straight answer?8
I am very thankful to C as I face less pain while dealing with pointers and memory allocation and deallocation in C++. I am very thankful to C++, as I grasp OOP and template concepts out of it and it was also my first language for DSAlgo implementation. I feel very fortunate to move to Java after C++ rather than python. Although Java's design is f**ked and it feeds on a computer's memory, it taught me to deal with objects( unlike C++). It taught me how objects are clearly different than primitive data types like int, float, char...And best of all, Java provided me everything I need to safely switch to Python, it's all because of Java, I can clearly understand the working of python. All the stuff which I find weird in python before is sounding logical to me now. As java taught me how to deal with objects, I am confident to say that "I CAN DEAL WITH PYTHON". With respect to all my 3 prior languages: C, C++, and Java.2
ive gotta say, i have a new found disdain for C. i guess most languages really.
if i wana do something dynamically, flexible, or just use simple syntax improvements without much hacky shit. it's just not possible.
wana use macro/defines? well those are gona shit all over everything and get janky and make the code half unreadable.
wana use pointers as functions? *gasp* that's not safe, you have to use old C, def not cpp.
youd like to easily specify + operator for 2 objects? wait theyre not exactly the same? uh uh.
basically anything considered 'unsafe' you can only do in C. anything new age easy (like 'new') you can only do in cpp or w/ classes.
just want assembly level freedom and efficiency, to mass oop ease .-. is that too much to ask?9
I'm mostly self-taught, but there are a couple people who defined my understanding of computing
- My amazing elementary school friend whose father worked at IBM and who initially turned my interest from astrophysics towards computing. I don't know whether physics would've been fruitful but I know computing is.
- My high school friend, who taught me the basics of OOP. Though we agree on almost nothing today, his explanations about code quality defined my understanding of the matter which I then used to draw completely different conclusions
- My high school mathematics teachers, who tolerated the way I abused every tool at my disposal to construct proofs that resembled a rollercoaster, and helped me develop my own understanding of mathematics
- 3blue1brown for producing replayable videos in a similar quality to my high school maths lectures with additional stunning visuals. No content on the internet fits the way I think quite as much as that channel.
It’s hardest to write spaghetti code in java then in any other language, that’s because of the OOP approach to everything. The problem that I encounter mostly are things being tightly coupled to one another. It takes a real idiot to write spaghetti code in Java.8
I have most of my experience in Java and OOP. Right now I'm writing small program in C.
What are some good practices for procedural programming, something like SOLID for OOP?
And what rules to follow that will help me write and maintain clean code?2
My friends were wondering if I could teach them the basics of coding. What order should I do it in? The basic things I want to teach them are input/output, data types (numbers, strings, arrays, etc.), flow control (loops, if/else), functions, variables, and maybe oop if I'm in the right mood.
Also, would python be a good language to start with? It's definitely the language I know the best.8
OOP question: Can someone fucking explain to me what does it mean to hide complex implementation behind an interface?
Also whats the point of using interfaces when you can define methods in an abstract class and just override them in subclasses in order to get class specific implementations?18