Focus on problem-solving to improve your code skills

Rubik’s Cubes
Rubik’s Cubes
Photo by Fletcher Pride on Unsplash.

You’ve gotten stuck so many times while coding. We all have. Some hard, nasty problem. Many conditions. Maybe this can be broken down into smaller problems. Maybe some dynamic programming could help. There must be some famous algorithm behind this.

“I know I wouldn’t have a hard time writing this code. If only I had any idea of what code to write.”

After being through this a few times, you start to notice patterns. Little strategies. There’s always some similar problem. A sketch always helps. All of these small things that don’t seem important but end up helping a lot.


Lessons from Rich Hickey’s illustrious career

Image for post
Image for post
Photo by Ant Rozetsky on Unsplash.

Most commonly known for the creation of the Clojure programming language, Rich Hickey can easily be considered a brilliant and experienced engineer with 20-plus years of experience in the field.

But he’s also a great thinker and speaker who’s able to distill and give shape to ideas that are not easily put into words.

Let me put it this way: That's 20-plus years of deliberate practice in software development distilled into 20-30 minutes of talking.

Such talks are often related to broad problems and ways of thinking rather than one specific language or practice in our field. …


The best developers work effectively with their team. This is how they do it

Image for post
Image for post
Photo by Annie Spratt on Unsplash.

I’ve had jobs as a developer where I had teammates who were great people, but we did not work well together. Not because we were bad at it but mostly because the culture of that workplace did not reward or incentivize working as a team — or working well as a team.

However, there were always those people who would stand out, manage to overcome such work cultures, and show that working well as a team is not only effective but highly rewarding. …


Spoiler alert: Working late into the night is not one of them

Image for post
Image for post
Photo by Kyle Hanson on Unsplash.

I’ve started so many side projects. Little or not so little, most of them were focused on one thing: making myself learn something new.

Although I’ve taken on several pet projects since I started coding more than seven years ago, year after year, I end up having less and less time to dedicate to them. Being more efficient has become inevitable if I want to keep going.

Building real stuff is definitely the best learning method for me, and during my last side project (a word search game using Flutter), I realized a few patterns that really helped me make…


A little code can go a long way

Image for post
Image for post
Photo by mauRÍCIO santos on Unsplash.

Have you ever seen a sushi chef cut fish with a katana sword? Yeah, me either. It probably looks awesome, but we can all agree that such a blade is not the best tool for turning fish into dinner.

I love Python and I’ve used it for so many things big and small, but if programming languages were blades, even a productive language such as Python would feel heavy and clumsy for small and trivial tasks.

For such tasks, shell scripting can be much more powerful, as it provides even fewer guarantees than Python or JavaScript but enables you to…


Not all tutorials need to be boring

Image for post
Image for post
Photo by Lorenzo Herrera on Unsplash

What is this all about?

Yes, there is a game involved. But this is all about functional programming. Maybe you’ve heard about it before. Maybe not. Either way, I’m not here to bother you with the dense and deep concepts that make functional code more modular, easily testable and maintainable while enabling powerful abstractions. I’m sure that what we’ll cover while coding our game will be enough to broaden your perspective.

We’ll take more of a hands-on approach and go through the necessary concepts as they are used to implement the game, and later on you can read…


The best way to learn is to teach!

Image for post
Image for post
Photo by Felicia Buitenwerf on Unsplash

In a Saturday morning a few years ago I would be in a classroom, teaching people Arduino. All sorts of people. From engineering students such as myself to basically anyone interested in programming or tinkering.

The reasons why I started teaching were mostly related to being bored by an engineering course full of theoretical classes and few hands-on projects.

The reasons why other people came to my lectures, I was never able to pinpoint an exactly. But I definitely had a rough idea, and I’ve learned so much more than I expected…


Image for post
Image for post
Photo by Rafael De Nadai on Unsplash

Have you ever taken the subway when it is crowded? I know this happens in most large cities, but here in São Paulo it may look like this:


Image for post
Image for post
Photo by Rafael De Nadai on Unsplash

Já andou de metrô lotado? Então talvez você já tenha passado por isso:

Douglas Navarro

Software engineer @Nubank | Paulistano | Biker

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store