Skip to content

A log of my experiences as a student at Founders and Coders

Notifications You must be signed in to change notification settings

jokosanyang/Diary-of-a-FAC-student

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 

Repository files navigation

πŸ“– Diary of a FAC student

Founders and Coders is a non-profit organisation that focuses on developing and running tuition-free, peer-led training programmes in web development, guided by their core values of cooperation, inclusion and social impact.

They run an intensive 16-week full-stack Javascript bootcamp three times a year and I was lucky enough to be selected to be part of the FAC16 cohort running in their London campus from March - June 2019.

For the first half, every week we

  • completed workshops in a new area
  • participated in research afternoons surrounding a number of new topics
  • completed a group project consolidating all of the learning outcomes
  • delivered presentations
  • reviewed another group's code

For the second half, we worked on two extended projects. One was a cohort-selected student project, and the other was a client-driven Tech for Better project to develop a social impact app.

Here is a log of my experiences!


πŸ”§ Week 1 - Toolkit

I learned:

  • pair programming techniques
  • the importance of checking accessibility when programming
  • how to code review

Research topics:

  • command line
  • regular expressions
  • accessibility
  • CSS conventions

Project:

Create an accessible one-page portfolio website for your team

Lucky 13 portfolio website

Link to project repo

Triumphs Challenges
Creating a responsible, accessible website within the given deadline Learning to work completely as part of a pair after solely coding alone in the past
Getting to know the people on the course Using regular expressions for validation

✳️ Week 2 - Testing

I learned:

  • test-driven development
  • how to test code using tape and measure coverage using istanbul
  • about event loops

Research topics:

  • Unit vs integration testing
  • Technical spikes
  • DOM manipulation
  • Test coverage

Project:

Use test driven development to create a to-do app with the ability to add a task, delete a task, and mark a task as done

NotSoWunderlist todo app Link to project repo

Triumphs Challenges
Developing better communication skills Understanding the tape testing format
Problem-solving via explaining out loud Splitting up tasks fairly between group members

πŸ”€ Week 3 - APIs

I learned:

  • sending an API request with XMLHttpRequest
  • about the request-response relationship
  • the importance of planning out software architecture

Project:

Create a web app that queries two APIs using xhr requests and document the use of a well-considered software architecture

intro page yodariser

Link to project repo

Triumphs Challenges
Learned new CSS animation techniques Finding good, key-free APIs
Excellent planning Debugging errors in the console (CORS)

☁️ Week 4 - Node.js 1/2

I learned:

  • the structure of a server, router and handlers
  • what Node is and how to use Node modules
  • the importance of code modularisation

Research topics:

  • Architecting (front-end vs back-end)
  • Engineering (node modules)
  • Packaging (npm and dependencies)
  • Deploying (Heroku and env)

Project:

Create an autocomplete widget which enables users to find and select words from a list of suggestions as they type. Host the project on Heroku

spellchecker

Link to project repo

Triumphs Challenges
Successfully used a fetch request for the first time Did not manage to design a desktop view
Creative brainstorming session Hosting the project on Heroku (installed dependencies as devDependencies)

🌊 Week 5 - Node.js 2/2

I learned:

  • how to test server routes using Supertest
  • three approaches to error handling
    • error first callbacks
    • try-catch
    • return to caller
  • how to make requests from the back-end using the Request or HTTP Get module

Research topics:

  • continuous integration
  • buffers and streams
  • node shell modification
  • making requests from the server

Project:

Create a web app which sends API requests from the Node.js server

time to fly

Link to project repo

Triumphs Challenges
Clean, modular code Merging the responses from 2 back-end API requests into one object to return to the front-end script
Excellent evenly-split group work Writing tests

πŸ’½ Week 6 - PostgreSQL

I learned:

  • what a relational database management system is and how to use it
  • how to use Postgres locally and remotely
  • the standard query structure of SQL
  • how to test database queries

Research topics:

  • schemas and relationships
  • database setup and maintenance
  • script injections/safety issues

Project:

Set up a database connected to a node.js server and use the data to create a dynamic web app

Lost and Founders database

Link to project repo

Triumphs Challenges
Excellent planning Completing project styling
Working as a team of four the entire time and understanding every part of the code Testing the database

πŸ”’ Week 7 - Authentication

I learned:

  • cookie management
  • hashing passwords using bcrypt and JSON web tokens
  • session management by signing cookies

Research topics:

  • HTTP vs HTTPS
  • Stateless vs stateful authentication
  • Web storage
  • Attacks

Project:

Building on an existing project or creating a new one, write an app with a login page and using cookies to store logged in status and username

Lost and FAC login page

Lost and FACactions page

Link to project repo

Triumphs Challenges
Mastering cookies Very short of time
Successful password management Struggling with callbacks

⚑ Week 8 - Express

I learned:

  • how to set up a project in Express
  • templating with Handlebars
  • CSS animation

Research topics:

  • Promises and fetch
  • Server-side rendering/Templating
  • Express middlewares
  • Session-management in Express

Project:

Create an app using an Express server, with a postgreSQL database. Use a handlebars template to render retrieved data server-side.

submit dream page

personalised dream diary page

Link to project repo

Triumphs Challenges
Using the amazing Handlebars helpers! Learning the new Handlebars syntax
Quickly understanding Express Database testing

βŒ› Weeks 10-16

In progress...

About

A log of my experiences as a student at Founders and Coders

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published