After a lot of time and reflection, I decided a while back that self-teaching and personal projects were great and helping a lot, but if I really wanted to become a great, well-rounded programmer I’d have to properly immerse myself in it. As I’m planning to move to the United States, I did a bit of research into development bootcamps, which are several week/month long courses entirely focused on making you ’employable’ as a programmer.
I looked into pretty much every one and finally settled on Dev Bootcamp. I’ll go over my reasoning in depth in another post, but the gist of it is that DBC was one of the first of it’s kind, had a huge number of good testimonials from alumni, and was in a location I was already looking at moving to.
Near the end of February 2014, I submitted my application to Dev Bootcamp. The process was very straightforward, but I still put in a good amount of effort in constructing my answers in order to not stumble on the first hurdle. In the hope of giving others some help of inspiration (but not to encourage plagiarism – so no lies on your application!) to other potentials, I’ve included my responses to the essay questions below:
Please tell us something surprising or amusing that you have discovered.
While learning Java in university I read a book which had a section on Langton’s Ant. This thought experiment describes an ant on an infinite grid of white squares, which follows a few simple rules: if on a white square it will turn right, flip the square to black, and move forward; if on a black square it will turn left, flip the square to black, and move forward. The result of this is a growing apparently chaotic pattern up until about 10,000 steps, at which point the ant will enter a repeating attractor pattern in which it will construct a ‘highway’ off into infinity.
Intrigued by this ’emergent order’, I was curious about what would happen if multiple ants existed in the same universe – would the interaction result in a chaotic cycle, or would new patterns emerge dependent on the type of interaction? At the time I couldn’t find any information on the internet around this, so decided to find out for myself by programming a simulation.
Being barely a month into an Introduction to Java class in my first year in university, I had to do a lot of additional research to be able to implement a decent solution, but after a few evenings hacking away I had something I was very proud of. Prior to running the simulation with multiple ants I fully expected a collision to result in simple chaos – the ants would get stuck in each other’s highways and no predictable pattern would emerge. What instead happened was that when an ant collided with another’s trail, it would fall into a seemingly random pattern for some time, but would always end up in the same emergent order building the same pathways. I discovered other interesting events that I didn’t expect, such as some collisions resulting in an ant ‘using’ another ant’s highway and travelling up and down it before creating another. I would never have discovered any of these fascinating results had I not decided to program my own simulation to see the result for myself.
What is your background with programming?
One of my earliest memories is of sitting in front of the TV and copying in the code listing for a ‘Light Cycles’ game from a book into an ORIC-1, so my background stretches quite far. After discovering I could change the variables to affect the gameplay and, in essence, make my own rules, I was hooked on programming. Throughout my childhood and teenage years I keenly experimented with anything programming-related I could get my hands on: writing text-based adventure games in QBASIC, learning HTML to customise my Geocities site, building a dual-slit experiment simulator in VB6 after learning about it at school.
In university I studied Computer Science and Artificial Intelligence, having gained an interest in the latter after first seeing The Matrix and becoming obsessed with the concept of intelligent machines and simulated realities. Throughout my degree I gained a good amount of experience in a variety of languages, technologies and concepts; from Java, Assembly and Haskell to data mining, operating systems theory and data structures.
Following this, I was accepted in the American Express Technologies graduate scheme, which included a two-year Masters degree in Information Technology for eCommerce and employment as a Project Manager on a variety of web projects, often leading teams of 30+ developers, analysts and testers.
Since this, I have never stopped programming: primarily on projects in my spare time, but fitting it into my job where applicable, or where I can see a task to automate. For example, recently on a project I was required to validate the International Bank Account Number of tens of thousands of merchants – the idea was to outsource to a third party at quite considerable cost, but I took it upon myself to learn the validation rules and implement them in a Ruby program. This resulted in a task that should have taken weeks (including 3rd party engagement) and cost thousands of dollars, to being completed in a quiet afternoon at no cost beyond a few hours of my time.
Why are you applying to Dev Bootcamp?
I love programming and have been doing it for as long as I can remember. Armed with a computer, the internet and enough time, I’m *fairly* sure I could program just about anything I set my mind to. However, in my opinion there is a massive difference between being able to program something, and being a really great programmer.
I want to join DevBootcamp to set myself on the path to becoming a great programmer: I want to learn how to write truly elegant code, to have the opportunity to learn from people far more experienced than I, to take the journey with a group of equally motivated like-minded individuals and, hopefully, to get the chance to help some of them along the way.
What do you like about our website and what can we do better?
Overall I think DevBootcamp.com is a great site with a very clear message from the outset. The entire production, from the website itself to the photos and videos, are very high quality. However, I tend to believe that constructive criticism is far more valuable than praise, so I have done my best to outline the areas I feel could be improved below.
-In intro video, no closed captioning available for hard-of-hearing users
-HTML5 version of intro video does not play correctly: switching to HTML5 causes audio issues, reloading page and attempting to play starts audio but not video (Chrome 32.0.1700.107, Mac OS X 10.8.5)
-Clicking on a teacher photo opens a lightbox, but page position does not move to center the lightbox (i.e. lightbox opens off-page depending on browser height and photo selected)
-Quotes from articles (bottom of page) should link to articles themselves
-Footer format varies between pages
-No question index or easy way to find a specific question/answer beyond scanning through entire page, though this design is arguably more aesthetically pleasing
-Spelling error: “prepares students for dynamic careers as programers” should be ‘programmers’
-Would be interested to read more about what companies alumni have joined since completing DevBootcamp and in what roles