- Level up on Functional Programming by rebuilding LINQ
When taking your first steps into functional programming, you'll quickly run into blog posts talking about how to simplify complex loops by using the trinity of list operations: map, filter, and reduce. But what are these methods actually doing under the hood to help simplify your code? If you're familiar with the .NET landscape, then you already have experience with an implementation of the trinity within LINQ (Language Integrated Query). However, what if I told you that by learning how LINQ implements map (Select), filter (Where), and reduce (Aggregate), you actually know how other languages implement the same constructs? Intended for C# developers who have some experience with LINQ and an interest in learning functional programming, by the end of this session, you will have learned how to work with the Func type, generics, and extension methods! Cameron Presley is a Lead Software Engineer for SentryOne (https://www.sentryone.com), a speaker, a Microsoft MVP, Director of Speaker Relations for CodeStock (@CodeStock) and co-organizer of FunctionalKnox (@FunctionalKnox). Based out of Charlotte, North Carolina, Cameron has ten years of experience working with start-ups and large enterprise both publicly and privately held to architect solutions, implement solutions, and training developers to be better today than what they were yesterday! In his spare time, Cameron can be found hanging out with his family, playing board games, jamming on the bass guitar, and reading books.
- [Virtual] Mastering the Git Porcelain Commands
When you get stuck, do you delete your .git folder and start over? Do you panic when you get into a detached head state? Do you commit only on master or consider branching an advanced topic? Have you ever vowed to switch careers because `git log` didn't show all of your commits? Use the best git commands to solve your exact scenario. Compare and contrast similar git commands using a Git Visualization tool created by the GitHub Electron team. Decide when to use the following porcelain commands: rebase vs merge, revert vs reset, log vs reflog, interactive rebase vs interactive add, bisect vs blame, and more! (Maybe we'll even cover git rerere - yes, that's an actual command). If there's time and interest, we'll look inside the .git folder at how git uses trees, blobs, and refs to create its directed acyclic graph. Sara Ford decided to take a year off to try academia, because hey, what could possibly happen in a year? 🤷♀️ Sara is teaching software engineering at Cal Poly in San Luis Obsipo. She is a former employee of Microsoft and GitHub and is a Distinguished Engineering Fellow at Mississippi State University. It's quite likely that Sara is the only person in the world to help start an open source project hosting site (CodePlex) at one company and help shut it down at another company (GitHub). She received her Masters degree in UX / Human Factors at San Jose State University to focus on improving the usability in developer tools. She is the author of two books on Visual Studio and has delivered numerous talks all over the world. Her life-long dream is to be a 97-year old weightlifter, so she can be featured on the local news.