Building A Coding Bootcamp

Wow what a crazy few weeks! Out of no where I took the position of Atlanta Community Manager for The New York Code + Design Academy. It’s a great opportunity to build something special here in Atlanta. You can find us at 3101 Towercreek Parkway, Atlanta GA 30339 Suite 700.

The task is a huge responsibility. Hiring people, getting the word out, making sure our students are set up for success. My coding has taken a huge dive so I decided to start a series of daily Katas to keep up my skills.

 

Hope it works out.

Advertisements
Building A Coding Bootcamp

Manheim, CSS Style Injection & Apprenticeships

Most of us know very little about the Dealer Auction Company Manheim. But, they are doing a great job promoting innovation not only for them & Cox (their parent company) but also the development community as a whole in Atlanta. I was impressed with their blending of professional development and partnership with Atlanta Fullstack. “As always this blog is more for my sanity than you.”

 

manheim_logo_eu

Style Injection

React‘s use of JSX a format that through transpilers such as Babel has allowed us to embedded our HTML into our JavaScript has opened the doors to even more componentization in our apps. Now, the idea is slowly gaining traction to also place our CSS in components as well. (You can find a link to the presentation here). I like the idea of continuing to build components (when you can) that are compartmentalized with all of the pieces of the puzzle in one place (as long as that puzzle is nice and simple). A few frameworks mentioned were:

RADIUM

JSS

CSSX

 

A HUGE Company Building An Apprenticeship Program

I think it is awesome that a large company is thinking about developing talent rather than hunting it down. It makes sense for Manheim, they are a Rails organization (I think) which means (and I’m stereotyping) that many of the potential developers they are going to attract are not from a traditional CS background (I think of bootcamps), it allows them to cultivate quality talent on a trial basis, it takes HR out of the equation. I could not find a link to their fall program but here is one to this summers application.

Manheim, CSS Style Injection & Apprenticeships

Software Craftsman Atlanta Meetup Recap

Enjoyed my first meeting of Software Craftsman Atlanta at Greater Sum. I was a great experience to step into a group of varying levels of talent that wanted to work together on making things. “As always this is probably more for my sanity than your learning”.

Software Craftsman has a great format starting with “Lightning Talks” where anyone can get up and speak for a few minutes. It was a quiet room so I jumped up and spoke about ES6 Generators which are functions that allow for the pausing and restarting. They can be really valuable in controlling the flow of data.

software-craftsmanship-and-agile-code-games-8-638

 

I was impressed by a few coding camp students who stepped out after 8 hours of class to attend. That says a lot about them.

We spent a few minutes digging into Clean Code by Robert C. Martin, they are covering a few chapters every month. It was a good conversation given the diverse language experiences of the groups (C#, Java, JavaScript, Ruby, Clojure) especially since the talk was on Concurrency which is a less understood concept in JavaScript. Here is a LINK to Kyle Simpson’s 3 Part series on it.

For the last hour we grouped up and did mob coding on the “BOWLING” kata. A big focus with this group is on Test Driven Development (TDD), which I have not done much of but as I do I can really see the value. I enjoyed it and I am going to continue to refactor my code and attempt to apply the idea to different design patterns as practice.

Software Craftsman Atlanta Meetup Recap

JAVASCRIPT FUNCTIONS HOIST AT SAME LEVEL?

I’m enjoying the work that Kyle Simpson has done on understanding how the compiler (yes, he says JavaScript is a compiled language not an interpreted one) declares and hoists functions and values. A cool thing about it is that functions do not hoist in a stacked way, they hoist in a mutual way and he has an awesome example to prove it. “As always this is more for my sanity than yours”.

I have a huge goal of understanding JavaScript better. Digging deep into it is really helping my confidence and understanding of larger concepts. “Every thing below is my interpretation and you should do your own research”.

First there is a difference between function declarations (statements) and function expressions.

function b(){}   //function DECLARATION(statement)

var a = function(){}   //the left is a variable DECLARATION, the right is a function EXPRESSION

The code below is a great example the start with. Hoisting is really something we made up to explain a complex feature that the Engine executes. But, at the running of this code the engine will run all the way through the code identifying all DECLARATIONS and assign them positions in memory then, during execution the engine will run through the code line by line assigning values.

Screen Shot 2016-05-25 at 2.41.20 PM

So the above code basically (how we see it) runs like below:

Screen Shot 2016-05-25 at 2.46.57 PM

“Var a” and “var b” are both declared and set with a value of undefined (yes it’s a value). Then the code will run line by line. Above you can see that “a” is set to “b” while “b = undefined”, then “b” is set to “2”, “a” when logged is still “undefined”.

Now, function declarations (some call them statements) are hoisted ABOVE variables when declared and function expressions are not hoisted. Simpson talks about the LEFT of EQUALS is Declared at compile and the RIGHT is Assigned at execution.

Screen Shot 2016-05-25 at 4.07.43 PM

Above code basically hoists (how we see it) like the code below.

Screen Shot 2016-05-25 at 4.10.03 PM

From what we know about how variables hoist we would think that functions would hoist in the same manner. A function declaration (statement) hoisted below the above function declaration (statement) should not be able to be called.

Screen Shot 2016-05-25 at 4.19.16 PM

Simpson argues that if this language was a truly interpreted language that read line for line then the above would not work. Functions declarations (statements) are actually hoisted at a “MUTUAL LEVEL”.

Screen Shot 2016-05-25 at 4.22.40 PM

He proves this with a Computer Science concept called Mutual Recursion, where multiple functions are calling each other. PS. sorry if you read the link and now your brain hurts!

Here is his example (the code works fine):

Screen Shot 2016-05-25 at 4.26.53 PM

The answer should be 39. I worked the problem out free hand below.

Screen Shot 2016-05-25 at 4.46.32 PM

a() is checking for completion (foo > 20) and returns a call to b() while adding +2 to foo.

b() is returning a call to c() and adding + 1 to a stack that will grow due to closure

c() is calling a() and passing foo * 2

after 3 rounds a checks that foo(36) > 20 and returns foo which in turn will grab the b stack (3) “that b stack is sitting in memory I think due to closure, I need to do more research”

a(36) + b(3) = 39

 

*Side note: this might also explain why primitive variables passing to other variables are copies. eg “a = 5;”, “b = a”, “a = 1”, “log b & log a”, “a=1”, “b = 5”. Where as “function a () {return ‘car’}”, “var b = a;”– these are pointing at the same function, so if function a is changed then function b is changed. I need to do more digging.

Kyle talks about this compiler in much more detail, talking about how the compiler looks at Left Hand Statements vs Right Hand Statements among other concepts. It’s really good stuff and he has a course on Plural Sight which goes into a lot of depth.

JAVASCRIPT FUNCTIONS HOIST AT SAME LEVEL?

Notes From ReactATL Meetup

logo_og

Great time tonight at ReactATL Meetup hosted by Andrew Smith and Taggart Bowen-Gaddy. It was an open format where people could come in with questions or examples and just talk code. “Like always this is more for my sanity than yours”.

Andrew, talked about dealing with Redux and components the problems that come from multiple components using the same state. He talked about using Reselect and NuclearJS to deal with this with the creation of selectors. I have to be honest I need to dig into it to understand it but, both seem to have good documentation (I’ll add to the list of 45 other libraries I need to look at).

Taggart talked about FalcorJS, which is Netflix’s answer to data management between the server and client built for React.  He showed a proof of concept he has been working on for his team. It is basically a mutable  JSON file. You basically send out a call for a defined box and the server will work to fetch that data and manipulate what is in the box. This box can cache to keep from having to continuously update the whole file. I thought about the idea of “closures” for JSON data transfers (note: I could be completely wrong about this). He also talked in Redux about not using a true Action Generator file and instead holding the Actions in the Components to keep from experiencing errors due to poorly called or worded dispatches.

I showed off some simple React examples I have run up. They were good examples for the guys who had not seen Redux. You can access them below and compared the differences in main components between regular React and React Redux:

Weather App

Timer App,

Todo App w/ Redux (note: I am adding authentication and moving this over to Firebase so if you notice a functionality issue, sorry)

PS. I think Google’s Firebase is VOODOO. You can find the source code for these projects on my GitHub.

Notes From ReactATL Meetup

Journal of an Apprentice Developer

After connecting with a company here in Atlanta I was sent a set of corporate principles and resources. This was so that I could better understand who they are and what they represent. The resources are great focusing on two great works Clean Coders and Apprentice Patterns.

Inside of Apprentice Patterns was a gold mine if you are interested in learning about the life of a new developer. In chapter 2 (or 3?) there is a link to an old blog by a developer named Jake Scruggs where he details his experience in his first position (YOU CAN FIND IT HERE) at Object Mentor. I realize I am supposed to be reading the other two pieces of work but this is intriguing to dig into.

On a side note I had seen a excerpt from Apprentice Patterns in a tweet from Toby Ho who is a teacher for Digital Crafts and had already placed it on my reading list. I’ve read Clean Code and I am sure Clean Coders will be great.

 

Journal of an Apprentice Developer

Braving the DOM

I screwed up……. “As always this blog is more for me than you”. I get that lots of people can be great front-end devs and never really get outside of the frameworks and libraries that are so popular. I am not that guy, I am never confident unless I understand how things work. I’ve been digging through Anthony Alicea and Kyle Simpsons works on JavaSript and now I am starting to tackle the DOM with Cody Lindley’s DOM Enlightenment.

51s5orpiwgl-_sx258_bo1204203200_

DOM Enlightenment

Cody Lindley (so the reviews say) writes the best book focused on understanding the front end environment. It’s intimidating taking my understanding of JavaScript (it’s getting way deeper) and applying it to the manipulation of the DOM. Many people will never get outside of jQuery etc… but as I’ve dug into jQuery’s source code (which is actually funnish) I am sold of better understanding how to build with the clay of the DOM.

Braving the DOM