Skip to content

Latest commit

 

History

History
136 lines (85 loc) · 9.01 KB

prep-for-module-4-backend.markdown

File metadata and controls

136 lines (85 loc) · 9.01 KB

Module 4 Intermission Assignments

Required Work

To prepare for Module 4 we'd like for you to complete the following before 9 AM Monday (the first day of M4).

1. Reflection on Learning Experiences

Complete this exercise to reflect on your learning experience thus far here at Turing.

2. JavaScript Fundamentals

Read the following lessons to gain a deeper understanding of JavaScript syntax and how JavaScript works. Depending on your level of knowledge with JavaScript, some of this may be a review and some of this may be new. Even if you feel confident with the fundamentals of JavaScript, we encourage you to read through the content as a refresher. This content is taken from the Front End program - we think it's a great overview of the JS basics.

Create a free account on JavaScript 30 and complete:

  • Array Cardio Days 1
  • Array Cardio Day 2
  • Objects and Arrays
  • Tally String Times with Reduce
  • Feel free to choose a few more that look interesting to you! They are all great resources, we just think the 4 above are most relevant to what you need to start Mod 4.
  • Code along as you follow the videos and copy and paste the code into a gist (one gist is fine; separate each video with a comment)

3. JavaScript without a Browser

While JavaScript was originally intended to be a client-side scripting language, it has since made its way server-side thanks to Node.js. We're now able to use the same language for browser-based interactions as well as server-side scripts.

Let's get introduced to JavaScript without a browser. Work through this lesson. It will introduce you to Node.js and basic unit-testing using Mocha.

4. ES5 vs. ES6

5. Sorting Suite

Complete Sorting Suite in Javascript here. Choose one out of the three fundamental sorting algorithms to complete. Use Node.js to run your code, and Mocha/Chai to write your tests. FE2 gets this as a project, so we'll use their project requirements, but you can ignore the rubric. You won't be graded. We just want you to get some practice testing and writing JavaScript.

6. DOM Manipulation Challenges

Clone down both of the repos and complete steps laid out in the README. You will need to create a repo for each and push your work to it to submit.

7. Submit your work.

Find the submission document located here, update the links next to your name, and create a PR titled FirstLast-Intermission Work. The deadline for submissions is Monday, Week 1 at 9 AM. If you anticipate that you won't meet this deadline for any circumstances, you need to DM your instructors as soon as possible.

Tips for JS success

Some biggies if you're coming from Ruby:

  • Methods are called Functions
  • nil is called undefined
  • requireing a file you've written does nothing if you didn't export from that file
  • All returns are explicit in Javascript. If you don't use the word return, your return value will be undefined

Google is your friend. It's totally reasonable to type things like ".each in javascript" or "what is const in javascript"

Optional Work

All of these things were at one time part of the intermission week work. We've retooled the module, and are focused on getting you coding during intermission week. However, there's some good resources below if you want to pick and choose the things that seem interesting to you.

Introduction to JavaScript Topics Reading

Read the following selections from Speaking JavaScript & Eloquent JavaScript:

Then finish it all with JavaScript Garden.

Exercisms

  • Complete 5 of your own completed exercism.io exercises in JavaScript
  • Review solutions by 5 other people for the same exercises, and compare your solution to theirs

If you have trouble with the exercism UI, you can find other versions of exercisms you submitted at this link:http://exercism.io/tracks/javascript/exercises

Extensions

Then select and complete one of the sections below.

NodeSchool.io

Work through at least two of the following courses:

jQuery Fundamentals

Work through Bocoup's jQuery Fundamentals.

CSS Fundamentals

Scaling Up as a Developer

As we move into the final module of Turing, we're getting fairly competent at producing useful software. But rather than being the end of the journey, this really just opens the door to even deeper rabbit holes—now that I can get something done, what other ways might there be to accomplish the same thing? The same observable effects could be accomplished via numerous different combinations of code. What are the underlying opinions and ideas embodied by each choice?

Read: Sandi Metz' Rules For Developers (10 minutes)

  • Which of Sandi's rules do you feel like might be the hardest to follow—why?

Listen: Shop Talk: Tom Dale (1.5 hours)

  • Do you agree with Tom? What parts of his argument are compelling? What parts do you disagree with?

Here are are a few more "philosophical" materials to hopefully help us contemplate this side of the issue:

  • Execution in the Kingdom of Nouns by Steve Yegge - You've been doing object-oriented programming for almost 6 months now. What are some of the limitations imposed by this approach? How do Ruby and/or Javascript capture the benefits of OO while avoiding some of the pitfalls?
  • Simplicity Matters by Rich Hickey - As we move into working on larger and more sophisticated systems, some of the approaches that have worked on smaller projects may no longer be so effective. What does Rich Hickey say about the common pitfalls of Ruby and Rails applications?
  • The Birth and Death of Javascript by Gary Bernhardt - This talk takes a tongue-in-cheek tone, but the concepts discussed are very topical. What does Bernhardt suggest about the role of Javascript in shaping the modern web?
  • Real Software Engineering by Glenn Vanderburg - What does Glenn have to say about Software Engineering as a discipline? How does Software Engineering differ fundamentally from other Engineering disciplines? What can we as Software Engineers take away from other disciplines?