Friday, May 30, 2014

Last day at Coder Camps

It had to happen; today is my last day at Coder Camps. Yesterday I gave a hand-off presentation to the next troop that will be taking over work on the App we worked on during the group project phase. Today I demo the App to the rest of the school.

I also added a new portfolio project yesterday - Conway's Game of Life. You can see my whole portfolio here.

My time is divided into three areas - looking for work, working on my portfolio, and learning new skills. The next few days will be a break from that routine as I drive back across the country from Texas back home to Washington.

Coder Camps was an amazing experience that taught me a great deal about web development, equipped me with the knowledge to use today's most in-demand technologies, and gave me the opportunity to work on real world projects in a team environment. Importantly, Coder Camps also gave me a solid foundation on which I can continue to build.

The Coder Camps experience isn't about copying code, or just following a template. Its about mastering the basics, then learning by doing, thinking, planning, testing, and doing some more! Now, if I want to learn a new framework like knockoutJS I've got the confidence and know-how to just dive into the documentation and figure it out. Thanks Coder Camps!

Monday, May 19, 2014

Week 8 is underway

It's week 8 at Coder Camps which means I'm in the middle of our group project. We're working on getting a beta version of the app ready this week, and possibly as soon as tomorrow. Saturday I participated in a Hack-a-thon at Coder Camps, where I built out the backend of an online feedback app. I also wrote a short guide on setting up GitHub Pages this weekend.

The group project is going well. In the last 8 days we've studied the code, the business requirements, and the wireframes. We've been introduced to Team Foundation Server for version control and project management. We identified a list of bugs in the code passed to us, and resolved half of them. We've also made significant progress on adding more details needed for the beta goals to be considered met. Today I worked on making sure all forms on the page implemented solid client-side validation. I also re-wrote some code so that users will now be prevented from sending duplicate AJAX calls to the API when submit buttons are clicked multiple times. Good day :)

The Hack-a-thon was a lot of fun. I worked on a five person team to create an app that would allow multiple users to log in at once, create feedback suggestions and comments, with voting, and some administrative functions. We used jQuery, KnockoutJS, C# MVC, and SQL. I got to write the backend Web API, repositories, a database seeder, and several of the POCO classes. This was the first time I'd had the chance to write a Web API top to bottom. We ran into some issues trying to get full CRUD operations going with the client side but resolved them and learned some new things about authentication along the way. All the functionality is not there yet, but we are close. A roommate of mine at the Hack Shack and I are planning to spend some time finishing it this week.

And then last night I put together a little one page guide on hosting content on GitHub using GitHub Pages. I realized today I should add another small section dealing with issues that come up when trying to host a project started as a solution in Visual Studios, so I'll be probably work on updating that later tonight.

That's pretty much everything that's going on right now. Oh, I did see Godzilla yesterday. But other than that, its all eat, sleep, code.

Sunday, May 11, 2014

Portfolio Page is Up, Coder Camps Final Exam Done, and Group Project About to Begin

Lest I forget to mention it, I've been working on my portfolio page - more work to be done later today (including adding a few more project links) but its at a stage where I feel I can show it off. Take a look here - lwalden.github.io

Okay, now time for another update from Coder Camps. Last Friday my troop took the final exam covering the full stack. This was the most rigorous exam we've had here, but the hard work, long hours, and quality instruction paid off. I scored 98.96% on the final, bringing my average for all exams up to 98.63%.

Tomorrow we begin working on our group project; which will consume the next three weeks of my life. My group elected me as Team Leader, which is both an honor and quite a responsibility. We'll be working on a real-world application - a Jr. Devs job site. The project has been worked on by four separate troops before us. With luck my troop will be the one to finish the project and I'll be able to see the site go live on the internet when I graduate from Coder Camps.

We will be starting with several days of just reading through the existing code and documentation, understanding the business requirements, and planning our next steps. We'll be fixing known bugs, finding new ones, completing some functionality that the previous troop started on, and also breaking new ground: building the site's Admin tools.

The App is a single page application built on Angular and MVC 5 and a SQL database. If working on something like this sounds intimidating, just remember, at the start of camp I had never touched any of those tools. And now I can't wait to dive in.

Tuesday, May 6, 2014

A Drop in the Bucket.

Coder Camps update time.

This week my class is being led by David Graham, the founder of Coder Camps. All my instructors here have been excellent and David is no exception. Yesterday we focused on Interfaces and Adaptors / Repos, as well as covering things like N-Tier architecture, reviewing access modifiers, assemblies, oh and lest I forget, we also learned about Extensions!

Despite fifteen years of experience in software development, David has said that, if all programming knowledge were the water in an olympic sized swimming pool, he feels like what he knows is about a coffee cup's worth.

And thats why I'm doing this - to get started in a field I care about, am excited by, have a talent for, and that offers me unlimited learning potential in the future.

Thursday, May 1, 2014

Doing it the hard way

Good morning from Pearland, TX. So how have things been going here at Coder Camps this week?  Awesome!

We've been using SQL, Entity Framework and LinQ this week. This has given me access on the backend to functionality I already learned how to use on the frontend. For me, this is actually very exciting. Yes, I'm different, I know.

There's a persistent pattern at Coder Camps - learn it the hard way first, then the easy way. We don't learn JQuery here, we learn how to manipulate the DOM with plain vanilla Javascript.  We don't learn how to query Firebase with their ready-to-go API calls, we how to code out RESTful AJAX calls in Javascript first. With SQL we learned how to do our queries in SQL first, then learned to use LinQ.

The first few weeks of this pattern can be frustrating, especially if you know there's an "easier" way that you just can't touch yet. But there is a method to the madness. Programing goes deep. I won't pretend we're diving all the way down - this course is designed to make you job ready, not to make you an expert on the vast oceans of knowledge that are Computer Science systems, algorithms, and theories.

But we don't just live on the surface either. If all you can do is use JQuery, or use someone else's APIs, then programming must feel a lot like magic. And what do you do when your magic wand breaks? Writing out AJAX calls the long way in Javascript gave me a much better understanding of what happened when the browser communicated with the database. So when I got to use Angular's $resources, I knew what it was doing. Likewise, setting up tables and queries in SQL made using a Code-first approach much more intuitive for me.

There are a lot of different ways to learn to code. Coder Camps won't be where my learning experience ends (it won't ever end, that's one reason why I picked Programing as a career), but its been a great place to start!