Sunday, October 18, 2015

Practice makes Perfect

      So now that I have finally settled down into my job, which has taken longer then I expected. I plan to start writing for the blog again once a week, with a combination of technical advice too actual blogs about my technical feats. Though i must admit that I dont find it to be a good idea to post what I am accomplishing at work, which is a shame, because im doing all kinds of cool stuff, but i digress.

    This post is mostly for us newbie programers, and maybe some of our older more experienced developers as well. But I have realized that it is important to continuously practice interview problems. Now I know what your thinking, they suck, you dont need them because you have a good job/loads of experience. But I think its important for us to do these problems when we are NOT trying to find a job, even once a week would be enough. You know why? Because they suck horribly when your looking for a job, they are stressful and you are constantly questioning yourself while doing them. They dont even really help you with becoming a better programmer, they just make you dread the interview experience. No matter how great of a developer you are, these problems probably stress you out, especially since they can range anywhere from normal 15 minute questions to 3 hour long I need a degree in math to solve this crap hard. And if your interviewer is worth his salt he will make sure to give you one to match your skill level, which means even our most experienced developers should be ready to have these hard problems thrown at them.

     We all need to know right now that the way these problems are used in an interview setting and non interview setting are totally different. I would wager most of them are not actually meant to be interview questions, its just easier for everyone if we use these instead of creating our own, which honestly gives us developers a leg up. In an interview settings its all about solve this problem with none of the normal tools you would have at your disposal and in an uncomfortable setting on this whiteboard with an eraser that hardly works, have fun. You could say not all interviews are like this, some people let you use the internet, and allow you to use your computer, even run the code a few times, but a good chunk of interviews will be like i described. It was this kind of interviewing that made me HATE these problems with a burning passion hotter then the sun, I hated every second of doing them. But once i got a job i decided to go back to them and give them a second chance but this time without me being stressed to do them perfectly, or fast, or without the help of stack overflow and docs.

     I realized how great these problems were, and honestly how much fun they can be. They gave me a chance to solve problems that i would never get at my job, they reintroduced me to math terms and equations i hadn't heard for years. Once i had solved problems in my most capable way I also normally went to stack-overflow to see how the professionals solve the problem, and I always learn something new from them. They can take ten lines of code and turn it into one, they can show you a new way to solve problems that takes up less space and has a better run time. These problems are a great way to get you to think outside the box, read the docs, and find great tricks and tips. The best part is its okay if you cant solve the problem in less then 5 minutes, its okay if its been 5 months since you needed to convert a dictionary into a list and you need to review the docs. Because the point is to learn and get better, thats the ultimate goal of most developers. We want to solve problems better, faster, and smarter. But to do that takes time and practice, so im linking the sites I use as practice.


https://www.interviewcake.com/ - Subscribe to their weekly interview email, its great practice, and the problems are always original, out of the box, and never easy. Although they are more geared towards interviewing questions, the problems are great even if you aren't interviewing. Be ready to spend about 30 minutes to an hour on their problems.


https://projecteuler.net/archives  - Project Euler problems are pretty popular, they are a lot of peoples go to when interviewing, but they are way better when your not. You can go through their archives, it will probably take you at least a year to finish them all, and then you can move to the most recent.

http://coderbyte.com/CodingArea/ - Coderbyte is really great if you need to practice problems in more then one language, which is why I love them. Their interface and problems are easy and fun, and are organized from easy to hard.


I would start with these sources before going to crazy on anything else, and remember, practice makes perfect, but fun turns into passion and talent.

No comments:

Post a Comment