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!

Saturday, April 26, 2014

“Whether you think you can, or you think you can't--you're right.”

Time for another update from Coder Camps!

To recap, this week we've been focused on server side programing, using C# to create MVP apps. For the first few days we could only send information to the browser. Then we learned (all over again) how to get information back from the user, but we had nowhere to store it. Refresh the screen; or just navigate to a different page on the same website and the info was gone. Yesterday we learned about Singletons - which can sort of serve as a way to preserve state, and therefore retain the user's info. But even that is still a temporary measure. Next week, with SQL I get full functionality back!

Aside from the frustration that came from not having all the cool frontend tools I'd learned about available to me, it was a great week. I learned about the differences between how frontend and backend programing work, more about the MVC concept, and so much more. I hit some personal limits in terms of my endurance (aka my ability to go without proper sleep) and adjusted accordingly. Despite all the learning I've done, this is just a drop in the ocean of what's out there to know and understand.

You can look at a fact like that in two ways - you could be daunted by the vast size of the unknown, or you could be excited by it. More than anything else, I think it's which of these attitudes a person adopts that determines their success in becoming a developer. Coder Camps has reinforced my belief in my own ability to learn and grow. And with that ability, theres no problem I can't solve in time.

There was a quote on a door in the old Coder Camps office:

“Whether you think you can, or you think you can't--you're right.” 
― Henry Ford


This is a very true thing.

Wednesday, April 23, 2014

The Halfway Point

I'm now officially past the halfway point at Coder Camps! At least for the main 9 week segment. After that I may be staying for the optional 3 week Masters program to work on a personal project.

The first three weeks was front end focused, learning Javascript, Angular and how to use AJAX calls and API's to perform CRUD operations (Create, Read, Update, and Delete) to a remote Nosql database.

This week and the next two we're back-end focused, using C# and a SQL database. We're working with Visual Studios and MVC 5, we'll also be incorporating Entity Framework.

After this phase is over my troop will spend three weeks working on a real-world App. At that point I decide whether to stay an additional three weeks to work on a personal project. I've got several ideas for projects, but honestly, it will come down to where I'm at in my job search.

I've already acquired a huge amount of knowledge; with even more still to come. Every day I create multiple apps and I spend at least ten hours either coding, learning to code, or learning best practices. In the last ten days I've entered into a constant state of semi-exhaustion.

Eat. Sleep. Code. That's the Coder Camps credo. What they don't tell you is that you may also dream about coding - which I've been doing lately. So it's really been Eat. Code. Code.

There is nothing more frustrating than dreaming about solving a coding problem. You feel like you are working hard, but its a dream so it really makes no sense and you never get anywhere. Still, it means my brain is working hard to incorporate all this new information, so I'll take it.

At the end of this experience I'll have spent 700+ hours dedicated to programing.  Will I be an expert? By no means. Will I have acquired many in-demand and job-applicable skills? Absolutely. Will I still have a lot to learn? Oh my, yes. Will I know how to learn what I don't know? You had better believe it!