My first 3 hour project for job application
I made it past the phone screening and the next stage is that a robot will email me a project and I have a three hour window to complete it and then email them the results. This is for a Rails job. Can anyone please give me an idea of what to expect? They know its gonna be my first job. The email says they want to see my approach to application and object structure. I know this can vary but any advice or ideas on what to expect? And do you think I will have the option of using Rails 4.2, which I am more comfortable with? Thanks.
That's exciting Sean! I did this back in 2011 for a job and had the same 3 hour window thing.
For me, I was given 4 or 5 CSV files that I had to parse and then run searches against. It was pricing data, searches, gps locations, and stuff and was quite a hard thing to solve in 3 hours, especially for my first job. I got super close but didn't have time to write any tests and my answers were close but not quite correct from what I could tell. Ultimately I didn't get hired because they were on the fence with my results but I learned a lot from it.
My big takeaways from it were:
- The biggest thing is to stay as calm as you can and share your thought process. If you don't, you're going to write a bunch of code that's semi-disorganized and makes it had for them to understand how you were trying to approach the problem. The best way to share your thought process is through well organized code, but take your time to comment / write out your ideas as you go and turn that in as well. You can outline which pieces you'd break down and separate into different parts, which you'd tackle first, and so on. Also note the pieces you see are complex or you think could be solved better and how you might come back later to improve them.
- Do your best to write out all your objects and interfaces for them as clearly as you can. What ones will you need? what is each one's job? how will they interact?
- The previous questions are a good foundation for thinking about how your objects would be tested as well. Even if you don't get around to writing tests or anything, showing that your objects are designed to be testable will be a great sign.
Thanks, this is a great starting point for me to prepare. For #2, can you please elaborate by what you are refering to when you say 'interfaces'? Thanks again.
An interface is the public methods on an object you define so that other code can interact with them.