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 - "programming languages"
I'm drunk and I'll probably regret this, but here's a drunken rank of things I've learned as an engineer for the past 10 years.
The best way I've advanced my career is by changing companies.
Technology stacks don't really matter because there are like 15 basic patterns of software engineering in my field that apply. I work in data so it's not going to be the same as webdev or embedded. But all fields have about 10-20 core principles and the tech stack is just trying to make those things easier, so don't fret overit.
There's a reason why people recommend job hunting. If I'm unsatisfied at a job, it's probably time to move on.
I've made some good, lifelong friends at companies I've worked with. I don't need to make that a requirement of every place I work. I've been perfectly happy working at places where I didn't form friendships with my coworkers and I've been unhappy at places where I made some great friends.
I've learned to be honest with my manager. Not too honest, but honest enough where I can be authentic at work. What's the worse that can happen? He fire me? I'll just pick up a new job in 2 weeks.
If I'm awaken at 2am from being on-call for more than once per quarter, then something is seriously wrong and I will either fix it or quit.
pour another glass
Qualities of a good manager share a lot of qualities of a good engineer.
When I first started, I was enamored with technology and programming and computer science. I'm over it.
Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all.
The most underrated skill to learn as an engineer is how to document. Fuck, someone please teach me how to write good documentation. Seriously, if there's any recommendations, I'd seriously pay for a course (like probably a lot of money, maybe 1k for a course if it guaranteed that I could write good docs.)
Related to above, writing good proposals for changes is a great skill.
Almost every holy war out there (vim vs emacs, mac vs linux, whatever) doesn't matter... except one. See below.
The older I get, the more I appreciate dynamic languages. Fuck, I said it. Fight me.
If I ever find myself thinking I'm the smartest person in the room, it's time to leave.
I don't know why full stack webdevs are paid so poorly. No really, they should be paid like half a mil a year just base salary. Fuck they have to understand both front end AND back end AND how different browsers work AND networking AND databases AND caching AND differences between web and mobile AND omg what the fuck there's another framework out there that companies want to use? Seriously, why are webdevs paid so little.
We should hire more interns, they're awesome. Those energetic little fucks with their ideas. Even better when they can question or criticize something. I love interns.
Don't meet your heroes. I paid 5k to take a course by one of my heroes. He's a brilliant man, but at the end of it I realized that he's making it up as he goes along like the rest of us.
Tech stack matters. OK I just said tech stack doesn't matter, but hear me out. If you hear Python dev vs C++ dev, you think very different things, right? That's because certain tools are really good at certain jobs. If you're not sure what you want to do, just do Java. It's a shitty programming language that's good at almost everything.
The greatest programming language ever is lisp. I should learn lisp.
For beginners, the most lucrative programming language to learn is SQL. Fuck all other languages. If you know SQL and nothing else, you can make bank. Payroll specialtist? Maybe 50k. Payroll specialist who knows SQL? 90k. Average joe with organizational skills at big corp? $40k. Average joe with organization skills AND sql? Call yourself a PM and earn $150k.
Tests are important but TDD is a damn cult.
Cushy government jobs are not what they are cracked up to be, at least for early to mid-career engineers. Sure, $120k + bennies + pension sound great, but you'll be selling your soul to work on esoteric proprietary technology. Much respect to government workers but seriously there's a reason why the median age for engineers at those places is 50+. Advice does not apply to government contractors.
Third party recruiters are leeches. However, if you find a good one, seriously develop a good relationship with them. They can help bootstrap your career. How do you know if you have a good one? If they've been a third party recruiter for more than 3 years, they're probably bad. The good ones typically become recruiters are large companies.
Options are worthless or can make you a millionaire. They're probably worthless unless the headcount of engineering is more than 100. Then maybe they are worth something within this decade.
Work from home is the tits. But lack of whiteboarding sucks.40
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’m so sick of the programming industry. It’s no longer fun. After 26 years, I’m utterly unable to keep up with all the new BS I’m supposed to know. I’m currently unemployed and every job description I see has a kilometer-long list of dozens of languages and protocols and technologies I’m supposed to have 10 or more years with. Utter bollocks. I’m completely unemployable according to these expectations. Nobody will even consider me for hire. Do these candidates actually exist?
Sure, I could do what everyone suggests and “go back to school”. But with what money? And only to find out that the tech bros have invented 20 new things I should have been learning during my 2-4 years getting on the new stuff. Not to mention all the time I will have lost in not being employed for going to school. And then STILL not having the “10 or more years experience”.
My wife is tapping her foot wondering when we’re gonna be able to stop eating through our savings while I dither around and try to find ways to make money. I’m starting to feel like I’ll never be employed or employable again.21
I suddenly remembered that time when I was a junior, faced an issue in the code. I assign a parameter for a method for background-colour, where I have to declare a Colour value with the hexcode, then I got an error thrown at me. That's says Colour(); not found something something.
Took me one hour to realise most programming languages are American. Should be Color() not Colour()
Facepalm. That day I thought to me self, how stupid can I get in a day.7
So, Rust again.
When I learned that Rust doesn’t support inheritance, only traits (interfaces), I was shocked at first.
Then I tried to remember when the last time was that I have used inheritance in the code that I write (not the code that I use).
And I could remember an instance some months ago. But I also remember that I was very unsatisfied with that design and refactored it to use composition instead. And it was much better.
One of Rust’s properties is that many good practices in other programming languages are enforced rules in Rust.
And in case of inheritance, it seems like Rust decided that composition over inheritance is such a good practice that it should be a rule.
I’m not 100% convinced that there never will be cases where inheritance is better. But I still like this radical idea of forcing the devs to do it "the right way" in the majority of (if not all) cases.
I think many devs will disagree.
What do you think?14
Literally anything that comes out from Anders Hejlsberg, always liked what the dude brings to others. I fucking loved his work on the Pascal Programming language, back then it was all over the place in Mexico. I can only imagine that in the U.S it was just as big since a lot of mfkers in here are still pushing Delphi from what they found with Turbo Pascal.
His work on the C# programming language is absolutely incredible and C# is one of the best languages in my book. And I fucking adore TypeScript, so literally, everything this dude puts out, I pay attention, listen to and learn. As far a language designers go, him and Rich Hickey are my top favorite mfkers in the field, but Anders it to me a personal idol.
I also happen to really fucking like C# and Clojure man, like come on those two are just legit good languages.8
Hello guys. Today I bring you my personal top 3 programming languages
🏅Honorable mention: Free Pascal
Thanks for reading9
They call Python, C, Java, Ruby, and stuff like that programming 'LANGUAGES' for a reason. I just wrote a Python dictionary literal in my C# code and was clueless as to why it was failing to compile for five minutes straight. Maybe that was because I was working with Python like 30 minutes ago.
It's like I have to have one 'brain' per one language and need to switch between such 'brains' to write code in another language. And such switches take time.5
I lost my job last May. Until then, for about 2 years, I have been studying different programming languages and frameworks because I had always used React, and I wanted something different.
When the lay off happened, I decided to study React again in order to catch up with what's new and find a job quickly, now I am enjoying it once more. Also, back-end development with Node and sick stuff like GraphQL and Prismic, and as well as React Native after some great update, are things that interest me very much.
Does anyone remember BASIC?
10 PRINT "Hello World!"
20 GOTO 10
C, C++, and Java are legacy programming languages.
So, for the ones who fear that the language will go away in mere 10-15 years. Chill. These languages will stay forever.18
What would be the easiest starting point on low level languages?
I started with java, learned to hate it.
I continued with web development, learned to hate it.
Continued with PHP, learned to hate it.
Continued with scripting languages like Python, NodeJS, etc.., hated it from the beginning but it was easy.
But everytime i touch something like c/c++/rust/etc i immeadiatly give up, because the syntax is so different than all these other high level languages and so much null/type safety and so on.
But i want to get into low level programming languages which compile to an executable and don't get executed on some "vm".12
I don't know what language i want to be my main.
I know many languages but most of them just the basics, to write some simple programs.
I'm currently just coding in my free time, i'm still at school and there is no company that forces me to use a specific language.
But when i'm out of school and want to work as a developer, i can't tell them well i know these languages but only the basics.
What is/would be your choice for non web programming?18
I've been working as a developer for 10 years now... I got my first software development job when I was still learning for my masters.
After all this time I have switched programming languages and product types a few times from web development to mobile apps to desktop software (C++, CEF, QT,).
And I have come to the conclusion that I want early retirement... like right now retirement... I'm done dealing with management that doesn't understand shit... dealing with people we have outsourced part of the shit to... needing to fix stuff that is broken after some other person refactored the code and didn't fully test it and it somehow got approved... dealing with people that think that "know better" and implemented things like that 5 years ago because they thought like "THAT" and will not accept my merge request because of that.
Like don't get me wrong I love to make and develop software, but since this is the 3rd job in the row with a toxic environment like this I feel like I need to move to the country side and open up a farm or something :|2
I know there’s this notion that you shouldn’t label yourself as a “.Net dev” or a “Python” or “Java” dev because programming languages are just tools that have areas in which they shine. Nothing’s wrong with that statement because it entirely true but I believe in picking something and mastering it so if someone wants a python dev or java dev they know where to look and what to expect. Nothings wrong with being a jack of all trades master of none because the industry needs people like that, but if you don’t have to then don’t.5
I dont like programming languages where "there is more than one way to do it".
There should be one way to do things, it makes it easy for developers to understand code others have written, it makes it easier to start working in new teams etc etc.23
Quick questions for some vim lovers out there.
I've seen a lot of youtube videos of people using vim/nvim/spacevim/... as their main IDE, claiming that they are perfectly fine with this setup. However, most of this people are programming in not heavy object oriented languages, like JS, C, Rust, Go.
My question is: are there any Java developers who are using vim as IDE and are satisfied with their setup? Is is even possible to migrate from Jetbrains tools to your setup without huge productivity drop? By productivity I mean - a lot of IDE stuff like name refactor, great lombok support, debugging tools6
I'm learning Rust as a case study for my own programming language. It's funny how many approaches exist to the humble loop.
- In classic procedural languages, a loop's job is to repeat actions, and as such it provides a multitude of tools to control this repetition.
- In all languages with iterators, a for-in loop is a construct that does something with every element of a collection. In languages with both iterators and generator functions, this can even be used to define a sequence in terms of another.
- In Rust, a loop is an expression that obtains its value through repeated execution. It can also be used like a classic loop, of course, but this is the interesting part.
- My little language is a functional language, so "loop" is the Y combinator. To loop means to define the value of an expression in terms of itself. It's the only looping construct, gets special treatment from the type checker and it's also used in recursive type definitions.
"Most memorable bug you fixed?"
A recent instance happened in one of my Scratch projects, and the bug involved "Infinities."
I had an opportunity to teach kids programming, and it involved Scratch. So, to have something to show those kids at least, I decided to make a small game.
In that game, I had an object that takes some time before appearing after being cloned (i.e., instantiated.) The duration was calculated by dividing a constant with a variable:
[Wait for ((3) / (variable)) seconds]
The bug is that I forgot about the case where 'variable' can be 0, which is classic and insignificant.
Well, the thing is that I learned two things the hard way:
1: Scratch is very flexible about integers and floats (e.g., at one second, it looks like an integer, but one operation later, it's a float.)
2: Scratch does not provide any 'runtime errors' that can crash the project.
In other languages, similar "wait" methods take "milliseconds" in an integer, so it would have barfed out a "DivideByZeroException" or something. But Scratch was so robust against project-crashing behavior that it literally waited for f*<king "infinity seconds," effectively hanging that clone without warning or runtime errors. This masked my bug. It took way too long to debug that s#!+.
Don't blanket-mask any errors.
What are some interesting / unique approaches you've seen to representing generics in syntax? The only one I know is the Java/C#/Typescript way of using a separate set of parentheses and either specifying all of them or none, and I've already experimented a bit with passing them as regular arguments which works great with autocurry but every syntax option for inference adds visual noise.9
I can't find a website I used years ago... maybe someone here remembers its name.
It was a place with daily code challenges, real time code battles, you had to fix bugs, syntax errors, you could choose different programming languages, and receive points based on the number of chars used to fix the issue, etc.
I hope it still exsits, it was really fun.
Thanks in advance!5
So, Rust... I CAN'T STAND that after using Rust my programming languages standards got so f*cking high I end up ranting about stuff I'd gladly use before, like python, js, lua, C++, etc. Aside for Ruby, this one is a peach of a language, whoever hates Ruby must have a stone heart, she's lovely 🌹 her linter friend Rubocop though... I HATE RUBOCOP WITH ALL MY HEART.
Any recommendations for a first timer of functional programming? Not sure what languages are used the most or have the most community support. For whatever it's worth, I've enjoyed working with C# and Golang, and disliked working with JS and PHP.6
My list of programming languages that started out promising but turned out to be bad:
I’ve become so indecisive in terms of knowing what I want from my career.
All I know is what I don’t want (to end up a in management)
I’m definitely getting a new job and right now it looks like I’ve got 3 offers on the table
Option 1, a previous company I worked for. Still the same problems with the company there as before but the work was interesting and unusual. and my line manager was a good guy.
They have practically no legacy code.
Not much in the way of company benefits but they’re local and it would be nice to see friends again.
So feels like the pull to this is strong.
Option 2, a fully remote company that I’ve been referred to by an ex-workmate.
They’ve not even tech tested me because they’ve read my blogs and GitHub repos instead and said they’re impress. So just had a conversation with them. I feel honoured that they took the time to look at what I’ve done in my own time and use that in their decision.
Benefits are slightly better than option 1 (more hols)
But they’re using .net 6 and get a lot of heavy use on their system and have some big customers. I think the work is integrations to start with and moving services into docker and azure.
Option 3, even though I’ve got an offer from this one but they can’t actually explain the work until We can arrange a call next week (they recruit and then work out what team your in, but Christmas got in the way of me having a call with them straight away)
It’s working on government systems and .net is their least used stack so probably end up switching to Java. Maybe other tech stacks too.
This place has much better benefits than option 1 and 2 (more hols and more pension), but 2 days a week in office.
All of the above pay the same salary.
Having choice feels almost as bad as having no choice.
It’s doing my head in thinking about it , (even tho I might as well not think about it at all until the call with option 3 happens).
On the one hand with option 3, using a tech stack that’s new to me might be refreshing, as I’ve done .net for 10 years.
On the other hand I really like c# and I’m very good at it. So it feels a bit like I should be capitalising on that and using my experience to shape how the dev is done. Not sure I and I can do that with option 3, at least for a while.
C# feels like it’s moving forward nicely and I’m not sure I can say the same for Java or other languages.
I love programming and learning new stuff but so unable to let things go. It’s like I have a fear that c# will move on without me and I’ll end up turning into one of those devs whose skills are a decade out of date.
Maybe the early years of my career formed me in this way.
Early on I worked at a company where there was a high number of Cobol devs who thought they had a job for life.
But then redundancies came and many left. Of those who stayed they had to cross train to Java and they just couldn’t do it.
I don’t think the tech was hard for them, I think they were just so used to not learning that they could no longer adapt.
Think most of them ended up retiring after trying to learn Java for a few years.8
I’m too dumb to learn frontend frameworks.
I’m a backend developer, not the greatest but I get the work done. I can understand different programming languages even if I don’t write in them, you just understand basic principles and know what’s going on.
I can do some work in HTML, CSS and some JS.
Nope, not working. Maybe classic css solution?
Ok, time to Google. What do I find? A million of npm dependencies that provide dropdowns, for some you need to pay, wtf.
But I want to write one on my own.
Found few tutorials that wasn’t even remotely helpful, it’s like with the online recipes, “when I was growing up on the farm…” and then something that it’s not working.
Finally found some nice looking tutorial, was following that and then.. it ended. It was maybe half of the solution, dude forgot about some components and just left.
I quit, I’m going back to writing jsp, my brain is too smooth for frontend frameworks2
Mark Russinovich, the chief technology officer of Microsoft Azure, says developers should avoid using C or C++ programming languages in new projects and instead use Rust because of security and reliability concerns.21
I've been feeling a lot of burnout these past few days/weeks... But like only in a specific programming language? Which is an issue cause I mainly work on python and I can't seem to bring myself to do that while learning and working with new languages/frameworks in classes are no problem.2
Is there a way to search/filter all collabs on devRant based on tags like say programming languages ?4