Create fast feedback loops
Another tip for struggling Software Engineers
When we first learn programming — whether that’s with C, Java, Python or something else — we’re in the comfort of our IDEs where we have autocompletion, red underlines, and we can test our code by just hitting “Run”.
Life is easy, and we learn quickly as our mistakes are pointed out to us almost immediately.
Things change when developing for the web. If you don’t plan it properly, you might find yourself in a scenario where you have to deploy your project in order to test it. That is, no more clicking of one button to see how the code runs. Now we have to perhaps Git commit, deploy our website or application to the World Wide Web, and only THEN can we see whether things went according to plan (or that we have ruined everything).
The process of deployment could take minutes so we lose that instant feedback. As a result, we stop tinkering and watch our every step. Suddenly, coding is a chore.
Fortunately, there are solutions out there for you to start testing your code locally without deployment.
Lately I have been experimenting with Facebook Messenger Chatbots. Initially, I was going with the deploy-to-test strategy, but I realised something was wrong when I had to write:
git commit -m "Just testing something"
So I googled for a solution and found out about a technology called ngrok. Now I can test without deploying and I can once again mess around and see how different parts of my code behave.
So if you’re coding something, make sure you find out how you can keep testing your work easily. It will make programming fun, and make you a better programmer.
(Creating fast feedback loops is one of the 10 tips in Josh Kaufman’s Ten Principles of Rapid Skill Acquisition which I took from his book: “The first 20 Hours”.)
I’m a CS Major, but I find myself struggling with actually making software sometimes. I’ve decided to overcome this personal barrier once and for all by working on it every single day. If you too are in the same position, follow me on Medium where I will continue to share what I learn along the way.