7 ms·
I know exactly what you mean. As a counter point to the many "burnout answers" here which I completely agree with by the way. It could also be an example of "ne
by rawoke083600 4y ago
I know exactly what you mean. As a counter point to the many "burnout answers" here which I completely agree with by the way. It could also be an example of "neuroplasticity" (hear me out).
I'm 40 and been coding like it feels forever, I find it "relatively easy" to learn new frameworks or languages. What is much harder are new paradigms; example OOP vs functional.
The last few months I've started to learn Clojure. Man what a frustrating journey it has been ! I keep telling myself I'm a seasoned senior dev, worked on all sorts of systems Web/Non-Web/hardware/software you named it ! Why is it so damn hard for me to "get it" or "become comfortable" with Clojure.
Only answer I can come up with, is that I have become too comfortable or "set in my ways" as a dev over the years (decades). I've been thinking and coding and "aligning-my-neurons" in a OOP and Imperative for decades.
I don't really have a solution yet except for "don't give up" and keep learning "new" (unorthodox) things more regularly. Oh and definitely take a vacation and be happy with smaller wins more frequently !
- incrudible 4y agoHaving gone all the way and back, I will say this: Undogmatic imperative programming (with objects) is superior to pure functional programming. You can still use functional constructs and immutable data where it makes sense. You never want to shoehorn a problem into a niche programming paradigm.
- leetrout 4y agoI have come to realize this is why I love Go. Lots of the big libraries over complicate things at times but for my own simple toys I love writing down my types and planning my data containers and then just writing small functions to interact with them. I have started writing (type annotated) python this way and it has made it a joy to work with again. I watch coworkers add so much state and complexity turning every small problem in to a bigger problem with object oriented patterns.
- jwr 4y agoSetting aside why I disagree with this superiority claim, since this is posted under a "Clojure" comment, I just wanted to point out that Clojure is not a pure functional language and you can still use imperative programming. In fact, most Clojure programs are a mix of imperative and functional constructs.
- nicoburns 4y ago> I keep telling myself I'm a seasoned senior dev, worked on all sorts of systems Web/Non-Web/hardware/software you named it ! Why is it so damn hard for me to "get it" Could this be the problem? Being open to what you don’t know and taking a “beginners mindset” is really important for learning. If you think you already do know how to do something then it’s hard to learn how to do it!
- rawoke083600 4y agoI think you on to something; Things that "seem similar" could very well not be ! I.e OOP vs Functional. Sure they both "programming" but very very different !
- gjadi 4y agoIn addition, it can also because the more experienced we get, the more we forget about the initial struggle we had to overcome to become experienced. When we develop expertise, we go deeper and deeper, each new learning experience reinforce our previous knowledge. But when we have to operate a paradigm shift, we don't go deeper, it's a lateral movement. We start back at the beginning. For some people it's the other way around. They learn a lot a various things without deep expertise and they struggle to dig into a specific subject. So keep moving and keep digging!
- lupire 4y agoI don't remember forgetting things as soon as I learned them, when I was a kid. I grew knowledge quite rapidly. Now I can re read the same thing every week and re "learn" it.
- gjadi 4y agoI can imagine several hypotheses to answer that: - at school, it's the job of the teacher to force us to repeat until we've learned something. See Anki and other SRS systems. - as a kid you don't read to learn, you read because it's fun or because you want to try something. See what another commenter said, you learn by practicing, not by reading alone. - you forget all that you've forget as a child :) Also, kids like to imagine stories. In the literature about learning, one method used to improve the retention is too create vivid images about what you want to learn, in other words, imagine stories to memorize. Relevant xkcd https://xkcd.com/208/ https://xkcd.com/208/ Kids also rehearse stuff a _lot_ => Anki/SRS Having said that, I like to learn about learning but I don't consider myself a particularly good learner :)
- lostcolony 4y agoMake sure you're getting enough sleep, and carving out enough focus time. What I've realized is that while my current situation on either of those is not much different than when I was younger, my ability to learn and get by with minimal sleep and amidst distraction has gotten worse.
- ptsneves 4y agoI am still in my 30s and due to antecipating this issue, I started doing basic formal mathematics based on Spivak's Caluclulus book and this small blog post [1]. The mindset needed to prove things is novel and came quite hard at first, but i feel it flowing faster and faster. I even started making my own problems, and proved my first algorithm. Funny enough I also started with clojure and for me the meta-character mnemomnics are the hardest parts, not necessarily the way paradigm is. [1] https://medium.com/swlh/why-a-0-0-and-other-proofs-of-the-obvious-da52dd0caefb https://medium.com/swlh/why-a-0-0-and-other-proofs-of-the-ob...
- danuker 4y agoI am almost 30 and attempting to learn Clojure was to me like swimming through mud. It is definitely not just you.
- rawoke083600 4y ago>swimming through mud You describe it perfectly !
- danuker 4y agoThanks! That being said, I just played around with it for a few days. Some people praise it, after having gone through a few years on and off: > I wasn’t convinced right away. It took a few years. But after the usual stumbling around and frustration, I began to realize that this language was the easiest, most elegant, least imposing language I had ever used – and not by a small margin. https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.... I also explored the language landscape, and Clojure projects on GitHub seem to have a low density of commits matching "fix OR fixed OR bugfix": https://danuker.go.ro/frequency-of-bugfix-commits.html https://danuker.go.ro/frequency-of-bugfix-commits.html It's also on the brevity-popularity Pareto front of my bug-ridden analysis: https://danuker.go.ro/programming-languages.html https://danuker.go.ro/programming-languages.html So I plan to look at it some more.
- jwr 4y agoI think this could be particularly difficult for people (just guessing here) who haven't used a functional approach in the past. The shift from procedural imperative thinking to functional thinking is not obvious, and Clojure strongly pushes you to use immutability right away, too. That can be a steep learning curve. I can tell you that the payoff at the end is huge, though :-) As a side note, I'd highly suggest that everyone reads "Seven Languages in Seven Weeks" (https://pragprog.com/titles/btlang/seven-languages-in-seven-weeks/ https://pragprog.com/titles/btlang/seven-languages-in-seven-...). There are many programming paradigms and opening your mind to them is a great investment in the future.
- gorjusborg 4y ago
- tehmillhouse 4y agoI think there's definitely something to the neuroplasticity thing. Learning does take longer as we age, that's just a biological fact. > Man what a frustrating journey it has been ! I keep telling myself I'm a seasoned senior dev... This right here, that's something you're misunderstanding. Learning something new is supposed to be uncomfortable. To learn most effectively, you want to shape your mental behavior to minimize surprise (i.e. grok things) while shaping your outward behavior to maximize surprise (i.e. challenge / update your understanding). That's frustrating. Even if you've learned other things before. The only thing you're missing is a healthy set of expectations. Accept and welcome the discomfort, and you'll learn like you've never learned before. Thinking you should be exempt from this just adds internal resistance to an already uncomfortable process.
- rawoke083600 4y ago>Thinking you should be exempt from this just adds internal resistance to an already uncomfortable process. Wow, thanks ! That sounds like real practical advise ! I think you hit the nail on the head here ! > To learn most effectively, you want to shape your mental behavior to minimize surprise If you don't mind, could you expand on this part ? I'm not 100% clear on what you mean ?
- tehmillhouse 4y agoYou've already got that part down pat. "Shaping your mental behavior to minimize surprise" is just a really complicated way of saying "attempting to understand a thing". There's no secret technique here, I was just trying to tie the process of learning back to surprise.
- sinenomine 4y agoI think the neuroplasticity angle is vastly underestimated, and we should seek (and also design, research & fund if there is none) neuroplasticity-upregulating drugs & therapies. As far as this field goes, this is a remarkable paper: https://pubmed.ncbi.nlm.nih.gov/24348349/ https://pubmed.ncbi.nlm.nih.gov/24348349/
- senko 4y ago> I have become too comfortable or "set in my ways" as a dev over the years (decades) If OP has been working in React and Angular for years and now has trouble learning Vue, it's not due to this. Vue is pretty similar to React.
- lmarcos 4y agoThe point is not to learn something "cool" that may appeal you (like Clojure). The point is to learn something you truly believe is worthless, but you need to learn it to get your job done (e.g., an outdated version of, let's say, PHP or Angular). In the latter scenario, learning becomes more difficult.
- curuinor 4y agoI write clojure all day every day for my job. Here's my tips: 1. Get on an nrepl. Not like, the non-text-editor repl, hook your text editor (or Cursive) up to the network repl and start evaluating sexprs from the text editor. doesn't have to be emacs, I do it on vim with conjure all day every day 2. Don't write too many macros 3. Use a lotta let-statements and threading macros (->, ->>, as->, cond->, etc), that's the idiomatic way to be composing a buncha stuff 4. All the async stuff is real good (with perhaps the exception of agents) but it's like a spice, not the main meat, you know? Clojure is actually a pretty bad language if you write it like Java. You gotta write it like it's the lisp that it is
- rawoke083600 4y agoGood tips :) >You gotta write it like it's the lisp that it is Haha ja, getting to that skillset is the main challenge for at this moment.
- HPsquared 4y agoThe learning process builds structures and systems in your brain to process information. It's the difference between greenfield and brownfield development, only you can't demolish the old structures: you need to work around them. That's the thing with the brain, there is no "delete" function. You have read and write capability, but no control over "forget".
- athrowaway3z 4y ago> The last few months I've started to learn Clojure. Man what a frustrating journey it has been ! I think calling this neuroplasticity is excessive. Clojure isn't trivial. For a young person who doesn't know how to code it will also take significant time. Knowing how to code means you have to re-evaluate/re-categorize a set of root assumptions which is objectively hard and there is not really a curriculum fine-tuned for your exact set of existing knowledge. Maybe you're just more aware of the potential improvements you haven't achieved yet.
- r-zip 4y agoI agree with you--let me throw in my experience. In my first dev job, I was 26 (not super young, but also not old). We used Clojure, but I had only programmed C, Python, and Matlab up to that point. It took me a month or two to really grok it, mostly just learning ~40 hours/week.
- jseban 4y agoI don't know from your post if learning Clojure is for work or not, but if it is in your spare time, I would really ask myself why I'm actually learning clojure, and spending my free time working outside of work.. If that makes you feel exhausted and burnt out, then just stop learning clojure for goodness sake, and sit by the pool in your free time.
- lupire 4y agoPlaying with a new language is much less work/burnout than the BS we get paid to do
- nathanyz 4y agoTook this journey myself 8ish years ago to learn Clojure. I think by default most experienced devs in other languages will find it frustrating. It seems to be a language where it is frustrating up to a certain point and then once you cross over that line, somehow it just all makes sense and seems so elegant you almost can't go back to other languages. So just know that if you keep going you will be in for more frustration, but the tip of the peak will be there eventually and then it all falls into place.
- rawoke083600 4y agoYea that is what im focussing on "just keep going" no matter the struggle or the ugliness im currently producing :)
- techsin101 4y agoThere are two times I noticed I wasn't as good as before mentally. One when I was 17, I noticed that unlike when I was 12 I no longer could memeroize entire books. Which back then I could, I had memorized 12x20 Questions and their answers back to back. But now in HS I felt I'd forget 90% of what I read yesterday. Now to learn I had to write the thing down and act of writing helped me remember things. Second time I noticed is when I was 24 and still in college and when to study in a group. After 10 or so minutes, I had hit my limit with info from one page and just started to skim, but other students who were like 19, kept on writing things down in paper and weren't getting exhausted. I noticed lack of stamina... Now it takes me 3 months to read one book that I'm very interested in. Back then I'd finish a book in 3 days and write 8 page essay on it. So yea things change.
- valbaca 4y agoI'm in my early 30s, been coding since I was 16. I've worked in half a dozen languages and learned about a dozen "just for fun"...and damn, Clojure is hard. It took me 3 very solid attempts over effectively three years for it to really click. It's honestly why I'll probably never bring it to work unless I absolutely need the thread-safety for something massive and complex that only experts will work on. It's just not approachable. But all that said, when it did click, it was worth it. Knowing that I have this powerful (almost magical and forbidden) knowledge is worth having really struggled with it. In other words, I've been there. It's very tough. Stick with it (if you want) and I wish you the best.