The 7 Habits of Highly Effective Aspiring Programmers

I was sitting in front of my Surface, doing absolutely nothing, when I thought I came up with a brilliant idea for a blog post title. After vainly musing to myself about my good fortunes for 30 minutes, I came to another brilliant conclusion. I went to bing to confirm it. Here’s a glimpse of what I saw:

There were more than seven results.Well turns out I’m not the Haruki Murakami of creative titles as I’d like to believe. I’d hate to surrender this perfectly good opportunity to write however, so I’m going to slightly amend my original title and discuss a topic that I am more apt write about. It’s not that bad, because Stephen Covey’s son Sean did the same with his father’s book.

By chance, this is a topic I should be writing about anyway. A lot of younger students who are interested in pursuing a career in software development ask me frequently on what exactly they should do to prepare. Likewise, I get a lot of adults asking me how they can pick up programming (well usually it’s because they want me to build their ‘brilliant’ app idea and I tell them how they can do it themselves) I know that everyone has their own way of learning how to program; I’m personally tempted to just tell people get a copy of Visual Studio and make a calculator, using Stack Overflow to fill in the gaps. Evidently however, there’s no one stop shop to learn programming, even resources like Microsoft Virtual Academy and SO can’t solve all your problems (and please, don’t mention a college degree). If they could, what would be the point for you to become a programmer? The purpose of a programmer isn’t to merely follow instructions, but to create instructions for tasks that we have yet to accomplish.

Thus, it’s with this in mind that I’ve come to suggest certain ideals to aspiring programmers. I don’t think they’re all absolutely necessary. There are legendary programmers who pulled it off without having a mentor, without having a decent computer and without helping anyone else in the process. But can you really name any who pulled it off without following at most, two of these points? I can’t think of any. These recommendations are going to provide you a footing from where to launch yourself in epic world of computer programming. Without further ado, I present the 7 habits of highly effective aspiring programmers.

  1. Procure more mentors
  2. Put your money where your mouth is
  3. Prove yourself (challenge)
  4. Don’t fear the technology
  5. Delve into everything
  6. Mend your Mind, Soul and Body
  7. Programming is just a means and not an end

I know that it might be tempting to look at the list and say “Well golly Mansib, some of these are essential to any career.” That’s definitely true. We’re all doing all of this to some extent already, but it’s a question of what extent. Before you were doing it unconsciously and not actively. Now that you know, hopefully you’ll pull all the stops.

I’ll post a detail analysis of each habit on a period basis. Stay tuned 🙂

CUSEC 2015: Impressions of Companies (Day 1)

I was fortunate enough to be invited to the Canadian University Software Engineering Conference again to present Microsoft’s academic programs. I was only there for about 6 hours today, but I already made lots of friends and connections that I’ll definitely hit up in the near future (no really, especially considering you run across the same people in software all the time). We didn’t have the monkeys this year, or much swag at all for that matter, so the crowd was a lot smaller at the booth this time around (though still substantial).  This gave me the opportunity to go see the other booths with less urgency.

Last year, I was still in CEGEP and didn’t have much experience with professional software development. After having won the Imagine Cup and worked a few software development jobs, I felt confident enough this time around to go peddling my resume to recruiters. I knew I had at the least a presentable CV, as Morgan Stanley had interviewed me a couple months back with a less complete one.

I think it might be more helpful and interesting for my peers to hear about how I dealt with the anxiety of talking to recruiters and giving a good impression, but fuck that. Come ask me in person if you want to hear about that (or shoot me an email). Rather, I’d like to talk about the impressions the companies gave me. It’s only fair that recruiters get a review of how they performed. I know business is supposed to be an unforgiving trade where you only find out if you’re right when the results are delivered months in the future, but I’ll do them a favour so that intern hopefuls might possibly get a better experience than I did (not that mine was bad). Here is a list of companies at CUSEC and what I thought about them.

Microsoft: 

For obvious reasons, I got to talk to Microsoft first (actually, I might have forgotten and this might not have been true). I’ve had the chance to talk to many different people at Microsoft about interning over the last couple of years and I typically get different responses from each of them. Typically, they’re courteous, but they don’t make you feel hopeful about getting the position. I didn’t get any of the “So you worked on X, Y, Z, hmm good job I like that!” that recruiters typically give, which kind of knocked me off my horse. I’m divided on the effectiveness of this. On one hand, it’s being upfront that you’re not guaranteed anything, but on the other, it makes you feel like you’re not particularly impressive as a candidate. In my case, the use of Microsoft Design Principles as inspiration for my resume design went completely unnoticed.

Today’s recruiter was no different in regards to this behaviour. Actually, the recruiter just pointed out the flaws with my resume and what she would have changed (so more straightcut than usual). She suggested moving the education portion of the resume to the front, which was a fair point and that I should remove the portions where I talk about being a restaurant manager and owner. That kind of miffed me, as I kind of value my restaurant experience more than most other experiences. I think it speaks more about my character than short duration activities that I might just have gotten involved with recently.

I had a cover letter and the recruiter mentioned that they honestly seldom bothered reading them. This contradicted what my friend at Microsoft told me, which was that one of the things his interviewers said that impressed them about him was that he was the only person to write a letter.

I loved her comment about what your resume should have. “I want to see a resume that’s badass! Like you’re 21st on the ACM globally, that’s badass!” That’s telling it like it is. That’s what a top tier company aspires to hire, a fucking badass. Someone who’s a boss at some domain or another. Someone who’s indispensable on a team because he just does something better than anyone else. Someone who doesn’t see his other coworkers and feel underachieving. There’s room for all around competent people (who don’t particularly excel at any task), but he just better be competent at everything and very nice to work with.

Microsoft also holds the particularity (at least in Canada and in my experience) of having dedicated recruiters come to career fairs and evangelism events and market themselves as such. These people work in HR and don’t usually have development experience. This is nice because the recruiters really know the drill on the internship process, but also sucks because they tend to know less about how working at Microsoft is actually like (specifically the technical details about the job). They usually have some evangelists or developers on hand, but this often fails to compensate, because you usually only get to talk to one person at a career fair.

Overall Score: B+ Professional, well done, but failed to excite me.

Ubisoft:

We got off to a good start… That’s a plus I guess. I was made to sit down, because the recruiter injured her knee and also wanted to sit down and be lazy. That was a good tactic. I’ve never been asked to sit down by a recruiter and that really made an impression. She put my resume on the desk and we went on from there. She started circling a bunch of things in my technical skills section, such as “C#”, “WPF” and “C++” while groaning approvingly. That was initially encouraging. She didn’t look at my video game project or my experience with Unity or IDEs. At the time I had a weird apprehension that I couldn’t put my figure on. I know what it is now. She’s a recruiter and not a developer. I don’t know about you, but being judged on your technical aptitude by a non-technical person would leave a sour taste in the mouth of any decent programmers I know (I can guess that the same goes for creative aptitude for designers).

I believe she ended up mentioning the education first thing. She didn’t say much else but then asked me to apply on the website and that all the application stuff was in French so to use a translator (at which point I mentioned I spoke French). This is despite her keeping my CV. I was a bit disappointed to hear that, but I saw the benefit in having two leads in their system (though when a system requires that you be electronically tracked, off the bat, that’s never impressive).

She then proceeded to tell me about uploading my most recent college transcript, which pretty much sent me packing. Seriously, I don’t even need to explain this.

Overall Score: C+ Nice attempt, but felt shallow. Ubisoft has a stereotype as such by many and today it was reinforced.

Amazon:

Amazon is a top tier company so even though I wasn’t particularly in love with the company, I felt compelled to apply.

I figured I used their service more or less everyday, so at least they were good at whatever they do, which is a particularly inciting (wishing inciteful was a word) reason to work at a company. Also Jeff Bozos and Amazon have a respectable upbringing, which is something that plays into my desire to work at a company. I’d really only be interested in working enthusiastically for a company with epic founders and a good history. Desks made out of doors speaks more than any recruitment pitch.

Amazon was sure to be hounded by many hopefuls, so I was relatively surprised to find a recruiter who was unoccupied. I immediately made my way across the room. Evidently this was too good to be true. If you’re a recruiter, you should always be talking. If you’re not talking, you’re not doing your bloody job. You’re failing to recruit. If people don’t come talk to you, you’re the person to fix that. Heck, grab kids off the street. I know this sounds harsh, but face it, I’m right.

Anyway, so this person wasn’t talking to anyone. This should have raised flags then and there. I first said hi and the recruiter’s inability to articulate in English threw me off. He asked for my CV and after a few seconds he remarked that it was beautiful and chuckled. This also threw me off guard, but in a nice way. I really like my CV design and it doesn’t often get comments.

He didn’t say much else and I believe he just thanked me for handing my stuff and ended the encounter right there. I felt bad for him, he didn’t seem like he knew what he was there for. This kind of gave him and his company a human quality. I find that often these companies try to present themselves as super professional and ingenious, and that makes me not want to work for them due to insecurity about my skills (even though you will find people from across the spectrum at all software companies).

Aside from this, I have to thank the guy for appreciating my CV design.

Overall Score: C You simply didn’t have the right guy for the job. This suggests your company fails to pay attention to details in regards to non-essential affairs. This is something I value extremely. I do feel that with proper training and indoctrination however, this recruiter could have been much better.

Google:

This is the most peculiar recruiting I’ve seen by any company ever. I really don’t understand what you guys are doing here. I really like Google as a search engine (compared to what’s available), but my admiration for you ends there. Every time I’ve encountered Google in real life (~20 times), they’ve just come off as arrogant beyond their britches. Last year, they just talked amongst themselves and just ditched the conference after a day and a half. This year was not much better.

The first person I talked to (I feel like describing him physically, but that would be unprofessional) literally made me go what the fuck. I had a Microsoft hoodie on and they didn’t seem to understand the joke “that I’ve come to join the dark side”. Ok, so maybe this guy didn’t have a sense of humour, no big deal. I guess times really have changed. I then asked about resumes and recruitment and he said that he had no clue how that stuff works, because he was from the States and this was Canada (despite the fact that every company, including Google will hire for their US office). I then asked about what he did at Google, to which he replied “I can’t talk about it”. Umm.. okay. I then asked about what he could talk about, to which he replied that Gmail was celebrating some anniversary (I don’t know about you, but I don’t celebrate product anniversaries… at best, a video game could be a potential candidate for one). He followed up by saying that Lollipop was just released and that it may or may not have been installed on his phone. He pulled out his phone to spend a few moments deciding what the answer was (initially he said no and then said yes).

At this point I was flustered, so I asked why he was here and he said because he wanted to be, so he asked to be flown here.

Seriously… If you didn’t want to talk to me, then why the fuck did you talk to me?

I let him go and went to talk to another employee, who I typically saw at many Google events in Montreal. I remember her because she ignored my friend a year ago at some Ruby workshop, when he was asking a question.

I started off with resumes. They didn’t collect resumes, period. I don’t care about your HR policy, that is the stupidest shit ever. Why do you come to career fairs and not do resumes??? We all already apply on your bloody website anyway! I nudged her into going over my resume. She went over it and pretty much said it looks fine. Contrary to Microsoft, she said my job descriptions had good detail (specifically the one that mentioned I used Android). I guess she was hoping to see McGill as the education and stopped giving a shit when she didn’t see it (she asked to see the education and then nothing else. To be fair, I’m making quite a judgement). Didn’t get much critique after that.

I asked if I could know what she worked on. She said “Of course! It’s Chrome, it’s open source and you can go see for yourself” […] “I love open source!”  Well, I have to appreciate that. She sounded enthusiastic and any form of enthusiasm is a good sign. Still it didn’t really feel like an answer. I wanted to hear from her what parts she worked on and what challenges were involved. It was more shit she was asking me to google really. I felt like I was wasting her time so I called it quits after this. I just don’t see the point of a recruiter who waits on you to do the talking.

Overall Score: Nan (Not going to give you one) I really don’t even know what to say. You’re lucky your PR and advertising business is killing it right now. You’re clearly doing something right, because you have kids begging to work at your company, despite your attitude.

Khan Academy:

I’m a pretty huge fan of Khan Academy and both my sister and myself use it extensively. I idolize Sal Khan and I was glad to hear that everyone gets to see him on a daily basis. They’re a small team, especially for one reaching out to such a large audience, which is both particularly impressive and an incentive to join. Their career blog is wonderful, so they also had me sold before I met them.

I was a bit underwhelmed when I met them. They felt more like a bunch of kids selling vegetables on the roadside. They were just being really humble. One of the recruiters had a PhD in some math field but I couldn’t tell if she was even out of university. They didn’t use any of the full-of-yourself marketing tactics that other recruiters used. In fact, had I not been sold already, I don’t know whether I would have considered it. For me personally, I really enjoyed this because it gave me a nice view of their mentality. They’re certainly not a for-profit, so it’s natural I guess to see this behaviour.

The recruiter, despite saying that they usually didn’t take resumes in person, ended up taking my resume because he was supposedly fairly impressed. That’s a pretty nice thing to hear from any recruiter and I’d like to believe it was genuine, seeing as how they ran the rest of the gamut.

Overall Score: B Could have been more engaging and outgoing. Seemed to lack some of the social skills of more experienced recruiters. Pretty honest and enjoyable otherwise.

Yelp:

Yelp really impressed me. It’s definitely not a company I had considered working for before today. I first ran into the recruiter at lunch time, along with the CSEC recruiter. The CSEC guy ate quietly and with the intention of not talking. The Yelp guy and I started a discussion about various technical topics. At this point, I had not even thought about applying, it was just small talk. But he really got me liking Yelp. He talked about how it was just a plain old great job. Everything he could hope for. He didn’t show off any programming bravado, but as I started quizzing him deeper into various technologies and software development topics, he showed he really knew his stuff.

Yelp was apparently one of the only companies to visit his small time College (along with Microsoft), which is something that incurred brownie marks for me. I really believe all these companies that profess to be for everyone, should actually reach out to everyone, which Yelp did here. I also talked about outsourcing and he mentioned that only really low level moderation had been outsourced to India and nothing else.

After finishing lunch, I waited until the end of the day to go talk to him again. I got to talk about so many different things with him. This guy really knew his shit. After years, I still don’t have a clear picture of Microsoft and Google’s exact technical needs, but this guy gave me everything, from Yelp’s code reviews to their technical debt. He described everything about their recruitment policies. They’re going to ask you how the Internet works. I personally believe that’s a great question to ask. You’re really only going to get the best advantage over your software if you can optimize them for the underlying protocols and not just the APIs you’ve learned to work with. Some people just learn to do things a certain way, but understanding why is clearly a prerequisite to stellar software.

Overall Score: A To be fair, I got more time with the recruiter than with others, but taking that into account, he still did a job much better than others. He was just really an honest developer and that’s the best kind of recruiter you can muster for such an event.

There were a handful of companies I didn’t talk to for one reason or another. I can’t really grade their recruitment process (other than perhaps saying that they failed to draw my attention) so I will just note observations instead. Some are not mentioned here because you must have been hidden behind a rock.

Genetec: Had a nice demo I think. Was both impressed and turned off by the recruiter last time I talked to one (at a collegiate career fair). He was really aggressive which was both nice and bizarre. They asked you to rate yourself on different tasks and if you picked something like “6.5” or “7-8.5”, they’d just give you the lower number. Same with words. I understand the motive for doing so, but you shouldn’t make this public. You wouldn’t be lying, it would just a be a private judgement like the rest of your evaluation. Overall, they are much better than average.

CAE: These guys were just depressing as fuck. Please get new recruiters that can sell your company and that don’t look depressed as fuck.

IBM: These guys just didn’t show up. Hope you guys are okay. Obviously an F in terms of effectiveness though. The people last year were nice to talk to.

CSEC: These guys try to have some interesting things going on, but they really just creep everyone out. They really need recruiters that aren’t old boring office type people. If you’re going to want to draw people from this crowd, you’re going to need people that exemplify the best personalities and talents of the crowd. Also try to sell the adventure and NSA/CIA mystique.

Shopify: Didn’t visit them and would not be interested in working here. A mac loving fanboy from their company berated Microsoft in a pretty condescending manner at our booth last year and I was just not impressed. It was just kind of like, “why would I ever use the Microsoft platform and what do you guys even do”. Jeez, I’m sorry that nearly all your fucking customers are unfortunate enough to use Windoze. I really have nothing against Apple and love their products (still rocking an iPhone, same one for 5 years), but this guy was just an ass.

Vision Critical: I honestly wouldn’t have remembered you, hadn’t you not been right next to the Microsoft booth and had you not had me wondering who you were for the better half of a day. Not much activity at this booth. Couldn’t tell what your company’s name was or what you guys did (had to check the CUSEC site to find out). Considering you’re a gold sponsor, not sure what you’re getting out of this. If I’m hearing about your company for the first time at a post career fair, then your marketing strategy could use revising.

In retrospection, what makes a good recruiter is someone that comes off as both human and technically competent. If you’re not a techie, your company has instantly made a gaffe in my mind. Not having some elaborate professional behaviour going on also helps. I understand that you get 1000s of resumes, but we also have 1000s of companies to pick from. You want us to have great personalities and we want someone that’s not going to look like some corporate douche when it really matters somewhere down the line of your employment. Some companies clearly needed to brief their employees before sending them here. Even Microsoft could have used a bit of that. Without Susan to guide us like last year, it was definitely not as enthralling of a performance we put on. Also, don’t ask for online CVs. You could suggest that we apply online as well, but we’re at this career fair to apply with you, a face and not your faceless non human company. I’m lucky I get in for free, but I would not return had I been paying the full fee like everyone else.

Guest Post on MSDN 1: How The Imagine Cup Changed My Life and Touched Others

Recently I was asked to make a guest post on the Canadian students MSDN blog about my Imagine Cup experience. The tone is a bit off as I was initially preparing the post for my blog and had to tone it down. In retrospect, I also totally failed to make the intro not awkward. You can find the original post here: http://blogs.msdn.com/b/cdnstudents/archive/2014/06/02/how-the-imagine-cup-changed-my-life-and-touched-others.aspx.

“You’re not declaring it as a global variable, which is why you can’t access it from your main class.” I said to a pretty girl. She switched to another tab on her IDE and started typing up some short methods. “Ah I see, so if I make a public method to return foo, I can use it in my main constructor?” “That’s right.” We spent about another half-hour going through her code before I had to leave for class. “Say, are you free tonight? You know… to help me with some code?” I thought about it for a moment. “Yeah, sure.”

How the Imagine Cup Changed my Life and Touched Others

No one I knew, certainly not myself, believed that I’d actually end up winning. I’m quite honestly surprised that I was able to complete the project at all. Despite the positive outcome, the brunt of the Imagine Cup’s magic had its effects on me during the course of the competition. Not only did it give me a huge boost in terms of technical skills and employability, but it even convinced me to change my field of study.

Image

My mentor Elly and I (along with our mascot, Soju the cat). I’m currently studying Health Science at Marianopolis College & Elly is studying Social Science with a Law concentration, also at Marianopolis.

The project I submitted was titled Mass Assaying Relaying Inquiring Survey Apparatus, or MARISA. It’s essentially a framework that permits various sensors (such as cameras, microphones, Kinects, etc.) to collect data from a disaster zone (i.e. tsunami or earthquake) and relay it to the cloud, where algorithms comb through the data and delegate optimized tasks to rescue authorities. It’s an ambitious project no doubt, but right now it’s still just a Kinect doing cool tricks with some algorithms.

I entered this in the World Citizenship category. While the project had some crossover with the Innovation category, after scrutinizing the judging criteria, I ultimately felt that it would have more success under World Citizenship. For those of you not familiar with the Imagine Cup, World Citizenship is one of the three major categories. The goal is to make the world a better place by tackling a social or environmental issue of your choosing; mine being casualties from natural disasters.

The idea for the project really came out of the blue. I was taking a walk at night when I suddenly starting thinking about the scouters from Dragon Ball Z. Basically, they’re nifty eyewear type devices that permit you to sense details about people around you. Incidentally, a few months back I had attended a Windows Phone Design workshop and one piece of advice I was given was that good UI/UX designers often base their concepts off of Hollywood movies such as Iron Man. I steeped these ideas together and ended up deciding that I wanted to create a futuristic system that scans you to save you.

The whole journey started 2 years ago, when I first entered CEGEP (for any non Quebeckers/Habs fans, CEGEP is Quebec’s equivalent to the last year of High School + first year of university in other parts of Canada). I wanted to compete in something, anything, but there was nothing that was really clicking for me. I tried Model UN conferences and rowing regattas, but they were too rigid in terms of structure and formalities. Browsing through online for competitions, I finally stumbled on one that in between offering large sums of cash, travel opportunities and being available in Quebec (many competitions don’t permit us to participate due to stringent local laws. From what I’ve been told, Microsoft takes extra steps to provide this opportunity in Quebec), allowed me to be ultra-creative and flexible in how I chose to compete (e.g. time and skill commitments).

Seeing as no one at my school had heard of the Imagine Cup, I set out to get the administration’s support in setting up a few teams and a club to orchestrate our endeavours. An alumnus and Microsoft Student Partner at Waterloo who was still subscribed to our school’s computer science club’s mailing list, heard about us and referred me to the MSP program. I applied and was accepted, which was pretty awesome. Several months passed by and some individuals had made cool projects.By the end of the yearthough, many Imagine Cup competitors at my school and I were feeling discouraged. How could we possibly compete? All the entries that we read about sounded truly phenomenal. I probably couldn’t code myself out of a paper bag either. The deadline flew by and many of us hadn’t so much as an idea of what we wanted to do.

Being an MSP started changing things however. Considering that the position requires teaching people how to make apps, I inadvertently ended up internalizing a few more C# snippets than I had anticipated. Within a couple of weeks, I was as fluent in C# as I was in French. I released a few relatively simple apps in order to learn, but I entered them all for Developer Movement and within weeks, there was a brand new Nokia Lumia 820 waiting on my doorstep.

Next year I vowed to submit something to the Imagine Cup regardless of my skill level, or whether or not I got to find a good teammate. I still wasn’t much of a coder, but I was going to learn on my way. Initially I couldn’t even figure out how add the Kinect and OpenCV .dlls to my project and compile it under x64, but I kept at it, asking questions onlinewhen I couldn’t figure something (MSDN being quite useful and to an extent, StackOverflow) and inching forward one semicolon at a time.

When I won, everyone was both surprised and ecstatic.  After last year, no one really expected anyone to have made headway in any Imagine Cup projects. My victory had reinvigorated many students and programming suddenly became trendy. People I had never talked to started coming to me asking how they could learn to code, students in commerce or arts and even teachers! It seems like this was a secret desire that many had but could not manifest.

The biggest complaint seemed to be that no one understood how any of the code they were learning translated into real programs. The lucky few who were privy to a programming course only knew how to make console apps in Java (and couldn’t export them from the IDE either). Using my brilliant MSP skills, I showed to how to make a simple Windows Phone app. There was still a challenge left for the Imagine Cup, the Windows Phone challenge, so I organized a hackathon where 30+ students got together for 24 hours to make and submit apps. Needless to say, everyone had an amazing experience.

All in all, the Imagine Cup has given me the confidence I needed to go out and write my own programs from scratch. I never had a formal computer science education, but I’m coding everyday now and churning out more lines and less compilation errors than my counterparts studying software engineering in university. I was also planning on going into medicine, but I’ve now decided to study computer science with a bio minor instead.

I’ve also become a lot more employable and local companies have been seeking my services. Recently, an eyewear shop in Belgium contracted me to develop a solution that would allow clients to use a Kinect for Windows device to try on different glasses virtually. Of course they had many others to choose from, but they favored me when I told them I was an Imagine Cup winner for Canada!

What’s next for me? I’m still working on MARISA. I’m going to bring it to life one day, even if I don’t end up going to the finals. I started leveraging the skills I accrued developing MARISA to work on autonomous drone avionics. The club I founded at my school to compete in the Imagine Cup has long expanded its horizons and has now taught nearly a hundred students how to code. Finally, I’m starting to think of cool ideas for next year’s Imagine Cup!

My suggestions and advice for anyone interested in competing next year:

  1. Compete in the Imagine Cup. Compete in the Imagine Cup. Compete in the Imagine Cup, I can’t say this enough. If you go through and actually submit a project (or maybe more than one), you’ll come out with so much just for trying. You’ll have a project for your portfolio, which most young programmers DON’T have. You’ll learn how to collaboratively design software with TFS or Git(hub), which a surprising number of students lack as a skill. You’ll learn how to beget a creation completely by yourself, without instructions from a professor. Imagine yourself in the shoes of a recruiter or a company. Who would you rather pick? A student with the aforementioned experience or one of the many others who are sitting and twiddling their thumbs? Furthermore, you underestimate your chances of winning. By signing up, you’re already ahead of countless individuals who are still thinking about it. By writing your first line of code, you’re already ahead of the countless individuals who have only signed up. By completing your first prototype, you’re already amongst the top competitors in your country. If you’re Canadian, there’s no doubt you’ve heard this Gretzky quote already, but it couldn’t be truer for a competition such as the Imagine Cup: “You miss 100% of the shots you don’t take.”
  2. Get teammates. Perhaps you’re thinking about doing the project alone, either because you envision winning a bigger share of the prize (granted you make it that far) and/or because you want to do everything your way. Chances are, that unless you have rock solid determination and a very diverse skillset, you won’t make it to the top. Much of the project will involve things that are not necessarily code and there is probably at least one thing you won’t excel at. Trying to complete different parts of the project alone will bring your progress down to a crawl. Maybe you have a friend you’d like to work with, but she or he doesn’t know how to code. That’s great, teach them how. Anyway, it’s a lot more fun. (Note: there are some people that may indeed excel on their own, if that’s the case with you, then it may in fact be more suitable for you to work alone. If the issue is that you can’t find anyone to work with, try searching online. The rules actually permit you to work with people outside of your school and even your country!)
  3. Don’t be deterred by the competition put up by your fellow Imagine Cup contestants. Some competitors are doing research for their PhD thesis. Others are in med school. Certain individuals will have been coding since they were 12 or 13 and have a decade of experience. A few teams have even founded their own start-ups. Yet many of the Imagine Cup finalists and winners are high school students (I’d technically be included in this category). Every participant is unique and has their own set of skills in which they are proficient at, which they can leverage to create the ultimate project. Age and experience is no substitute for initiative and motivation, just as genes are no substitute for hard work and determination. To quote Gretzky again:“When I was 5 and playing against 11-year-olds, who were bigger, stronger, faster, I just had to figure out a way to play with them.” Out of all the guidance I can offer, this has absolutely got to be the most important.(I’d really like to see more pre-university/early university students next year.)
  4. Don’t heed the naysayers. If it doesn’t exist, be the first.
  5. Compete in the Challenges, in addition to the actually competition. This year, there was the Pitch Video, Blueprint & UI/UX design Challenges. When I was completing my proposal and video presentation for the final submission, I was able to recycle a lot of the stuff I wrote for the Blueprint Challenge (which I received an Honorable Mention for, but didn’t win). This was no coincidence. The Blueprint Challenge is more or less the precursor to the project proposal and the Pitch Video Challenge is the same for the video presentation. The initial blueprint I made guided my design for the entirety of the contest and I still refer to it when I discuss my project with interested parties. And who knows, you might just win a nice chunk of pocket change in the process.
  6. Get support. You’d be surprised by how much your professors, parents and peers know. Even if their expertise isn’t computer science or software engineering, they may have the chops in maths, sciences, business or arts to address certain aspects of your project. You can also bounce ideas off them and get insights on your project that you wouldn’t had you not vocalized. Although the technical component is obviously stressed, the Imagine Cup is actually a holistic competition. At least 50% of the judging criteria is based is on things that are not necessarily related to code, e.g. artistic design, impact, business and marketing strategy, user experience and the innovativeness of your concept. My own mentor didn’t know how to code (and she’s actually younger than me), but she was a great help with other things such as logistics and showing me how to sell myself and the project.
  7. Follow the criteria and guidelines for your category to the pixel. You can make the best ukulele simulator (Kinect instruments anyone?) but if it doesn’t specifically address any of the points stipulated in the regulations, you’ll lose out to a lesser project (tsk… banjo simulator). This reflects the real world, where you’ll have to sell your ideas and projects to co-founders, parents, investors, consumers, etc. I was fortunate to come across this advice before submitting my entry and no doubt, it contributed to its success.
  8. Finally, don’t expect to win. Don’t get disappointed if you don’t win. But do your project to win. Put your all into it. Simply put, the person or people who are going to get the prize are those who want to win the most. Even if you’re not looking to win, do your project to win so that you achieve the best result.

All the best and hope to see you compete next year!