Problem Solving Approach

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Laoag City, Ilocos Norte

Unit 4: PROBLEM-SOLVING STRATEGIES

At the end of the unit, the student must have


 gained clear understanding on the different
approaches on how you can create software
designs that would address a particular
problem;
 developed a plan of action used to find a
solution, and hone your problem-solving skills in
ways that allow you to efficiently achieve
challenging goals.

Problem Solving Approach


A good problem solving approach includes things like:

1. Clearly understanding and/or defining the problem.

2. Breaking down large problems into smaller problems.

3. Solving the problem at an abstract level first.

4. Using notes and pseudo-code.

5. Running code early and often.

Want to be a Software Engineer?

Work like a professional: the importance of having the right approach to


solving problems with code.

CpE 311L/L SOFTWARE DESIGN


Prepared by: Engr. Mariscel Lived De Guzman
Page 1 of 6
Laoag City, Ilocos Norte

Coding is a very accessible activity, and that’s a great attribute about


programming. With a little bit of knowledge and a few lines of code you can
build a simple app or a basic web page. There are tons of resources and
tutorials that can guide anyone with an interest in software development
through the early stages of exploration.

There is, however, a huge gap between the kind of step-by-step “happy path”
tutorials aimed at complete beginners and the complex engineering problems
you’ll be expected to solve as a professional. To become a professional software
engineer, you have to recognize that gap. You also have to develop the attitudes
and behaviors required to bridge it.

Code with Intention

Hacking together pieces of code and just trying things to see if they work is a
behavior often seen in hobbyist programmers or beginners in the “explore
phase” of learning. To become a professional software engineer, you need to
graduate from the “hack and slash” mentality.

Code with intention, and take a deliberate and considered approach your work.
The following actions and behaviors will help you do that:
• Planning out your solution to a problem
• Considering the trade-offs of different solutions
• Accurately implementing your chosen solution
• Understanding the purpose of each line of code

Coding with intention becomes easier if you have a consistent approach to


problem solving. We’ll look at that next.

CpE 311L/L SOFTWARE DESIGN


Prepared by: Engr. Mariscel Lived De Guzman
Page 2 of 6
Laoag City, Ilocos Norte

Develop a Solid Problem Solving Approach

Being a good software engineer isn’t about memorizing a bunch of syntax and
functions and then magically typing out a bunch of code that just works. It’s
about solving problems. Programming languages, frameworks, and libraries
are just tools you use to help solve the problem.

Problem solving is hard. To help you out you need a well-practiced, consistent
approach.
Work on developing a solid approach to solving problems. You’ll then be able to
tackle any problem by breaking it down and solving it logically and
systematically.

A good problem solving approach includes things like:


• Clearly understanding and/or defining the problem
• Breaking down large problems into smaller problems
• Solving the problem at an abstract level first
• Using notes and pseudo-code
• Running code early and often

Learn to use documentation

When learning a new language, tool, or framework, don’t spend lots of time
trying to memorize every single method or function, or an entire API. Instead
familiarize yourself with the documentation for that language or tool.

CpE 311L/L SOFTWARE DESIGN


Prepared by: Engr. Mariscel Lived De Guzman
Page 3 of 6
Laoag City, Ilocos Norte

Learn to read and use technical documentation. Combine this ability with strong
mental models about fundamental programing concepts, and you’ll be able to
quickly pick up new tools and languages.

The combination of the two things is key. For example, if you have a solid
understanding of how a combustion engine works and know how to read
engine schematics, you can use those two things together to quickly start
working with any engine.

If instead you’ve memorized every single piece of one particular type of engine,
but without those other skills, then you’re limited to only working with that
type of engine.

The best developers and engineers don’t necessarily know the answers to
everything, what they do know is the underlying context for those answers and
how to find the specific details when they need them. Don’t aim to become a
‘React developer’ or a ‘Rails developer’, aim to become a software engineer who
can quickly adapt to work with any language, tool, or framework.

Don’t get attached to your code

A common beginner trait is to view code in a reverential way as some sort of


artistic creation, and having a desire to write some “perfect” code and then not
change it. Avoid this kind of behavior. Professional software engineers see code
as a solution to a problem; it’s a means to an end rather than an end in itself.

Don’t get overly attached to, or egotistical about, your code. Be prepared to
rethink, refactor, or even replace it entirely.

CpE 311L/L SOFTWARE DESIGN


Prepared by: Engr. Mariscel Lived De Guzman
Page 4 of 6
Laoag City, Ilocos Norte

A big part of this is being able to accept feedback and criticism. The purpose
of that feedback is to help you improve your code; don’t take it personally.
Remember that you are not your code, and a criticism of or feedback about
your code isn’t a value judgment about you as a person.

Also remember that as a professional your code won’t be your code. The code
you’ll be working on won’t be for some personal pet project, but a collective
undertaking with a specific, shared objective. Thinking of parts of a codebase
in terms of individual ownership is problematic in a professional environment.

Summing it Up
In this article we’ve examined the difference between how hobbyist
programmers and professional software engineers approach working with
code. If you really want to launch a long-lasting career as a professional
software engineer then you need to adopt these professional attitudes and
behaviors. Let’s recap on what they are:
• Code with intention, taking a deliberate and considered approach your
work
• Develop a systematic and logical approach to solving problems
• Don’t treat debugging as a chore. Accept it as a normal part of software
development and use the opportunities it presents
• Learn how to read technical documentation, and combine this with strong
mental models to quickly pick up new languages and frameworks
• Don’t get attached to your code. Treat it as a practical solution to a
problem, not an artistic creation

If you want to be a professional software engineer, you need a professional


approach to solving problems with code. When you combine this with a well-

CpE 311L/L SOFTWARE DESIGN


Prepared by: Engr. Mariscel Lived De Guzman
Page 5 of 6
Laoag City, Ilocos Norte

defined path focused on fundamentals, solid study habits, and good


communication, you’re well on your way to achieving your goal.

CpE 311L/L SOFTWARE DESIGN


Prepared by: Engr. Mariscel Lived De Guzman
Page 6 of 6

You might also like