News for hackers. Stuff that matters.
Re:Haskell for a New Decade [pdf] by quickthrower2 on Tuesday June 23, 2020 @08:22PM (#23622279)
Thanks for that.

Everything you said is from the perspective on being not only in a Haskell job but in a Haskell team. Your 3 months is 5 years for someone trying to learn on their own in their spare time. And then they need this to get a Haskell job due to the competition for such job and the queue of super smart people lining up for a Haskell job. And the pay cuts are brutal. Now you are an outlier, working on a Haskell team for Google, the rare triad of using Haskell at work, presumably being well paid, and having that mentorship from other team members.

> After 6 years of industrial Haskell, I know nothing about category theory. It has not prevented me from using web frameworks.

As someone in as Haskell team, maybe this is possible. You don't have to try and pick apart the online knowledge. For example a lot of libraries use Lens. I want to understand Lens? It is not simple: check out the diagram on https://hackage.haskell.org/package/lens. "Yeah but it's just X Y Z". Great - I've been to many FP meetups, and seen a lot of stuff online and there is no simple help for this stuff.

Re:Haskell for a New Decade [pdf] by ArchD on Tuesday June 23, 2020 @08:59PM (#23622647)
> For example a lot of libraries use Lens. I want to understand Lens? It is not simple: check out the diagram on https://hackage.haskell.org/package/lens.

You're making it seem harder that it really is. Yes, it's hard if the package documentation is all you have, but that's the hard way to learn. There are other online unofficial documentation and tutorials (of diverse quality). There's also a book (https://leanpub.com/optics-by-example) that I find adequate for a reasonable learning experience (I think I would have saved much time if I had started learning lens using this book.). And, you don't need to know the entire lens package to use it. The most commonly used part of lens (Lens proper, not Prisms, Isos, etc) is only a small fraction of the whole thing.

Re:Haskell for a New Decade [pdf] by quickthrower2 on Wednesday June 24, 2020 @12:33AM (#23624122)
Ah OK, things have moved on in recent years. Maybe there are more resources out there than I thought.
Re:Haskell for a New Decade [pdf] by platz on Wednesday June 24, 2020 @01:44AM (#23624492)
and you can learn enough lens to be productive in 1 hours with this talk without reading docs at all.

You can skip the theory and go straight to usage: https://www.youtube.com/watch?v=QZy4Yml3LTY

Re:Haskell for a New Decade [pdf] by nh2 on Tuesday June 23, 2020 @11:15PM (#23623614)
> Your 3 months is 5 years for someone trying to learn on their own in their spare time.

I learned the key parts of Haskell in 3 months of my spare time from university (where I had much less spare time than I have now in industry). And that was at a time where learning Haskell was much harder than it is now; today there are a lot of really detailed books, tutorials, and videos available, tooling works out of the box with few surprises, and error messsages are way better.

Of course learning in your spare time does not give you as much practical experience and feedback as you get on a job, but it gets you enough to get into such a job.

> You don't have to try and pick apart the online knowledge.

Not any more.

* Step 1, buy a beginner book and work through it.

* Step 2, work through FP Complete's [1] Applied Haskell Syllabus (https://www.fpcomplete.com/haskell/syllabus/). This will make you comfortable with most day-to-day data structures, techniques, testing, benchmarking and so on.

* Step 3, practice building some small applications that you think companies will actually need. Web servers, input validation, streaming data processing, and so on. It doesn't have to be fancy or use "cool" techniques, it just has to be /useful/.

* Optional Step 4, for extra hireability: Become better-than-average in a specific topic. This could be testing, performance, developer tooling, documentation, web stuff, anything that gets your juices flowing. Do a bit of open-source work in that area. Go to some meetups or conferences to see who's hiring, what they are doing, and what might be useful for them

> I want to understand Lens?

Again, you don't need to do that to get a job. I've conducted ~ 40 technical interviews for filling Haskell positions for various companies, and none required this. What is required is that you can do normal /useful/ things, with the high amount of correctness, clarity, refactorability, and reliability that Haskell provides.

Haskell, like mathematics, knitting, and C++, offers near infinite avenues of special topics that you can deep-dive into if you want. People talk about those at meetups because they excite them. But you don't have to do that to build useful software or get a job.

[1] This is the consulting company as part of which I gave most of aforementioned training. It makes most of the training material publicly available.

Re:Haskell for a New Decade [pdf] by SparklingCotton on Wednesday June 24, 2020 @02:59AM (#23624905)
I've used lens for years and years, but don't fully grok it. Who cares? Lens is also like category theory, you don't need to understand the details in order to use it.
Re:Haskell for a New Decade [pdf] by Jeff_Brown on Wednesday June 24, 2020 @11:12AM (#23628771)
More generally, trying to learn the whole language -- for almost any language -- is usually a waste of time.
Re:Haskell for a New Decade [pdf] by lallysingh on Wednesday June 24, 2020 @09:55AM (#23627895)
Generally I easily found C++ as difficult to learn as Haskell. Mastering C++ takes a half-dozen books -- although that number's starting to reduce as the language is getting a bit cleaner. Haskell takes 2-3. The last is just the optics book, if you want to learn lenses, which are worth it.
Re:Haskell for a New Decade [pdf] by evertedsphere on Wednesday June 24, 2020 @03:37AM (#23625184)
Anecdata point: I'm comfortable with lens at a very basic level, and if you have a good grasp of "normal" Haskell you can just compose lens operators and use combinators by playing the usual "type tetris" game of "what fits here?" and eventually you pick up a few idioms that are enough for most normal lens usage.
Re:Haskell for a New Decade [pdf] by tluyben2 on Wednesday June 24, 2020 @03:48AM (#23625246)
There are many people (at least that from the developers I know) who need to understand things fully before they 'can' use them. One of my friends is mentally stuck for 30 years on a platform because he cannot use what he does not fully understand. He tried Haskell (a few years ago) but instead of going through exercises or just trying to implement something, he read a book and noticed he did not understand basic (monads and such...) things and quit. He cannot touch a computer unless understanding arrives first. He is an extreme case but many (especially non-entrepreneurial in my experience) people I know have this in some ways.
Re:Haskell for a New Decade [pdf] by giantDinosaur on Wednesday June 24, 2020 @08:38AM (#23627164)
So they're essentially non-functional with today's technology stack? I think it's safe to declare the entire thing essentially incomprehensible to a single person. Sure - you can understand all the basics, and achieve expertise in a lot of it, but modern software and computing is essentially fractal in its complexity. Even when you think you understand, it often ends up being an abstraction which is re-written by some routine further down, deep within some area which raises even more questions.
Re:Haskell for a New Decade [pdf] by somethingsome on Friday June 26, 2020 @11:08PM (#23659204)
Why would they be non-functional with today's technology stack? The whole stack is complex, but everything depends in general on very basic principles (eg: basic information knowledge about parallelism, how a compilation works, etc.. and hardware knowledge : how parallelism is handled, why do we need asynchronous jobs and how they work, etc..). Any complex piece of software can be decomposed into basic principles and very often without a lot of work. The only softwares that require more time to understand are the ones that solve some physical or mathematical problems IMO, as you need to understand the math underlying them. But again, this is not an impossible task
Re:Haskell for a New Decade [pdf] by jose_zap on Wednesday June 24, 2020 @04:00AM (#23625351)
Ask him to explain in full detail how the flushing mechanism of a WC works. Then ask him if he uses any alternative solution he understands better.

I think it is quite common, even for people who want to understand things at a fundamental level, to just use stuff without said understanding.

Re:Haskell for a New Decade [pdf] by akho on Wednesday June 24, 2020 @11:14AM (#23628802)
What sort of hidden knowledge do you see in the flushing mechanism? It’s pretty straightforward.

(If you don’t want to go into how plastics are made, &c — but that stretches the metaphor way too far)

Re:Haskell for a New Decade [pdf] by jose_zap on Wednesday June 24, 2020 @12:39PM (#23630274)
I would personally have trouble naming all of the pieces in the flushing mechanism and being able to put y them together if I asked someone to buy them for me. That’s seems to be the same for many people I know.
Re:Haskell for a New Decade [pdf] by somethingsome on Friday June 26, 2020 @11:02PM (#23659175)
It is not because you cannot name something that you don't understand something, even in profound levels.. the knowledge of the name is only conventional against the underlaying mechanism. It suffice to repair one wc, one time to have a pretty good idea on how it work without much effort
Re:Haskell for a New Decade [pdf] by akho on Monday June 29, 2020 @05:07PM (#23683082)
It’s easy to do. You should get at least some more handy friends — or become one yourself: it will broaden your understanding of your environment, most things are very easy to fix and change.
Re:Haskell for a New Decade [pdf] by tluyben2 on Wednesday June 24, 2020 @09:31AM (#23627658)
It is not so consistent; I guess when they think about it consciously, they want to understand it. For all the rest (more low level, a WC etc) they, inconsistently, do not care. It is not really for me to change their behaviour, I just know that some of them are really crippled by this.
Re:Haskell for a New Decade [pdf] by jose_zap on Wednesday June 24, 2020 @12:40PM (#23630295)
I agree, there is no point in trying to change their behavior, we can at best understand them and offer alternatives
Re:Haskell for a New Decade [pdf] by marcosdumay on Wednesday June 24, 2020 @01:00PM (#23630638)
Has he got any luck on that Quantum Mechanics and General Relativity harmonization or he simply avoids using a computer in a gravity wheel?