[Not so Basic] – Solve your problems

Okay, you now have almost everything you need to build your own app:

[Basic for Absolute Beginner] – [Part 1] – Layout with XAML

[Basic for Absolute Beginner] – [Part 2] – Layout with XAML

[Basic for Absolute Beginner] – [Part 3] – App’s Structure and how customized it

[Basic for Absolute Beginner] – [Part 4] – Basic Steps for a new app

[Basic for Absolute Beginner] – [Part 5] – Analytics for your apps

[Basic for Absolute Beginner] – [Part 6] – Source Control

And while working, you run into some problem. How do you solve it?

This will be my last post before my exams

What is your problem?

You are building a news reading app. And you want the articles a reader has already read to never show up again.

You want to sort an array of 500,000 elements.

You want to find an element in an array of 1 million elements.

And so on and so forth.

This is the kind of problem you have to solve before you can continue building your app

Solving your problem

The first step, an ultimate method for solving a huge range of problems, from silly to complex: Google it.

Search Google

Search for your problem in English.

This is just personal experience. You’ll come across your problem more easily, and chances are high someone has already solved it. It does require decent English though

Look at sample code from trustworthy sources

Some no-name forum can never beat an accepted and upvoted answer on StackOverflow. A code snippet floating in mid-air can never beat an article on Nokia Developer.

And more trustworthy than all of the above combined is the MSDN reference library. That said, this library is just a giant pile of documentation for Microsoft Technologies. It works no differently from a dictionary. You can look up function definitions, features, parameters, values. And so on and so forth.

Keywords, keywords, keywords

Keywords play an important role when searching for your problem.

For example, for the same problem, Windows might use one algorithm but Windows Phone uses a different one. Because Windows Phone has far more limited resources than Windows. So add the keyword: Windows Phone

Hold on though. Microsoft’s .NET technologies keep evolving. So you also have to include the version number of the platform you’re programming for.

For example: Querry SQL database in Windows Phone 8.1

Ask

When you hit a technical problem that only the person who created that technology can solve, the best approach is to “ask”.

However, asking here doesn’t mean you start asking right away on the spot. This is very common among Vietnamese students. They ask anywhere, about anything. Asking has its own etiquette.

Say you’re having a network connection problem. You’ve tried maybe 1-2 approaches and none worked. You immediately go find a senior, an expert, or at least someone who knows about the topic, and ask. If they’re polite they’ll answer. If not, they stay silent, and you judge them as “not enthusiastic”.

Why? You asked?

Because your main goal isn’t learning. It’s exploiting their knowledge to solve your problem. There is an entire paid job for that, called “consulting”. Technical consulting in particular is very expensive — and you want it for free? No way.

At the very least you have to tell them your problem in full detail, what approaches you tried, what the results were, what your diagnosis is (try about 10 approaches before asking), and don’t demand an answer right away. It’s quite possible that among the approaches you tried, several are new and interesting and open the way to a new direction, a new technology, or even the dawn of a whole new field of science. And the person being asked will be very keen to answer your question, and might even invite you over to discuss it further.

Did you know that a scientist trying to prove one of Euclid’s postulates tried an approach that became a new branch of mathematics, called “non-Euclidean geometry”? That scientist’s name was Lobachevsky.

And the crucial thing is “search before you ask”. The problem is brand new to you, but to other people it is utterly basic, and the answer is already sitting out in the open somewhere.

Brainstorm

For problems that only you can solve, Brainstorming is the only way.

Why can only you solve it? Because you are the only person thinking about it. Try the 40 creative principles (google it). Try flipping the problem around, try thinking from a different angle.

Share your idea

Share your problem and your idea, and you’ll get valuable improvements — at least the weaknesses you never realized were there. For all kinds of problems, you may run into extremely creative solutions. However, watch out for “idea theft”, which happens everywhere in the world. So only share with people you know won’t steal your idea, unless you’ve registered protection for that idea :3