Introduction5:08 with Craig Dennis
Let's get started!
[MUSIC] 0:00 Hello. 0:04 I'm Craig and I'm a developer. 0:05 In this case we're going to explore functional programming and 0:07 specifically how it relates to Java. 0:10 Before we get started I want to ask that you familiarize 0:13 yourself with your learning environment. 0:15 There are speed controls on the video player that you can use to speed me up or 0:17 slow me down. 0:22 I won't mind at all. 0:23 In most videos I'll drop more information in the teachers notes. 0:24 So be sure to make a habit for 0:27 checking that area for more juicy tidbits of knowledge. 0:29 And finally if anything at all, and yes, I mean anything, peaks your interest, 0:32 confuses you or if you just want to chat with somebody about an idea you have, 0:37 there is an amazing community forum that is attached to 0:41 each of these videos and exercises. 0:43 Please share your thoughts, ideas, and concerns. 0:45 Okay, so, functional programming. 0:47 You've probably heard of it, it's been around for a super long time. 0:52 Like since the late 1950's, well it's been gaining a ton attraction lately. 0:56 And we'll explore why that is here shortly. 1:02 Now without a doubt you've heard, or 1:04 going to start noticing this term buzzing around tech circles. 1:06 Before we dive into the why, let's talk a bit about it's relationship to Java. 1:10 With the release of Java 8 in March 2014, 1:15 a bunch of functional programming concepts can now be expressed in the Java syntax. 1:17 Before that they couldn't. 1:22 Now the big thing that Java introduced in version 8 was the concept 1:24 of what is known as a function. 1:28 A function in practice looks an awful lot like a Java method. 1:30 They define parameters, they have a body that are a series of statements and 1:34 expressions, and finally they return a value. 1:38 Here's the thing though. 1:41 Prior to Java 8, this method could only exist as part of an object or a class. 1:43 Now restated, a method belongs to the object or class. 1:48 With the creation of a function in Java 8, this ownership no longer exists. 1:53 It's now a thing all on its own and it can now be referenced and 1:58 passed around like any variable. 2:01 This is what is known as making a function a first-class citizen. 2:03 A method is really just an owned function. 2:08 Now the term function actually comes from mathematics. 2:11 And you can probably recall using them, 2:14 depending on how long ago that type of study has been for you. 2:16 We'll dive deeper into what this means and 2:20 bring in some math terms, as needed through out the course, but very lightly. 2:21 Math could be a source of concern for some folks. 2:26 So, if you are one of those folks, I just want you to know, 2:29 I'm gonna take it slow and steady, and there is nothing to concerned about. 2:32 An important thing to remember, right off the bat, is that 2:37 functional programming is a completely different style than the imperative 2:40 object orientated style of programming that we Java Doves have been used to. 2:44 It comes with many years of study and rules, and 2:48 can seem a bit daunting if you try to take it all in at once. 2:51 Now, the reverse is true, of course, right? 2:55 For functional programmers, our imperative style comes with its own set of rules and 2:57 ceremonies that you can't just pick up all in one sitting. 3:01 They are two different ways of thinking, with completely different sets of laws and 3:05 dances that we must learn and perform In order to bring our ideas to life. 3:09 An unfortunate common reaction to this daunting, 3:15 unknown feeling is to completely dismiss the technology. 3:17 Let's agree not to do that. 3:21 I've seen too many developers fall into that trap. 3:23 They see something they don't fully understand and 3:25 then they trash talk in the comments section. 3:28 Let's agree to be patient together, and talk things through, and 3:30 basically just be adults about everything. 3:33 Because there'll be so many new terms in this course, 3:36 I'm going to employ a practice that teams often use in meetings. 3:38 It's called the parking lot. 3:41 The way it works is this, when you uncover some information that is important, 3:43 that you wanna make sure that we talk about, 3:47 you don't want to interrupt the current flow of the conversation. 3:49 So you park the information in the parking lot. 3:51 We'll use it a bit like a to-do list for 3:55 understanding the plethora of new terms that appear in this course. 3:56 Now, for some of you, this might be the first time in a very long time that 4:00 you've had to think differently about your style of programming. 4:05 And it's probably going to feel a little off-putting at first. 4:08 Now try to remember, this is relatively new to the Java world. 4:11 So do not let imposter syndrome set in. 4:15 Everyone is pretty much relatively new at doing this in Java. 4:19 And it is okay to feel however you may be feeling about the language's evolution. 4:22 Give yourself a break and some time to just let it sink in. 4:26 So for this course, we'll ease into using functional programming Java. 4:30 We'll start from the very top, and we'll work our way into the concepts. 4:34 Along the way, we'll replace our current way of thinking, 4:38 the imperative, with a more declarative, functional approach. 4:40 We'll take a hands-on approach and explore a dataset together, 4:44 that we can use to simulate Big Data, and then we'll explore the new Streams API. 4:47 After you've gotten your feet wet with the new tools and 4:52 understand how they work, we'll circle back to the specific rules that make sure 4:54 the general concepts of functional programming are understood. 4:58 Let's take a look at why functional programming is gaining popularity across 5:02 all languages right after this break. 5:06
You need to sign up for Treehouse in order to download course files.Sign up