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!

Monday, April 21, 2014

Thank you Coder Camps!

The blog is back! We had a long weekend at Coder Camps and the timing could not have been better. I didn't take the entire three days off from coding and studying but setting asidethe blog, and Visual Studios (for the most part) really helped me to recharge and get ready for phase 2.

Speaking of which, today was the first day of backend development. We dove into C#, Razor, and .Net MVC. Talking about the differences between Javascript and C#  also led us into a discussion about interpreters, compilers, and CLR.

Today was another great example of why a place like Coder Camps is worth the money. Last year I was teaching myself some C# and I learned quite a bit from youtube tutorials and hacking away at my own projects.  But there are so many concepts that you can't fully grasp, or can't understand the importance of without the benefit of an experienced teacher giving you context and direction.

A quick and very simple example - I had seen the term namespace before, but I didn't really understand what I'd do with it. I was able to put together apps that worked just using classes, so what's a namespace good for?  Well I wasn't building web apps back then, and I certainly was not using MVC. Today, when we put a simple MVC app together the benefit (or at least one of them) was obvious from the start.

I doubt there's anything I'll learn at camp that I couldn't have learned on my own from the web and a few good books - but the time saved is tremendous! What I learned in the last three weeks would probably have taken me three months or more of self directed study.  Probably longer as I would have been doing so many things the hard way without knowing there were better methods available.

So thank you, Coder Camps! Without your program my dream of becoming a developer would still be just that, a dream. With you, its fast becoming reality.

Wednesday, April 16, 2014

Obstacles - opportunities in disguise

Tomorrow is the last day of phase 1 at Coder Camps. Here's a very quick video shows (most) everything we covered in the last twelve days:
Today included more Angularjs including factories and customer filters. In the last hour of the day I built up an app that yesterday would have taken me two hours, the day before that three, and last week I probably couldn't have made at all.

On day one, Coder Camps founder David Graham warned us our stress level at camp should be around an 8 (of 10) on a constant basis. The last five to seven days, mine sure has been.  Long nights, lots of coding, lots of learning, frustrating problems, gratifying breakthroughs, copious amounts of caffeine, and not enough sleep.

 And if I had to do it all over again, I wouldn't change a thing.

 Last night I breezed through most of the app I was building, only to get stuck on the last bit of functionality - building a feature where the user can select multiple items from a list and view them side by side in a comparison view.

I spent far more time working on that problem than I had on the entire rest of the build. In the end I had to surrender to the need for sleep, but not before I gained a much better understanding of how MVC controllers work than I had going into the project. I fell asleep thinking of different solutions I could implement the next morning. A couple of them were workable too; even though we learned a more elegant solution using an Angular factory today.

My point is, all that frustration and lost sleep was totally worth it - I learned more about Angular from trying to solve that obstacle than I had from creating two or three successful builds earlier. I can't wait to see what I don't know how to do tomorrow.