Coding Challenges to prove you can write iOS code/apps

Over the last couple of days, I have been in touch with a couple of start-ups in Melbourne and at the end of the discussion, I was asked if I would like to try/attempt a coding challenge. Something that would not take much of my time and be a conversation starter. This is all fine and the tasks are also not very involved however, some of them are enough to be considered a complete app

The Good

This is a good way to know if someone can really develop or not. In the past I have recruited developers while as the IT Manager for BMW Dealerships. The problem is that you are flooded with applications and while each one is raring to get the position, the issue is the thinking process. So this coding bit is good to test, A. if someone can actually do something, B. Have an insight on the way they do things and C. can they work under pressure (after all they want this code back asap).

The Bad

Not everything is good with the process. In many cases specially when the initial team reviewing the candidates are non-technical people or in some cases disgruntled developers or wannabe developers. They would be unable to make a rational decision. Around 1996, when I was first looking for people to join my team, I had to submit a request to the group's HR manager for 3 developers. It was all approved and sanctioned by the Management. This process however was taking a long time and not getting anywhere, the reason being firstly about 20 years ago technology was different and exposure was also different. The criteria that he used to measure the suitability of a developer almost brought in people that would fail to deliver technically. So I whipped up a small 20 question multiple-choice questionnaire in VB that each would answer and when they finished, if they did not make a 75-80% mark, they would not be interviewed. This was not a very good indicator but it ensured that the ones that got through were either lucky or knew their stuff. A fresh developer can be imparted with tips and techniques, but they need to have a way of logical thinking and problem solving.

The Ugly

The bit that is not very good in this process and often used by some is to ask a question regarding their current project and attempt to get some resolutions (bug fix and consulting advice for free). This I believe is a deterrent for many developers that have also been contractors. To put it into financial perspective, an organisation can get some code contracted for an application say this costs them about 10-20 hours, say at an even rate of $100/Hour, that is $1000-2000, nothing compared to what they pay their own in-house developers to try and get past issues that they are unable to resolve. To top that, they could use the code in their own projects or some techniques that you may have demonstrated that their developers might not be aware of or use. A couple fo years ago, this was used quite extensively while hiring Graphic Artists, they were tasked with designing a Logo and the prize money was $50/100. They would get a heap of ideas and pay peanuts for the best idea, which if they contracted through their own AD agency, would be exponentially high in comparison.

So are Code challenges bad?

Te simplest and shortest answer to this is the atomic energy can be used for both positive and negative purposes. Similarly Coding challenges if misused by the organisations can be a bad thing, which will deter future developers from considering it. I have seen this with many early bloggers who wrote and shared code for others to learn and some individuals would compile and put that code on the app store for a price. Sample code compiled and sole is one of the most common thing. The sample code from my own Book, Learn Lua for iOS Game Development (http://www.apress.com/9781430246626) was compiled and put up on the app store.

The good thing that arises from these challenges are they also make you think and derive solutions. When you look at a problem, at least for me, I can deconstruct it and come up with a quick and easy way to solve the issue. Then when you get into the coding part, you can improvise and make it modular and extensible.

Source Code

Many of my posts stopped posting code other than little snippets because when I was writing the books, I had to use code / text that was never published before (allowing a small %age) as it becomes part of the publication. I will post these little snippets in a future blog in the coming weeks. I am currently in Melbourne and away from my desk (iMac) and hence a bit slow on posts and stuff. Hope it can help a couple of developers that might be interested in creating applications in Swift. The difference between using Swift and Objective-C to achieve the same is phenomenal. You can have a full application in fewer lines of code and with better (subjective, depends on who you talk to) code handling techniques.

If you are interested in Swift, you can head over to my swift blog (where I would post the Swift code / Project) which is found at http://swift.oz-apps.com and my GitHub account which is at https://github.com/jayantvarma. Here's to the coming week and code samples. Maybe also some rework on the code to migrate it to Swift 2.0 and include the 2.0 features.


Comments

Popular Posts