This past weekend, I was having coffee with a friend in dowtown Chicago, and was just talking with him about my deep interest for entrepreneurship which has grown over the past summer. He asked me to define what entrepreneurship is and what it really means to me. After pondering for a while, I replied that, in my opinion, entrepreneurship is all about solving problems – from a minicule level to global / multinational issues that currently exist in the world. Although for most of you, that sounds very cliché, but I want to stress that an entrepreneur solves a problem logically, from a rational perspective and in the most creative way as possible.
This semester, I am taking CS 110 – Computing Through Digital Media, one of the three intro classes for Computer Science majors in Denison, with Dr. Ashwin Lall. The class is fun and I have learnt a lot about programming in Python, which is super helpful for a complete novice like me. Nonetheless, what I am getting more out of the class is the concept of designing algorithms to solve problems. The process of actually coming up with the algorithm is way more important than the result you get.
My point here is that there is a correlation between entrepreneurship and computer programming. By activating your innovative mindset and using an entrepreneurial approaches, you can program a variety of solutions to solve existing problems in the community you’re concerning with. Here are the complete programming steps of problem solving:
1. Understanding the Problem:
- First understand the problem (its inputs / arguments, outputs / results, specification).
- Name the program or function.
- What is its type? (Does the problem break into parts)
2. Designing the Program:
- In designing the program, you need to think about the connections between the input and the output (Have you seen the problem before? Do you know a related problem? Look at the specification and try to find a similar problem with the same or similar specification)
- If there is no immediate connection, you might have to think of auxiliary problems which would help in the solution (If you cannot solve the proposed problem, try to solve a related one. Can you imagine a more accessible related one? A more general one? A more special one? An analogous problem?)
- You want to give yourself some sort of plan of how to write the program (Can you solve part of the problem? How could you change the inputs/outputs so that they were ‘closer’ to each other?)
3. Writing your Program:
- Writing the program means taking your design into a particular programming language (You should check each step of the design)
- Think about how you can build programs in the language. How do you deal with different cases? With doing things in sequence? With doing things repeatedly or recursively? (You can write the program in stages, think about computing parts of the result separately, and put the parts together)
- You also need to know the programs you have already written, and the functions built into the language or library (You should draw on other programs you have written to see if they can be used or modified)
4. Looking Back:
Examine your solution: how can it be improved? (You want to test if it works on a variety of arguments, think of how you can write it differently, and how you might use it or its method to build another program)
(Acknowledgements to How to Solve It by G. Polya upon which this process is based)
So let’s design a step-by-step process for Entrepreneurship Problem Solving:
1. Understanding the Business and its Problems:
- Get yourself acquainted with the business areas you are interested in (attending seminars, reading books, listening to experts, analyzing industrial trends => gaining experience)
- Acknowledge the problems and verbalize the problem to fully understand it (talking with people about it, asking the right questions)
- Train yourself to see opportunities in problems (getting good ideas from everyone and everywhere)
2. Designing the Solution:
- Explore solutions, outcomes and options holistically (getting familiar with concepts such as “human-centered design”, “design thinking”, and “intrapreneurship”)
- Getting good ideas from everyone and everywhere (using your connections and mentors)
- Simply the process but also don’t be afraid to experiment (being persistent)
3. Creating a System to Execute the Solution:
- Devise solutions as products and services (carefully consulting experts at each phase of the product formation, thinking recursion – going small first)
- Stay relevant in a changing industry (paying attention, being first, and making adjustments constantly)
- Make sure that your entrepreneurial mechanism is creating sustainable social change (reviewing data analysis, lead generation, customer reviews)
- Think about different audience, different usages, different structures for your business.
If you have a deep passion for entrepreneurship like I do, what is your strategy to solve problems?