and guess what I'm doing in the next 4 weeks... Really trying to formulate a plan for when I move across the country to try and make friends and have a life.
In defense of the person you replied to, I had the original question framed around my situation more but edited it to be more generic. Thank you for the information!
Does anyone have a solid place to start with functional programming? Don't really care too much about the language it's associated with but would really like to jump into learning the concepts behind it.
> Real World OCaml is aimed at programmers who have some experience with conventional programming languages, but not specifically with statically typed functional programming. Depending on your background, many of the concepts we cover will be new, including traditional functional-programming techniques like higher-order functions and immutable data types, as well as aspects of OCaml's powerful type and module systems.
It's a nice segue into the world of functional programming if you're not ready to give up on imperativeness just yet.
If you come from a C# background I really enjoy the book Real World Functional Programming [1]. The way it lays out samples side by side with C# and F# is pretty great and really helped me start to understand functional programming and F#.
That is a pretty excellent book, and definitely agree that it is helpful seeing the C# and F# code for the same example laid out side-by-side to compare. It helps a lot for those situations where you can't just switch to a functional-first language, but you want to use more functional constructs in your code.
After all, if you try hard enough, you could code in a functional style in C.
I like Erlang. It's got an odd syntax so some of the Java/C# baggage is dropped. It's oddity makes it kinda fun in its own right. If you want to do network programming, OTP is pretty neat.
I understand that. I started to make my product in Clojure. Got fairly along. Created an ArangoDB driver and migrator for it. Once I started creating the services, I keep having to go up through essentially the call stack to figure out what shape the data had at various points. I tried using a contract framework (forget its name, but I preferred it to Clojure's recent typing that doesn't type the value of a map). Now I'm back in Java.
The nice thing that either language will help introduce functional ideals. I recommend Erlang since its so unique.
I've recommended this book in the past, and I'll recommend it again. Functional Programming in Scala [1] does a good job of taking traditional stateful object oriented code and refactoring it using pure functional approaches. Coming from an OOP background, I've found it has really helped my understanding of functional programming.
[1] https://www.manning.com/books/functional-programming-in-scal...
For me at least, this site made programming fun again! It's colorfully written and mostly easy to follow, though some of the concepts are a bit mind blowing if you are only familiar with OOP like I was (passing a collection of functions to map really made me stop and think). Oh and it's a pretty neat way to learn emacs if you haven't already.
The last section there is important. In the real world, your language is not always your choice, but it's perfectly possible to put functional structure in most any language.
https://functionalcs.github.io/curriculum/ has a bunch of resources. Robert Harper's Programming in Standard ML book plus the notes from 15-150 at CMU are good for general FP concepts.
That is the ugliest thing I've seen in a long time, more power to you if you like the appearance, but I can't seem them bringing in sales for that thing for the design.
Yea but the process is never just coding project... It's either just whiteboard interviews or a coding project and then whiteboard interviews. There's never a reduction in time here
Why does everyone assume that you're asked to write perfect code on a whiteboard? I've been through 15+ interviews and have never been asked to worry about method names being right or signatures of methods being perfect and such. Most of the time people are amicably against me worrying about it. This isn't an issue.
I think, it's not an assumption, but a fear that this is the case.
Adds some extra anxiety as interviewee still worries about their code being correct or not. No one wants to risk being frowned upon just because they've messed up some syntax fine point. And since people are different, sometimes it really happens.
This can be avoided if interviewee's specifically told they just have to write algorithms in pseudocode, but it's not how it always goes in practice.
Because sometimes you are expected to write working code on whiteboard. Once interviewer was typing code I wrote on laptop and interrupting me on errors he had.