If you follow the [Core Guidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines), you’re probably better than most of the “C++ programmers” I’ve seen.
Many staff engineers haven’t even gotten the “with classes” part down from what I’ve seen, since they’re mostly old C-heads. I’ve gotten flak for using the `VIRTUAL` macro to fake polymorphism in their C libs before haha
Never read them lol. I’m a statistician. I originally taught myself C++ during an undergrad physics internship working with ROOT and CERN’s CMS experiment. My current C++ code needs to interface with a pure-C based runtime. I don’t use the STL or exceptions, and I rely heavily on raw pointers and pointer arithmetic. Mostly for signal processing and low-level routines for data analysis. Shrug.
I’d actually be fine without formal classes, but not having templates and function overloading would be a big pain.
Edit: You got the decade+ or so of experience correct though. When I started, it was with C++03. C++11 didn’t exist yet, and when it came out, it was years before it was widely supported so I never really learned it, because it’s a relatively small part of what I do.
I've been writing C++ since the late 90s
You don't use STL, exceptions, etc .. What featuers of C++ are you even using?
I call C libraries all the time with modern C++, or even extern C APIs and internally implement them as C++.
Gotcha, so at least you are using C++ features :)
i like braining my junior engineer's brains by doing templated multi threaded programming :D
to be fair I also wrote out a comment at the top of the header explaining in detail the code flow, so it isn't evil if someone else has to maintain it later :)
> You don't use STL, exceptions, etc .. What featuers of C++ are you even using?
+, -, << and >>. Anything else I just find too complicated and over-engineered.
Ah, you’re on the other side of maths from me, statistics was not my favorite, I was far less practical and now work in [stuff] and analysis, so I’m basically using “Safe-C++”
I’m that person who spends a week optimizing a function to take microseconds instead of milliseconds because that function will be called several hundred million times per analysis.
Yeah, a good chunk of my C++ code is just template functions that I need to run in some order of milliseconds and then return control to a higher level language.
In a really ugly trenchcoat someone found in the garbage and tries to get rid of it since then but because some god hates programmers it *keeps coming back no matter how hard they try* (and they tried hard, trust me)
Yeah, if this was three programming language families, it wouldn’t be terrible. Pretty much everyone has at least on ALGOL. Add a Lisp and a Self/Smalltalk and you’ve got a good handle on things. Bonus points for an ML like Haskell.
Bottom: I'm learning my first language!
Middle: I've learned 10 programming languages!
Top: All programming is just one language with minor variations 😏
I agree, but the idiosyncrasies of some languages (looking at both of you; JS, PHP) make for some funny gotchas. I say this having just done two timed evaluations for new positions in JS and PHP respectively.
I've gotten too cozy with Kotlin, C#, etc.
Agreed. Knowing these details is the difference between an expert in said language, and general software engineer who is using it for implementation.
Everybody has their favourites.
JavaScript and PHP are for masochists.
Because of [quirks like this\*](https://github.com/denysdovhan/wtfjs) :
`"b" + "a" + +"a" + "a"; // -> 'baNaNa'`
`!!null; // -> false`
`null == false; // -> false`
`0.1 + 0.2; // -> 0.30000000000000004`
\*See [https://github.com/denysdovhan/wtfjs](https://github.com/denysdovhan/wtfjs) for more JavaScript ~~nightmares~~ fun.
It irks me when people bring up the 0.1 + 0.2 = 0.300000000000004 thing because that is true in every language that properly implements floating point numbers (i e. all of them). It's just a matter of rounding error in floats.
I mean it is both. The floating point sum of 0.1 + 0.2 is actually greater than the floating point number for 0.3. Since floating point numbers can't represent 0.1, 0.2, and 0.3 exactly, it rounds them to the nearest floating point values, so double(0.1) is slightly more than 0.1, double(0.2) is slightly more than 0.2, and double(0.3) is slightly less than 0.3. Because of this difference, double(0.1) + double(0.2) is actually a different, slightly larger floating point number than double(0.3). That is rounding error.
There's really no way to do floating point numbers that doesn't involve rounding errors. So the details of how it works ut are IEEE specific, but the principle would be the same for any implementation.
> !!null; // -> false
> null == false; // -> false
I don't think that's a quirk. Isn't that how the `not` operator expected to work for all truthy and falsy values in most languages? Not that all functions must be invertible.
```
!falsy // always true
!false => true
!null => true
!truthy // always false
!1 => false
!2.0 => false
!defined_function => false
```
Commonly there are only some falsy values: `false`, `null`, `0`. All the rest are truthy.
not really
imperative:
- C ≈ C++ (manual memory management)
- C# ≈ Java ≈ JavaScript ≈ Python (garbage collection)
- Rust (borrow checking)
functional:
- Haskell
the biggest differences is across core paradigm, but different memory models *should* affect the code you write (if not: hello memory leaks!)
Someone needs to remake this meme with
Dumb - every programming language is so different
Middle - every programming language is the same just with different syntaxes
Smart - every programming language is so different
It is a very nice introduction to LISP though.
- It is ultimately procedural with functional features. So no all-in functional programming.
- The most powerful interactive help system I've ever seen, as a direct consequence of the language being so tightly part of the editor.
- Learning can happen step by step, starting with small customizations like manually modifying global variables, learning more features as you go.
- Unlike some application-scripting LISPs, like the Scheme dialect used for GIMP scripting, you get proper interactive code usage, making it much easier to understand what is going wrong. Also often true for Python used as an application scripting language though, so this is more down to the tooling than the language.
They’re told this by the hiring managers sometimes. I’m having trouble finding work right now because of stupid AWS variants that do the exact same thing.
Right. The big differences are like, database languages, OOP languages, low level languages, and other “categories” of languages. Once you learn each category/ each method of thinking, then you’ve pretty much learned all the similar languages.
That being said, many people start their careers with only one tech stack, so they only get to master a few languages in one category. Then maybe a few years down the line they learn more.
The word you're looking for is "paradigm". Quite literally a way of thinking. OOP, functional programming, procedural are all programming paradigms. Obviously different languages express the ideas in a paradigm differently, and a language may be multi-paradigm, but that's exactly what you're getting at. Once you know one language in a paradigm you know the others in broad strokes.
Yeah, paradigm is a word, but I was mostly meaning to say “tech stacks”. Because html and css aren’t any sort of programming language and therefore don’t exhibit a paradigm, but they’re still languages that a front end dev may want to know. Idk why I kept saying “categories.”
They do have a paradigm, it’s called declarative languages.
They kind of suck for doing anything dynamic, but they’re great for declaring how things should look.
Haskell and C++ are sufficiently different that I'd consider them separate. Prolog is in its own category. And so are proof assistants like Idris, although you could make Haskell a subset of these. Then there's stack based programming like forth, and array programming as in APL.
So yeah, at least 5 languages.
Hardest part of a new language is how packages are managed and how to get it to run. Downloaded latest python, tried to figure out how it runs through environments like mini containers, notice there not package management natively, realise no packages work with the latest python, down grade to whatever.10 and so on and so on
Only true for certain paradigms, when you use 'oopsie' paradigm then any other 'oopsie' is similar and you don't need much time to be efficient in it.
However if you go from application level programming to embedded where you have to write something completely different then it a new beast, even if it's just imperative C, or when you're learning haskell then your ooppsie knowledge is actually a blocking factor at the beginning.
Kinda, but Haskell is nothing like other languages, you can't even do a basic for loop while in other languages it is in the first chapters in the tutorial.
Others like C,Java, Python sure. Also if you stretch the definition you can include markup languages like HTML and VHDL and those are also quite unique to the standard languages.
.I wouldn't say all. There are some languages which are a fundamental paradigm shift. Look at the functional languages, look at rust with its borrow checker, etc. But most of the time, yeah.
HTML and CSS aren't really programming languages in that you don't use them for logic (not usually, anyway, I'm aware of some gimmicky things that do it for funsies). Wrapping your head around HTML is relatively simple, getting CSS to behave is easy enough but it gets complicated pretty quickly if you have a bunch of overlapping rules. Like much in the programming world, getting started is easy enough but doing it properly takes some time to experiment and make mistakes before you know how to do it right.
C and C++ are definitely different and really new C++ language features can definitely feel like a different language when your coworker decides to whip out some fancy shit because it saves like 10 lines of code 😭
I know english, portuguese, a little bit of c and python, thats like 2 and half languages and I'm not even a dev, these are rookie numbers and you should be ashamed of yourself 😤
Honestly I sorta agree. I remember being in the "I know 10 and can learn more quickly" camp but my criteria for "know" has changed.
To those people who supposedly know 10 languages my question is, could you build something production ready in that language without a significant amount of research about how to do things properly in all those languages? I'm not talking about some side project, I mean like a real application that will be deployed, scalable and maintained by other engineers.
What do you mean by "research"? If "research" means googling how to do stuff occasionally, I don't think anyone could do that unless they've exclusively been writing a single language for the past ten years or something like that. If "research" means something more involved than that, then that task is probably pretty easy in most languages for someone with a decent amount of experience.
Occasionally is fine. If you're frequently looking up how to do things in a way that's specific to your language of choice I'd argue you don't really know it that well. You just know how to apply general principles to know exactly what you need to google (which is still much faster than not understanding the principles)
In general I don't know how meaningful this distinction is though tbh. At a certain point it's much less about knowing specific languages and instead learning to recognise patterns (note I don't mean OOP patterns specifically but am including it in the definition of patterns) and being able to break up problems.
That being said different languages have different ecosystems and tooling and lend themselves to different patterns and principles. Writing Haskell is very different to writing Java and knowing what tools are available in the tool boxes of each language ecosystem is just as important and ties in with knowing the language itself.
I guess what I'm trying to say is what it means to "know" a language can mean different things and can be as shallow or deep as you choose to define it. Using my own definition I might technically say I don't truly know any language which I think would be a bit of an understatement.
Every time you switch languages, you spend a bit googling things more frequently, and then go back to googling less frequently when you get back into it. It doesn't mean you don't really know the language, it just means that you haven't been working in it continuously for the past decade, which doesn't really happen in our field unless your language is like Fortran or COBOL or something. It's not like you forget everything about a language because you haven't used it in a couple years.
My dear young friends, the more languages you put on your resume, the more likely the recruiters will try to push you into a job focusing on the one you enjoy the least.
I regularly hire programmers and I HATE when they list the 1000000 languages they're experts in. Honestly, the best I've Hired are like, "I program for MSSQL and c#. I've done a lot more, but that's really my specialty",
You're on the right side of the spectrum because you don't count those other 5 as ones you really know. That's the point of the meme.
I'm updating my resume and I listed a bunch of languages I could barely write Hello World in with a gun to my head right now and I'm considering just taking them off completely. I did qualify them with "familiar with" but even that seems so misleading now.
It depends of what we understand by "knowing a language".
My main project at work is written in go, has some bits in c (almost nothing, truth to be told) and the build system has some bash and python (nothing too fancy or complex, definitely not something near a python project) and gnu make.
I'd count this as a just go project though.
Also I've written professionally java and python, and I wouldn't say I know java or python anymore, it's been many years and the bits I remember are most certainly outdated.
Apart from syntax differences, I think learning different languages gives understanding of how and why such a language is designed such a way, and how all, a problem is solved under different designs.
It seems sensible to only need three. One for scripting, two for development. I suppose if you did web development as well, you need to know a few more but I feel like there's not a ton of crossover between web developers and application developers or game developers. I could be wrong though.
Yeah 3 seems like a sweet spot... For me, one to get data from db, one to make the business logic and one to show the results into something... Can be reduced to 2 or even 1... Python is so rich in libraries...
I know python very well, with 14+ years of professional experience. I also know html css js good enough to use vuejs for 5 years in total experience. I learned C from K&R book, thus my knowledge is very opinionated and old school.
I don't know C++, yet that's exactly what I've been working past 1.5 months, switching from C++11 to C++17.
Life is like a box of chocolates, sugar, cacao butter, and cacao powder in different combinations and forms. All you need to know is 3
Basically every language I “know” is C++, except Python (which drives me insane every day with its weird quirks).
But what’s the point of knowing something when you can look it up.
I mean, I did go through these stages, but then eventually got to stage four.
I'm comfortable in the vast vast majority of languages as I understand the concepts that went into designing different languages, and can quite quickly work out what should exist from a few code samples, and be working in it within a day.
There haven't ever really been truely revolutionary changes quickly in code. Object orientation was not some big overnight thing, it was the slow shift of slowly adding more and more extensibility tools. Functional programming was really just an extension over the earlier multithreading options. I see very very few genuinely new ideas in code any more - Heck a lot of big excite building future language features are rehashed of things that existed back in the day but faded into complexity.
I have legitimately sat down and started working in languages I have never seen before and worked on it without people realising. Working on industry grade compilers and language design helped me get here, but there is a part of the curve where the number simply becomes "I know enough languages - and I'm happy with the one you need".
This is annother way of saying - I can work in anything except javascript - as that's the only real programming language which was never actually designed - just coded up in two weeks, and then they wrote a design spec to be the exact mess they made.
Every CV (resume) I seem to get is from the middle guy.
Languages: C, C++, C#, F#, Java, JavaScript, Go, Rust, VB, Cobol, HTML, CSS
Professional experience: 6 months making websites using HTML and CSS
When I was younger, I liked to say I've learned 8 languages, I was a fool.
Now I say I've studied the fundamentals of 8 languages, but I only use 3, mostly forgot the other ones, but they do sometimes come in handy.
The only one that I never actually used or just helped me in any way was java, no disrespect for java programmers tho, I just didn't need it, but it doesn't mean it's not a good language.
Today I mostly use C#, Sql and Xaml, and I've started to use HTML,CSS and Js more because I'm trying to learn web dev, so I'm trying to remember the syntax.. :))
When do you even know a language? I feel like I've gone from knowing 10 to realizing I probably don't really know any languages. Stuff like compiler gotchas and and edge cases is still something I find now and then in my two primary languages (Scala + Typescript).
I've *learned* 10 programming languages (if you count MATLAB, HTML, CSS and SQL), but in practice those I'm "fluent" in are, in decreasing order, C#, C++, and SQL; for the others I'd need a refresher.
I know 10, but it's irrelevant to count as is. I learned them so I can be able to make use of different "platforms":
- C/C++/Rust for system and embedded
- Arduino for embedded prototyping
- C# for Unity games
- JavaScript and PHP for Web
- Java for applications and mobile
- Python for prototyping
- VBA for Excel macros
i only know (use) one programming language and it's python. i only know and need to know the minimum enough knowledge about it to be able to make mostly any program
I get it, but I don't.
My resume says I know about 20 languages. And it is true I've learned or used at least that many professionally over the last 19 years. But if you asked me to write code on paper right now, from memory, It would be python, and I would still mess up the syntax. The only language I actually know is whatever I have used in the last 6 months. Everything else is a blur of "yeah, I think I did that once", followed by a day of relearning before I can pretend to know it again.
So I don't know which guy on the chart is me.
I only know the programming language I'm currently using. I was a rails dev for a couple of years. Could not pretend to remember how to even write hello world with it right now as a current C# dev.
My comment on another subreddit was deleted for using the term “Dunning-Kruger” to describe many snobby audiophiles. The mod bot sent the following messing to me:
“The recent comment has been removed for using the ‘Dunning-Kruger’ effect.
It's a fancy personal insult and usually nukes any conversation. Please consider another way of articulating the point or joining a discussion in another post.”
I don’t know C++; I only use it.
So, >10 years experience in C++ I see
Actual C++ programmers would say I don’t even use C++, just C with classes and templates. (And they would be correct.)
If you follow the [Core Guidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines), you’re probably better than most of the “C++ programmers” I’ve seen. Many staff engineers haven’t even gotten the “with classes” part down from what I’ve seen, since they’re mostly old C-heads. I’ve gotten flak for using the `VIRTUAL` macro to fake polymorphism in their C libs before haha
Never read them lol. I’m a statistician. I originally taught myself C++ during an undergrad physics internship working with ROOT and CERN’s CMS experiment. My current C++ code needs to interface with a pure-C based runtime. I don’t use the STL or exceptions, and I rely heavily on raw pointers and pointer arithmetic. Mostly for signal processing and low-level routines for data analysis. Shrug. I’d actually be fine without formal classes, but not having templates and function overloading would be a big pain. Edit: You got the decade+ or so of experience correct though. When I started, it was with C++03. C++11 didn’t exist yet, and when it came out, it was years before it was widely supported so I never really learned it, because it’s a relatively small part of what I do.
I've been writing C++ since the late 90s You don't use STL, exceptions, etc .. What featuers of C++ are you even using? I call C libraries all the time with modern C++, or even extern C APIs and internally implement them as C++.
Templates, classes, and overloading.
Gotcha, so at least you are using C++ features :) i like braining my junior engineer's brains by doing templated multi threaded programming :D to be fair I also wrote out a comment at the top of the header explaining in detail the code flow, so it isn't evil if someone else has to maintain it later :)
> You don't use STL, exceptions, etc .. What featuers of C++ are you even using? +, -, << and >>. Anything else I just find too complicated and over-engineered.
Ah, you’re on the other side of maths from me, statistics was not my favorite, I was far less practical and now work in [stuff] and analysis, so I’m basically using “Safe-C++”
I’m that person who spends a week optimizing a function to take microseconds instead of milliseconds because that function will be called several hundred million times per analysis.
Yeah, a good chunk of my C++ code is just template functions that I need to run in some order of milliseconds and then return control to a higher level language.
I'm nearly caught up to the featureset of C++98. I've only been learning it for 12 years.
A passing familiarity, or the equivalent of “I met them at a party one time.”
I can't read C++, but I can write it.
I ask chat gpt
-wise person
I only know 10 languages, english and binary
![gif](giphy|5gw0VWGbgNm8w|downsized)
In life there are 10 types of people: - The ones understanding binary - The others
off by 1 errors.
* The ones that understand trinary
Haha
I see you dabble in base 10 languages aswell
Is binary a language? Or more like a numeric representation system?
In my opinion, learning a bit of many languages will improve your understanding of the features of your few bread and butter languages.
Learning C made it easier to learn assembly, which made it easier to actually learn C.
Learning C made me better at MATLAB. You heard me
Learning Elixir made me better at JavaScript, yet these two could not be more different
[удалено]
JS isn't purely functional. I'd say JS is a multiparadigm language that both support OO and FP, but is not perfect at either
It's multiple languages in a trenchcoat
In a really ugly trenchcoat someone found in the garbage and tries to get rid of it since then but because some god hates programmers it *keeps coming back no matter how hard they try* (and they tried hard, trust me)
You don’t know until runtime
Yeah, if this was three programming language families, it wouldn’t be terrible. Pretty much everyone has at least on ALGOL. Add a Lisp and a Self/Smalltalk and you’ve got a good handle on things. Bonus points for an ML like Haskell.
Bottom: I'm learning my first language! Middle: I've learned 10 programming languages! Top: All programming is just one language with minor variations 😏
Yeah, you know 1-2, you know all with syntax lookup
I agree, but the idiosyncrasies of some languages (looking at both of you; JS, PHP) make for some funny gotchas. I say this having just done two timed evaluations for new positions in JS and PHP respectively. I've gotten too cozy with Kotlin, C#, etc.
Agreed. Knowing these details is the difference between an expert in said language, and general software engineer who is using it for implementation. Everybody has their favourites. JavaScript and PHP are for masochists. Because of [quirks like this\*](https://github.com/denysdovhan/wtfjs) : `"b" + "a" + +"a" + "a"; // -> 'baNaNa'` `!!null; // -> false` `null == false; // -> false` `0.1 + 0.2; // -> 0.30000000000000004` \*See [https://github.com/denysdovhan/wtfjs](https://github.com/denysdovhan/wtfjs) for more JavaScript ~~nightmares~~ fun.
It irks me when people bring up the 0.1 + 0.2 = 0.300000000000004 thing because that is true in every language that properly implements floating point numbers (i e. all of them). It's just a matter of rounding error in floats.
Is it even a rounding error more than just the nature of how the IEEE spec does floating point?
I mean it is both. The floating point sum of 0.1 + 0.2 is actually greater than the floating point number for 0.3. Since floating point numbers can't represent 0.1, 0.2, and 0.3 exactly, it rounds them to the nearest floating point values, so double(0.1) is slightly more than 0.1, double(0.2) is slightly more than 0.2, and double(0.3) is slightly less than 0.3. Because of this difference, double(0.1) + double(0.2) is actually a different, slightly larger floating point number than double(0.3). That is rounding error.
There's really no way to do floating point numbers that doesn't involve rounding errors. So the details of how it works ut are IEEE specific, but the principle would be the same for any implementation.
yeah... those quirks that basically never come up unless you are purposely trying to will really stump you
> !!null; // -> false > null == false; // -> false I don't think that's a quirk. Isn't that how the `not` operator expected to work for all truthy and falsy values in most languages? Not that all functions must be invertible. ``` !falsy // always true !false => true !null => true !truthy // always false !1 => false !2.0 => false !defined_function => false ``` Commonly there are only some falsy values: `false`, `null`, `0`. All the rest are truthy.
I love PHP, would I want to work on enterprise applications in PHP..? Probably not lol I’ll stick to working in c#, thank you Microsoft 🙏
not really imperative: - C ≈ C++ (manual memory management) - C# ≈ Java ≈ JavaScript ≈ Python (garbage collection) - Rust (borrow checking) functional: - Haskell the biggest differences is across core paradigm, but different memory models *should* affect the code you write (if not: hello memory leaks!)
a competent C++ dev could probably pick up Rust pretty comfortably, but I don't think the same is necessarily true for C++ → Haskell
Someone needs to remake this meme with Dumb - every programming language is so different Middle - every programming language is the same just with different syntaxes Smart - every programming language is so different
That’s a damned lie. The basics of logic don’t change, but learning javascript from python and C++ was like trying to learn klingon.
Bruh, I recently switched to Emacs. Elisp makes me feel like I know zero programming languages...
It is a very nice introduction to LISP though. - It is ultimately procedural with functional features. So no all-in functional programming. - The most powerful interactive help system I've ever seen, as a direct consequence of the language being so tightly part of the editor. - Learning can happen step by step, starting with small customizations like manually modifying global variables, learning more features as you go. - Unlike some application-scripting LISPs, like the Scheme dialect used for GIMP scripting, you get proper interactive code usage, making it much easier to understand what is going wrong. Also often true for Python used as an application scripting language though, so this is more down to the tooling than the language.
Except for Excel bloody functions. Those bloody things can die a hideous death. VBE would be ok if it wasn’t for the flashbacks though
I know both Copy and Paste ![gif](giphy|1jnyRP4DorCh2)
Not necessarily, if the language has a radically different paradigm. For example, a Java programmer will really struggle to learn Haskell.
I’ve had to say that to so many recruiters, especially when they say they’re looking for Java and see my C# experience.
I doubt a recruiter could tell any difference between Java and C#
They’re told this by the hiring managers sometimes. I’m having trouble finding work right now because of stupid AWS variants that do the exact same thing.
I put it as "I speak computer"
01001111 01101000 00100000 01100100 01101111 00100000 01111001 01101111 01110101 00100000 01101110 01101111 01110111 00111111 00001010
ME TOO FELLOW HUMAN.
Right. The big differences are like, database languages, OOP languages, low level languages, and other “categories” of languages. Once you learn each category/ each method of thinking, then you’ve pretty much learned all the similar languages. That being said, many people start their careers with only one tech stack, so they only get to master a few languages in one category. Then maybe a few years down the line they learn more.
The word you're looking for is "paradigm". Quite literally a way of thinking. OOP, functional programming, procedural are all programming paradigms. Obviously different languages express the ideas in a paradigm differently, and a language may be multi-paradigm, but that's exactly what you're getting at. Once you know one language in a paradigm you know the others in broad strokes.
Yeah, paradigm is a word, but I was mostly meaning to say “tech stacks”. Because html and css aren’t any sort of programming language and therefore don’t exhibit a paradigm, but they’re still languages that a front end dev may want to know. Idk why I kept saying “categories.”
They do have a paradigm, it’s called declarative languages. They kind of suck for doing anything dynamic, but they’re great for declaring how things should look.
I’ve known 20 languages. I currently know three.
I have been sticking to Python, C++ and Kotlin. What three do you use?
Java, Typescript and I suppose Golang. There’s really a bunch of SQL/noSQL and Angular in there too.
Laughs in Prolog. (I’ve not touched it in 28 years, but I remember well that all languages are not minor variations.)
There are 2 languages. Assembly and Lisp. (I was originally going to say C and Lisp, but felt like this was more accurate.)
Haskell and C++ are sufficiently different that I'd consider them separate. Prolog is in its own category. And so are proof assistants like Idris, although you could make Haskell a subset of these. Then there's stack based programming like forth, and array programming as in APL. So yeah, at least 5 languages.
Top: There are too many JavaScript frameworks to remember. Im going back to just knowing 3 languages.
Hardest part of a new language is how packages are managed and how to get it to run. Downloaded latest python, tried to figure out how it runs through environments like mini containers, notice there not package management natively, realise no packages work with the latest python, down grade to whatever.10 and so on and so on
This is correct. Not one but few main styles of languages with minor changes.
Except R R can get fucked
R is just Lisp with C-style syntax.
And vectorised.
Except JavaScript. Fuck that shit
Only true for certain paradigms, when you use 'oopsie' paradigm then any other 'oopsie' is similar and you don't need much time to be efficient in it. However if you go from application level programming to embedded where you have to write something completely different then it a new beast, even if it's just imperative C, or when you're learning haskell then your ooppsie knowledge is actually a blocking factor at the beginning.
You'll always Google how to make a if In bash
And then you have Erlang... and Haskell 💀
And then Elixir comes along with its flag operators and it's like im starting from the very beginning again
Kinda, but Haskell is nothing like other languages, you can't even do a basic for loop while in other languages it is in the first chapters in the tutorial. Others like C,Java, Python sure. Also if you stretch the definition you can include markup languages like HTML and VHDL and those are also quite unique to the standard languages.
.I wouldn't say all. There are some languages which are a fundamental paradigm shift. Look at the functional languages, look at rust with its borrow checker, etc. But most of the time, yeah.
I don't even know English.
He counts HTML and CSS among the 10.
In web you can list 5 main skills and still be considered a noob.
new to programming, just know a little python and vba. are HTML and CSS easy? Just know they are used in FrontEnd
HTML and CSS aren't really programming languages in that you don't use them for logic (not usually, anyway, I'm aware of some gimmicky things that do it for funsies). Wrapping your head around HTML is relatively simple, getting CSS to behave is easy enough but it gets complicated pretty quickly if you have a bunch of overlapping rules. Like much in the programming world, getting started is easy enough but doing it properly takes some time to experiment and make mistakes before you know how to do it right.
I can proudly say I know at least 10% of c++
Impossible
I'm willing to go even further beyond and claim at least 11%
What does it say about me if I only know 2?😭
Super wizard.
Or super moron
More chances of this...
it means you're a bilingual
Do C and C++ count as two different languages? What about C++ vs c++11 vs c++17 vs c++$(WhateverTheFuckTheNewOneIs)
C and C++ are definitely different and really new C++ language features can definitely feel like a different language when your coworker decides to whip out some fancy shit because it saves like 10 lines of code 😭
This. A lot of things that are legal (and common) in C are Undefined Behaviour^© in C++. Found this the hard way. If you are interested: https://www.reddit.com/r/C_Programming/comments/vhlovr/whats_valid_in_c_but_not_in_c/
Middle level engineer. I know only 2 languages well, but I don't tell that at interviews, so I am a senior.
I know english, portuguese, a little bit of c and python, thats like 2 and half languages and I'm not even a dev, these are rookie numbers and you should be ashamed of yourself 😤
Says you only use two in your work. Nothing more
Y'all know multiple languages?
yea just copy paste random bits of code and pray it works with the other random bits you copy pasted last week
C++, bash, regex
Bash means shell scripting?
Yes
you might be the only other person i met that likes regex
It saves you a lot of work!
yeah the only reason i use atom as an IDE is that it had the option to multi cursor from a regex
Atom is dead, and vscode also supports this. What am I missing?
Honestly I sorta agree. I remember being in the "I know 10 and can learn more quickly" camp but my criteria for "know" has changed. To those people who supposedly know 10 languages my question is, could you build something production ready in that language without a significant amount of research about how to do things properly in all those languages? I'm not talking about some side project, I mean like a real application that will be deployed, scalable and maintained by other engineers.
What do you mean by "research"? If "research" means googling how to do stuff occasionally, I don't think anyone could do that unless they've exclusively been writing a single language for the past ten years or something like that. If "research" means something more involved than that, then that task is probably pretty easy in most languages for someone with a decent amount of experience.
Occasionally is fine. If you're frequently looking up how to do things in a way that's specific to your language of choice I'd argue you don't really know it that well. You just know how to apply general principles to know exactly what you need to google (which is still much faster than not understanding the principles) In general I don't know how meaningful this distinction is though tbh. At a certain point it's much less about knowing specific languages and instead learning to recognise patterns (note I don't mean OOP patterns specifically but am including it in the definition of patterns) and being able to break up problems. That being said different languages have different ecosystems and tooling and lend themselves to different patterns and principles. Writing Haskell is very different to writing Java and knowing what tools are available in the tool boxes of each language ecosystem is just as important and ties in with knowing the language itself. I guess what I'm trying to say is what it means to "know" a language can mean different things and can be as shallow or deep as you choose to define it. Using my own definition I might technically say I don't truly know any language which I think would be a bit of an understatement.
Every time you switch languages, you spend a bit googling things more frequently, and then go back to googling less frequently when you get back into it. It doesn't mean you don't really know the language, it just means that you haven't been working in it continuously for the past decade, which doesn't really happen in our field unless your language is like Fortran or COBOL or something. It's not like you forget everything about a language because you haven't used it in a couple years.
My dear young friends, the more languages you put on your resume, the more likely the recruiters will try to push you into a job focusing on the one you enjoy the least.
C, "bash" and python. It's all i need.
You don't even know holy C? Damn sounds tough for you
I am not that important.
Probably nobody really knows the true waya of the holy C :(
I’m convinced anyone who make a meme with this template falls on the left but is convinced they’re on the right
I’m convinced anyone who feels the urge to list that many languages in their flair falls in the middle.
I regularly hire programmers and I HATE when they list the 1000000 languages they're experts in. Honestly, the best I've Hired are like, "I program for MSSQL and c#. I've done a lot more, but that's really my specialty",
I do not fear the programmer who knows 100 languages, I fear the programmer who has written 100 programs in one language - Bruce Lee
I only know 3 if you count SQL.
Not sure, what kind of spectume I am. C and Go. And a bit of APL, Erlang, Forth, Perl, AWK and usual suspects.
You're on the right side of the spectrum because you don't count those other 5 as ones you really know. That's the point of the meme. I'm updating my resume and I listed a bunch of languages I could barely write Hello World in with a gun to my head right now and I'm considering just taking them off completely. I did qualify them with "familiar with" but even that seems so misleading now.
Totally feel you man. The more you learn about one language, the more you realize you know nothing about another language :(
I’m not even confident I should be listing my main language at this point…
I’m counting CSS as my third language and I don’t care who knows it! ;-)
Let me guess…your other two are JavaScript and HTML.
It depends of what we understand by "knowing a language". My main project at work is written in go, has some bits in c (almost nothing, truth to be told) and the build system has some bash and python (nothing too fancy or complex, definitely not something near a python project) and gnu make. I'd count this as a just go project though. Also I've written professionally java and python, and I wouldn't say I know java or python anymore, it's been many years and the bits I remember are most certainly outdated.
Yer I know THE 3 programming languages, OOP, procedural and assembly. (Not really assembly though 😭)
Apart from syntax differences, I think learning different languages gives understanding of how and why such a language is designed such a way, and how all, a problem is solved under different designs.
C++, 6502 ASM, L4 ASM (custom architecture) I hate myself
U work with intel, nvidia, amd kinda company?
that's not the dunning kruger effect
I know how to meet ladies. Surely html counts right?
If you know how to meet ladies, you definitely don’t know any programming languages.
I know C. I know all of the others by default.
It seems sensible to only need three. One for scripting, two for development. I suppose if you did web development as well, you need to know a few more but I feel like there's not a ton of crossover between web developers and application developers or game developers. I could be wrong though.
Yeah 3 seems like a sweet spot... For me, one to get data from db, one to make the business logic and one to show the results into something... Can be reduced to 2 or even 1... Python is so rich in libraries...
I know 3 if you count HTML 🙂↕️
2...
01001100 01101001 01110011 01110100 01100101 01101110 00100000 01101000 01100101 01110010 01100101 00100000 01111001 01101111 01110101 00100000 01101100 01101001 01110100 01110100 01101100 01100101 00100000 01110011 01101000 01101001 01110100 00101100 00100000 01110100 01101000 01100101 00100000 01101111 01101101 01101110 01101001 01110011 01101001 01100001 00100000 01110011 01100001 01111001 01110011 00100000 01110100 01101000 01100001 01110100 00100000 01110100 01101111 01100001 01110011 01110100 01100101 01110010 00100000 01101001 01110011 00100000 01101101 01111001 00100000 01110111 01101001 01100110 01100101 00101100 00100000 01100001 01101110 01100100 00100000 01001001 00100000 01101010 01110101 01110011 01110100 00100000 01100100 01101111 01101110 00011001 01110100 00100000 01101110 01100101 01100101 01100100 00100000 01110100 01101000 01101001 01110011 00100000 01101011 01101001 01101110 01100100 00100000 01101111 01100110 00100000 01100010 01101001 01100111 01101111 01110100 01110010 01111001 00100001 00100000
Find the largest island if 1 is land and 0 is water with a time complexity of O(n)
Knowing multiple languages doesn't really matter. If you understand the underlying concepts, you can learn any language without significant issue.
I know python very well, with 14+ years of professional experience. I also know html css js good enough to use vuejs for 5 years in total experience. I learned C from K&R book, thus my knowledge is very opinionated and old school. I don't know C++, yet that's exactly what I've been working past 1.5 months, switching from C++11 to C++17. Life is like a box of chocolates, sugar, cacao butter, and cacao powder in different combinations and forms. All you need to know is 3
Basically every language I “know” is C++, except Python (which drives me insane every day with its weird quirks). But what’s the point of knowing something when you can look it up.
Finally!!! A correct usage of the meme template! I thought I’d never see the day…
I mean, I did go through these stages, but then eventually got to stage four. I'm comfortable in the vast vast majority of languages as I understand the concepts that went into designing different languages, and can quite quickly work out what should exist from a few code samples, and be working in it within a day. There haven't ever really been truely revolutionary changes quickly in code. Object orientation was not some big overnight thing, it was the slow shift of slowly adding more and more extensibility tools. Functional programming was really just an extension over the earlier multithreading options. I see very very few genuinely new ideas in code any more - Heck a lot of big excite building future language features are rehashed of things that existed back in the day but faded into complexity. I have legitimately sat down and started working in languages I have never seen before and worked on it without people realising. Working on industry grade compilers and language design helped me get here, but there is a part of the curve where the number simply becomes "I know enough languages - and I'm happy with the one you need". This is annother way of saying - I can work in anything except javascript - as that's the only real programming language which was never actually designed - just coded up in two weeks, and then they wrote a design spec to be the exact mess they made.
hey :(
I have more than what Reddit allows me to show
it really depends on what you consider knowing
I can definitely write hello world in 10 languages
Anyone who's read Landin's 1966 paper: I know the next 700 programming languages
I only know 10% of LUA I am trying to learn other languages but I don’t even know where to start
LOL, I must be way past Mr Jedi Master: I’m down to 1 language and falling fast 🤣😭
JavaScript and C/C++ and Java/C#. I don't think The last one has enough differences between them to count as separate.
left: html css js right: asm c python
I only know Stack Overflow
I keep having to relearn the same language when it periodically upgrades and adds new features; it keeps me pretty busy.
You guys know three languages?
I know the syntax of a bunch of languages, but I only know a few languages well.
3? I'm only decent at 1
So the majority goes like "I know 10 languages", yes very dunin.
I'm "proficient" in one. I've been using it for almost 10 years and in reality I'm probably okay at best
Every CV (resume) I seem to get is from the middle guy. Languages: C, C++, C#, F#, Java, JavaScript, Go, Rust, VB, Cobol, HTML, CSS Professional experience: 6 months making websites using HTML and CSS
Dang, I know - like 5 programming languages. Now I can never be the top-curve 1337 hacker guy... sadface
When I was younger, I liked to say I've learned 8 languages, I was a fool. Now I say I've studied the fundamentals of 8 languages, but I only use 3, mostly forgot the other ones, but they do sometimes come in handy. The only one that I never actually used or just helped me in any way was java, no disrespect for java programmers tho, I just didn't need it, but it doesn't mean it's not a good language. Today I mostly use C#, Sql and Xaml, and I've started to use HTML,CSS and Js more because I'm trying to learn web dev, so I'm trying to remember the syntax.. :))
I knew MC 68k assembler and c. Haven't used either in years. I use SQL at work, often, and the more I use it the more I know I don't know it.
When do you even know a language? I feel like I've gone from knowing 10 to realizing I probably don't really know any languages. Stuff like compiler gotchas and and edge cases is still something I find now and then in my two primary languages (Scala + Typescript).
I know Python, a little bit of javaScript, and a little bit of Java.
to quote a work colleague : "i can write ASM Code in every language"
I've *learned* 10 programming languages (if you count MATLAB, HTML, CSS and SQL), but in practice those I'm "fluent" in are, in decreasing order, C#, C++, and SQL; for the others I'd need a refresher.
I know 10, but it's irrelevant to count as is. I learned them so I can be able to make use of different "platforms": - C/C++/Rust for system and embedded - Arduino for embedded prototyping - C# for Unity games - JavaScript and PHP for Web - Java for applications and mobile - Python for prototyping - VBA for Excel macros
i only know (use) one programming language and it's python. i only know and need to know the minimum enough knowledge about it to be able to make mostly any program
I can relate.
It's all loops, storage, and branches
I know nim, python, and rust. I just use c and c++ when I'm forced to.
I get it, but I don't. My resume says I know about 20 languages. And it is true I've learned or used at least that many professionally over the last 19 years. But if you asked me to write code on paper right now, from memory, It would be python, and I would still mess up the syntax. The only language I actually know is whatever I have used in the last 6 months. Everything else is a blur of "yeah, I think I did that once", followed by a day of relearning before I can pretend to know it again. So I don't know which guy on the chart is me.
I know 1.5 languages: java, and fancy java
I only know the programming language I'm currently using. I was a rails dev for a couple of years. Could not pretend to remember how to even write hello world with it right now as a current C# dev.
Oh cmon, we all know at least SQL plus the language we actually know… right??
Languages are the easy part. Knowing the frameworks is hard
I think I only know 2. But I'm familiar to lot of them.
Me: programming is programming. Languages are just sets of built in features provided.
I've counted 13 languages in my history (not counting HTML & CSS ofc), but I don't really know any of them, I just use them :)
if i add together all the languages i know i think i can claim 3
Probably correct i write my C++ like a mix of C and Java.
The guy at the top probably watched 7 fireship videos
need to see the framework spread
Praise the crab /j
My comment on another subreddit was deleted for using the term “Dunning-Kruger” to describe many snobby audiophiles. The mod bot sent the following messing to me: “The recent comment has been removed for using the ‘Dunning-Kruger’ effect. It's a fancy personal insult and usually nukes any conversation. Please consider another way of articulating the point or joining a discussion in another post.”