WEEK 1: Basics of HTML, CSS, and Git
Friday | October 30, 2015
After five days in the Full Stack Program, I feel like I am finally starting to grasp some of the "bigger" concepts in web development. I've learned a ton about Git and GitHub, as well as old and new concepts in HTML and CSS. Some of the more interesting/useful topics include:
-
new elements to use instead of divs in HTML5 such as nav, header, section, aside, and footer
-
more clarification about floats and positioning in CSS
-
forking, cloning, pushing, pulling, commiting, etc. with Git
-
creating a dropdown menu using strictly CSS with no divs or lists
-
learning about different workflows and how they fluctuate based on company/development team size
-
BIG CONCEPT FOR THE FUTURE:
responsive design using percentages and viewport widths and heights to allow fluidity
Overall, I am definitely excited for the next 23 weeks, and look forward to progressing into new territory. I haven't run into any concepts (
so far) that are too foreign to grasp, but I know that I surely will at some point. I have enjoyed getting to know everyone in class and I'm also eager to see how much everyone else will progress. Based on this first week, it seems like we will learn incredibly valuable information.
USEFUL LINKS:
Explain Shell,
typing.io,
TypeRacer,
Mozilla Developer Network,
Wireframe.cc
WEEK 2: Intermediate HTML and CSS, Intro to JavaScript
Friday | November 6, 2015
The second week in the Full Stack program included our introduction to JavaScript and practice with HTML and CSS using wireframe mockups. We learned about CSS normalizers and resets and were introduced to the basic syntax and usage of JavaScript. Some more notable topics from this week included:
-
the power and reasoning behind semantic HTML and overall semantic practices in programming
-
arrays and objects and how to traverse and access deeply nested objects
-
CSS frameworks
-
using built in methods of objects
-
BIG CONCEPT FOR THE FUTURE:
Use the Pomodoro Technique as discussed in Brandon's lightning talk. It works!
This week was a great introduction to the meat of this course and I am very excited for what lies ahead. The lessons have been going awesome and being in class with a room full of thinkers and problem solvers has been great. Looking forward to next week!
USEFUL LINKS:
CodePen,
Code Wars,
Eloquent JavaScript,
JavaScript for Cats,
Git Hub
WEEK 3: Intro to the DOM, Bootstrap, and Functions, Functions, Functions
Friday | November 13, 2015
This week was full of new topics and included a great intro to navigating and using the DOM as well as Twitter Bootstrap. We got plenty of practice with higher-order functions and we solidified the concepts from the week with our Crush Code assignment to make a simple pixel art program. My favorite topics this week were:
-
learning about the built in methods of objects and functions
-
using the DOM to create, manipulate, and navigate through the various nodes and elements in the DOM
-
the power of higher-order functions, closure, and callbacks
-
the intricacies of UI design with Galvanize member, Jochen Wolters
-
JavaScript events and event handlers
-
BIG CONCEPT FOR THE FUTURE:
Twitter Bootstrap is amazing! Using the grid system and built in styles, mocking up/building projects takes half the time.
The topics from this week were incredibly powerful and informative. I really enjoyed learning about Bootstrap and look forward to more lessons about the interaction of all the topics we've covered so far. It's really incredible to see the multiple ways that developers solve problems.
USEFUL LINKS:
Fill Murray,
Place Cage,
Twitter Bootstrap,
You don't know JS
WEEK 4: jQuery, AJAX, Agile Development, and HTML Forms
Friday | November 20, 2015
Many of the topics covered this week seem like incredibly useful and powerful tools to continue learning about. We discussed an Agile development workflow and practiced using all the various input types and their various usages. Our first day to work in class on our personal frontend projects was today and everyone seems to have great ideas. The most useful lessons we discussed this week included:
-
using asynchronous code to perform mulitple tasks with AJAX,specifically with the get method
-
the availability of shorter and more semantic syntax with jQuery to navigate the DOM
-
introduction to the usage of a test driven programming environments and the Agile workflow
-
LocalStorage and the options for saving input information in key/value object
-
the benefit of using the Pivotal Tracker to help the development process
-
BIG CONCEPT FOR THE FUTURE:
The possibilities from input values and their connection with AJAX. Their ability to be handled as events to make asynchronous calls to external API's is one of my favorite topics covered so far in Full Stack.
I am super excited to start on our individual projects and to make our first truly and unique and functional application. Everything we learned this week really helped solidify the previous material. After this week, I feel confident in effectively using all the tools we've gained to start creating and building web apps.
USEFUL LINKS:
jQuery.com,
jQuery API Documentation,
Balsamiq Mockups,
Agile Manifesto,
Programmable Web,
Pivotal Tracker
WEEK 5: Individual Frontend Projects and Presentations
Wednesday | November 25, 2015
This week, shortened for Thanksgiving, was solely devoted to working on our individual projects with presentations taking place this afternoon. Throughout developing my application, I learned so many valuable techniques and processes for communicating with API’s and going through the full development process was also educational. I am excited to have finished my first project and really enjoyed seeing the unique ways that others solve coding problems in their own apps. My favorite takeaways from this week were:
-
using the Google Maps API and the availability of their incredibly precise and helpful documentation, the possibilities!
-
former gSchool graduate, Teddi Maull (g7), came and spoke to us about Confidence and Competence in coding
-
the development process for my personal project went very well and I especially enjoyed the simplicity of styling with Bootstrap
-
Google Fonts API = awesome and simple
-
BIG CONCEPT FOR THE FUTURE:
Take Teddi's advice. "When you CRUSH CODE too hard, you can't think. Take breaks." Also, from her husband, Keith Maull, "Accept the fact that what you know
will
change, and don't be afraid of that. Be constantly ready to learn."
This week was definitely intense but I really enjoyed the result and reflecting on the overall process. It was challenging yet fun to combine all the ideas and topics we have covered so far into one application that we can continue to develop and grow.
USEFUL LINKS:
Google Maps API,
Google Fonts,
BreweryDB API,
OpenWeatherMap API,
OMDb API,
Brewify (My first App),
WEEK 6: Intro to OOP and Node.js
Friday | December 4, 2015
The concepts covered this week included an intro to Node and the power of modularized code as well as an introduction to the four pillars of Object Oriented Programming (OOP). Although the material this week was fairly dense and took a couple of days to make sense of, it’s nice to start connecting the frontend concepts we’ve learned so far with some incredibly useful backend practices. The most interesting topics from this week were:
-
grouping objects by similar properties and encapsulating them in functions or object constructors
-
using closure constructors to pass inherited states and behaviors to subsequent children objects
-
abstracting away small details and focusing on larger themes when thinking about grouping objects and functions
-
the ability to override inheritance and assign new implementations of methods for individual objects, or polymorphism
-
Returning interfaces from closure constructors and creating local scope states that the user cannot mutate
-
BIG CONCEPT FOR THE FUTURE:
The ability to use JavaScript on the Command Line with Node.js and access to the huge number of packages available in NPM
It's really amazing how much I have learned over the last month and a half. The big abstract concepts of OOP were really enjoyable to try wrapping my head around, and I'm excited to start employing the constructors we learned about. Once again this week, everyone killed it and took the material in stride. I look forward to next week!
USEFUL LINKS:
Node.js,
Node Documentation,
NPM (Node Package Manager),
Global Biodiversity Information Facility (Taxonomy API)
WEEK 7: OOP, Prototypical Inheritance, Modules, and Intro to MongoDB
Friday | December 11, 2015
We started off the week with some more practice with Object Oriented Programming and learned about the three types of modules we'll work with for now. We learned how to use prototypical inheritance to construct objects and were introduced to the syntax and structure of Mongo DB. The week concluded with a really fun exercise in creating servers and assigning routes that used CRUD operations to mutate a database via url parsing. The most interesting topics from this week were:
-
the four different types of binding for the 'this' keyword: new, explicit, implicit, and regular
-
using modules to help add structure to your code while saving space and time with three types of modules: Core Modules, File Modules, and node_modules
-
creating constructors thats save memory using protoype chains to check for methods and inherited properties
-
CRUD operations (create, read/retrieve, update, delete) with MongoDB and node modules such as http, url, and monk
-
I can now build a full website with completely designed frontend and a backend database that can store information based on user input!
-
building a server that handles routing using Node
-
BIG CONCEPT FOR THE FUTURE:
The Node Package Manager (NPM) has a
ton
of great built in packages that are part of Node and give developers access to a vast amount of time-saving code
This week was especially fun because we are starting to connect what we have learned on the frontend to backend server side processes. It was also really great to watch the live stream of the capstone project presentations for g11 at the Denver Golden Triangle campus. Their projects were incredible and it was encouraging to see essentially where our class will be in a few months. I definitely understood how some of the projects worked but still feel like there's a lot to learn and I couldn't be more excited about that!
USEFUL LINKS:
MongoDB,
Monk Docs,
URL Docs,
File System Docs,
Graphic Design Games
WEEK 8: Intro to Express, SQL/Postgres, Authentication/Authorization, and deploying to Heroku
Friday | December 18, 2015
We were introduced to the Express web framework and the various modules that the Express generator automatically installs. Moving on from MongoDB, we learned about the SQL relational database and how to access a database from the command line or online. We also learned about deploying dynamic apps to Heroku.com and were introduced to the concept of authentication and authorization and started our first official group projects. The most interesting topics covered this week were:
-
using Express to set up a server and routing
-
middleware modules often used with Express such as cookie-parser, body-parser, and cookie-session
-
using bcrypt to hash passwords before inserting into a SQL database and knex to connect with Postgres
-
setting up git branches to deploy to Heroku from the command line
-
basic user authentication from form inputs
-
BIG CONCEPT FOR THE FUTURE:
Authentication and authorization processes are vital to a site's security when user logins are involved. Mastering the ins and outs will be essential.
We learned a lot of useful backend processes this week and now I feel like I can confidently create a functional app with users, fully designed frontend, and database capabilities. It's also exciting to start learning about how to properly authenticate users and provide different access and roles. The Express framework also seems incredibly useful and the generator will be helpful for quickly setting up a server and routing if needed. I'm also looking forward to the process of working on a group project based around Agile development.
USEFUL LINKS:
SQLZoo,
Express,
bcrypt Docs,
KNEX.JS,
Heroku
WEEK 9: Group Projects and Presentations
Wednesday | December 23, 2015
The week concluded with presentations for our group projects centered around Express, auth, and database management. It was a great experience to develop a full app with a small group and I really enjoyed the process. Innmy opinion, some of the more important aspects of the group project were:
-
connecting to a database using a query builder such as knex.js
-
protecting against SQL injections with proper form validation
-
using cookies to track user information and/or sessions
-
authenticating and authorizing users with cookies
-
using the GitHub Feature Branch workflow to ensure all code is version controlled correctly and does not overwrite the code on the master branch
-
BIG CONCEPT FOR THE FUTURE:
communication throughout the development process with everyone involved is essential - our group quickly adapted to each other's strengths and weaknesses by clearly talking to each other often
This project was a great exercise in the Agile development process and I feel like all of us in the group learned a lot from each other and the experience. It is an awesome feeling to know I can create a fully functional Express app. It's also incredibly beneficial to have been introduced to authorization and and I look forward to what we'll learn in 2016 after the break.
USEFUL LINKS:
GPPL Home,
GPPL Home
WEEK 11: Promises, Express Middleware, Sessions, and Cookies
Friday | January 8, 2016
-
-
BIG CONCEPT FOR THE FUTURE:
This project was a great exercise in the Agile development process and I feel like all of us in the group learned a lot from each other and the experience. It is an awesome feeling to know I can create a fully functional Express app. It's also incredibly beneficial to have been introduced to authorization and and I look forward to what we'll learn in 2016 after the break.
USEFUL LINKS:
GPPL Home,
GPPL Home
ES2015: Arrow Functions and Lexical 'this'
Wednesday | February 10, 2016
Today we learned about some of the new syntax and processes available in the next version of JavaScript, ES2015 or ES6. We covered the ins and outs of arrow notation, let and const, object literal declarations, classes, and for-of loops. We also went over how to transpile code from one version, say ES5, to an updated version of JavaScript using Gulp and Babel. Some of the most intriguing aspects of the new arrow notation included:
-
binding of lexical 'this' to an arrow function's parent scope
-
cleaner and more concise syntax
-
single line declarations if function body is only one line
-
BIG CONCEPT FOR THE FUTURE:
using arrow notation as callbacks as in forEach, map, replace, etc. now reads easier in my opinion and allows for more clear code overall
Although ES2015 may not be fully implemented or supported by all JavaScript engines for a few years, I am definitely interested in the new material and look forward to using some of the ES6 processes and syntax. I also want to further explore the possibilities of the Gulp task runner, it seems very powerful.
USEFUL LINKS:
Babel.js,
Gulp.js
Week 23: Capstone Project Reflection
Friday | April 1, 2016
We completed and presented our capstone projects at Hiring Day yesterday and everyone did an amazing job! It was great to see the culmination of two weeks of focus and hard work. I really enjoyed completing my project and feel like I learned a lot through the process. The aspects of the project that went well and some things that could have been improved upon include:
-
Extensive user research and interviews helped focus and make my project what it is. I initially deciding on an idea to try and make a food donation app, and after meeting with a few potential user groups, I quickly found out that composting services are in higher demand and made a successful pivot
-
Estimating how long features and bug fixes will take is hard! As in other projects, it was a great challenge to try and accurately guess how long something would take. It is essential to decision making and focusing on what will and won't make it to deployment
-
Although my project was mostly about social and environmental causes, presenting my project from a business standpoint was well received and I got a lot of good feedback
-
Some of the challenges I encountered were mostly around planning the schema and relations in my database and using Waterline. I realized how important it is to fully comprehend how your data should be stored and related and had to alter the database a couple of times when new features would arise. It was good experience overall, and I feel like I will be able to plan better for next time.
-
BIG CONCEPT FOR THE FUTURE:
Do your research and don't be afraid to pivot. I think that the research and interview aspect of my capstone was the most well received and I really enjoyed doing it as well.
I'm very excited to see where everyone is going to end up as we all start applying for jobs and I'm proud to be a part of the first cohort to make it through the Fort Collins Full Stack Program. I am even more excited to continue learning and diving deeper into web development, user experience, and interface design.
USEFUL LINKS:
Salvage,
Waterline,
Electron