Wikipedia defines the term “hacker” as “a computer expert who uses their technical knowledge to achieve a goal or overcome an obstacle, within a computerized system by non-standard means.".
So it’s about that mindset.
As a software engineer, I know about patterns, frameworks, idiomatic code, and so on. Years of experience help to break down almost every problem into small pieces and chart a path to the final solution. Of course, there is a favorite programming language, a database, and a set of useful tools that help to solve problems. All of that creates a productive work environment and a mindset, but at the same time leads to some sort of isolation.
Because of this isolation, the favorite programming language is used for every task, the framework of choice is the ultimate answer for every project. Even if better results could be achieved with another language, and the project might not even require any framework at all.
Some time ago I caught myself on these habits and decided to change them to be even more productive and achieve even better results. These are the lessons I’ve learned and the discoveries I’ve made.
Question initial ideas
To break the bubble of standard solutions I started questioning initial ideas and challenge myself to find alternative solutions. Any alternative has to comply with only one rule: it must be simpler. Sometimes it’s hard, but that’s a lot of fun.
For example, try to ask:
- Could a plain text file be used instead of a database in this project?
- Wouldn’t be Docker too much for this task?
- Does that make sense to use Node.js to make this tool just because I know how to use Node.js?
- Wouldn’t be a plain HTML file better than a single page app?
Of course, time is required to develop skills that help to find the right questions or sometimes accept the initial idea as the right one.
Staying open to new things is extremely beneficial. It isn’t just fun to “play with new toys” or a good chance to find the right tool for a job, but it’s a deep source of inspiration.
All that being said, it doesn’t mean that any initial idea is right away wrong and must be challenged, or the favorite programming language doesn’t fit the task. Not at all. It’s important to trust your gut feeling and experience.
Hack the planet
All of that helps to develop what I call “a hacker mindset”. Something that helps to go beyond the circle of standard solutions, discover new ideas and interesting people, and grow.
Guess what? This mindset works great not just for overcoming obstacles within a computerized system. It’s applicable in everyday life 😄