jobs-discuss

marciol 2023-07-18T14:01:30.551969Z

Random topic - One thing that I have been watching with my self is that after sometime without doing Clojure in a daily basis, I feel loosing my skills, and with that also the perspective of landing at another Clojure job. It'd be interesting to heard other perspectives about the topic, something that I believe is hitting others in the community.

p-himik 2023-07-18T14:05:35.458779Z

What are the skills that you feel you're losing? Does it happen only with Clojure? Or all programming languages? Or maybe even anything?

marciol 2023-07-18T14:05:57.572489Z

Clojure specifically.

oly 2023-07-18T14:23:05.586659Z

I certainly get this but with all languages, basically if I am not actively using it the knowledge kind of fades, I would say its actually worse with languages like JavaScript where the language is less well defined and the churn is so high. I generally work on something in my own time where I can keep my skills sharp with my preferred technology

marciol 2023-07-18T14:24:07.784279Z

totally, and I think that Clojure is the easier language to maintain in general, and it's a good thing.

Pagoda 5B 2023-07-18T14:46:34.029419Z

Had the same issue with Golang, worked on it for several months, now that I abandoned it, I find I forgot many of the details, and the design decisions. I feel it depends much on how long you worked with it before "taking a break". I guess that working for several years (3+) with any language will make it so second nature that it will become very easy to get it back. This is obviously not considering library-related skills.

➕ 1
Mario G 2023-07-18T14:49:06.475229Z

I think it's very common and it applies to anything learnable in life (programming languages, spoken languages, musical instruments, practice a sport...), even if fortunately restarting a second/third/etc time is never like starting from scratch the very first time. I was in this situation last year, l was after a Clojure position and had to keep my clj-hand-on in my own time. Can be really annoying in particular when life throws you something-else random and you don't have always time/mental-space to put career plans at the top.

➕ 2
p-himik 2023-07-18T14:58:42.862009Z

It all seems to be a natural thing. In any case, here's my 2c, just in case. I used to work with C++, a lot, not sure for how long but definitely more than 3 years. Didn't quite make it as far as Sean Corfield did. :D But my experience went much farther than regular "just getting stuff done". I haven't seriously touched C++ in probably a decade and I can't remember a lot. I can probably read the vast majority of it (at least the syntax that was already there when I stopped using the language) but I wouldn't be able to write simple programs without getting blasted with compiler errors every 30 seconds. But C++ has a lot of syntax and a lot of intricate and somewhat opaque rules. Python (at least, 3.7 and earlier) doesn't all that, at least definitely not to such an extent. And while I haven't been using Python for anything serious for about 4 years now, it feels like I remember most of it. I'd definitely have to refresh my memory on metaclasses, some dunder methods, built-ins, Cython, etc. But I'm pretty confident I can just start writing in Python without too many issues. Clojure has even less syntax and opaque rules, and I can definitely feel that. It's much more comfortable to work with it and I don't think I'll forget anything truly important even if I don't use it for a decade. Comfortable to such an extent that just reading some code in e.g. Kotlin/Swift/Scala feels like talking to an extremely obnoxious and wordy person. :D

marciol 2023-07-18T15:38:39.397249Z

Yep, I feel that it’s mostly library stuff and some conventions around where and how to use records and protocols vs plain maps, stuff like that

seancorfield 2023-07-18T16:54:07.755959Z

To be honest, even after using Clojure in production for a dozen years, there are still things I have to look up and stuff I have to think hard about in terms of idioms (I still have to remind myself about transducers every week). Re: C++ -- yeah, I did that for most of a decade but it was back in the '90s and "modern" C++ is quite different in several areas. For quite a while after I left the committee, Andrew Koenig would reach out and keep me in the loop about the changes -- but I never got to program with any of those things so it would be a heck of a job ramping back up to C++ if I had to. Even Java would be a ramp up -- I haven't done "core" Java stuff in maybe 16 years or so -- and I would be just as rusty with Groovy or Scala, despite using them both in production for a while since I last used Java.

👍 2
➕ 1
Martynas Maciulevičius 2023-07-18T17:08:34.184019Z

I had a coding exercise for a Java position a couple of years ago and I found a library for persistent data structures. And then I abused the hell out of it. Yesterday I understood that the code which I wrote back then was safer according to transaction-like constraints as there couldn't be any exposed partially updated state. It was not the intention from authors of the exercise because they simply wanted to know whether a coder knows how to write fetching logic and update a with new data. I code in Java way more differently than I was coding in it before because since I did Clojure seriously I don't want to go back to the old way. I think that this changes over time and this could only be regarded to as "pythonic way" or "the new language meta" of each language. I don't think that "best pattern for each language" is learnable because programmers choose to abuse a pattern throughout a project and then it changes over time according to style of programmers. It could be inheritance, singletons, abstract classes... or maybe functional code and persistent data structures.

Vincent 2023-07-18T17:40:51.434499Z

Should I make a "staying sharp w/ clojure" channel on youtube so you can watch me work on my weekend project? 😅

mpenet 2023-07-18T19:51:02.110009Z

A clojure workout:)

donavan 2023-07-18T20:10:13.459989Z

yeah, I agree with others… your familiarity fades regardless of the language or tools… I’ve got the opposite to OP, after 6 years of Clojure I feel like I’m barely crawling in JS!

Vincent 2023-07-18T20:46:44.360409Z

@donavan is not knowing js really a tragedy? laughcry

donavan 2023-07-18T21:20:40.244489Z

@v1nc3ntpull1ng Yeah, I’d much rather be working in Clojure but I found myself abruptly unemployed at the wrong time so need to land another job sooner rather than later

practicalli-johnny 2023-07-18T21:45:57.834699Z

I concur. I forget or at least drop into long term storage any aspects of Clojure I don't use regularly This is the main reason I started writing the http://practical.li books, there is no way I am going to remember all that can be done with Clojure.

👍 1
1