DEV Community

Discussion on: Learning Process (Avoiding the Shotgun Method(doom&gloom) at all Costs!) - Pragmatist Health, Language, Coding) Exp. +✅ Biases!

Collapse
 
peraltanate profile image
에픽 탑러 • Edited

New programmers often find "problem solving" the HARDEST SKILL TO BUILD.
Problem solving is the meta-skill. It’s not uncommon for budding programmers to breeze through learning syntax and programming concepts, yet when trying to code something on their own, they find themselves staring blankly at their text editor not knowing where to start.

The best way to improve your problem solving ability is by building experience by making lots and lots of programs. The more practice you have the better you’ll be prepared to _solve real world problems
_

Problem-solving skills are almost unanimously the most important qualification that employers look for….more than programming languages proficiency, debugging, and system design.
Demonstrating computational thinking or the ability to break down large, complex problems is just as valuable (if not more so) than the baseline technical skills required for a job

You’ll be different. But if you start with principles we all agree are good, you’ll get a lot further a lot quicker

“The biggest mistake I see new programmers make is focusing on learning syntax instead of learning how to solve problems

In programming, this means don’t start hacking straight away. Give your brain time to analyze the problem and process the information.

To get a good plan, answer this question:

“Given input X, what are the steps necessary to return output Y?”

Sidenote: Programmers have a great tool to help them with this… Comments!

Do not try to solve one big problem. You will cry.

Instead, break it into sub-problems. These sub-problems are much easier to solve.

Then, solve each sub-problem one by one. Begin with the simplest. Simplest means you know the answer (or are closer to that answer).

After that, **simplest means this sub-problem being solved doesn’t depend on others being solved.

Once you solved every sub-problem, connect the dots.**

Connecting all your “sub-solutions” will give you the solution to the original problem. Congratulations!

This technique is a cornerstone of problem-solving. Remember it (read this step again, if you must).

“If I could teach every beginning programmer one problem-solving skill, it would be the ‘reduce the problem technique.’

Reduce the problem to the point where you know how to solve it and write the solution. Then expand the problem slightly and rewrite the solution to match, and keep going until you are back where you started.”

Conditional example, suppose you’re a new programmer and you’re asked to write a program that reads ten numbers and figures out which number is the third highest. For a brand-new programmer, that can be a tough assignment, even though it only requires basic programming syntax.
If you’re stuck, you should reduce the problem to something simpler. Instead of the third-highest number, what about finding the highest overall? Still too tough? What about finding the largest of just three numbers? Or the larger of two?

but what if I’m stuck and can’t even solve a sub-problem??”

First off, take a deep breath. Second, that’s fair.

Don’t worry though, friend. This happens to everyone!

The difference is the best programmers/problem-solvers are more curious about bugs/errors than irritated.

In fact, here are three things to try when facing a whammy:

Debug: Go step by step through your solution trying to find where you went wrong. Programmers call this debugging (in fact, this is all a debugger does).
“The art of debugging is figuring out what you really told your program to do rather than what you thought you told it to do.”” — Andrew Singer
Reassess: Take a step back. Look at the problem from another perspective. Is there anything that can be abstracted to a more general approach?
Sometimes we get so lost in the details of a problem that we overlook general principles that would solve the problem at a more general level. **[…]
The classic example of this, of course, is the summation of a long list of consecutive integers, 1 + 2 + 3 + … + n, which a very young Gauss quickly recognized was simply n(n+1)/2, thus avoiding the effort of having to do the addition.” — C. Jordan Ball
Sidenote: **Another way of reassessing is starting anew. Delete everything and begin again with fresh eyes. I’m serious. You’ll be dumbfounded at how effective this is.

Research: Ahh, good ol’ Google. You read that right. No matter what problem you have, someone has probably solved it. Find that person/ solution. In fact, do this even if you solved the problem! (You can learn a lot from other people’s solutions).
Caveat: Don’t look for a solution to the big problem. Only look for solutions to sub-problems. Why? Because unless you struggle (even a little bit), you won’t learn anything. If you don’t learn anything, you wasted your EXPENSIVE time.

In fact, a common pattern amongst successful people is their habit of practicing “micro problem-solving.” For example, Peter Thiel plays chess, and Elon Musk plays video-games.

“Byron Reeves said ‘If you want to see what business leadership may look like in three to five years, look at what’s happening in online games.’
Fast-forward to today. Elon [Musk], Reid [Hoffman], Mark Zuckerberg and many others say that games have been foundational to their success in building their companies.” — Mary Meeker
coderbyte.com / Pastopia (React/NextJS/Web3/Deployment: Vercel)

There’s three types of Learning:

1) Maintenance Learning (Re-Work)

Maintenance learning refers to you keeping current with your field.

This keeps you on pace and prevents you from falling behind. Many people
think that reading an occasional book and keeping current with blogs and

40

newsletters is the equivalent of adding to their education.

This is not the case...

Maintenance learning is the same as checking the stock market reports
each day to find out the sales prices of various stocks and securities. This
information does not add to your knowledge of the companies, the market,
or the investment potential of a particular stock.

Maintenance learning is absolutely essential. It’s similar to light physical
exercise that keeps you at a particular level of fitness. It won’t increase
your level of fitness or improve your conditioning in any way, but it will keep
you in shape.

2) Growth Learning (Fast Comprehension)

This is the kind of learning that adds knowledge and skills to your repertoire
that you did not have before.

Growth learning helps you expand your mind. You are acquiring
information that you didn’t have that enables you to do things that you
could not do previously.

Some of the very best thinkers in the world today are producing some of
the very best material and ideas that you can use for continuous education

41
and to help you expand your mind.

You can find this information by doing a quick search online. You can
discover great ideas by listening to podcasts, reading blogs, and reading
books.

You can discover incredible information without having to buy anything at
all.

3) Shock Learning (Conditional Real-World)

Shock learning is learning that contradicts or reverses a piece of
knowledge or understanding that you already have.

Shock learning can be extremely valuable if you act upon it.

Something that happens that is completely inconsistent with the
expectations of what should have happened.

This “shock” can give you insights that can enable you to either take
advantage of a major change in the marketplace or guard against a serious
reversal.

Unfortunately, most people are creatures of habit. When something
happens that is completely unexpected, they choose to ignore it in favour of
the old information with which they are more comfortable. Don’t be afraid of

42

change.

Always change and adapt.

Shock learning often happens in Transformational event, when you are
both learning and doing. This types of learning is the most effective.

At Reduce the problem Technique, we call that Bootcamps or Live Coaching or Infield
Trainings because you are immersed in real life and can take massive
action with exercise and immediate feedback.

For example if you want to improve your dating life, we go directly into the
venues and nightclubs or even in the street to get the teachings ingrained
in you.

The map is never the territory. Remember that.

When you come across new information, take the time to think about what
you believe and why. Is your outdated mindset preventing you from
advancing in a modern world? Be willing to question new information and
research it further.
Digging deeper will separate you from the crowd and allow you to see the
value in developing an independent mind.

Only way to ORGANIZE YOUR LIFE = Document your Life!

Collapse
 
peraltanate profile image
에픽 탑러 • Edited

How to Avoid Becoming a Frog in Boiling Water in Your Software/IT Engineering Career

Image description

  1. Check-in with your manager on your progress on a Weekly Regular Basis! (Develop Rapport & Open-relationship for your Skill Development & Accountability + Develop Radar for adjustments and avoid being the Frog & address things before it boils!)

  2. Add/Gamify important certifications & Credibility/VALUE in the Engineering World - tied to Goals ensuring that give VALUE to clients/company (don't just add random certificates as it wastes time/money/energy) Add credentials where they Only make sense to your Time/Money/Energy/Stability/Expertise to help you find the next opportunity faster saving you Time!

  3. Automate your Soft skills with Conditional Speaking on the Topic
    #100DaysofCode = ACCOUNTABILITY your Skill progress to Intentional Networks! PJ-Kristian (Carl Icahn!)

  4. Be a Board for an Organization to make a Name for yourself = Build a Strong International Network! (takes Valuable time to build the association - Enjoying/Fulfilling networks that creates amazing stability when the Tides turn Not in your FAVOR!)

  5. Build LinkedIn presence to Frame/communicate your VALUES offered out there to Rich & Poor companies/people!
    (Push/Pull/Automate Hack on Social Media for clients/reviews/Accountability)
    Push: Valuable info. online
    Pull: They come to you for your services
    Automate: (put updates HERE!

What Indicators/Tests are you giving yourself to achieve that Malaysian Visa?
(edit below what those indicators are THIS WEEK!)

Image description

Collapse
 
peraltanate profile image
에픽 탑러 • Edited

How to Avoid Becoming a Frog in Boiling Water in Your Software Engineering Career (Systems Thinking, Reduce the Problem Technique)
Image description

BE PREPARED

  1. Measure your Progress regularly on your ConditionalSkillDevelopment **(get input from Manager/Company on a Weekly Basis as a worker in your Company) "Develop that Radar to **adjust circumstances to address the problem before it boils to Future-Proof your position for Long-Term Stability!"

  2. Add important certifications for Stability(engineering world = credentials/Level of expertise is important but don't just add certificates randomly, add them where They Make Sense! (can help you find an Opportunity faster!) - Towards goals/Financial ! they cost you time/energy/money USE WISELY!

  3. Build Automated Soft skills on Social Media *(Take that info. & Actually use it! To Build Principled Skills! = Accountability to Boss on Career/Progress/Assignments!) #100DaysofCode/LeadGen
    *
    engineeringmanagement.info/2020/12...

Image description

4 . Build a Strong Network = Web3 Philippines! (Avoid being the Frog in boiling water to transfer opportunities that creates amazing stability for your Malaysian Visa!)

5 . Use Linkedin to build your Expertise & getting your name out there!
(Constantly Know/Test the Indicators "Hit the Sign" to your Success in getting Malaysian Visa!)
Image description

youtube.com/watch?v=JrMwo9fd2NY
15:52

Combining Engineering with Culture to Produce Opportunities

The Quickest Path to Engineering Management is Through Accountability
engineeringmanagement.info/2020/12...