Week 25

Coding House: Week 5

Probably the most exciting aspect of this week is that we began pair-programming assignments. We’re still doing individual projects most nights, but now we are occasionally also working in pairs (on one computer) for projects. My first two pair-programming experiences have been quite different, but both very positive overall. I’ve already realized that there’s loads I can learn from watching other people code. After pair-programming, though, I believe that I can learn even more from talking through a challenge with a partner and making plans for the best strategy of action. I’m especially excited about the web app that Jeff and I created last Tuesday and Wednesday. It’s a book-trading application that allows users to upload books to their collections, make them private or available for trade, and offer, accept, and decline trades for their books. It uses MongoDB to store the data and Firebase for user authentication.

Here are some screenshots of the app:

Screen Shot 2016-02-10 at 2.02.15 PM

Screen Shot 2016-02-10 at 2.02.50 PM

Screen Shot 2016-02-10 at 2.03.22 PM

Screen Shot 2016-02-10 at 2.03.51 PM

Foundation Workshop

Another useful and unique aspect of Week 5 at Coding House was that we had a guest workshop all day on Saturday led by James Stone of the Zurb Foundation on the front-end framework Foundation.

Screen Shot 2016-02-10 at 2.56.19 PM
http://foundation.zurb.com/

Week 5 projects:

on github: https://github.com/bolducp/user_auth_book_trader
live, hosted on heroku: https://damp-mesa-10125.herokuapp.com/

on github: https://github.com/bolducp/photoGalleryApp
live, hosted on heroku: https://sleepy-ravine-56207.herokuapp.com/

on github: https://github.com/bolducp/apartmentManager

on github: https://github.com/bolducp/foundationStarterKit

Week 5, Main Topics:

    • additional select JS concepts:
      • array constructor
      • using regex
    • More Node.js and Express.js
      • query strings
      • making class and instance methods
    • NPM packages
      • Async
      • dotenv
      • rimraf
      • UUID
      • multer
    • Email APIs (Mailgun, Twilio, etc.)
    • Amazon Web Services (S3 storage)
    • GULP task runner
    • Mongoose
      • limit
      • select
      • sort
      • nesting
      • populating
      • pre-save hook === Mongoose Middleware
    • Foundation

 

Other tools and links to check out:

JSON generator: http://www.json-generator.com/

http://rmurphey.com/blog/2015/03/23/a-baseline-for-front-end-developers-2015

https://github.com/rwaldron/idiomatic.js/

https://leanpub.com/understandinges6/read/#leanpub-auto-browser-and-nodejs-compatibility

Advertisements

Week 24

Coding House: Week 4

Unfortunately, my main update to report for this week is that I caught lousy cold. Probably the result of too much hiking in the rain last Saturday, I woke up Monday morning not feeling well and had a full-blown cold by Tuesday. I spent four days in the sickroom and observing class from the stairway/balcony in an attempt not to infect anyone else. I still followed along during all of the class sessions and did all of the work, but I slept during the lunch breaks and went to bed much earlier than normal. I’m grateful for all the kindness shown to me by my housemates, in the form of medicine and food and offers of help. I’m now feeling almost back to my well-self and eager to spend the day trying to make sure that I understand everything from class last week as well as possible.

Week 4 projects:

on github: https://github.com/bolducp/user_auth_API_tracker
live, hosted on heroku: https://fathomless-wildwood-70138.herokuapp.com/

on github: https://github.com/bolducp/CRUD_auditing_app
live, hosted on heroku: https://enigmatic-hamlet-42067.herokuapp.com/items

https://github.com/bolducp/expressTemplate

https://github.com/bolducp/expressContactList

Week 4, Main Topics:

  • of course, vanilla JS and jQuery:
    • debouncing
    • call and apply
    • implicit arguments variable
  • lots more Node.js and Express.js
    • routing
    • making class and instance methods
  • HTML Templating
    • Jade
    • Handlebars
  • Homebrew
  • Mongo DB
    • CRUD with mongo
    • Mongoose
    • building models
  • Heroku deployment
  • Mongolab_URI addon
  • url-encoded strings
  • user authentication with Firebase
  • tokens

Week 23

Coding House: Week 3

Another week has flown by in Fremont, California. I’ll post an overview of the main topics we covered and link to my projects from the week below. First, though, here are some photos of a beautiful, much-needed 10-mile hike through the redwood forest that our cohort took on Saturday. Even though it poured rain down at a few moments, the entire hike was refreshing and a bit mystical and ended with a stunning few of the beach.

20160123_140807

20160123_170531

Week 3 projects on github:

https://github.com/bolducp/bloggerSite
live: http://bolducp.github.io/bloggerSite/

https://github.com/bolducp/FirebaseTicTacToe

https://github.com/bolducp/API_Exploration

https://github.com/bolducp/fullstackToDoList

https://github.com/bolducp/markdownConverter

Week 3, Main Topics:

  • always more vanilla JS and jQuery
  • Web sockets
  • Firebase
    • data storage
    • event listeners
    • callbacks
    • querying data
    • transactions
  • Internet of things
  • Node.js
    • Core modules: fs, path, http, etc.
  • NPM (Node backend installer) for bring in non-core modules
  • MD5 hash
  • url-encoded strings
  • ES6
    • template strings
    • arrow functions
  • Express.js
  • nodemon
  • Middleware
    • commonly used middlewares: morgan, body-parser
  • static routing
  • callbacks with express
  • RESTful design paradigm
  • Markdown

Week 22

Coding House: Week 2

It’s been another intensely busy and productive week of learning at Coding House. It still seems true that I won’t have time to blog in detail about anything that I’ve learned so far. But I’m keeping detailed notes that perhaps I’ll edit and add to this blog someday, and in the meantime, I’ll at least post the main topics we’ve covered and include some links that seem worthwhile. First, though, I’ll list links to some of the projects that I’ve created in the past week that are live on the internet now:

Week 2, live projects:

http://bolducp.github.io/weatherApp/

http://bolducp.github.io/blackjack/

http://bolducp.github.io/contactList/

http://bolducp.github.io/simpleToDoList/

http://bolducp.github.io/JavaScriptTicTacToe/

Week 2, Main Topics:

  • so much vanilla JS and jQuery:
    • IIFEs (immediately invoked function expressions)
    • scope, global/local variables
    • copying an array– array.concat()
    • array methods– some and every
    • iterating through an object with forEach and .keys(obj)
    • creating deferred event listeners
    • time stamps
    • | as a default operator
  • GIT: branches, merging, forking, pulling
  • html
    • Favicons
    • input fields (e.g. select, date)
    • making templates and using them to clone in the JS script
  • CRUD (Create, Read, Update, Delete)
  • JavaScript Libraries:
    • MOMENT.JS
    • LODASH
  • Local web storage
  • JSON
  • Regular Expressions
  • Sass
  • Bower
  • MVC paradigm
  • AJAX
  • HTTP requests
  • APIs
    • recursive API calls
  • Callback functions
  • Postman Chrome extension
  • Firebase

Useful links:

Week 21

Coding House: Week 1 (continued)

Day 2 Topics:

–Node.js
–NVM
–JavaScript in the browser
–Array iterators: map, reduce, forEach, sort
–ternary
–prefix and postfix incrementors
–the DOM
–events

homework assignment: to make a calculator in vanilla JS
mine on github: calculator code

Day 3 Topics:

–jQuery

links:
JQuery Cheat Sheet —https://oscarotero.com/jquery/
DOM traversal –http://api.jquery.com/category/traversing/

homework assignment: create a Towers of Hanoi game
mine on github: https://github.com/bolducp/towersOfHanoi

Day 4 Topics:

–truthiness and falsiness
–more on manipulating the DOM with jQuery
–media queries
–Bootstrap
–deploying code with github pages

homework assignment: make a memory matching game
my code on github: https://github.com/bolducp/memoryGame

or you can actually play my game on the internet here(!):
http://bolducp.github.io/memoryGame/

Week 21

Coding House: Day 1

It’s clear already that there’s not going to be any spare time for blogging with any sort of depth while I’m here. Yesterday, our first day, included 9 hours of lecture and 6 hours of homework. Finally, at 1am, I pushed the progress I’d made and went to bed, even though I wasn’t quite finished.

But while I’m here I do want to at least make an effort to record the topics we’re covering, link to the projects and assignments I’ve made, and maybe post links that I want to return to later.

Day 01

Main Topics

—getting our envirnoments setup (Atom/Sublime)
—Emmet
—keyboard shortcuts
—html and css

In class coding assignment: imitate the Google homepage:
mine— https://github.com/bolducp/googleImitationAssignment

Homework assignment: imitate the Archive homepage (http://www.archeeve.com/):
mine—https://github.com/bolducp/websiteEmulation

Links to return to:
Emmet cheatsheet—http://docs.emmet.io/cheat-sheet/
Keyboard shortcuts— https://support.apple.com/en-us/HT201236; http://www.danrodney.com/mac/
How to Center CSS— http://howtocenterincss.com/
CSS Style Guides—https://css-tricks.com/css-style-guides/ ; https://github.com/necolas/idiomatic-css
Learn Flexbox—https://css-tricks.com/snippets/css/a-guide-to-flexbox/
Live Coding tv—https://www.livecoding.tv/

Week 20

Coding House PreWork: Optional Challenges

Optional Challenge 01: Binary to Decimal

opt_1

Optional Challenge 02: String Decoder

opt_2

Optional Challenge 03: Declaration of Independence

opt_3

Snapshots of my mini-app:

opt_03declaration_of_independence_top_ten

Optional Challenge 04: Working with Data

Screen Shot 2015-12-20 at 11.11.23 PM

 

A snapshot of my solution:

Screen Shot 2015-12-21 at 10.45.45 PM

Eloquent JavaScript

I’ve also continued to work through some of Marijn Haverbeke’s Eloquent JavaScript. My solutions to the exercises in chapter 5 are on GitHub here.

JavaScript Readings

Whilst in various moments of transit without internet connection over the past couple weeks, I’ve spent some time trying to reading blog posts and articles about good programming practices, programming theory, and JavaScript. There’s a lot in these articles that I haven’t quite understood, but there’s usually some that I do understand too. And I hope that when I return to them in a few months after my 14 weeks at Coding House, I’ll be amazed at how much sense everything seems to make.

Here are some of the things I’ve been reading:

Week 19

Coding House PreWork Challenges

Again, I won’t be posting links to or portions of my actual code, as I think Coding House wants people to keep their solutions private, but whenever possible I’ll try to include screenshots of the outcomes of my work.

Challenge 15 Numbers and ASCII

Screenshot from 2015-12-10 12:55:07.png

A screenshot of my solution’s output:
Screenshot from 2015-12-10 15:52:19

Challenge 16 Widget Mockup

Screenshot from 2015-12-10 15:52:59

This challenge has taken me the longest yet, I’d say. In general, the JQuery, bootstrap and other web-design type challenges have been more difficult because I haven’t done nearly as much of this sort of work yet. The challenges that require more isolated JavaScript functions have been similar to a lot of the work that I’ve been doing in Python– not unlike some of the Coderbyte or Project Euler challenges– and so thinking about how to approach them or google specific useful functions, etc. feels more familiar.

In addition to looking at the resources listed on the Coding House webpage, I’ve also watched several youtube tutorials on JQuery and Bootstrap. In some ways, learning these things feels much easier than learning Python or JavaScript– it feels like once you memorize these certain techniques, it will be more or less implementing the same kind of templates. Maybe that thought just demonstrates that I don’t have enough understanding of the sophistication of front-end work yet.

Here’s the outcome of my solution:

16_widget_mockup

 

Challenge 17 The Game of Hangman

17

A screenshot of my solution:

Screen Shot 2015-12-18 at 7.16.23 PM.png

Challenge 18 Making AJAX Requests

18

Screenshot of working solution output:
18_ajax_requests

 

Challenge 19 Loops and Iterators

Screenshot from 2015-12-14 10:33:12

Screenshot of my solution’s output:
Screenshot from 2015-12-14 10:41:28

Challenge 20 Dynamic Element Creation in JQuery

20
And a snapshot of my solution:

20_checkerboard.png

Challenge 21 CSS Diner

Screenshot from 2015-12-14 10:43:27

Here’s a screenshot of the actual tutorial:
Screenshot from 2015-12-14 10:43:46

And a screenshot of me finishing it:
21_CSS_tutorial

 

Eloquent JavaScript

I’ve been spending most of my time with the Coding House prework challenges. I’ve learned a lot and have been enjoying them. But I’ve also kept thinking of Marijn Haverbeke’s Eloquent JavaScript, which I had just begun to study when I found out that I’d received the scholarship to Coding House. So as I’ve gotten closer to finishing the prework challenges, I’ve also returned a bit to Eloquent JavaScript.

This week, I studied and did the exercises for Chapter 4: “Data Structures: Objects and Arrays”, and you can see my solutions to the exercises on my GitHub here.

Week 18

Coding House Pre-Work Challenges

02 Git and GitHub

2
The first portion of this challenge, working through the CodeSchool TryGit Tutorial was a breeze– almost entirely stuff I was familiar with in Git already.

TryGit
The Coding House intro lecture to the material was pretty easy for me to follow along with in 2x speed as well. However, the third item on the list– working through all of the Git Immersion labs– took much more time and struggle, requiring me to look up how to do a lot of things in the command line (perhaps it would have been better if I’d done the 3rd challenge focusing on Linux commands first, actually). And there were just a couple sections of the Git Immersion labs that I couldn’t work out even after a lot of trial and error (i.e. the Rakefile stuff), but everything else I was able to execute successfully. Although I’ve been using Git and GitHub for several months, my usage has been confined to adding, committing, and pushing to GitHub. I’m still a bit rocky on how everything works between multiple branches and having several people work on the same repository at once, but I know a lot more about Git now than I did before.

There are some snapshots of me working through the Git Immersion Labs on my GitHub: 02 Git and GitHub

Challenge 03: Linux Commands

Screenshot from 2015-12-07 09:38:52

Learning about Linux commands has been more fun than I expected. The first time that I ever worked with the command line– last March when I stated “Learn Python the Hard Way”, I was very intimidated by it. I was able to figure out a few things through the use of tutorials, Zed Shaw’s was especially good, but I have barely touched it since (except when I use it to push to GitHub). Now, though, I feel a lot more comfortable with navigating between directories and files from the command line, and learning about searching for things with commands like “find” and “grep” is exciting and useful to me.

A couple snapshots and my coding house 03 Linux Commands challenge solution here: 03 Linux commands

The next two challenges I had already done as a part of my application to Coding House, but I double-checked and added them to my GitHub repo as well.

Challenge 04 Counter Function

Screenshot from 2015-12-07 11:40:45

My solution on GitHub: 04 Counter Function

Challenge 05 Case Swap

Screenshot from 2015-12-07 11:41:05

My solution on GitHub: 05 Swap Case

Challenge 06 JQuery Basics

Screenshot from 2015-12-07 11:50:24

Here are snapshots of the loaded result of my solution to the challenge:

And see the code on my GitHub here

Challenge 07 Chrome DevTools

Screenshot from 2015-12-08 12:19:21

Here’s a snapshot of my solution:
07_devtools

Challenge 08 Navbar Mockup

Screenshot from 2015-12-08 14:59:19

Since I’m new to Bootstrap, I first worked through the Bootstrap tutorial found here: Tutorials Point

Then I looked at the Bootstrap documentation and started experimenting until I got my webpage to look as similar to the mockup as I could. Here’s a screen shot:

08_navbar_mockup

[[Note: I just received an e-mail from Coding House, setting up a private repo on GitHub for me use for my pre work challenges, rather than a public one. I’ll keep posting here about the challenges and including snapshots of my work when relevant, but I’ve deleted my public repository with my solutions and I won’t post more of a actual code here, since it seems that Coding House wants people to keep their solutions private.]]

Challenge 09 Palindrome Map

Screenshot from 2015-12-09 12:46:27

Here’s a snapshot of my function’s output:
(See note above for why I’m not posting actual solution code)
Screenshot from 2015-12-09 13:20:11

Challenge 10 Reverse Words in Place

Screenshot from 2015-12-09 13:20:37

A screenshot of my function at work:

Screenshot from 2015-12-09 14:04:44

Challenge 11 Array Analyzer

Screenshot from 2015-12-09 14:05:05

Sample input and output:

Screenshot from 2015-12-09 18:15:15

Screenshot from 2015-12-09 18:15:24

Challenge 12 Dates

Screenshot from 2015-12-09 18:16:20

Screenshot from 2015-12-09 20:35:24
Screenshot from 2015-12-09 20:36:06

Challenge 13 JQuery and the DOM

Screenshot from 2015-12-09 20:37:28

I found that my code wouldn’t work on quite a few webpages, such as Google and Yahoo– they’d post a syntaxError or say the function was undefined. But after experimenting in some other places, I was able to see it working. Like so:

ex_colorful1

ex_colorful2

ex_colorful3

Challenge 14 Repeated Letters in Words

Screenshot from 2015-12-10 10:48:13

Week 17

Eloquent JavaScript (by Marijn Haverbeke)
Coding House Pre-work: Touch typing, Git and Github, Linux Commands, Intro to JavaScript tutorial videos by Coding House

Monday and Tuesday of this week were spent doing more JavaScript. I did some more of the Udacity tutorial, and then I discovered Marijn Haverbeke’s book Eloquent JavaScript. It’s fantastic. His style of writing is clear and concise, and even after the introduction and first chapter, I’d learned relevant and important things about JavaScript that the Coursera and Udacity tutorials had left out. I worked through the first three chapters and the included exercises– I started storing my solutions to the exercises in a Github repo here: .

I think if I hadn’t spend the past 4 months studying Python, this text would be really difficult for me in similar ways to how Downey’s Think Python was often very difficult. However, being familiar with a lot of the concepts, I found that it was much easier to understand his explanation of JavaScript.

And then on Wednesday, I found out that I’d been chosen as the #ChangeTheRatio scholarship winner at Coding House. Most of the rest of the day was spent in distracted excitement. I’m still rather in grateful disbelief– and very excited to spend 14 weeks immersed in even more intensive study in a community of coding enthusiasts. And so, since Thursday I’ve turned my attention to the 150+ hours of pre-work that I need to complete before January 5th (exactly one month away). If there’s still time left after I’ve completed the pre-work challenges, I’ll return to Eloquent JavaScript again before I leave.

Coding House Pre-Work Tutorials and Challenges

I’ve watched (while doing the coding exercises) parts 1, 2, and 3 of the “Coding House JavaScript Basics Workshop” videos, as well as the “Preparing for a Coding Bootcamp”, parts 1 and 2. Samer’s instruction seems great to me–kind yet straight to the point, engaged/interactive, and well explained through coding demonstrations. I think it’ll be great to have him as an instructor.

Here are the three challenges that I’ve worked on so far:

1

My typing progress on one of the resource websites:

02_touch_typing.png

 

2

TryGit

3