The Art of Clean Coding — Professional Programmer

1 Minute Summary

Photo by Martin Shreder on Unsplash

Now let’s understand all above points with more insights.

Professionalism

Saying NO

Saying YES

Coding

  • First, your code must work.
  • Your code must solve the problem set for you by the customer.
  • Your code must fit well into existing system. It should not increase the rigidity, fragility, or opacity of that system.
  • Your code must be readable by other programmers.
  • Make sure that your sleep, health and lifestyle are tunes so that you can put in eight good hours per day.
  • Non work related worries affect your work. Partition the time. Rather than forcing yourself to code while the background worry is nagging you, spend dedicated block of time, handling the worry.
  • Like me, many engineers love the flow zone. Reality is, you lose some of the big picture while you are in the Zone, so you will likely make decisions that you will later have to go back and reverse.
  • Disengagement from work allows your mind to hunt for solutions in a different and more creative way.
  • Do not *hope* that you can get it all done in ten days. Hope is a project killer.
  • Do not rush. The poor developer might buckle up and agrees to try to make the deadline. That developer will start taking shortcuts and working extra hours with the hope of working a miracle.
  • Do not agree to work overtime unless A) You can personally afford it B) It is short term, two weeks or less C) Your boss has a fallback plan in case overtime effort fails

TDD — Test Driven Development

  • You are not allowed to write any production code until you have first written a failing unit test
  • You are not allowed to write more of a unit test than is sufficient to fail.
  • Round and round the cycle you go. Adding a bit to the test code. Adding a bit to the production code.

Practicing

Acceptance Testing

Testing Strategies

Image describes various type of tests software development team can adopt to better evaluate products.
Pyramid of Tests
  • Meetings cost about $200 per hour per attendee, considering salaries, benefit, facilities etc. Professions are aware of the high cost and aware of their time, so they actively resist attending meetings that they do not have an immediate and significant benefit.
  • You have an obligation to manage your time well. If you find yourself stuck in a meeting that is not a good use of your time, you need to find a way to politely exit that meeting.
  • To use the participants’ time wisely, the meeting should have a clear agenda with times for each topic and stated goal.
  • Standup meeting should not take more 1 minute for each participant.
  • Sprint/Iteration planning should not take more than 5% of total duration of entire sprint. ie 2 hours for 40 hour sprint planning.
  • Any argument that can not be settled in five minutes, can not be settled by arguing.
  • Focus is a scarce resource, after you have expended your focus, you have to recharge by doing unfocussed activities.
  • A good long walk, a conversation with friends, a time of just looking outside window can help you pump the focus back up.
  • You will get most focus after good night’s sleep.
  • Muscle focus can help you recharge mental focus. ie martial arts, tai-chi, yoga, meditation.

Collaboration

Teams And Projects

Craftsmanship

--

--

--

Software Engineer. http://joshiharshit.com/

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Reactive CRUD APIs with Spring WebFlux

CS 371p Fall 2021 (Sept. 27–Oct. 3): Vincent Cacciatore

Django static file cache, by the way of content hash

Christmas Carol Fun with Anvil Web App Framework

STEM Box update #2 — 1600+ packages shipped in 10 days, did you receive your Jay-D yet?

Create your own Voice based application using Python

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Harshit Joshi

Harshit Joshi

Software Engineer. http://joshiharshit.com/

More from Medium

Peer programming, mob programming, solo programming…

Java vs JavaScript: What Are The Important Differences?

Six Digit Salary Software Developer: Starting From Scratch

What is Programming?