Question that’s been on my mind for a while: does starting out in Clojure (or any other uncommon language) hurt your career progression? I’m in the unusual situation where my first (and so far only) industry job has been in Clojure, in contrast to most folks who turned to Clojure after years of working in other stacks. As we all know, most companies out there don’t use Clojure, so I imagine that not having any Python, C++, etc. experience will hurt me in the future (especially in this tech downturn environment where job requirements are more stringent). I guess Clojure(Script) has the advantage of interop with more commonly used platforms like the JVM, so a Clojure(Script) dev can make the case for also having Java or JS skills.
> ...working in only Clojure jobs for the next 40 years will be good... I actually don't see myself working on a single language for 40 years 😄. On my career, I already did VB, Delphi, C++, PHP, Ruby. In Ruby, I found my place for about 10 to 13 years, then Clojure. When I started with Ruby, it was a "niche" language - almost nobody was hiring, and the ones who did could not believe I already had so much experience with such a "new" language; there's a saying on Ninjutsu that goes like "the one that walks a hundred paths will never be ambushed", so I guess this fits here too
It's debated, but I think the core question isn't the absolute number of Clojure jobs out there, but the ratio of Clojure jobs to Clojure devs. My sense so far (~6 years into Clojure) is that that ratio is fairly decent -- people often have trouble finding their first Clojure job, but experienced Clojure devs usually seem to find Clojure jobs without too much trouble. That may have shifted in the past year+ as the tech industry has laid off a ton of people and there's lots of shifting around; I haven't been looking in that time so not sure 🤷
That said, it's good to know more than one language for lots of reasons, and if you make your second language a more common one, that'll give you a useful fallback. Of the most common ones, I'd personally suggest Python.
If you enjoy mobile dev, you might also look at Kotlin and/or Swift. I've also seen a lot of uptake for Go.
But to your original question, it might be a problem getting by non-technical gatekeepers who only know to look at keywords, but technical interviewers will not be turned off by Clojure.
> That said, it’s good to know more than one language for lots of reasons Indeed that’s one of the reasons I asked this question; I do not think working in only Clojure jobs for the next 40 years will be good for either my career or my intellectual edification 😛
> it might be a problem getting by non-technical gatekeepers Or resume ATS
> Question that’s been on my mind for a while: does starting out in Clojure (or any other uncommon language) hurt your career progression? What do you want your career to be? If it will be Clojure-centric, you've gotten an excellent head start :) and working on other languages might 'hurt' that career path. It would be understandable though if you happened to need some sort of interim job though, no matter the language. Gotta pay the bills.
@vemv I am very fortunate that I am not in the situation of needing an interim job, but that is a good point you’ve highlighted, especially since with the layoffs there have been Clojure devs who found themselves unemployed. Though as I’ve mentioned, most of those devs already have years working in other languages under their belt. As for your first question, I did start out wanting my career to be functional-programming centric, since I love working with FP languages like Clojure and OCaml (the latter which I’ve used in academia). But the reality is that Clojure/FP jobs are a drop in the bucket compared to the software world as a whole, so I am concerned about imposing too many limitations on my own career growth.
Like @coyotesqrl said: > technical interviewers will not be turned off by Clojure. I once worked through a puzzle where I wrote the first prototype in Clojure and then manually converted it to a language they knew well (I think it was Javascript). The interviewers were impressed.
@kelvin063 indeed, putting all eggs into one basket (Clojure) isn't exactly wise. But FP jobs seem a broad-enough category to guarantee a career path to skilled, motivated engineers. And that would pay better. As I see it, Python, Golang, Typescript are depressingly common nowadays. From the outside it may seem like it's a sure-fire way to stability, but in reality you are competing with 10x as many developers for... 0.8x the comp? Plus, probably it's more common for those to be feature-factories. Given that you mention you are not pressed to find something right now, it could be an excellent chance to either go deeper into Clojure or OCaml, or learn a new lang 🙂
> Indeed that’s one of the reasons I asked this question; I do not think working in only Clojure jobs for the next 40 years will be good for either my career or my intellectual edification I’d push back on that a little bit. It’s good to know what is happening in the larger programming world but there is also a lot of value in experience and depth. One thing to be very aware of as a specialist in a “weird” language, though, is that you are basically limited to working in smaller shops. “Big Tech” Clojure jobs are very few and far between (I think Apple had a tiny Clojure team at one point?) and the same likely goes for any smaller language. That’s not necessarily a bad thing but it is a thing.
> One thing to be very aware of as a specialist in a “weird” language, though, is that you are basically limited to working in smaller shops. Although Nubank employs somewhere in the neighborhood of three zillion Clojure devs, and a surprising number of large companies have at least some Clojure: https://clojure.org/community/success_stories > I’d push back on that a little bit. It’s good to know what is happening in the larger programming world but there is also a lot of value in experience and depth. +1. Although you'll never truly know how good you've got it with Clojure unless you work with one or more other langs for a while 😂
Starting a career with Clojure doesn't limit a career, neither would it with any other language. It's down to the developer to define how relevant they are to a prospective employer and drive the career that they want. Or just get lucky 😉 Most developers will have one main language that is used throughout their career. This is very much the case with Java developers, as one obvious example. The Java ecosystem is incredibly rich and diverse, so a very rewarding career can be had. It's only in the last 10-15 years that there has been more of a choice, with an almost Cambrian explosion of languages. With some older languages also gaining popularity after living in obscurity in their early years (e.g. JavaScript, Python). To evolve a career the experiences gained regardless of langues is important to communicate to carve out a desired career in this time of increasing change.
I’ll leave u with this and make of it what u will. Don’t be put off by the title, it is very much about languages and “stacks” with Clojure mentioned specifically as regards current environment etc https://vlad.git.ht/9526e50f86b0a8891337977666ab7141
my first job was a clojure internship and now im doing clojurescript full time. no regrets, so far...
the nice part about using both clojure and cljs in personal projects and professionally is that I have decent knowledge of what's out there in the java world and am not afraid to have to dig into java code to figure out how to use a library. typescript is a different story but its almost the same
so if i had to get a non-clojure job i would try my luck on anything where knowledge with java and typescript is a plus. i would expect clojure to raise an eyebrow but regularly using interop should imply you are capable enough to learn or get efficient with the host language fairly fast
> does starting out in Clojure (or any other uncommon language) hurt your career progression? It pains me to say it, but unfortunately as someone who did just this, in my case it sure feels as if the answer is yes. It wasn't always so, earlier in my career I feel like FP's reputation for difficulty was more likely to impress on a resume than detract. But over the years, as the discipline's star has faded (and hitched itself to some very questionable allies like crypto), it has come to feel like more and more of a liability. I've had managers straight up tell me they won't hire me because of seeing FP langs on my resume, out of fear I'll run off to "somewhere cooler" or questioning my credentials or competence at more "mainstream" languages (even when half my resume is actually plain JavaScript at this point). In my consulting days as well, I increasingly butted up against companies that were looking to dump their Clojure exposure as if it were a market liability, largely due to the perceived expense of Clojurist salaries. I am genuinely concerned at this point that I've permanently torpedoed my career, and numbers-based hiring even prevents me convincingly retraining and refocusing on anything else that might be more marketable. It shouldn't matter, but the fact is, a lot of hiring decisions at the resume level, especially in the US, are about "X+ yrs in Y tech", and no matter how impressive the resume, if you don't tick that box, you get binned.
My honest advice at this point is start focusing on more mainstream alternatives, now. Do more Java, do more Python, hell learn PHP even. This horse has left the barn.
Not to question your experience, but a healthy counterpoint is that an incredible amount of people have had a bad 2023. Recent reads that come to mind are "no one is hiring Flutter devs anymore", "I [a CEO] sent 1001 applications and couldn't get a job", etc. We, as humans are probably hardwired to make a big event (like a recession) all about us in particular.
If I can contribute a little bit on this - I actually had problems in the beginning of my career because "I knew too much" - nobody actually told me this, but when I started to remove things from my CV before sending it, I started to get more interviews. There are a lot of bad companies hiring, all the time. The kind that say "hey, you know this, so I won't hire you" is just a single one. There are others, like the "make a calculator that does the 4 basic operations, complete with Object Oriented approach and at least 3 diagrams", or the ones that say "make a code that returns a JSON representation of the current time and date, but you can't use any framework", and the ones that ask you to use HackerRank and similar apps...
> On my career, I already did VB, Delphi, C++, PHP, Ruby. In Ruby, I found my place for about 10 to 13 years, then Clojure. The issue with that is that if you're like me (I've got a similar background, probably ~10 langs professionally), you mainly switch when you find something you like better. And I'm not sure there's anywhere left to go after Clojure; as Steve Yegge said at one point, Lisp is in a certain sense the end of the road when you're looking for more and more powerful & expressive languages. Maybe someone will make an even better functional Lisp that gets traction, but until/unless that happens, I feel like I'm -- not stuck, for sure, but pretty settled.
(or maybe someone will come up with something even better than Lisps, that'd be amazing -- my leading candidate personally would be a language based on fexprs / the vau calculus, along the lines of http://axisofeval.blogspot.com/2011/08/praising-kernel.html)
I thought that was the end of the road for me but given that I couldn’t find a Clojure job, here I am convincing myself that there is life after LISP. Actually I don’t have choice
Fair enough (& sorry to hear it). Elixir / Erlang seems like it'd be a really interesting side road! Or something like Idris or Haskell...
@eggsyntax I don't like static typed languages because seems that there isn't much interest on get things done, at least is my perception. Elixir is ok, I worked with it for 3 years, but Elixir is not enough, you need to know OTP at some extent and also Phoenix, the major framework used to build web stuff, and it's really hard to stay on top of those things, so my strategy is to work with whatever stack (which is Java at the moment), but focusing in exercising my Clojure as much as possible to not let it rust too much. Hopefully I don't need too much beyond Clojure itself to get a Clojure job, it's what I guess.
One important thing is the restrictions to work due to law aspects, so depending on where you live, it could be hard to find Clojure jobs. Here where I live we have the biggest Clojure company in the world, Nubank, plus 5 or 6 really tiny companies which don't used to hire as much. This ends up pushing people to other stacks. I have seen that more than once. Yes, there are companies that offer a way to circumvent the hiring restrictions, but they pay way less than a good company pays here for a Java dev in the same level. This is what I did.