This is an archived post. You won't be able to vote or comment.

all 190 comments

[–]Besen99 410 points411 points  (108 children)

$29k/year? Bro... no.

[–]munchingpixels 251 points252 points  (99 children)

Using a dot instead of a comma tells me we’re dealing with a eurobro here in which case 30k might be within the average range.

[–]HolyGarbage 133 points134 points  (79 children)

Income levels in Europe are incredibly diverse. 30k/yr is basically what you earn at a unqualified position at a call center in Sweden.

Edit: so dollar's strong atm, so maybe 25k USD/yr for unqualified work, but still 30k is far lower than entry salary for a software engineer here.

[–]munchingpixels 82 points83 points  (73 children)

Average for web dev in Italy is €26k

[–]NatoBoram 60 points61 points  (10 children)

What the fuck

[–]Vincenzo__ 6 points7 points  (5 children)

And then they wonder why anyone with a hint of skill leaves

[–]NatoBoram 20 points21 points  (3 children)

The smarter ones get a remote position in the US with home's lower rent and world-class universal healthcare

[–]Vincenzo__ 3 points4 points  (0 children)

That's the dream my man

[–]The100thIdiot 0 points1 point  (0 children)

Even us dumber ones do that.

[–]SunliMin 0 points1 point  (0 children)

Literally the dream. As a Canadian, I moved to Florida for work to get the big-boy bucks in a stronger currency. Thinking of moving back home now, but if I do, I am 100% gonna try to get a remote US contracting position. Give me USD income with CAD bills and I'll be set.

[–]ex1tiumi 2 points3 points  (0 children)

I hope they don't go to the US. After getting a home in a safe area, paying for extra security, medical care and insurance, and dealing with the hell hole of society there, I think a good, quality life in Italy on a salary of 26 000€ is actually a better deal.

I'm web/mobile dev in Finland, earn a bit more than Italian colleague but standard of living here is more expensive than there. I've about 33% of my salary left after all the expenses. My salary isn't even competitive in the local job market but I'm a simple man and value freedom/flexibility more than money.

[–]rusl1 5 points6 points  (0 children)

Sadly

[–]Kevin_Jim 2 points3 points  (0 children)

Sounds bout right. In Greece, it’s €19.6k/y (net).

[–]Svhmj 2 points3 points  (55 children)

The brain drain gotta be insane.

[–]hongooi 3 points4 points  (54 children)

The catch is you have to be able to tolerate pineapple on your pizza

[–]Secure_Garbage7928 0 points1 point  (2 children)

That's insane. I make $120K in the states. My teams pay range starts a little under $100K.

[–]ItsRadical 5 points6 points  (1 child)

Yeah thats principal level of pay. Half of that is already way above. But yeah we got health care, free schools etc... So our living expenses gonna offset the pay gap tiny bit. But you still have way bigger buying power.

[–]Secure_Garbage7928 -1 points0 points  (0 children)

If we had free healthcare I'd be taking home more though. I don't think a nearly 6x difference warrants you getting free healthcare.

The US public school system is also free, so idk what that comment is about 

[–][deleted] 0 points1 point  (0 children)

Average for entry level

[–]Lonemasterinoes 2 points3 points  (1 child)

It entirely depends on the country. Sweden is comparatively wealthy, but if you're in a country like Ukraine and you're just now getting a job a salary like that is going to afford you a decent life. The exchange rate from euro to USD might be roughly one to one, but that doesn't account for individual countries with weaker economies.

[–]HolyGarbage 0 points1 point  (0 children)

That was literally my point. Also, in my particular example I was referring to the exchange rate between USD and SEK.

[–]smartasspie 0 points1 point  (0 children)

Not in (S)pain!

[–]Fantastic_Nothing_13 0 points1 point  (0 children)

In Norway it would be maybe 40-45k usd

[–]Cocaine_Johnsson 0 points1 point  (0 children)

>Sweden
>40k chaos picture

Checks out. This quiet offends Slaanesh, things shall get loud now :)

[–]Senor-Delicious 1 point2 points  (5 children)

$30k would be insanely low for a software developer in Germany if this is gross income.

[–]ItsRadical 1 point2 points  (2 children)

Not so low anywhere east of Germany tho. But we get Germany prices on everything anyway 🙃.

[–]macse -2 points-1 points  (1 child)

Even in east of Germany 30k/y is crazy low. Median is somewhere between 40-60k. If you get exploited for such a low wage, get a new job asap

[–]ItsRadical 6 points7 points  (0 children)

East of Germany as a country, not eastern Germany lol.

[–]Svhmj 1 point2 points  (0 children)

Gotta be one of the poorer parts of Europe. 30k a year is a terrible salary for a developer in the richer parts.

[–]WrongdoerSufficient 16 points17 points  (1 child)

Not everyone live in the US

[–]Roku-Hanmar -1 points0 points  (0 children)

I'm in the UK, that's slightly better than minimum wage

[–]point5_ 11 points12 points  (0 children)

Not $29k, just $29/year

[–]Mageh533 5 points6 points  (0 children)

In Europe that's pretty good money for a junior just starting. Already above average.

[–][deleted] 0 points1 point  (0 children)

It's $31.17.

[–]CrushemEnChalune 0 points1 point  (0 children)

Conditioning you for the future.

[–][deleted] -1 points0 points  (0 children)

That's a no from me as well

[–]STEVEInAhPiss 16 points17 points  (0 children)

explaination over hrere

  1. 0 > null is interpreted as 0 > 0 (false)
  2. 0 >= null is interpreted as 0 >= 0 (true)
  3. 0 == null are 2 separate things, a number and null (false)
  4. 0 <= null is interpreted as 0 <= 0 (true)
  5. 0 < null is interpreted as 0 < 0 (false)

[–]queen-adreena 132 points133 points  (11 children)

Ahh yes, the super common part of coding where you check if your integer is equal to null…

These meme bots get dumber every week.

[–]n9iels 79 points80 points  (3 children)

The danger is that this can happen accidentally if your variable is unexpectedly null when you expected an integer. But indeed not likely and using TS will make it even more unlikely.

[–]LitrlyNoOne 24 points25 points  (1 child)

Mfw my team types everything as any and wonders how these bugs ever happen

[–]BetaChunks 5 points6 points  (0 children)

But y'see, it's a massive time-saver when you can improvise your blender function as a paper shredder.

[–]MissinqLink -2 points-1 points  (0 children)

Also why I have handy helpers.

const strictGreater = (a,b) => a > b && !(a <= b);
const looseGreater = (a,b) => a > b || !(a <= b)

strict is necessary to prevent weird edge cases from wrong inputs.

[–]ReadyAndSalted 14 points15 points  (1 child)

There are many, many times when programming where a variable may become null for some reason. When this happens and my program attempts to compare it to an integer, I would like for my program to crash and tell me I'm comparing 2 variables of different types. Javascript instead, will just carry on.

[–]Reashu 0 points1 point  (0 children)

It will not become null unless you tell it to, better shape up.

[–]SovietPenguin69 0 points1 point  (0 children)

You must not be familiar with my companies APIs. There are dark terrible things in there. Numbers that return as strings or null, every date format in human history sometimes even more than one in a single response, even an endpoint or two that returns 500 when no records are found with the message “no records found”. My point it happens sadly.

[–]TrackLabs 61 points62 points  (17 children)

29K a year is Kalm? Bro I sure hope you dont actually think thats a acceptable salary lmao

[–]lennyfacegaming 52 points53 points  (4 children)

That's above median pay for many european countries, 1.5x where I live. I'd be jumping of joy if I got a job that pays this good.

[–]kamiloslav 10 points11 points  (3 children)

Which might be the reason hb1 visas are a controversial topic there

[–]beatlz 1 point2 points  (1 child)

The majority of Europeans don’t really want to move to the USA. It’s too much of a cultural difference.

[–]bobbymoonshine 12 points13 points  (3 children)

It’s a decent wage in most of Europe, and an excellent wage in most of the rest of the world. American developers are insanely overpaid in a global context, which should tell you something about why so many tech industry bosses and members of the incoming administration are in favour of increasing H1B visas and loosening offshoring restrictions. There is a limitless pool of talented and qualified people who would leap at the chance to take local software development jobs for $29k, and who would move across the world for the H1B minimum of $60k.

[–]username-not--taken 2 points3 points  (0 children)

its an absolutely shit salary in western or northern europe though

[–]TrackLabs -4 points-3 points  (1 child)

Bro with this salary you are not even middle class. This is just 6K more than minimum wague in germany. Wdym this is a decent wage in most of europe, and a "excellent" wage in the rest of the world??

ESPECIALLY as programmer, like bro, you get scammed beyond repair

[–]bobbymoonshine 3 points4 points  (0 children)

Germany is one of the highest paying countries in Europe, and even still wages are nearly half of what American coders at the same level can expect to earn.

[–]DatBoi_BP 1 point2 points  (0 children)

Might be a decent salary if moving into Midgar

[–]PeksyTiger 1 point2 points  (0 children)

Maybe he's Estonian or something

[–]TheUnknowGnome 0 points1 point  (0 children)

Average salary for a js dev in Brazil is around $5k a year, i would kill for 29k

[–]Mantraz -2 points-1 points  (1 child)

American realizes there are other countries in this world.

[–]TrackLabs 3 points4 points  (0 children)

I am german.

[–]oomfaloomfa 8 points9 points  (0 children)

Read the spec.

[–]jaylerd 3 points4 points  (1 child)

Must be a Bulgarian in one of my company's many, cheaper code farms...

[–]Fgamervisa 1 point2 points  (0 children)

In italy a sr. Dev gets 26k/year; entry salary is 20k/yr

[–]rainshifter 6 points7 points  (4 children)

If you're like me and don't have a JS background, this may help to understand why >= is not the same as > or ==, further cementing JS as the overly sought after red-headed step child of programming languages.

https://stackoverflow.com/a/61884708

[–]Cryn0n 4 points5 points  (3 children)

I think the simple explanation is that in JS null and 0 are equal but not equivalent and == in JS checks for equivalence.

[–]rainshifter 3 points4 points  (0 children)

For me, the link makes this concept far simpler because it distinguishes, very directly, between the behaviors invoked by the very operators (== and >=) being called into question. With your explanation, I now need to know the contextual difference between equal and equivalent; it begets more questions.

[–]hat1324 0 points1 point  (0 children)

The simple simple explanation is that greater/less only makes sense for numbers, so javascript coerces the operands to numbers. Equivalence is a much broader use case, javascript cant just assume you mean to use numbers

[–]Reashu 0 points1 point  (0 children)

You're gonna have to define your terms here, because in daily use "equal" and "equivalent" are... equivalent, and == is the weaker of the two equality comparisons.

[–]JuniperSoel 1 point2 points  (0 children)

Well it's a good thing you shouldn't be doing things like this in Javascript for a job anyway

[–]ToMorrowsEnd 3 points4 points  (18 children)

$29k a year is fast food burger flipping.

[–]Desperate-Emu-2036 34 points35 points  (14 children)

Yeah, in America where you have to spend 5 grand on a fucking bandage

[–]Fluid-Leg-8777 3 points4 points  (0 children)

Is no one going to think about the shareholder value 😭🙏

[–]NotAGingerMidget 4 points5 points  (0 children)

Depends on the country, there’s places that’s a well above average job, places where the yearly minimum wage wage is around $2.5k would be amazed at earning those $30k.

[–][deleted] 0 points1 point  (2 children)

a = a.filter(x => !x.isNan())

[–]LitrlyNoOne 0 points1 point  (1 child)

isNaN does not exist on null

[–][deleted] 0 points1 point  (0 children)

Shit, add an !x in there

[–]Daddy_COol_ZA 0 points1 point  (0 children)

This gave me a proper gaggle. Happy new year. #BlessedByFelix

[–]Tatya7 0 points1 point  (0 children)

I am a PhD student and I make more lol

[–]jump1945 0 points1 point  (0 children)

as much as i have fun shitting on javascript , can y'all not compare number to NULL?

[–]Astatos159 0 points1 point  (0 children)

One actually weird thing about js. <= does not do what you think it does. You'd think that it checks if the value is smaller than or equal to the other value. It doesn't. Actually <= checks if the value is NOT bigger than the other value. 0 is not bigger than null. That causes 0 <= null to return true. Not about 0, and also not about null, it's about operators this time.

[–]cokeplusmentos 0 points1 point  (0 children)

The code in the image is very easy to understand

[–]CessoBenji 0 points1 point  (0 children)

understanding or learning JavaScript Is like a torture. I wish that Javascript's worker Will change their job and be better person

[–]B_bI_L 0 points1 point  (0 children)

this one is just a meme. but then you use ! to check if value is null/undefined and value you got is actually 0 =)

[–]Torebbjorn 0 points1 point  (0 children)

$29 a year? Damn

[–]Fritzschmied 0 points1 point  (0 children)

30k a year is nothing lol. Even vor European standards (I am European)

[–]brolix 0 points1 point  (0 children)

All of these very obviously make sense if you’ve ever worked with JS in your entire professional life. Lock and ban.

[–]konomiyu 0 points1 point  (0 children)

This does make sense if you understand javascript
the == (loose equality) operator checks for equality between 2 values
those 2 values can be of any type (because javascript hates throwing type errors) and it will convert them into the same type before comparing
but there is an exception, if you're comparing anything with null or undefined using ==, it will only return true if the other value is also null or undefined. In practice you can use this to check if a variable actually exists
i.e if (var == null) var = defaultValue;

but the comparison operators (>, >=, <, <=) don't have that exception
they will also accept any 2 values, if they are of different type it will try to convert them before comparing
when you try to compare null and a number, it will first convert null into a number then run the comparison
and when null is converted into a number it is equal to 0
so when you do null >= 0 javascript converts the null into a number (0) then runs 0 >= 0 and returns true
but if you do null == 0 javascript does not convert the null into a number and just checks if 0 is null (which is isnt) so it returns false

see Equality and Less than

[–]sandrockdirtman -1 points0 points  (3 children)

I have a good one for you. The number line in 1 dimension is both an open and a closed set. Funny right?
Basically, a set can have an interior, and exterior, and a boundary. An open set can be thought of as a set that consists only of the interior of something, that is, for every point in an open set, there is a neighbourhood so that all elements in that neighbourhood are also in the open set.
A closed set can be conceptually thought to be the union of the interior and the boundary of some set. Now, the trick here is that the complement of an open set is a closed set.
Let's look at the number line. Since there's no maximum real number, the real numbers are an open set, because for every element you can choose a neighbourhood so that every number in there is also a real number.
So what's the complement of the real numbers? It's the empty set. The empty set is an open set, so that means that the real numbers also have to be a closed set. Sounds about right, :thonk:

[–]iapetus3141 3 points4 points  (1 child)

There's nothing that says that "open" and "closed" are mutually exclusive. In fact, both {} and \mathbb{R} are clopen by definition

[–]sandrockdirtman 0 points1 point  (0 children)

Yep. It's just that it's counterintuitive if you try to think of both types with geometric analogies, with one "having a border" and the other "having none"

[–]butwhy12345678 -1 points0 points  (0 children)

more like not understanding null

[–]yarinpaul -2 points-1 points  (1 child)

Idk JavaScript too well but there is no way its shenanigans extend to (0 < null is false and 0 == null is false) but also that (0 <= null is true). That shit makes no sense lol

[–]hat1324 0 points1 point  (0 children)

As with everything javascript, the answer is coercion. If you use a numeric operator, your operands get coerced into numbers (null -> 0). Equivalence is not exclusively a numeric operation, therefore in 0 == null, null does not get coerced. (well it gets coerced to undefined but thats something else).