ix-hispana
I don't know the market for Haskell. If you want to get into backend for web, you can't go wrong with Node.js. Agencies using those services usually prefer the backend written in Javascript or Typescript so more devs can, in principle, work on both ends. Moreover, you can get into cloud services like AWS and Azure easily if you know Node. I reckon it will be easier to start as generic "web developer" or "junior developer" and then gradually evolve into backend. Specialists tend to be mid to senior.
You should start sending applications on your last month. I don't think it will take you more than that to land a junior role in London (there are many more junior openings than internships). But you can create a Linkedin account today if you don't have one.
Head over to freeCodeCamp and get coding. It doesn't matter if it's too easy at first. Race through it. The good thing about freeCodeCamp is that you have to make a full-fledged product, it's not just examples. Don't listen too much to the sales pitch and don't take seriously the important-sounding words like "become an engineer", etc. Just get coding and complete a project. It's very important that you make something from start to finish on your own. That's the whole point of this bit, really.
When you have finished a project, head over to egghead.io and get the two React courses by Kent C. Dodds. The introductory one is free. The advanced you'll have to buy. It's worth it.
You have three months to do this. You will be more employable -and confident- by May.
In real applications we need to use social login, share, google maps, shopify buy SDK, S3, Azure speech API and so on. The javascript tools to access all of that are plain old ES5 at best. How will we use them from another language?
Libraries, too. Are we going to find ourselves writing our own custom dropdowns and datepickers in C++? Not to mention our own view update and state management libraries.
This is the reason there are next to none real world examples of web apps made in Elm. No communication with planet Earth.
The rest are pretty common, I would not consider reduce() or passing an object to a function instead of separate arguments hipster hacks at all. "Options" objects are ubiquitous in corporate SDKs like AWS and Azure. They are the opposite of hipster.
We write no tests whatsoever. This is a business decision.
There's a test team of 2 people whose job is to go through our crap (i.e., the user stories) and write docs.
Management has to adapt to clients. Managers use the agile words, but the client's budgeting procedure has to take precedence. Regarding estimations, there's no analyst estimating features and tasks, the developers do it themselves. Developers also talk directly to clients often and go on-site.
Since we're so small (about 30 in total), things are personal. We know everyone personally and can make out who wrote a given piece of code. I think communication must be easier with fewer people. I can't imagine having 500 people committing into my project!
Perhaps I'm missing something.
Such a change might bring a different type of stress. The feeling that you're helping lobotomize a generation with mindless entertainment instead of helping cure cancer. Also, the tickets.
Ironically, Canonical is making money mainly with cloud services. Meaning servers - what Linux is good at.
Just my honest opinion after 15 years of continuous use in university and work.
XKCD still relevant today: https://xkcd.com/456/
The difference with Trump is that you can safely ignore javascript.
I don't understand the purpose of this rant.
Sorry but I'm not willing to make 40 edits to write a function that adds numbers.
Edit: Variation using the "fp" version of the library: https://jsfiddle.net/0a3dmjqt/2/