Advice on Getting better on General Programming

This topic is 2036 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

For the 5 years I worked for various companies, I worked in large software like computer vision kits, embedded, games. I found myself very good at debuggins skills, I've even found and fixed bugs in frameworks and I solved them. The problem is that I'm very weak at problem solving. I got interview with Qualcomm, and they said you're fine at software, but you have a limited problem solving, I also had the same results with Google.

I'm very bad at solving puzzles and brain teasers. During the interviews I solve all of the software related problems on the blackboard, but when I went to the GM and face math problems and probabilities, I struggle.

How can I improve my problem solving skills?

Some of the problems:

1. A cake that is cut from anywhere and needs just one cut to halved in equal. I told him cut it horizontally, he said No, consider it as a 2D Problem!.

2. Consider a concenteric 3 circles, each one can get a color, but not matched with the other circle, how many blobs you can make out of those circles ? this was with the GM ( Augmented Reality SDK)

3. Consider a train, an infinite one, and you looked at the window, and there are two cars, one big, and one small, what is the probability of having only a big car, I said 50%, he said, what if that two cars you dont know their length, and you want to get the probability of getting the biggest one, I struggled, didn't solve it... I was really exahusted after long day of interviews

4. prob of having a number divisible by 5 in numbers from 1 to 100.. struggled!!

All coding questions I solved them like reverse a string, detect a cycle in a linked list,..etc.

Share on other sites

Have you been attempting those problems from Project Euler?  Have you been trying to solve other puzzles?

Share on other sites

I'm very bad at solving puzzles and brain teasers. During the interviews I solve all of the software related problems on the blackboard, but when I went to the GM and face math problems and probabilities, I struggle.
How can I improve my problem solving skills?

For general puzzles and brain teasers, perhaps buy some of the puzzle magazines and work through them. There are many different styles, offering logic problems, word problems, mathematics problems, and organizational problems.

For all of them, if I felt uncomfortable I would take the direct approach: "This seems like a trivia problem, either you have seen it before or you haven't. Is this typical of the engineering problems I will be facing in my job?"  I asked that once after a trivia question; the questioner blushed, the others in the room laughed, and they proceeded with actual realistic problems.

1) While it is probably a trivia problem, it could be a legitimate problem. Bifurcation (cut the thing into parts) problems are common enough in the real world. You might have a connectivity graph and want to cut it in half while disrupting as few connections as possible. Path splitting, hop-minimization, and other problems can get extremely mathematical.

2) Also sounds like a trivia problem, but they might be getting into the mathematics of graph coloring.  The four color problem (how few colors do you need to color contiguous countries on a map) is a classic one, but it can have applications in 3D graphics and modeling. For example, you might have a need to figure out how to turn 3D model lighting into 2D surface textures. If they wanted someone with a math degree the should hire one, but many graphics programmers are also fairly competent mathematicians.

3) Statistics are important for many programming jobs. We frequently play card games and occasionally after an improbable combination of events someone will utter "what are the odds?".  Usually within 15 minutes of returning to work, one of the stats-oriented people in our group will have calculated the actual odds. Some are extremely improbable yet still possible (For example, one Magic:The Gathering game, 60 card deck, 23 basic plains cards with 3 in opening hand of 7 cards. He drew 12 plains cards in a row from a well-shuffled deck in a 4-person casual game before he was mercy-killed.)  I'm sure your problem had a more nuanced description than what you gave, so I can't help you come up with a better answer.

4) Again, statistics are important for many programming jobs. That one isn't too difficult, figure out how many numbers are divisible by 5 within that range. Since you have 100 numbers, that number is also the percent of numbers.  Or also rather easily, for any range of consecutive integers one in X is evenly divisible by X.

If you are just a little out of practice a few cheap "brain training" style magazines may be useful. If you really are lacking on the mathematics perhaps some more serious study is in order.

Most professional careers require continuous training and learning.  Doctors must constantly learn new treatments and practices; lawyers must constantly learn the ever-evolving law; and programmers must constantly learn new languages and problem-solving skills.

Share on other sites

@Jbadams, I crossed post it, because got the same results last week and I did practice too ! I'm getting depressed

@Frob, Thanks so much for pointing out a lot of things.

Edited by AhmedCoeia

Share on other sites

Have you been attempting those problems from Project Euler?  Have you been trying to solve other puzzles?

Yes, practice. A lot.

• 11
• 15
• 21
• 26
• 11