/week-07-classwork

Functional programming

Primary LanguageJavaScript

week-07-classwork

Functional programming

Instructions

  • Fork this repo - shared at end of this chat
  • Clone your personal copy of this repo to your local machine

Review

How much time are we spending and where are we spending it

We need to spend a large amount of time on code.

As the teacher, teaching both experienced and "gerber" (brand new) coders, I spend

  • 12 to 24 hours prepping each week to fill in what I see as missing areas for those with no experience or limited experience
  • 3 to 4 hours reviewing homework. I need to spend 12 to 24 hours on this as well. TAs will help with this effort
  • 4 hours in class. 3 to 4 hours after class

As a student learning to code, you should spend

  • 6 hours for class. 3 hours in class. 3 hours either before, after or in combination
  • 4 to 8 hours "hands-on" on homework and related practice
  • 1+ hour reading/reviewing slides and shared materials

Where did we start

  • git
  • github

What did we get introduced to

A great deal in a very short time.

  • a very little bit about html
  • a tiny part of the css universe
  • JS basics such as variable types and function declarations
  • a very light introduction to advanced algorithm coding challenges

Why have we been introduced to these things

Early in the course we introduce things at a high level. As the course continues we see things again and build on them.

In 18 weeks, the bootcamp introduces you to all concepts involved in a completely functioning software system.

This allows time for introductions

What should we be able to do

  • Read code to quickly identify what you do and do not know
  • Add comments to code as you gain understanding of pieces
  • Rename variables to match your understanding of code
  • Declare variables and functions
  • Use loops to perform iteration

When we don't know something - Stay Calm

We need to know to stay calm and follow a plan for proceeding

Being challenged and spending time being confused is going to be a regular thing all cohort long. It can be a regular challenge throughout a software career.

Sometimes we can spend long periods with things we know well. Lots of Wins every day is nice. This time is filled with enjoyment and confidence building.

Often we have no choice other than to venture out of comfort back into the learning phase. We need to find small wins as we work through challenges.

We may not recognize:

  • syntax
  • variable naming
  • node modules
  • configuration for modules
  • error messages
  • file and folder structure

What we do depends on what we don't recognize

  • syntax -> review repositories you have with similar code. -> Review the books -> Review MDN -> Review W3 Schools -> Review Stack Overflow -> devdocs.io
  • variable naming -> use other code in the file and folder for context to understand. Use console.log. Use the debugger.
  • node modules -> view the docs on the node modules -> review your repositories with similar code.
  • configuration for modules -> view the docs on the node modules -> review your repositories with similar code.
  • error messages -> spend a limited time debugging then post to #asking-for-help. Read the related code. Use console.log or debugger if possible
  • file and folder structure -> often relates to the modules being used. Debug as you with node modules in mind.

What are we doing this week

We will learn about some advanced programming concepts and techniques - Functional programming - Functions in depth.

We will prepare for building a software system. A software system is many modules, files, functions, variables and syntax working together.

Where are we going

Next week we build web servers to move content and data from the server to the client and from the client to the server.

We need the basics we have learned so far to understand the syntax and code functionality. We need to know how to debug challenges as discussed tonight.

Finally! Classwork

https://github.com/SummerOfCode2020/week-07-classwork

After Class

Hang around if you want. Go write lots of code. Else other stuff.