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.
Well, it turns out someone discovered and shared most of those “little strategies” a long time ago. In 1954, to be more precise. The man was named George Polya, and he was an amazing mathematician. …
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. …
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. …
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 the most of it. Hopefully, they will help you too. …
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.
Not all tutorials need to be boring
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.
The best way to learn is to teach!
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 from them. …
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: