Details
-
AboutI’m no one important.
-
SkillsNone.
Joined devRant on 2/20/2018
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
-
Am I the only one who's a final year undergraduate, but isn't sure he/she knows enough about programming and comp sci as they should?
Like I recently went for an interview with a company, and they asked what's the difference between pass by reference and pass by value. Now, this is probably a very basic qs, so I was surprised when I couldn't answer this. So I'm really scared that I don't know enough, also I'm terrible in their group exercises too, I can't see how the others can do it so easily.9 -
I'm a little late to this, but that Python master/slave issue.. what the fuck is up with that?!
You say that you're offended by words.
=> Fuck off. If you want to serve social justice, help people in third-world countries that need your help.
=> Also, you do realize that the use of master/slave is just as much applicable to technology as client/server or host/guest are, right? It's a relationship between fucking machines or code blocks, not humans.
You say "why the outrage over this?"
=> Fuck off. Your SJW bullshit has no place in technology. It's a fucking word in fucking code!!!
You say that you're improving the Python project with this.
=> Fuck off. It breaks existing documentation and needlessly abstracts terminology that is used pretty much everywhere. What do you prefer, conciseness and a language to be easy to understand or for it to become all cushioned to soothe your frail feelings?
You know, there's something else that I wanted to talk about that's related to this. I have Asperger Syndrome, which on paper is a disability. In practice it's difficulty to socialize while having an above average IQ. That "disability" is what drove me into technology. When I see job listings actively prefer people with disabilities for social justice, you know what? That offends ME. Because I wouldn't want to be chosen as the best applicant just because it ticks social justice boxes. I want to be chosen as the best applicant because I outcompeted every other applicant with actual skill and fitness to do my job.
Also, when a company sells you a defective unit, would you be happy? Of course not. So why are you happy when they employ a defective? I am someone that would - on paper - be impeded by natural selection, because I am "handicapped". But I'm all for it. Humanity is what it is today - shit - partly because defectives have become widely accepted into society. Call me a bigot, but I'd rather be called that than to not raise concerns about this trend.
On the subject of handicaps, that's a term that's used in games, what for aiding the player that can't win against the regular opponent (which is usually just a fucking bot, wtf yo). I am handicapped, therefore YOU shouldn't use the word in a sense where it's totally reasonable to use it!! Says no one ever, me neither. Grow a fucking pair and realize that code isn't written with the intent to offend anyone. So why are you?23 -
Every day.
I am a PHP developer.
Yeah, "another PHP is awful" rant... no, not really.
It's just unsuitable for some ambitious projects, just like Ruby and Python are.
First of all, DO NOT EVER use Laravel for large enterprise applications. The same goes for RoR, Django, and other ActiveRecord MVCs.
They are all neat frameworks for writing a todo app, as a better-than-wordpress flexible blogging solution, even as a custom webshop.
Beyond 50k daily users, Active Record becomes hell due to it's lazy fat querying habits. At more than a million users... *depressed sigh*.
PHP is also completely unsuitable for projects beyond 5M lines of code in my opinion. At more than 25M lines... *another depressed sigh*.
You can let your devs read Clean Code and books about architecture patterns, you can teach them about SOLID & DRY, you can write thousands of tests... it doesn't matter.
PHP is scaffolding, it's made of bamboo and rope. It's not brick or concrete. You can build quickly, but it only scales up to a certain point before it breaks in multiple places.
Eventually you run into patterns where even 100% test coverage still doesn't guarantee shit, because the real-life edge cases are just too complex and numerous.
When you're working on a multi-party invoicing system with adapters for various tax codes, or an availability/planning system working across timezones, or systems which implement geographical routefinding coupled to traffic, event & weather prediction...
PHP, Python, Ruby, etc are just missing types.
Every day I run into bugs which could have been prevented if you could use ADTs in a generic way in PHP. PHP7 has pretty good typehints, and they prevent a lot of messy behavior, but they aren't composable. There is no way to tell PHP "this method accepts a Collection of Users", or "this methods returns maybe either an Apple or a Pear, and I want to force the caller to handle both Apple/Pear and null".
Well, you could do that, but it requires a lot of custom classes and trickery, and you have to rewrite the same logic if you want to typehint a "Collection of Departments" instead of "Collection of Users" -- i.e., it's not composable.
Probably the biggest issue is that languages with a (mostly) structural type system (Haskell, Rust, even C#/JVM languages to some degree, etc) are much slower to develop in for the "startup" era of a project, so you grab a weak, quick prototyping language to get started.
Then, when you reach a more grown up phase, you wish you had a better type system at your disposal...28 -
I vehemently despise the popular image of developers as borderline autistic savants living on junk food and working 24 hour days!
You see, I bought into that vision and became that person. When I first started working as a developer, I would work crazy long hours, eating junk food while neglecting my health and personal life. This behavior was encouraged by my boss and co-workers, and became expected, with the sales people boasting about it to the clients, like is somehow proved I was a better developer.
It's no big surprise that this kind of life comes at a cost and can not be sustained. I burnt out, my life fell to pieces and my body fucked out on me.
It's taken me years to repair the damage and I am still doing so.
I now work at a company that understands the importance of a healthy work/life balance, and I take full advantage of that.
Perhaps if I had a wise mentor when I first started, I could have worked smarter instead of harder and respected the needs of my mind and body.
I am that mentor now.
Developers are smart people, we should stop glamorising a stupid lifestyle.12 -
As a developer, sometimes you hammer away on some useless solo side project for a few weeks. Maybe a small game, a web interface for your home-built storage server, or an app to turn your living room lights on an off.
I often see these posts and graphs here about motivation, about a desire to conceive perfection. You want to create a self-hosted Spotify clone "but better", or you set out to make the best todo app for iOS ever written.
These rants and memes often highlight how you start with this incredible drive, how your code is perfectly clean when you begin. Then it all oscillates between states of panic and surprise, sweat, tears and euphoria, an end in a disillusioned stare at the tangled mess you created, to gather dust forever in some private repository.
Writing a physics engine from scratch was harder than you expected. You needed a lot of ugly code to get your admin panel working in Safari. Some other shiny idea came along, and you decided to bite, even though you feel a burning guilt about the ever growing pile of unfinished failures.
All I want to say is:
No time was lost.
This is how senior developers are born. You strengthen your brain, the calluses on your mind provide you with perseverance to solve problems. Even if (no, *especially* if) you gave up on your project.
Eventually, giving up is good, it's a sign of wisdom an flexibility to focus on the broader domain again.
One of the things I love about failures is how varied they tend to be, how they force you to start seeing overarching patterns.
You don't notice the things you take back from your failures, they slip back sticking to you, undetected.
You get intuitions for strengths and weaknesses in patterns. Whenever you're matching two sparse ordered indexed lists, there's this corner of your brain lighting up on how to do it efficiently. You realize it's not the ORMs which suck, it's the fundamental object-relational impedance mismatch existing in all languages which causes problems, and you feel your fingers tingling whenever you encounter its effects in the future, ready to dive in ever so slightly deeper.
You notice you can suddenly solve completely abstract data problems using the pathfinding logic from your failed game. You realize you can use vector calculations from your physics engine to compare similarities in psychological behavior. You never understood trigonometry in high school, but while building a a deficient robotic Arduino abomination it suddenly started making sense.
You're building intuitions, continuously. These intuitions are grooves which become deeper each time you encounter fundamental patterns. The more variation in environments and topics you expose yourself to, the more permanent these associations become.
Failure is inconsequential, failure even deserves respect, failure builds intuition about patterns. Every single epiphany about similarity in patterns is an incredible victory.
Please, for the love of code...
Start and fail as many projects as you can.30