How to Launch a Stock Exchange
Week Three at Enspiral Dev Academy
I did the Stuff quiz this morning scoring an abysmal three. Shouldn’t I have statistically done better than that just by choosing all “A”? I didn’t even know who the Crusaders played this weekend. How can I call myself a Cantabrian?
There was some restoration of my ego in not knowing Zac Effron’s High School Musical Characters name (Troy for anyone else in the dark). Finer details aside, the point I’m trying to make is the vast disconnect I now have with the world. I feel my poor performance in a current affairs (I use that term very leniently and mostly because I flat with a Fairfax employee) quiz very indicative of the fact I’m immersed in everything tech and have no time for anything else.
I knew what I was signing up for, but it’s extremely obvious now that I had never experienced anything so all encompassing to draw upon, so that my perceived version of what EDA would be like was a gross underestimation of reality. That said I love it.
The week kicked off with everyone’s favourite SQL! Who doesn’t love SQL? Let me find out for you…
SELECT * FROM programming_world WHERE Sane = "true"
I’m a bit harsh on a stabilizing pillar of the database world, I guess I’ve just been spoilt by the intelligible syntax of the master language that is Ruby and have withdrawals when I have to code in anything but. I’ve now been exposed to how necessary SQL is, and although we’ve moved largely past the point of direct contact with it, I have an appreciation and understanding of it’s power and importance - So I’ve got that going for me, which is nice.
Strangely enough I actually enjoyed devising the schema by visually representing complex relationships within a database. It helped me get my head around how to best access information when the time came to call upon it. I see value in this process and even if Active Record makes migrating a cinch, I’ll still implement this tool.
ORMs & Active Record
Tuesday saw the step up from SQL when we were introduced to the complex beast that is an ORM. We were thrown into the deep end and required to build our own ORM, not a task for the feint of heart. I learnt so much for this exercise. Although a lot of code seemed like it was mutilating the DRY principles it was an invaluable way to comprehend how Ruby talks to the database.
And then we were treated to Active Record (AR) and all the wizardry that it beholds. Without getting into all the nuances that are making me seriously consider calling my first born “Active Record Flutey,” it’s just made my life so much better. That said, I am glad that EDA allowed us the privilege of struggling through ORM & SQL-land so we can appreciate the full beauty of AR.
However AR isn’t without it’s own learning curve. I have learnt to be very carefully in naming files, tables and classes to ensure they conform with AR convention -but if that’s all it demands from me, I’m a happy boot-camper.
This week was the final week of Phase One and with that came the obligatory assessment. When the announcement came that we were getting assessed as few of us shared the same nerves and anticipation based on our current perception of what an assessment was. To me assessments have always been a grade, a rank, a pass or a fail. The EDA assessment however was a bit of coding and a conversation. The coding was to expose my teachers to my current understanding. It wasn’t benchmarked against anyone, it was purely a tool for coaches to personalize my learning experience and get me up to speed in any areas that may be a little weak before moving on to Phase Two. I also thought it was a fantastic way for me to take a quick inventory of strengths and weaknesses and I made a mental list of what needed brushing up.
It’s pretty disappointing that only now, after five years of secondary schooling and a further four of tertiary, for the first time I have found an assessment beneficial to my learning but better late than never.
Friday came around faster than ever and we had our second shot at group projects. This time we weren’t sorted into groups so had to pick our own. This may sound strange but the hardest part of the day may have been dividing the eight of us into two groups of four. On paper that exercise sounds easy but it took us far too long. When we finally did decide on groups we had two awesome ideas (I would have happily worked on either) and eight motivated individuals.
I was a part of team DAX (or Dev Academy Exchange). The idea was simple:
A console line stock exchange simulator.
The day ran really smoothly. We reached our MVP of a DAX that allowed the player to list all stocks, buy a stock, sell a stock, show your portfolio and be faced with the looming end of trading which prompted the running of a very complex algorithm that adjusted share prices according to performance:
PRICEFLUX = 0.8..1.6 new_price = (old_price * rand(PRICEFLUX)).round(2)
After lunch we were able to add some fantastic features that all stock exchanges include, like “all on red” a method that sold everything in your portfolio and calculated how many shares (of the specified share) you can buy and purchases them for you.
Like last week I really enjoyed myself, but perhaps even more this week as a declaration was made at the start of the day that the overarching theme was learning and not shipping a deliverable. This allowed me to slow down and focus on some of the things I new I was weaker in.
With Phase Two starting tomorrow I’ve done a fair bit of reflection this week. It’s become pretty clear that general life has been creeping back in a bit too much, particularly in this last week. With NBA finals in full swing (RIP OKC), friends & family still requiring regular maintenance and a few odd bits also trying to pry me away from my computer screen I’ve had to remind myself of what is important at this time. I’ve re-cleared my schedule to ensure I can focus solely on EDA to ensure I get the most out of the experience.
Phase Two is renowned for being the hardest of all three at Dev Bootcamp so I’m a bit apprehensive about Monday. This weekend I wanted to dedicate a bit of time to look forward but I just had so much catch up to do it was impossible. To me having stable foundations to build on was prioritized ahead of making next weeks workload a bit lighter, or at least less of a surprise.