Ronen Ackerman @ App Academy

W2D3: More Chess

Fixed our stalemate bug - turned out to be a bug with the pawn movement actually. Added save/load using the same crafty method me and Will used in minesweeper where there is only one save file that contains a serialized hash of save state names as keys and serialized games as values. Also set up a bunch of error raising and rescuing which is awesome now that I understand it. Ended up adding castling as well.

Tomorrow is the first solo day. Interested to see what its like to work on a larger project alone for the first time. Also had some free time today so I began reading about TDD. Seems like a lot of people have different opinions on how TDD fits into startups and what its net effect on productivity is. Looking forward to give it a shot.

W2D2: Chess

Inheritance! And stuff. We figured out how to make all the pieces (except for the pawn) move with one method and a couple parameters which was awesome. Chess was supposed to take two days but we’re almost done. Just have to set up error handling and prettify the board.

Aaron (Hi Aaron!) said we’re ahead of where his class was and we might be able to learn extra web stuff which is really exciting. He showed us his capstone project today which was so cool. Absolutely can’t wait till we get to the web material.

W2D1: Minesweeper

Got a ton done today! Will and I finished our first version of minesweeper really quickly so we had time to refactor it and add an AI that (kinda badly) plays.

We went back and did some problems from last week that we missed. We fixed out maze solver, which now uses a move free and actually works in any scenario. We also solved the eight queens problem after some reading and thinking. Chess should be a fun challenge tomorrow.

Day 5: Trees

Learned about tree data structures today. Build our own Node class and applied it. After learning about how breadth first and depth first search works, the word chains algorithm from earlier in the week makes much more sense.

Wrote a program that finds the paths a knight can take from point A to B. Tic Tac Toe AI that uses a tree of possible moves to make decisions is up next. Couldn’t finish in class but I have the weekend to get busy >:)

Second assessment on monday! Practice problems were a breeze so I should be okay.

Looking forward to my first weekend in SF!

Day 4: Hangman

Two main projects today: mastermind and hangman. I feel like I’m really getting a grip of object orientation. Also getting better at recognized when code needs to be brown down into submethods. Going through hangman with Ned and making and getting feedback on each method was really helpful.

Hangman took up most of the day but we finished an hour early and I spent some time reading ahead about git.

Ned emphasized that we have to ask lots of questions to be successful. Gonna make sure I keep doing that.

Day 3: Recession & Blocks

Practiced using blocks by rewriting some of rubys cool array methods (each, sort, inject). Was a great was to further understand both concepts.

Recursion was much harder. First time I’ve been truly stuck on a problem so far. I just can’t wrap my head around how to pass the items along. A lot of the programs written today were just translating algorithms I wasn’t expected to be able to generate, which was less fun. Ned said recession is always one of the hardest days though.

Went home and did the XML generator project which introduced me to method_missing (which is really cool) and let me play around with blocks and splats. Tmrw is a bunch of projects which should be exciting.

Day 2: Coding style, I/O & Classes

Some great readings today about coding style and method decomposition. Learned about options hashes which seem like they are going to be really useful.

Had a lot of fun working with classes to make a Tic Tac Toe game. Tried to get a little too fancy with procs and Heather said not to bother, we’d get to it tomorrow. Also built a little command line twitter client!

I figured out the Bay Bridge is 3 minutes away from the office and am totally going to have lunch there all the time.

Day 1: Primitive Ruby Types & Debugging

Most of the work today was based on stuff from the prep work so nothing was too difficult. We reviewed Arrays, Hashs, Strings, Enumerables and Objects.

Debugging is something that I feel like I’ve never been able to properly do on my own. We read about pry and debugger gems today. They didn’t seem that much better than the way I had been doing things in the past but hopefully when I get a chance to use them they prove me wrong.

Also learned a briefly about how turn ruby code into a script and about conditional execution of test code with $PROGRAM_NAME == __FILE__. 

I’ve become very comfortable with basic stuff in ruby and I find myself starting to think more about how to structure my program clearly rather than how to make it work. Pair programming is very helpful for that too, which has been awesome so far.

Tired as hell right now and its not even 11:40 which is actually really awesome. Back to work nice and early tmrw morning!