If you also count various scripting languages along with regular programming languages that isn't that hard.
I have been at it for 13 years and I have done work in C++, C#, Objective-C, Java, ASP/.net, JavaScript/Typescript, VBA, PHP, and Python. That is off the top of my head. If you want to count them, there is also SQL, Powershell, and Bash. I don't really want to count html/css as that seems like a stretch.
Depending on how broad your definition I have don't more than a dozen.
I have been paid to work in somewhere around 30-40 languages and my professional career as a developer is only about 20 years. Before I worked as a programmer I used another 10-15 languages which are note the ones I've been paid to work in.
I used to write Java every day for several years about 20 years ago, I remember some of the characteristics of the language and how the runtime managed allocations back then but I definitley don't remeber stuff like which kinds of for-loops and/or iterators had its own syntax.
Just by having to jump between Python/C++/C#/Java is enough for you to have remember which one is which one.. is it "foreach" or for (int i : array) or for (int i in array) ?
I know what I want, but I also know the same damn thing is slightly different in every language and when you keep switching between language you lose track of which one is which one especially when you are too busy thinking about how to test your code.
6502 assembler
65802 assembler
68000 assembler
8086 assembler
Z80 assembler
C
C++
SQL
Microsoft C#
TAS
Turbo Pascal
Delphi/Pascal
Borland OWL
Unreal Engine (it's C++ but a very rich framework)
Unity and Monobehavior
Java
JavaScript
HTML (not sure declarative counts? If so add qml and Slate)
So definitely over 20 years, but I have more than 13 and I am pretty sure that's not even everything
Across the main system I'm working on right now, we have at least fourteen languages being actively used: clojure, coffeescript, c++, scala, php, go, lua, javascript, python, java, groovy, bash, awk, make, and rust.
In the past five years Iāve done C, C++, Python, JavaScript, TypeScript, Java, C#, and PHP. And thatās the work I get paid for. Iāve dabbled in other languages and made a few of my own in that time.
Not GP, but my numbers are sort of similar. Grouped roughly by family:
Java, Scala, Kotlin, Clojure
Python, Ruby, Lua, Perl, Sh
JavaScript, TypeScript
C++, Go
C#
ABAP
That's thirteen "and a half" languages (TypeScript barely counts as a separate language from JavaScript) that I have been paid to write, and for which I have pushed at least one diff to production.
On the one hand, it really is "at least one diff", and my Lua, Perl, and C# contributions have been minimal. On the other hand, that's only the general purposes languages and doesn't include markup languages (HTML and Markdown), query languages (SQL and MDX), scripting languages that I just use to get shit done but never actually commit to any repos (awk).
Also, it doesn't include languages I've only used in hobby/side projects (Rust, Haskell, Zig, Swift, Objective C), even if I am a fair bit more proficient than with some of those less-used languages I've used in production.
I would say that a practicing developer needs to functionally understand and operate in about 4~6 languages at any given point in time with the specific set changing based on the task and environment. You're likely looking at:
core language thay your application is written in.
the build application build system you're working with
a shell scripting language
a ci/cd system language ( Gitlab CI, Github Actions, Jenkins etc )
Then there are the incidentally
* a front-end language (Javascript, type script)
* a glue/scripting language if your core application isn't written in one (python, perl, etc)
* database query languages
And probably other incidentals of you work in cross-functional teams or with a wide variety of applications. That's just the "day" job part of being a SWE as well.
I have ADHD so one day I amused myself by listing all the languages I had ever used. At the time it was 26 languages with 9 on at least an advanced/expert level. It's nothing special - I'm 50, and I've just been through it over the years. They're honestly just a blur at this point. I feel like I don't speak for everybody, but my experience has been learning your first language or two is a big cliff to climb. Then once you learn a few more, you start developing some favorites and having opinions on which ones are better or worse. A few more after that and those opinions become pretty strong and vocal and there are things that you just don't want to bother touching anymore. And then it all just seems to become one more place to put a semicolon.
At the end of the day the computer needs to be instructed to do a certain thing. The act of doing that efficiently doesn't really depend on the language in many cases. In more sophisticated apps, you need to put a lot more time into software architecture, infrastructure concerns, data flow, user journeys, and so on.
I think this is why I feel LLM's are helpful. When I am working on a 9 year old, huge codebase with legacy code, hacks, 120 lines of package.json, hundreds of components, I don't want to be trying to remember how to use .some. I just search or ask the AI and focus more on the important stuff.
I once spent 30 minutes debugging a Terraform script before realizing I had forgotten to add a provider block to reference AWS credentials.
During a CI/CD pipeline setup, I had to Google how to implement a custom Jenkins step that would integrate with AWS Secrets Manager.
Most of these are like ops things that you are likely not doing every day. Sure, look up the flags for whatever.
I don't really call that 'basic syntax' though -- for what I take that to mean, if you're a "senior dev" and I ask you to write fizzbuzz an in interview and you can't do the syntax for a loop, conditional and modulo without looking it up you are not a senior developer in whatever language you're trying to write it in, hell you're barely a developer at all.
My brains cells dedicated to remembering the syntax are tasked with remembering all the security bugs I've written over the last 15 years and am trying to avoid repeating. I know where the docs are.
I know the syntax very well to the languages I work with regulary, otherwise I would be pretty inefficnent becasue swiching away from the editor for something as trivial as syntax is an unnecessary context switch.
I google syntax in the same way I google grammar rules- sometimes I need to be reminded of an odd corner case, but in general I know it, not because Iāve memorized anything, but because humans have a large section of their brains dedicated to languages and syntax becomes invisible to you once youāve practiced a bit.
Itās like the fact that I know āa big red houseā is correct but āa red big houseā is wrong. I didnāt memorize the rule, but Iāve internalized it because thatās how humans work with language.
As a Sr., I feel like at this point coding is my minor job. 90% of my job these days is solving issues like why the authentication provider is rejecting a specific SAML configuration that worked a week ago, or why performance has degraded 14% for the same work load, and so on and so forth.
Sure, those things involve code to fix, but that's usually the part that goes the fastest... my time is eaten up by figuring out what the damn problems are in the first place.
If programming were just a contest to see who can remember the most shit, weād have nothing.
I feel like the reference criticisms are almost always from people that donāt code or from developers that do 1 very specific thing and have very little awareness of what others do.
It's quite easy to forget things that you aren't actively using. Senior developers that spend their time coding absolutely should know the syntax of the languages that they're coding in. Senior developers that spend their time on code architecture or shepherding other developers are quite likely to forget things like exact syntax.
Senior developers also spend a lot of time not coding and thinking about non-code related things. The code becomes just another part of the work but not always the main focus.
Senior dev here: I've learned every language I could for 30+ years, there is a LOT of code in my head, and sometimes I need to refresh which language is what.
Ummm 1+1=11. ... oh wait that was JavaScript issue not python... was python 'and' or && ... "Shit, gotta check"
TypeComplex2837@reddit
If you're young and only have to work with a few technologies, go for it.
I've now been paid to code in like a dozen languages.. no fuckin way I'm remembering all those. š
ElliotAlderson2024@reddit
I call bullshit on the dozen languages unless that's over a 20 year period.
OskaMeijer@reddit
If you also count various scripting languages along with regular programming languages that isn't that hard.
I have been at it for 13 years and I have done work in C++, C#, Objective-C, Java, ASP/.net, JavaScript/Typescript, VBA, PHP, and Python. That is off the top of my head. If you want to count them, there is also SQL, Powershell, and Bash. I don't really want to count html/css as that seems like a stretch.
Depending on how broad your definition I have don't more than a dozen.
mr_birkenblatt@reddit
Also don't forget things like xml, html, json, toml, regex, css, etc. which all have different syntaxes for you to remember
ninetynyne@reddit
Hell will freeze over before I remember any regex syntax.
Carl_LaFong@reddit
So glad to hear someone say that
srone@reddit
typescript, javascript, C, C++, C#, Razor, Blazor, VB, VBA, PLSQL, T-SQL, Karel, Adaptec, RS Logix, ASP, Python, IFix, InControl....Pretty sure I forgot some.
thomasfr@reddit
I have been paid to work in somewhere around 30-40 languages and my professional career as a developer is only about 20 years. Before I worked as a programmer I used another 10-15 languages which are note the ones I've been paid to work in.
I used to write Java every day for several years about 20 years ago, I remember some of the characteristics of the language and how the runtime managed allocations back then but I definitley don't remeber stuff like which kinds of for-loops and/or iterators had its own syntax.
baconator81@reddit
Just by having to jump between Python/C++/C#/Java is enough for you to have remember which one is which one.. is it "foreach" or for (int i : array) or for (int i in array) ?
I know what I want, but I also know the same damn thing is slightly different in every language and when you keep switching between language you lose track of which one is which one especially when you are too busy thinking about how to test your code.
TypeComplex2837@reddit
Well over.
eagee@reddit
Here's mine:
6502 assembler 65802 assembler 68000 assembler 8086 assembler Z80 assembler C C++ SQL Microsoft C# TAS Turbo Pascal Delphi/Pascal Borland OWL Unreal Engine (it's C++ but a very rich framework) Unity and Monobehavior Java JavaScript HTML (not sure declarative counts? If so add qml and Slate)
So definitely over 20 years, but I have more than 13 and I am pretty sure that's not even everything
ToaruBaka@reddit
Over the past 20 years:
C, C++, Make, Bash, QMake, QML, Java, Python, Rust, Go, Docker, x86/amd64/arm32, SQL, JS, TS, Delphi - languages that I've worked professionally/published with
Json/c/5, yaml, xml, toml, protobuf/grpc - data languages
Zig, Aarch64, VHDL, C# - actively learning.
drcforbin@reddit
Across the main system I'm working on right now, we have at least fourteen languages being actively used: clojure, coffeescript, c++, scala, php, go, lua, javascript, python, java, groovy, bash, awk, make, and rust.
And I'm sure I'm forgetting more.
remy_porter@reddit
In the past five years Iāve done C, C++, Python, JavaScript, TypeScript, Java, C#, and PHP. And thatās the work I get paid for. Iāve dabbled in other languages and made a few of my own in that time.
TimmyC@reddit
My Reddit account is older than most redditors have been alive.. so not OP, but even professionally Iāve been paid for a dozen languages..
modernkennnern@reddit
Html, css, Typescript, c#, bash, json, yaml.
That's 7 just today
pdpi@reddit
Not GP, but my numbers are sort of similar. Grouped roughly by family:
That's thirteen "and a half" languages (TypeScript barely counts as a separate language from JavaScript) that I have been paid to write, and for which I have pushed at least one diff to production.
On the one hand, it really is "at least one diff", and my Lua, Perl, and C# contributions have been minimal. On the other hand, that's only the general purposes languages and doesn't include markup languages (HTML and Markdown), query languages (SQL and MDX), scripting languages that I just use to get shit done but never actually commit to any repos (awk).
Also, it doesn't include languages I've only used in hobby/side projects (Rust, Haskell, Zig, Swift, Objective C), even if I am a fair bit more proficient than with some of those less-used languages I've used in production.
arlaneenalra@reddit
I would say that a practicing developer needs to functionally understand and operate in about 4~6 languages at any given point in time with the specific set changing based on the task and environment. You're likely looking at:
Then there are the incidentally * a front-end language (Javascript, type script) * a glue/scripting language if your core application isn't written in one (python, perl, etc) * database query languages
And probably other incidentals of you work in cross-functional teams or with a wide variety of applications. That's just the "day" job part of being a SWE as well.
seanmorris@reddit
Same reason Michael Jordan practiced his layups.
CodeAndBiscuits@reddit
I have ADHD so one day I amused myself by listing all the languages I had ever used. At the time it was 26 languages with 9 on at least an advanced/expert level. It's nothing special - I'm 50, and I've just been through it over the years. They're honestly just a blur at this point. I feel like I don't speak for everybody, but my experience has been learning your first language or two is a big cliff to climb. Then once you learn a few more, you start developing some favorites and having opinions on which ones are better or worse. A few more after that and those opinions become pretty strong and vocal and there are things that you just don't want to bother touching anymore. And then it all just seems to become one more place to put a semicolon.
At the end of the day the computer needs to be instructed to do a certain thing. The act of doing that efficiently doesn't really depend on the language in many cases. In more sophisticated apps, you need to put a lot more time into software architecture, infrastructure concerns, data flow, user journeys, and so on.
Famous1107@reddit
I also have ADHD, and one time, for fun, coded an entire c# project using only extension methods. I think people started to look at me weird.
CodeAndBiscuits@reddit
Yeah... that's when they started ...
š
Famous1107@reddit
HA. true true.
thisisjustascreename@reddit
Before reading my assumption is senior devs think on an abstraction level above individual language's syntax constructions.
hiccupq@reddit
I think this is why I feel LLM's are helpful. When I am working on a 9 year old, huge codebase with legacy code, hacks, 120 lines of package.json, hundreds of components, I don't want to be trying to remember how to use .some. I just search or ask the AI and focus more on the important stuff.
black_dynamite4991@reddit
This is a good way to think about it
versaceblues@reddit
There is this fallacy that very early engineers have, around specific languages or frameworks being important.
As you get more experience you learn that its more important to pay attention to patterns and abstraction.
sisyphus@reddit
Their examples are kind of bad though, like
Most of these are like ops things that you are likely not doing every day. Sure, look up the flags for whatever.
I don't really call that 'basic syntax' though -- for what I take that to mean, if you're a "senior dev" and I ask you to write fizzbuzz an in interview and you can't do the syntax for a loop, conditional and modulo without looking it up you are not a senior developer in whatever language you're trying to write it in, hell you're barely a developer at all.
lloyd08@reddit
My brains cells dedicated to remembering the syntax are tasked with remembering all the security bugs I've written over the last 15 years and am trying to avoid repeating. I know where the docs are.
415646464e4155434f4c@reddit
This.
myka-likes-it@reddit
If Powershell would just use sensible operators like every other language, I wouldn't need to keep looking them up.
j0nquest@reddit
Every time I think āIāll write that in powershellā I regret it by the time Iām done writing it in power hell.
josh_in_boston@reddit
I forget almost everything about PowerShell syntax roughly 30 seconds after I write it.
thomasfr@reddit
I know the syntax very well to the languages I work with regulary, otherwise I would be pretty inefficnent becasue swiching away from the editor for something as trivial as syntax is an unnecessary context switch.
remy_porter@reddit
I google syntax in the same way I google grammar rules- sometimes I need to be reminded of an odd corner case, but in general I know it, not because Iāve memorized anything, but because humans have a large section of their brains dedicated to languages and syntax becomes invisible to you once youāve practiced a bit.
Itās like the fact that I know āa big red houseā is correct but āa red big houseā is wrong. I didnāt memorize the rule, but Iāve internalized it because thatās how humans work with language.
mad_poet_navarth@reddit
Also, age.*
*I'm getting up there.
boofaceleemz@reddit
I am way stupider than I was 15 years ago, Iām just faking it with experience until the wheels inevitably fall off.
papillon-and-on@reddit
Yes, only āseniorā developers use Google for syntax. Anyone under the age of 65 uses AI.
andynormancx@reddit
And weāre old and forgetful š
But yes, great article.
Rivvin@reddit
As a Sr., I feel like at this point coding is my minor job. 90% of my job these days is solving issues like why the authentication provider is rejecting a specific SAML configuration that worked a week ago, or why performance has degraded 14% for the same work load, and so on and so forth.
Sure, those things involve code to fix, but that's usually the part that goes the fastest... my time is eaten up by figuring out what the damn problems are in the first place.
sonofchocula@reddit
If programming were just a contest to see who can remember the most shit, weād have nothing.
I feel like the reference criticisms are almost always from people that donāt code or from developers that do 1 very specific thing and have very little awareness of what others do.
Silver-Ad-8595@reddit
With more experience tech breath widens while depth gets lost.
m15otw@reddit
Me: they just be writing on of the 3 bash scripts in the repo.
ozyx7@reddit
It's quite easy to forget things that you aren't actively using. Senior developers that spend their time coding absolutely should know the syntax of the languages that they're coding in. Senior developers that spend their time on code architecture or shepherding other developers are quite likely to forget things like exact syntax.
bitwalker@reddit
Actually, nobody has ever believed this myth. It's a myth that people believe this myth.
erwan@reddit
If I had a nickel for every tech blogger that brings up a straw man to attack it...
SuperFoxDog@reddit
Senior developers also spend a lot of time not coding and thinking about non-code related things. The code becomes just another part of the work but not always the main focus.
BornAgainBlue@reddit
Senior dev here: I've learned every language I could for 30+ years, there is a LOT of code in my head, and sometimes I need to refresh which language is what. Ummm 1+1=11. ... oh wait that was JavaScript issue not python... was python 'and' or && ... "Shit, gotta check"
pasture2future@reddit
Probably because they have more important thins to do than writing basic ass code is my guess lmao
WelshNotWelch@reddit
I cba to remember that stuff
Snezhok_Youtuber@reddit
I do it, then Im senior? But I have only 2yrs xp