It's hard to not talk about this topic, I've always been the kind of person who'd prioritize learning over everything and have no regrets. I've done that while building most of my projects. Better project structures, easier ways to implement a certain functionality while maintaining a clean code, all of these have come after a lot of trial and error and there's still times where I'd give up on clean code just to get a hacky version of my idea up and working.
But this post isn't supposed to be about learning, this post is about why Development tools are an important part of a developer's life and why he should focus on growing up to be a power user of every tool that exists in his dev toolchain. People who think that this is supposed to be obvious, you'll find out why I'm writing this.
I've seen people use VSCode like they were using notepad++. No hard feelings towards notepad++ but the whole point of having something feature rich like VSCode is to make it easier and faster for you to work with. People seem to be surprised when I use
multi-cursors in the editor to edit multiple lines of code.
The code editor is not the only tool that I'd like to focus on. Database GUI Clients, Various Browser debugging environments, Platform specific IDE's (Android Studio / XCode),Deployment Tools, CI/CD all of these have a ton of features that can help you automate and if not automate , maybe just make it easier and sometimes also faster for you.
Even though I am trying to convince you to use tools, I don't want people to stop going through the raw basics of each of the technologies that they use the tool for. I still want you to learn to use something like
vim, I still want you to learn raw sql queries, you should already know why the linters need to exist.
- Instead of Browsing for a file through the file tree, use the super search provided by your code editor.
- Use a GUI to manage your remote and local database instances instead of writing redundant create/delete queries for it. The GUI tool does allow custom queries and the tables are a visually a lot more pleasing to go through (Doesn't mean , you stop learning SQL/NOSQL queries all together and just depend on the tool)
- Learning to use a Git Diff tool like
Git Krakento make merge conflicts and git history tracking a breeze. (Doesn't mean you shouldn't learn
- Learn the basics (Advanced topics too, if you can) of all the technologies that you use.
- Find tools that suffice to your requirements and don't use heavy tools if you're not going to use it's features. You are just wasting your system memory in most cases.
- Grow to be a power user of each tool you use, learn the keyboard shortcuts, if the tool can be configured, figure out various ways to configure it. If the tool has a plugin system, maybe even build a plugin to know about it inside out.
- Don't skip the 2nd point!