turingschool-examples / intermission-assignments

33 stars 217 forks source link

Discuss Speaking JavaScript and Eloquent JavaScript Readings #74

Closed rrgayhart closed 7 years ago

rrgayhart commented 8 years ago

Discuss the assigned readings from Speaking JavaScript & Eloquent Javascript here:

Chapter 3 (Speaking): The Nature of JavaScript Chapter 3 (Eloquent): Functions Chapter 5 (Eloquent): Higher Order Functions Chapter 6: (Eloquent) The Secret Life of Objects

Some questions to start discussion:

Which sections were interesting? Which sections did you totally skim? Do you think the reading was valuable? Which topics were notably confusing?

s-espinosa commented 8 years ago

Interesting: The EJS sections on closures and optional arguments were interesting. The section on nested scope was an important reminder to be careful with where variables are declared. I imagine I'll still run into this issue sometime in the coming mod, but it helps to have it on my mind as something that could be going wrong. Totally Skim: Recursion, enumerables (Map, Reduce, etc.), JSON. Mostly the Higher-Order Functions chapter. Valuable: Maybe? Hard to tell. I don't think it was a waste, but I'm also not yet sure if I'll really know how valuable this was until I start using it more regularly. Right now I can't say one way or another. Confusing: Think I have a general understanding of closures, but not enough of a sense of them that they'll be a tool that I reach for very often. Higher order functions probably sit in the same box for now. It'll likely take me a little while working with these in the context of a larger problem for me to really add them to my toolbox.

thomschlereth commented 8 years ago

Chapter 3 (Speaking): The Nature of JavaScript - Takeaways: Javascript is super powerful from all of it's influences that the chapter lists, but they also make it messy. Seems like it could have been thought out more, before being introduced to the public. It was an interesting chapter that was worth reading, but when it got into the nitty-gritty I checked out. I've seen and used some of the mechanisms they write about, but have only a loose understanding of what they are. This makes it hard to do more than nod along as they talk about their strengths and weaknesses. This reading might be more valuable in a few weeks.

Chapter 3 (Eloquent): Functions - Takeaways: I found the part about the difference between a function block and a free-standing block and how let allows you to scope them very useful. I didn't fully grasp closure. Is it just saying that wrapping a var in a function is closure? Again I'll need to read this again later when I've had some exposure to these things.

Chapter 5 (Eloquent): Higher Order Functions - Takeaways: I liked this chapter, it was interesting way to think about functions as a way to label. I think I've had some of these concepts on my periphery, and it was nice to have them defined. I was curious about some of the actual code. They have a spot where they take a for loop with it's block. It is wrapped inside a function and then the for loop itself no longer has a block. Do you not need one in that case. That makes no sense to me and I'm having a hard time understanding it.

Chapter 6: (Eloquent) The Secret Life of Objects - Takeaways: Just skimmed really.

chadellison commented 8 years ago

Interesting: From The Nature of JavaScript, chapter 3, I found it very interesting that Javascript is both object oriented and functional, and can capitalize on the best of both worlds. I also found "The Secret Life of Objects" very interesting because it deepened my understanding of the purpose of OO programing. Specifically, the bit about hiding complexity in a class and interfacing with that object on a simple level through its methods.

Skimmed: I skimmed the end of "The Secret Life of Objects" because I had trouble tracking with the nuances introduced with prototypes and constructors--especially without coding along. I knew I probably wouldn't remember them just from reading, but would have to actually use them--nevertheless, I think it was good for me to get exposed to them.

Valuable?: Yes, The reading was valuable to get exposure to the principles and specifics of JavaScript. However, I find exercises and code alongs much more valuable for retaining the knowledge of how to write JavaScript. Through reading, I got the most value through understanding the higher level concepts or principles, i.e. the significance of OO programing, the reason why functions should be broken out.

Confusing: I found some aspects of "Higher Order Functions" confusing and also the end of "The Secret Life of Objects". I'm not entirely sure about how to use constructors and prototypes. I think hands on experience will clear up the confusion.

kamiboers commented 8 years ago

Interesting: I enjoyed “The Nature of JavaScript” as a quick overview of the language, and thought that the Functions chapter described the purpose and structure of functions very clearly. Higher Order Functions were super interesting and clearly powerful, but not something that I believe that I fully grasp. I liked the description of encapsulation “distinguishing between internal complexity and external interface” as distinct from object-oriented programming.

Skimmed: I skimmed the parts about using recursion and reduce to return data from the JSON ancestry data and the table layout functions in the final chapter went over my head a bit. Inheritance.

Valuable? As a general summary of attributes of JavaScript, yes. I usually don’t get a ton from reading about code before really using it, so I’d probably get more out of revisiting these chapters later. But, I thought that the writing was surprisingly clear and engaging for a book about code.

Confusing: The description of closures, reduce, and why recursion and built-in methods are so inefficient. The syntax in the getters and setters example was hard to follow.

ghost commented 8 years ago

https://gist.github.com/Salvi6God/ee9fe666310035b569e7202c582a344e

jeneve commented 8 years ago

https://gist.github.com/jeneve/3d5be5ea3a13ac0ee5db9d6d4b078200

alirezaandersen commented 8 years ago

Interesting: The Nature of JavaScript was nice, I never knew so many languages had a big influence in the creation of JavaScript. What I found most interesting was the functions, specifically Recursions(Eloquent JavaScript page 51), the concept of less-efficient alternative to looping yet makes some problems easier to solve versus looping is very interesting.

Skim: I skimmed "The Secret Life of Objects" Feel like certain parts where to abstract with the examples and hard to follow. I understand the basic of prototypes, but by the end of the section felt more confused.

Valuable: As a general summary of gaining a bit more knowledge of JavaScript yes, but as a whole, its hard to tell. I personally enjoy practice code and learning by doing the functionality, this book is detailed with some great examples, I feel as if skipping chapters have made me avoid learning something more valuable in a 450 page book. I guess what makes it valuable is yet to be determined.

Confusing: I found the chapter of The Secret Life of Objects to a bit difficult to follow. I used prototypes before in JavaScript but now question if I used it properly. Also polymorphism, getter and setters. Tried to do the practice at the end of the project and failed miserly.

notmarkmiranda commented 8 years ago

Interesting: The functions chapter was great for me. Even though JavaScript is a new language for me, I feel like I have a general understanding of it based on my learning at Turing, but have created a mental roadblock because of a lack of understanding of the syntax. This chapter helped quell some of my fears I've had regarding how functions and varibles interact.

Skimmed: The nature of JavaScript. I felt like reading through it was not very useful at this point in my learning. I'm sure there will be some stuff that was basic knowledge that I will need to know, but right now, I'm more interested in getting down to writing code vs. reading some lesser important pieces of code.

Valuable: I feel like most of it was valuable, but like I said earlier. I feel like reading about code is a more difficult way to learn code vs. writing a bunch of bad code first. I'll probably revisit most of this later because of something I might remember as I start to write more JavaScript.

Confusing: Closures is something I'm struggling a little bit to wrap my head around. I've read a few different things about it and think I understand the general idea, but like most other things, will probably come with practice.

jwashke commented 8 years ago

Interesting: the Objects chapter of Eloquent Javascript. Will definitely need a second read through of that. A lot of the concepts are very familiar, such as polymorphism, inheritance, getters and setters, but the JS syntax for it is so different than any other languages I've learned. Also prototypes instead of defining classes. I'm excited to start building things in JS to cement some of these concepts. Skimmed: The first chapter on functions. Most of it was pretty basic stuff I'm familiar with from working with other languages. Valuable: Higher order functions are interesting. But again the secret life of objects is the most valuable. Ultimately though I need to go build stuff to really cement most of these ideas. Confusing: Not much was really confusing. The objects chapter I want another read through as I think it crammed a lot of information into a pretty short amount of space. Again I think it will just take building some stuff for it to fully sink in.

drew-t commented 8 years ago

Interesting: The nature of JS Totally Skim: Higher Order functions Valuable: Functions Confusing: Prototype

Claudia108 commented 8 years ago

Interesting: It was interesting to learn about all those aspects of JavaScript, see how different aspects/pieces can and should be used to build efficient and functional code. Skimmed: I read all of it but had trouble wrapping my head around the examples in higher order functions and objects. It was very hard to follow without doing it myself. Valuable: I still feel pretty new to JavaScript and feel like this reading will be good as a reference once I get more practice with it. As of now it was interesting but I can't tell how valuable it is for my learning. Mostly as a overview of what is possible and practicable I guess. Confusing: Many of the code examples in higher order functions and secret live of objects. Hard to wrap my head around them and understand which are built in methods and which need to be defined.

patrickwhardy commented 8 years ago

Interesting: I liked how the secret life of objects describes objects as a conceptual means to breaking complex systems into their smallest parts. I never thought about how this "encapsulation" is object oriented programming's biggest strength for dealing with complex algorythims.

Skimmed: I had some difficulty ready through the code samples while working through the EJS chapters. It's hard to switch gears and try to understand some of the complex bits of code when focusing on the concepts related in the reading.

Valuable: I like how the nature of Javascript contextualized the language and how it relates to preceding languages. I feel like this helps me understand its strengths over other languages and why it's a good fit for programming applications.

Confusing: I still don't understand the role of constructors and prototypes. I have used both and don't really understand when either is appropriate.

theonlyrao commented 8 years ago

Speaking - Chp 3, The Nature of JavaScript

This was an interesting chapter but not because it taught me anything about JavaScript. I don’t think I know enough about the vocabulary, or have the context from having worked on other languages to understand the significance of a lot of what the author was describing. However, given that I have to start from somewhere it was nice to see a lot of the frequently used words like “dynamic” and “dynamically typed” used in what seems like a pretty accurate way.

Eloquent - Chp 3, Functions

Maybe I just needed to see it a few times, but the example for setting local variables on p. 43 was great. Also useful rule of thumb from p. 44 - “But in JavaScript, functions are the only things that create new scope.”

Idea of return function… effectively “freezing” a bunch of code that can be associated with a variable is really cool. Another great example of it on p. 49.

Eloquent - Chp. 5, Higher Order Functions

Not clear on the example in the middle of p. 85 - is it possible to call function with two sets of arguments if the first call will return another function? And where did f come from as a function?

Overall I thought the chapter introduced a very good discussion about abstraction/clarity/efficiency. It challenged me to think more about abstraction as being a way to make code better represent reality and less about being really explicit about each little step in the calculation.

Eloquent - Chp. 6, Secret Life of Objects

With prototypes and constructors I can’t tell if it is actually pretty simple and I’m making it more complicated than it is.

It is very confusing what is happening on pp.106-107 regarding enumerability of objects. Can I trust map or not?

Skimmed that example about the table. But get and set are cool.v

lingtran commented 8 years ago

https://gist.github.com/lingtran/7fe442bcf141f4ca8403713b3ce59e0e

Jbern16 commented 8 years ago

Interesting I really find the origins and nature of Javascript interesting. Namely, it's nature of being both OO and functional. It seems to me that it is an extremely flexible language, for better or worse, that can inspire a lot of different styles from people who use it. Convention seems thin, and that;s why I think we have tons of frameworks to help us with that.

Skim I skimmed the functions chapter, sans the bit about closures. On the base level, functions seem like methods to me from Ruby. I am more interested in how functions can interact and the proper why to combine functions to create a functional paradigm in JS.

Valuable I really found the reading on higher order functions valuable. From what i've heard, the best way to code JS is in a functional manner. Although a lot of it is dense and totally different from how we are used to programming, it seems like an extremely valuable lesson in becoming a better dev in all languages.

Confusing That being said, higher order functions were also the most confusing for me. But maybe this why I want to learn more. I can see the power in utilizing functions, and I want to learn more on how to do this.

pindell-matt commented 8 years ago

Interesting Javascript is inherently interesting. It's a great dismal swamp of backwards compatibility - but it's undeniably impressive in how it's completely taken over the web. I also find the whole "million flavors of JavaScript" (e.g. ES6 === ECMAScript2015, TypeScript, CoffeeScript, ClojureScript, etc.) thing to be very odd and extremely interesting.

Skim I skimmed Chapter 3: The Nature of JavaScript and stared blankly at the chart at the bottom. I feel like a video that delved a bit further into the histories of the different languages that inspired JavaScript would've made a bigger impact.

Valuable Everything in the prime High-Order Functions section of Chapter 5 seems pretty juicy, I don't follow all of it immediately, but it definitely struck me as the structure to leverage the strong parts of JavaScript.

Confusing I'm still trying to fully wrap my head about when/where to use .bind() - JavaScript seems to love to create an ocean of functions, just functions on functions on functions on functions, man.

JaredRoth commented 8 years ago

I found the chapter from The Nature of JavaScript pretty interesting in its high-level overview, but also confusing when referencing similarities to other languages that I wasn't familiar with.

The Functions chapter of Eloquent JavaScript contained a lot of information I found incredibly valuable in the first week of Mod 4. Although I found myself skipping a lot of the basic explanations like scope and stack, I kept re-examining basic syntax and uses that are different from Ruby.

Similarly, Higher-Order Functions had a lot of skimmable parts that felt familiar after dealing with lodash, but I still found certain aspects confusing like passing along functions and the syntax to do so.