@p-himik to even be able following some of your advice, one would either have to be extremely lucky or extremely disciplined, maybe both
I just find such approaches that expect above and beyond what is available for most people, unreasonable
I am saying this because I mostly agree with what you said 🙂. Almost completely.
It's hard for me to gauge luck. But where does what I describe require extreme discipline?
Specifically, having a life (usual requirements), having a job where you need to learn a lot just to stay in the game, and then besides all that try to learn Clojure. It narrows down who can do it very much.
I feel that there are lots of clojure programmers who come from a background where everyone is mostly lucky by everyone else's standards, so either work is easier, or life is easier, and then learning Clojure is just a past time.
I say "feel" because obviously there are counterexamples, and that's where I assume discipline or luck matters more, and obviously I have zero oversight of the actual background of people, I am deducing it from my relatively extensive experience IRL with people.
Maybe it is extreme luck, but at absolutely all my office jobs, there was at least an hour that you could spend working on inner tools, just to improve your own and/or your team's workflow. I found it to be the perfect time to learn new stuff. Regarding Clojure - I just took a hiatus after quitting one job, and then after some time learning it, used Clojure in a test task for a position that didn't even ask for Clojure. :)
If you come from Java, one hour of Clojure might be enough. If you come from PHP or Javascript, one hour/day will take you an order of magnitude more time to learn.
If you come from an academic background, that too helps 😉 Lots of people learn programming from speed courses.
If you have a modicum of time and enough interest, you can absolutely do it. I don't have an academic background - I don't even have a degree of any kind, just high school. Not to brag, but I've learned C++ to a degree that surprised recruiting agencies, all by myself - just by gradually going through Andrei Alexandrescu and Herb Sutter works, and reading Qt documentation. All while I had 10-12 hour work days, 6 days a week. :) Started using C++ for work, and after a couple of years started learning Python in a similar way, although mostly by using the official documentation, and with much better working hours. Even before using Python for work, started learning Clojure. Along with that, started undergoing courses in genetics, as I described above. Used both Python and ClojureScript for work, now mostly using Clojure+ClojureScript. The absence of any degree whatsoever hasn't stopped me from finding nice people from a local genetics institute, and I've been working with them for almost 5 years now. All just because I spend some time every day learning new stuff. Not just by reading a random article here and there, but by actually making notes and experimenting where possible.
1👏1👌yeah, this starts like https://en.wikipedia.org/wiki/The_Secret_%28book%29 any failure to accomplish the goals set out by others is purely attributed to lack of 'modicum of time and enough interest'
I did similar 12-16 workdays/weeks about 3 times in my life and I consider myself lucky that I had the circumstances so I could focus so much time on work, either because I was not responsible for others at the time, or because others were helping actively
neither of those experiences are in any way pleasant and I don't think it's appropriate to expect anyone to follow our example
Not sure what you mean exactly with the book reference, given that I haven't read it, but that's indeed my personal observation. - I can't do anything, I just don't have enough time. - Do you have an hour a day? Half an hour a day? - ...yes. - Have you tried doing something what you say you want to do in that hour, every day if possible? - No.
I am shocked right now that you wrote an imaginary dialog.
It's not an imaginary one. It's almost a literal recreation of dozens of dialogs on the topic that I personally had. It usually continues with me asking "why" and then hearing improvised excuses. :)
Do you assume that you and I are talking about the same people?
No.
Seemed like it. So, aren't we trying to generalize what would be an overall acceptable experience of being introduced to Clojure, independent of background and circumstances?
No. I'm conveying my own opinions and experience, nothing more.
I can think in 3 differents strategies to achieve something in general: 1. you have a clear vision of what your goal is and you are ready to put all your energy to achieve it, fail and retry until succes (becoming a Clojure developer for example) 2. you have a broad idea of what you want (be an happy developer), you are ready to adapt along the way depending of the events. You gather info, resources and come up with a plan (I am here) 3. leave it all to chances (you are an unhappy developer and waiting that something good happens to you).
I’ve thought about this a bit. The path I’m taking is: Learn Clojure on my own time and bring lessons learned to my day job (JS/React). If I get Clojure work in the future that’s great, if not there’s a good supply of React work out there. This does depend on having free time but I have found there’s a lot of principles that are transferable, so it’s worth it.