I have been an independent programmer for a long time. Like 5-6 years? Recently been employed with Xentrix Studios, an animation studio based in Bengaluru, as a pipeline developer.
Today I want to share what changes I’ve felt in these recent years.
Write Readable Code
The code is read much more often than it is written. In fact, source code is written for us, the humans. A source code to achieve a certain task to be done can be written in dozens, if not hundreds of ways. Computers will still interpret it no matter in which way it is written. So at the end of the day, it’s the human to whom flow of source code matter.
This was something I wasn’t aware until some time back. This isn’t something you learn when you code for yourself. Because there is a high probability that you’ll understand your own code. But when you code in a team, it is not the same case.
This is where coding convention kicks in. Coding convention in a group is adhered to maintain interoperability between co-programmers.
Adhere to the style guide of the language community or your company’s own; Python has their PEP-8, other might have their own. Google has its own style guide covering multiple languages.
Avoid Tight Coupling
In my former days of programming, like any other self-taught programmer, I used to write procedural code.
Tight coupling is something when you write code which is highly dependent on another piece of code, most probably in the same script. When you change the code in one place, it breaks the entire script, like a ripple effect.
But when you break the code in different modules, you get a same place to look up into for similar problems.
An analogy of UX can be taken from a door. There’s a door which has a handle. Would you push it or pull it? Now there’s another door which has no handle, would you push it or pull it?
Same applies in interface design. Avoid distracting users attention with multiple components. Notice how having no handle on door makes up obvious to push the door?
Don’t make the user click 5 buttons to do the stuff which can be done in 2 clicks.
Unit testing is something I’m not doing right now. But I anticipate it’s essential for large-scale development.