Fork me on GitHub
#jobs-discuss
<
2021-10-21
>
Mateusz Mazurczak06:10:17

Hi guys 👋 My fiancée is starting learning programming. I was wondering if it's better for her to start with default mainstream stack. Because I'm worried that with clojure it will be very hard to find a job without experience. What do you think?

Prashant06:10:27

Here's my opinion on the topic, programming jobs without any prior experience are harder to find overall. The ease with which Clojure jobs can be found is dependent on geographic location. While I see many jobs #remote-jobs and #jobs slack channels, most of them are located in US/EU or are not open for global remote work setup. I also agree that the number of Clojure jobs is definitely much smaller when compared to say more mainstream languages like Javascript, Java or even Go. However, learning programming with mainstream stack alone wouldn't guarantee a job. One has to also learn Data structures & algorithms (DSA) and practice loads of Leet code problems. For instance, in India, DSA interview generally happens to be the first round for 90% of the companies/startups.

Mateusz Mazurczak06:10:05

We live in EU (Poland). Yeah, but I feel like from clojure programmers people expect already x years of experience at least in other languages. Also clojure pool is small here, so mostly remote jobs are to be concidered. HMm I think I have my answer 😄 Thanks

pwojnowski06:10:59

It also depends on what kind of programming she would like to do. For instance, she may feel more comfortable creating something for people, with UI, so learning html/css/js surely would help. Or maybe she would like to do ML, then Python would be a way to go, etc.

👍 2
2
Mateusz Mazurczak06:10:22

Oh right sorry forgot to mention, she is interested about web dev, mostly front-end now

Mateusz Mazurczak06:10:10

It's not really a problem to know what to learn. I was more wondering how complete beginner position market looks like in clojure world

adi13:10:18

> My fiancée is starting learning programming. I was wondering if it's better for her to start with default mainstream stack. For absolute beginners, I recommend the following approach: • Demystify computers. I love nand2tetris: https://www.nand2tetris.org/ • Learn a language well, and play with it. Since she is interested in web-dev: https://eloquentjavascript.net/ • Learn about the past and the future; i.e. what you're getting into, if you want to make this field your career. https://www.goodreads.com/book/show/13629.The_Mythical_Man_Month • Learn to be productive: ◦ Touch-typing is fundamental. You don't have to be a speed demon, but 60-to-80 WPM with 99% accuracy is essential, IMHO. Sites like https://www.ratatype.com/ are decent. ◦ Proficiency with their tools (shell, git, editors etc.): https://missing.csail.mit.edu/ • Learn to design software. I personally like How to Design Programs: https://htdp.org/ • Learn to use a database. I personally like A Curious Moon: https://bigmachine.io/products/a-curious-moon/

❤️ 3
pavlosmelissinos18:10:58

> I'm worried that with clojure it will be very hard to find a job without experience This is anecdotal but in my experience it's harder for companies to find Clojure developers than for Clojure developers to find Clojure jobs. In fact some companies are willing to teach you Clojure even if you haven't programmed before in the language. It seems to me that abstraction and soft skills (e.g. "growth" mindset, communication skills, organizational skills, don't be a dick) are more important for companies than knowing some specific technology because the former are harder to find. Even stuff like git is secondary, with proper tutoring a couple of weeks should be enough to be productive in it. I mean, sure, hard skills make you a more desirable candidate but you should still be able to get a decent junior job if you don't know what O(n) means or what a left join is. Like I said though, this is anecdotal so ymmv

Jakub Holý (HolyJak)07:10:24

I would not recommend starting with JS/TS. JS is a mess of a language, Learning a language that is well design will, IMO, be much easier, especially if it is as simple as Clojure/Script. Yes, the market is smaller - but so is the number of people applying for such jobs. When I was going to teach a friend programming, I opted for Python because it is famously beginner-friendly and widely used and usable. Frontend is much more of a challenge since there is so much to learn outside of the language. Should she start by learning a bad mainstream language with a large market share? Or should she start with a niche, well-designed language with a delightful development flow that will likely be much easier to pick up and will help her stand up in the crowd of beginner web developers that only know JS? I believe in the latter but of course I have no 🔮 ... Good luck anyway!

emccue18:10:09

elm is a good one. straight forward to learn, simple semantics. IMO the “first language” is best for learning concepts, not a quick job if possible

❤️ 1
sova-soars-the-sora15:10:08

I think the fastest path to doing cool stuff with Clojure on the front-end would be HTML, CSS, selector syntax and DOM learning (editing existing templates, view-source on pretty and simple pages) and then going full-speed with Rum & cljs via shadowcljs or figwheel plus, instant feedback is huge, and she'd probably wonder why other frameworks/languages don't focus on that.

Jakub Holý (HolyJak)17:10:03

On the other hand, after I experienced the instant feedback of Clojure, I have suffered for years when coding JS/Java/... until I finally became a full time Clj dev so it is not all positive 😉

💯 1
Mateusz Mazurczak18:10:29

My thinking was just like yours. I saw that learning clojure or just functional language first, is easier than going from OOP -> functional. Also the clojure is just great language. The problem is that when I looked for jobs in clojure I saw a lot of positions open for people to learn from scratch clojure. But they always said that they require knowledge of java/scala/js. So what I was worried about, was that there might be no company working in cljs that is about internship programs or looking for true juniors.

Mateusz Mazurczak19:10:29

Fuck it, let's do it clojure way 😄 Thank you for your help!

🙏 1
1
kennytilton06:11:47

"Touch-typing is fundamental. You don't have to be a speed demon, but 60-to-80 WPM with 99% accuracy is essential" As Rich Hickey said, "Programming is not about typing."

👍 2
1
adi04:11:54

Touch typing is about computer literacy, not about programming.

👍 1
kennytilton17:11:16

Well, now that the only important computers in the world are phones, computer literacy is about touch touching (and the kids all laugh when on a rare occasion I use mobile, I am so lame at that). But no matter what, using a computer is not about the mechanics. My non-techy bar mate tried many times to have Google remind us of Troy Aikman's name, with elaborate questions with great and accurate detail. He did not understand how search works. "Former Dallas quarterbacks", I suggested. "There are not that many." Bingo. And even with fellow devs I routinely find info where they fail. Typing, schmyping! :)