Skip to content

Commit 41f8690

Browse files
authored
Merge pull request #61 from WebDev-Guild/functional-js
Functional js
2 parents 5e2e5a9 + bb9ade0 commit 41f8690

File tree

9 files changed

+74
-10
lines changed

9 files changed

+74
-10
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,13 @@ Join the conversation on [Discord](https://discord.gg/PUcnnjV).
3434
- [ ] [React](master/react.md)
3535
- [ ] [GraphQL](master/graphql.md)
3636
- [ ] [Databases](master/databases.md)
37-
- [ ] [The Cloud](master/cloud.md)
3837
- [ ] [IOT](master/iot.md)
39-
- [ ] [ThreeJS](master/threejs.md)
4038
- [ ] [Masterpiece](master/masterpiece.md)
4139
- Electives
4240
- [ ] [Design](https://hackdesign.org/lessons)
41+
- [ ] [Meteor](electives/meteor.md)
42+
- [ ] [The Cloud](electives/cloud.md)
43+
- [ ] [ThreeJS](electives/threejs.md)
4344
- [ ] Performance
4445
- [Apprentice](https://github.com/fs-webdev/skill-building-program/blob/master/badges-active/performance/apprentice.md)
4546
- [Journeyman](https://github.com/fs-webdev/skill-building-program/blob/master/badges-active/performance/journeyman.md)
@@ -69,6 +70,8 @@ The badges provide suggested and required learning resources, assignments, and a
6970

7071
To advance in ranks, you must demonstrate your ability in all of the badges by completing a project. For Apprentice and Journeyman level ranks, the project is assigned to you. For the master level, you will work with your mentor to come up with a masterpiece project that will be both challenging and rewarding.
7172

73+
The guild also offers content as electives. This content is not required to advance in ranks, however the contents are valuable and could come in handy when working on the rank projects.
74+
7275
-----
7376

7477
## Mentors

electives/cloud.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Elective Cloud Badge
2+
3+
## Goals
4+
5+
- Understand how the 'cloud' works
6+
- Understand how to use the 'cloud' for hosting assets
7+
- Understand how to use the 'cloud' to run hosted servers and VPCs
8+
- Understand how to use the 'cloud' to run serverless functions
9+
10+
## Requirements
11+
12+
- [ ] [Asset Hosting](cloud/hosted-assets.md)
13+
- [ ] [Cloud Servers](cloud/hosted-servers.md)
14+
- [ ] [Serverless Functions](cloud/serverless-functions.md)
15+
16+
*Work In Progress*
File renamed without changes.
File renamed without changes.

electives/threejs.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Elective ThreeJS Badge
2+
3+
## Goals
4+
5+
- Learn how to create simple scenes in ThreeJS
6+
- Learn how to use `requestAnimationFrame` to animate your scene
7+
- Learn about how to include and use .obj models and image textures
8+
9+
## Requirements
10+
11+
- [Create a scene in ThreeJS](#)
12+
- [ThreeJS Animations](#)
13+
- [Textures and Models](#)
14+
15+
*Work In Progress*
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Functional JavaScript
2+
3+
## Intro
4+
5+
No, I don't mean that JavaScript is normally *not* functional. Instead, this badge is to teach you how to write your JavaScript code using functions almost exclusively. There are a lot of interesting concepts that come about because of this:
6+
7+
- Pure functions, or functions that take arguments and return a value without mutating a variable outside of the function. This makes it so you know every time you run a function with the same arguments it will return the same value.
8+
- Higher order functions, or functions that take a function as an argument and return another function.
9+
- Immutability, or never changing the value of a variable in place. Once a variable is set, you never change that value.
10+
- How to handle side-effects of your functions, like performing network requests or writing to a file
11+
- The difference between imperative and declarative programming
12+
13+
It's a powerful paradigm which JavaScript supports. Learning it will help prepare you to learn React, which is heavily inspired by a functional paradigm.
14+
15+
## Suggested Learning
16+
17+
- [Functional JavaScript Concepts](https://www.sitepoint.com/introduction-functional-javascript/) - Learn difference between imperative, object-oriented, and functional programming
18+
- [Functional Programming Concepts](https://medium.com/javascript-scene/master-the-javascript-interview-what-is-functional-programming-7f218c68b3a0) - Awesome article listing all the concepts you need to know in functional programming.
19+
- [Great Functional Programming Interactive Guide](https://tech.io/playgrounds/2980/practical-introduction-to-functional-programming-with-js/pure-functions)
20+
21+
## Requirements
22+
23+
- Complete the basic assignments in [Functional JavaScript Workshop](https://github.com/timoxley/functional-javascript-workshop)
24+
- Show that you have completed the basic assignments in the workshop in the `#requirements` Discord channel to show you have passed this requirement off.
25+
26+
## Extra Learning
27+
28+
- [Rethinking For Loops](https://hackernoon.com/rethinking-javascript-death-of-the-for-loop-c431564c84a8)
29+
- [Rethinking If Statements](https://hackernoon.com/rethinking-javascript-the-if-statement-b158a61cd6cb)
30+
- [Functional Composition](https://hackernoon.com/javascript-functional-composition-for-every-day-use-22421ef65a10)
31+
- [Functional Exercises](http://reactivex.io/learnrx/) - Tons of practice code to learn with
32+
- [Functional Programming Game](https://david-peter.de/cube-composer/)
33+
34+
*This list is by no means complete. Feel free to add an issue or put in a pull request to update it.*
35+
36+
37+
38+

master/cloud.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

master/threejs.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)