Lorem ipsum dolor sit amet, consectetur adipiscing elit lobortis arcu enim urna adipiscing praesent velit viverra sit semper lorem eu cursus vel hendrerit elementum morbi curabitur etiam nibh justo, lorem aliquet donec sed sit mi dignissim at ante massa mattis.
Vitae congue eu consequat ac felis placerat vestibulum lectus mauris ultrices cursus sit amet dictum sit amet justo donec enim diam porttitor lacus luctus accumsan tortor posuere praesent tristique magna sit amet purus gravida quis blandit turpis.
At risus viverra adipiscing at in tellus integer feugiat nisl pretium fusce id velit ut tortor sagittis orci a scelerisque purus semper eget at lectus urna duis convallis. Porta nibh venenatis cras sed felis eget neque laoreet suspendisse interdum consectetur libero id faucibus nisl donec pretium vulputate sapien nec sagittis aliquam nunc lobortis mattis aliquam faucibus purus in.
Nisi quis eleifend quam adipiscing vitae aliquet bibendum enim facilisis gravida neque. Velit euismod in pellentesque massa placerat volutpat lacus laoreet non curabitur gravida odio aenean sed adipiscing diam donec adipiscing tristique risus. amet est placerat in egestas erat imperdiet sed euismod nisi.
“Nisi quis eleifend quam adipiscing vitae aliquet bibendum enim facilisis gravida neque velit euismod in pellentesque massa placerat”
Eget lorem dolor sed viverra ipsum nunc aliquet bibendum felis donec et odio pellentesque diam volutpat commodo sed egestas aliquam sem fringilla ut morbi tincidunt augue interdum velit euismod eu tincidunt tortor aliquam nulla facilisi aenean sed adipiscing diam donec adipiscing ut lectus arcu bibendum at varius vel pharetra nibh venenatis cras sed felis eget.
Problem solving is all developers do.
We are presented with specific problems and need to know how to solve them.
That's why problem solving is your most valuable skill. But how can we get better at it?
Let's dive in.
Gary Player said the famous quote, "The more I practice, the luckier I get". The same applies here.
Problem solving is a skill which means you can train it. You can improve and get better. That's why we need to practice.
More time on a real-world project is always the fastest way to get some practice in and increase your skill-level. Ask to take on the items of work that are problems you have no idea how to solve. This will force you out of your comfort-zone and create an opportunity to learn.
If you're solving the same problems over and over, like creating a basic CRUD API, you aren't going to get better at problem solving and you won't expand your knowledge.
Take on problems you're unfamiliar with to improve your problem-solving ability and increase your knowledge.
A great way to learn how to tackle a problem is to learn from others.
New developers struggle with problems the most. Not because they aren't smart enough to figure out the answer, but because they don't know how to go about trying to find the answer.
Senior developers know where to look when a problem comes up. They've probably got a couple of checks they'll always do to determine the origin of the problem. They may run some fancy debugging approaches.
These are things you won't know when you start.
Ask to sit with a senior and just watch how they go about solving a problem. Ask them to explain their thought pattern and why they do what they do. This will help pull back the curtain and enable you to start thinking in the same way.
Problems can often be extremely overwhelming. They create a sense of terror. You don't know where to start and ultimately, waste a lot of time sitting in the fear induced by the problem.
Don't do this. There's a great trick to solve this: break the problem down into multiple smaller problems. The smaller the better.
Decomposing the problem makes it far less overwhelming and more manageable.
Now, all you have to do is solve each of those small problems, until eventually, you've solved the major problem.
Our minds play tricks on us by making things seem bigger than they are.
Don't fall for these tricks. Break down the problem.
I will never be able to mention this enough: Learn your fundamentals.
Investing time into the fundamentals is the best possible thing you can do as a developer. Knowing things like algorithms, data structure and design patterns will drastically improve your skills as a developer and also make you an amazing problem solver.
And because you've spent time learning the fundamentals, you'll be able to identify problems faster and sometimes before they even happen.
It's the best investment you can make.
The best debuggers solve the most problems.
It's easy to identify when you have a problem, because something will be broken or not working. The real power is identifying the root of problem and how to solve it. That's where debugging comes in.
Console logs and break points are a great place to start, but explore further tools to help your debugging like Chrome DevTools or ReSharper. Every stack or technology will have some specific tools to aid you in your debugging journey. Learn them and become really good at using them to help increase how quickly you can identify and squash bugs.
The better you can get at problem solving, the better developer you'll become.
See you again next week.