Get Hired By Solving Programming Puzzles

When it comes to down to it practice makes perfect. In order to become a successful programmer you need to keep your skills up-to-date and work on problems outside of those faced at work.

Luckily, there are numerous websites that provide the opportunity to practice. The following blogs comprehensively list most of the puzzle websites that are available to help you practice your skills.

There is one other website that is absent from the lists above that provides programming puzzles.

ITA

ITA Software is a company based out of Cambridge, MA that specializes in the development of airline and travel software. They use programming puzzles to attract and recruit new employees.

They won’t grade your solution if aren’t considering working for them, but that doesn’t mean that you can’t at least try implementing a solution. The puzzles are designed for those looking for a challenge.

If you are ready for the challenge, ITA has two sets of puzzles:

If you have attempted these problems or have been hired as a result of completing one of the problems, please share your experiences.

2 Comments

5 Common-Sense Ways to Remain Productive

5 Common-Sense Ways to Remain Productive

After reading several books (6 Books Every Programmer Should Own) for programmers on increasing productivity, you start to realize that a lot of it is common sense.

You even to notice a common theme amongst blogs about productivity.

Whether you are a programmer or not, here are 5 common-sense ways to remain productive:

1. Ignore Distractions

Whatever is keeping you from doing your work: e-mail, instant message, phone calls, loud co-workers, etc.

Find a way to stop these things from disturbing you:

  • close e-mail and instant message applications
  • put your phone on Do Not Disturb (DND)
  • wear headphones (you don’t need to listen to music)
  • move to another location to work

2. Organize

Look around at your desk. Are there papers thrown everywhere, food, or other junk laying around?

How about your desktop on your computer? Do you have 100 icons that you don’t know what half of them do?

Keeping items in a easy to reach location makes sense if you use them frequently, but having too many items defeats the purpose.

Start organizing both our physical paper and computer files in a logical location. Only keep those that you use very frequently out in the open.

3. Record Your Thoughts

Have you ever had a great idea or thought come to mind, but you didn’t have anywhere to record it?

With the technology that is available today, you should have no excuse. Most cell phones will have some of voice memo application that you can use. If not, you can purchase an inexpensive audio recorder (similar to Norm MacDonald “Note to Self”).

If you are old school, you can even carry with you a small notebook and a pen or pencil.

Have you found yourself in a meeting where you scribbled a bunch of information on a whiteboard?

I would still recommend recopying your notes to paper or computer, but before you erase the board make sure you take a picture with a digital camera or your camera phone – you never know when you might need to refer to it.

4. Whiteboard Long-Term Goals

It’s easy to feel overwhelmed when you think of things that you need to do over the long-term (over 1 week deadline).

Don’t stress yourself our by constantly saying to yourself “I’ve got a ton of things to do.” Get a whiteboard at work and/or home and start to write down your long-term goals. Things always seem much more manageable once you write them down.

You can even use different color markers to indicate priority (e.g. Red-High, Green-Low).

5. Daily Task List

Similar to having whiteboard for long-term goals, start writing down your short-term goals (less than 1 week deadline) on a piece of paper or post-it note – keep it next to you.

Over the week as you accomplish tasks, cross them out!

The sense of accomplishment that you feel by completing goals will motivate you complete the others.

None of these items are products of intense scientific research or even that expensive to implement – just common sense.

Leave a comment

What Programmers Can Learn From Salespeople

Stans Used Ships

Screenshot courtesy of: The Secret of Monkey Island™

What comes to mind when you hear the terms: ‘Salesman’, ‘Salesperson’ or ‘Sales’ ?

  • High-Pressure
  • Negotiation
  • Cold-calling
  • Telemarketing
  • Spam

If these are the type of words that come to mind, you have probably been dealing with some bad salespeople.

What is Sales?

I do not work nor have I ever worked in sales, but I have taken sales classes offered by my employer.

If there was one thing I learned about sales, it’s that the sales process is more about having a conversation than it is about buying or selling something.

How does this relate to programming?

Before you see how to this relates to programming, you must be able to think like someone who is motivated more by helping people rather than by money.

The Financial Planner

The scenario to understanding genuine salespeople is to look at a financial planners. If you are unaware of what financial planners do – they advise individuals in making major financial decisions such as retirement, taxes, investing, etc.

When you visit a financial planner, you could tell him or her that you want to retire by age 50 and you want to invest $100 per month. Without any further discussion, a financial planner could come up with a solution for your retirement, but is it going to be the best solution?

The Programmer

Any good programmer can take requirements and a design and develop a solution that meets the needs that are laid out. But is this what the end-user really wanted?

What if you actually sat down with the end-user and had a conversation with him or her rather than rely on some specs that a business analyst obtained?

You might be thinking to yourself, isn’t that the job of the business analyst? In an ideal world it would be, but like the Game of Telephone (or Chinese Whispers) something is going to get lost in translation going from end-user -> Business Analyst -> Programmer.

If you have the opportunity to have a conversation with the end-user, take it. Establish a relationship, listen to them to find out what they really need, negotiate possible solutions and close by building them a solution.

Listen Carefully

The most important part about sales and also with programming is: listening.

Don’t be the used-car salesperson who wants to sell the heap of junk on the lot, without understanding the true needs of the customer.

Leave a comment

Fat or Thin? The Future of Web Clients

1260621948_Apple iPhone

No, I’m not talking about the millions of people who use the web, but rather they way that we access web content.

Thin

What do I mean by thin? I mean accessing and interacting with web information by the means of a single application: the web browser.

If you haven’t seen Google’s ChromeOS yet, it is the epitome of a thin client. It is like a stripped down Linux distribution with nothing more than a web browser.

When web 2.0 first introduced itself, we saw web sites that behaved like desktop applications. Technologies like AJAX and Flash combined with broadband internet changed the way we interacted with the web – the web browser was the primary application for accessing web content.

Web applications still had a few major flaws: the capabilities of the browser to adhere to web standards (HTML & CSS).

Who had an iPhone the first year they came out? If you did, you might remember that if you wanted to access sites like Facebook or MySpace (who uses MySpace anymore?), or if you wanted to play any games, you needed to do so with Safari.

That first year, the iPhone also teased us with some built-in applications like YouTube and Google Maps.

Web applications have been successful due to the convergence of web standards: XHTML and CSS, but are still dependent on the speed of the network and the capabilities of the browser.

Thick

Today, how often do you use the web browser on your iPhone?

There are over 100,000 custom iPhone applications that provide different ways to access web content. As a result, web clients are getting fatter and fatter.

Why apps?

Accessing web content via apps is a more pleasant user experience because we are relying more on the capabilities of the device operating system vs. the capabilities of the web browser.

How many of you access your e-mail through a mail application or read blogs with an RSS reader, or use Twitter through a desktop client?

Internet-enabled applications are not unique to mobile devices nor are they anything new.

Your web browsers isn’t as thin as it used to be

All of the primary browsers today support the use of extensions or toolbar add-ons to enhance your browsing experience. As a result, our web browsers are also getting fatter.

The Future

Our mobile devices are now loaded with applications for accessing web content: FAT, at the same time netbooks are becoming increasingly popular: THIN.

So where are we headed?

I believe that the application-based client will be the future of the web because it allows for the best user experience. The traditional web browser won’t go away, but will continue to supplement the application.

Because of the difficultly involved in maintaining software updates and new features – the success of web-enabled application will depend on the update delivery model. Applications will thrive if using push-notification models for updating like Apple’s App Store and Firefox’s Add-On manager.

What do you think? Will Google’s ChromeOS eventually have it’s own app store like the Android Market? Or will all future browsers adhere to the same web standards offering the same browsing experience?

Leave a comment

How To Network With Other Programmers On Twitter

Twitter
I came across two blog posts today by @eriwen about why Twitter is a useful Social Networking tool for programmers:

Starting Off With Twitter

When I first heard about Twitter, I thought – that sounds stupid, who cares about what I am doing?

I am relatively new to Twitter and after using it for about a year, am just now starting to appreciate its value.

Initially, my tweets looked like Facebook status updates:

Going to the airport

Going to the beach

Out to lunch

Unless you’re my mother, you could probably care less about what I do with my free time.

Putting Twitter Into Perspective

Imagine if you were networking at a real (in person) social event like a programming user group meeting, wouldn’t you be more interested in programming discussions rather than discussions about my personal life? So why should Twitter be any different?

As a programmer, I am interested in hearing about programming methodology, news articles and other interesting topics surrounding technology.

If you were to find someone with similar interests, you are more likely to start a dialog and establish a true networking connection.

Finding Similar Interests

The biggest challenge that I’ve faced with using Twitter, is finding worthwhile people follow. You could follow a programmer who is somewhat famous like:

But, unless you are about as famous as them, your tweets will probably be one-sided.

So where can you find programmers who share a similar social status as you?

JustTweetIt

JustTweetIt is a Twitter directory where you can find other users who share similar interests. You can browse different Twitter profiles within each category or you can add your own to as many different categories as you like.

wefollow

Wefollow is another Twitter directory, where you can search based on different tags. Wefollow allows you to also add your own Twitter user based on an series of tags that you specify.

Blogs

More and more programmers with blogs are sharing their Twitter usernames on their blogs. I welcome you to connect with me, if you find me interesting:
@dhirschl.

Where do you find people to follow?

1 Comment

Do Something Else Besides Programming!

Do Something Else Besides Programming!

There occasionally comes a time when you can’t sit in front of the computer any more and need to focus your energy on something else.

When you are stuck trying to debug some logic – the cure to working through your problems is to do something unrelated to programming.

Sports

I like to play a round of golf every now and then, even though I am not particularly good at it. Participating in sports not only takes my mind off programming, but forces me not to think about anything at all.

When playing golf, I tend to do a lot better when I am not focusing on hitting the ball or worrying about players behind me. By not thinking, I am ignoring self-doubt and what-ifs (what if I hit the ball too hard or what if I miss the ball entirely).

Sports can be relaxing if they played non-competitively.

Clubs & Organizations

I’ve written previously about being a member of Toastmasters. By belonging to an organization that promotes professional growth, you can work on skills to make you a more confident person and encourage you to become a leader.

The organization that you choose to belong to can really be anything: martial arts, a social club, etc. Just make sure it is something that piques your interest and makes you want to participate.

Relax

Sometimes doing nothing is the best way to take your mind off things. What’s doing nothing? Anything that doesn’t require you to think critically.

The purpose of doing nothing is to get lost in a book (fiction preferably) or watching a movie or TV show.

I like to look at movies and books as a way to take a break from my life and immerse myself in someone else’s story.

Break Out of the Bubble

Most professional programmers will program for fun in their free time. While I support this behavior 100%, I believe that programmers need to sometimes break out of the programming bubble and focus their attention on something unrelated.

Besides programming what do you do?

1 Comment

10 More Ways To Get An Article On DZone

DZone Logo

I was introduced to DZone not too long ago and it has now become my #1 resource for reading about the latest programming news.

I noticed a trend of the types of websites that are submitted to DZone and after reading 10 Ways to get an Article on DZone, I thought I would expand upon this and add 10 more ways to get an Article on DZone.

10. Interviewing Stories with Google

Everybody (including myself) probably wants to work for Google given the numerous benefits their employees enjoy. Does reading about the interview process provide a way to beat the system by knowing what to expect?

Sample Submissions:

9. Cartoons that Appeal to Geek Humor

You can’t take life too seriously and not everything you read should be either. The funniest cartoon will be one that leaves non-programmers saying “I don’t get it.”

Sample Submissions:

8. Cheat Sheets & Reference Guides

When you don’t feel like looking through documentation or Googling for a particular solution, cheat sheets and reference guides are a useful tool.

Sample Submissions:

7. Stories about Java

DZone has a large Java following courtesy of JavaLobby.org. Although more and more developers of other languages are using DZone, Java stories tend to carry some weight.

Sample Submissions:

6. Free Books

Yes, free as in beer. Programming books aren’t cheap and it is great when you can find a free alternative.

Sample Submissions:

5. Stories about DZone

Heavy users of DZone are quick to point out DZone’s flaws and offer suggestions for improvement. I’m sure DZone also appreciates the feedback.

Sample Submissions:

4. Good and Bad Programmers

Like bad singers on American Idol, bad programmers apparently cannot tell for themselves that they shouldn’t be programming.

Sample Submissions:

3. Version Control Systems

Requirements are never static and it only takes one time that you need to rollback changes on your code.

Sample Submissions:

2. Programming Life

Programmers want to know what others are up to in the field, particularly how to grow professionally and what mistakes to avoid.

Sample Submissions:

1. Ask Questions

Social networking tends to attract the following people: those who have a lot to say and those who want to say more. Is there a better way to bring these two groups together?

Sample Submissions:

Update (12/11/2009): Added links to original content.

1 Comment

How Do You Decide Which Books to Buy?

How Do You Decide Which Books to Buy?

Being a member of Border Rewards, I tend to use the %-off coupons for books that will end up being discounted more than Amazon’s prices.

For the past few weeks I had $10 in Borders Bucks that I needed to use by the end of the month. I had been sitting on it because I could not decide on a book to buy.

My question for you is, how do you decide which books to buy?

Are there any particular web sites that you use for book reviews? Do you use a queue like an Amazon wish list to keep track of the books that you plan to buy?

1 Comment

5 Blogging Mistakes

5 Blogging Mistakes

Perhaps it’s just the Thanksgiving holiday, but recently I have been so distracted that has made it hard for me to blog. If blogging is something that you are looking to pursue, I want to make you aware of what I like to call the 5 blogging mistakes.

5 Blogging Mistakes

1. Money Cannot Be Your Only Motivation

If you are creating a blog for the sole intention that you are going to become rich by advertising income, stop right now. You first couple blog postings will be probably pretty thought provoking, then as you notice your Adsense account still says $0.00 after just 1 week, you will become so frustrated that you will start posting links to the most trendy, popular topics, contributing little value to your blog postings, after 2 weeks you will still have $0.00 in Adsense revenue and a worthless blog.

2. Don’t Blog About Something That Does Not Interest You

If you care very little about something, how can you possibly write about it day after day. This is very similar to your day job. Someone once said, “discover what you enjoy doing, then find a way to make money doing it.” This is very similar to blogging, if you enjoy a particular topic you will have no trouble coming up with ideas to write about.

3. Don’t Get Distracted

Like everything else, other things going on in your life: holidays, vacations, work, family, etc. can get in the way of your blogging habits. If at one point you have a momentum going and you are able to write many blog posts, save a couple of these for the days that your mind is not in the right place.

4. Don’t Give Up So Quickly

If money isn’t your motivator, but readership is, you need to learn to have a little patience. Especially with a new blog, it takes time for your content to propagate the search engines and for people to find you. Unless you are a celebrity, odds are nobody is going to be looking for your blog, but they just might stumble across your content. Also, the more time you give it, the more content you should have. When somebody does find your blog, they will have a reason to stay there instead of reading one post and moving on.

5. Don’t Try To Sound Like Someone Else

If I wanted to read a blog that sounded like someone else, why would I not just read the blog from that someone else? There is nothing wrong with having a blog topic or niche that is already covered by someone else, but the writing style has to be your own. You are more likely to connect with your readers if your thoughts are coming from you instead of trying to sound like someone you are not.

Since I’ve started blogging, I fallen victim to each one of these and those blogs have ended up in a black hole on the web.

If you’ve made a blogging mistake, please feel free to share.

—————————–
Technorati Code: QXG6X7QZ8KYK
—————————–

Leave a comment

9 Useful Websites for Thematic Child Theme Development

You’ve may have noticed a design change here at RepeatGeek, if you’ve visited before. I have been exploring different WordPress frameworks to build my website around and I finally decided upon Thematic.

My decision to go with Thematic was that it is extensible, stable, SEO optimized, easily configurable and most importantly FREE.

In developing my child theme, I thought I would share some resources that I found useful.


A Guide to Thematic – ThemeShaper

AGuideToThematic

This is a wiki from the Thematic creator Ian Stewart that seems a little incomplete, but does contain some useful code snippets.


The Old Busted Guide – ThemeShaper

CustomThemeFramework

Before there was the wiki there was the old busted guide. This is still useful because it contains some examples not found in the wiki. Until these are moved over to the wiki, the old busted guide will remain relevant.


How To Create a WordPress Theme: The Ultimate WordPress Theme Tutorial – ThemeShaper

UltimateWordPressTheme
Also from the creator of the Thematic theme is an 11 part tutorial that walks you through the creation of a child theme.


Thematic Page Structure – Blue Mandala

ThematicPageStructure

This diagram outlines most of the areas of thematic that you can customize and style. You will want to print this one out.


Build a WordPress theme with Thematic – Wynn Netherland

BuildWordPressThematic

Wynn Netherland put together a good tutorial to get you started with setting up your WordPress environment with Thematic.


Useful Thematic Filters – WordPress Theming

ThematicFilters

A collection of several useful code snippets for adding filters and actions within Thematic.


How to Create Your Own WordPress Theme in Just 3 Hours – Matteo Stagi

WordpressTheme3Hours

Matteo Stagi has a multi-part tutorial that walks you through the customization of a Thematic WordPress child theme from scratch.


So You Want To Create WordPress Themes Huh? – Spicy Web Design

SpicyTheme

The Spicy Chef has an 11 part (10 Official parts and 1 Unofficial part) tutorial on creating a Thematic child theme from scratch.


ThemeShaper Forums – ThemeShaper

ThemeShaperForums

If all of your questions cannot be answered via tutorials and websites I listed above, there is always the free support forums at ThemeShaper.


Leave a comment

Subscribe to RepeatGeek

Subscribe via RSS

Enter your email address: