The Coder Habits: The #39# Habits of the Professional Programmer
5/5
()
About this ebook
A good programmer not only writes code but also incorporates routines, tricks, and attitudes into his day-to-day life that allow him to be more productive, more creative, and an even better professional.
Repeat and assume them as something natural until they become habits and, only then, you will go to the next level.
The only thing that distinguishes a good professional from another in the crowd are their habits.
It is not necessary to work many more hours, but to do it with more efficiency, productivity and more concentration. Do not generate software with so many bugs but rather develop better with good design and clean code practices. Adopt the necessary 'soft-skills' for a programmer.
Nor it is necessary to exert yourself to exhaustion, but to really assume the habits of an expert and more valued programmer. And so on until you complete the thirty-nine pills of wisdom described in this book that will take you several steps beyond your career.
By the author of The Black Book of the Programmer.
Rafael Gómez Blanes
Rafael Gómez Blanes es Ingeniero Informático por la Universidad de Sevilla (España). Infoemprendedor, ha trabajado en proyectos software internacionales relacionados con el sector eléctrico. Desarrollador profesional desde el año 1998, es experto en clean code y todas aquellas prácticas metodológicas que incrementan la productividad, mejorando la calidad del software generado. Evangelista de software ágil, dirige actualmente un equipo de desarrollo en una compañía de ingeniería realizando productos para la gestión de smart meters y su despliegue en la nube en modo SaaS (software as a service).
Related to The Coder Habits
Related ebooks
Diary of a Software Craftsman Rating: 5 out of 5 stars5/5Thinking Beyond Coding Rating: 5 out of 5 stars5/510x Software Engineer Rating: 0 out of 5 stars0 ratingsSkills of a Successful Software Engineer Rating: 0 out of 5 stars0 ratingsProgramming Interviews Exposed: Coding Your Way Through the Interview Rating: 0 out of 5 stars0 ratingsAce the Technical Job Interview Rating: 0 out of 5 stars0 ratingsProgrammer's Motivation for Beginners: Real Learning Stories & Tips Rating: 5 out of 5 stars5/5The Black Book of the Programmer Rating: 0 out of 5 stars0 ratingsGood Code, Bad Code: Think like a software engineer Rating: 5 out of 5 stars5/5Art of Clean Code: How to Write Codes for Human Rating: 3 out of 5 stars3/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5The Programmer's Brain: What every programmer needs to know about cognition Rating: 5 out of 5 stars5/5Programming Problems: A Primer for The Technical Interview Rating: 4 out of 5 stars4/5Five Lines of Code: How and when to refactor Rating: 0 out of 5 stars0 ratingsGrokking Simplicity: Taming complex software with functional thinking Rating: 3 out of 5 stars3/5Seriously Good Software: Code that works, survives, and wins Rating: 5 out of 5 stars5/5Street Coder: The rules to break and how to break them Rating: 0 out of 5 stars0 ratingsThe Easiest Way to Learn Design Patterns Rating: 0 out of 5 stars0 ratingsProgramming Problems: Advanced Algorithms Rating: 4 out of 5 stars4/5Visualizing Data Structures Rating: 0 out of 5 stars0 ratingsLearn Multithreading with Modern C++ Rating: 0 out of 5 stars0 ratingsSoftware Developer Rating: 0 out of 5 stars0 ratingsObject Design Style Guide Rating: 0 out of 5 stars0 ratingsCODING INTERVIEW: Simple and Effective Methods to Cracking the Coding Interview Rating: 0 out of 5 stars0 ratingsThe Self-Taught Computer Scientist: The Beginner's Guide to Data Structures & Algorithms Rating: 0 out of 5 stars0 ratingsSystem Design Interview: 300 Questions And Answers: Prepare And Pass Rating: 0 out of 5 stars0 ratingsTanmay Teaches Go: The Ideal Language for Backend Developers Rating: 0 out of 5 stars0 ratingsFunctional Reactive Programming Rating: 0 out of 5 stars0 ratings
Software Development & Engineering For You
SQL For Dummies Rating: 0 out of 5 stars0 ratingsLearn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5PYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5Hand Lettering on the iPad with Procreate: Ideas and Lessons for Modern and Vintage Lettering Rating: 4 out of 5 stars4/5How to Write Effective Emails at Work Rating: 4 out of 5 stars4/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Modern C++ for Absolute Beginners: A Friendly Introduction to C++ Programming Language and C++11 to C++20 Standards Rating: 0 out of 5 stars0 ratingsPython For Dummies Rating: 4 out of 5 stars4/5The Essential Persona Lifecycle: Your Guide to Building and Using Personas Rating: 4 out of 5 stars4/5Coding All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsiOS App Development For Dummies Rating: 0 out of 5 stars0 ratingsBeginning Programming For Dummies Rating: 4 out of 5 stars4/5Level Up! The Guide to Great Video Game Design Rating: 4 out of 5 stars4/5Photoshop For Beginners: Learn Adobe Photoshop cs5 Basics With Tutorials Rating: 0 out of 5 stars0 ratingsLua Game Development Cookbook Rating: 0 out of 5 stars0 ratingsManaging Humans: Biting and Humorous Tales of a Software Engineering Manager Rating: 4 out of 5 stars4/5Wordpress 2023 A Beginners Guide : Design Your Own Website With WordPress 2023 Rating: 0 out of 5 stars0 ratingsThe Inmates Are Running the Asylum (Review and Analysis of Cooper's Book) Rating: 4 out of 5 stars4/5Tiny Python Projects: Learn coding and testing with puzzles and games Rating: 5 out of 5 stars5/5iPhone Application Development For Dummies Rating: 4 out of 5 stars4/5Android App Development For Dummies Rating: 0 out of 5 stars0 ratingsHow Do I Do That in Photoshop?: The Quickest Ways to Do the Things You Want to Do, Right Now! Rating: 4 out of 5 stars4/5How Do I Do That In InDesign? Rating: 5 out of 5 stars5/5Git Essentials Rating: 4 out of 5 stars4/5Agile: What You Need to Know About Agile Project Management, the Kanban Process, Lean Thinking, and Scrum Rating: 5 out of 5 stars5/5Test-Driven iOS Development with Swift Rating: 5 out of 5 stars5/5Adobe Illustrator CC For Dummies Rating: 5 out of 5 stars5/5Python Clean Code: Best Practices and Techniques for Writing Clear, Concise, and Maintainable Code Rating: 0 out of 5 stars0 ratings
Reviews for The Coder Habits
1 rating0 reviews
Book preview
The Coder Habits - Rafael Gómez Blanes
{ #1 - Apply the 50/50 rule }
―
We believe that coding consists in just writing «new» code. This is, that we only «ruly» work when we add a new functionality and characteristics, which is, maybe, the funniest part for some.
This is a belief that is somehow naïve from those who have not understood the nature of launching a professional project.
You will spend more time reviewing and modifying any code than writing it, so, probably, what you had in the beginning has little or nothing to do with what you will have in the following months.
I have observed this: when you have little experience, you try to spend most of the time writing new code; however, the more time you have spent in the profession, the more you enjoy improving the solution. Weird, but it has an explanation.
If you do not stop adding new code and don't stop to check what you wrote, you will be making mistakes and repeating them, the technical debt you left behind will affect you sooner or later. The «technical doubt» are all those «to-do's» that you have to improve and those things that are not quite good (maybe you are not aware of it yet). When you amass more and more technical debt, the more effort you will have to invest in correcting it, in fact, the difficulties grow exponentially.
I call this the «50/50 rule», it is a way of describing that we have to spend half of our time writing new code (in the form of new functionality and its tests) and the other half reviewing it and improving it (cleaning and design). Both activities are part of what we call «coding». This percentage is an estimate, of course, but what is important to note is that we have to dedicate a good amount of time in improving and refactoring, continuously, and that job is inescapable in our daily basis.
It is true that we often work under deadlines and with a certain development method that imposes some times and the characteristics we have to develop and modify, so we will often meet pressure that makes us add functionality and put aside any other thing that involves improving what is already there. Doing this on the run and at any price, could suppose a shot to our own feet.
We have to reach some balance between both activities and the deadlines we agreed on, and we should also understand that any time used to improve some aspect of what is already there and works, will facilitate our job when adding some new functionality and we will spend less time doing so, so improving the code and its design is in the end, an investment and not a waste.
If you can, it is a good idea to dedicate some effort to that improving job when beginning a new development or «sprint» phase, as a way of cleaning and preparing the way for the new functionality you will add.
Also, actively making this improving job, will allow you to polish the code as much as you can and get to a point in which it is all well-designed and coded, that, over time, you will learn some things that will improve your initial code more and more; you do not get to learn all those things when you do not put any time in thinking what to improve and how, but only correcting bugs and keeping the initial code untouched because you think you «already invest too much time on it», and that modifying it could suppose throwing away part of this effort. But that's very far from truth.
Continuously improving the project is a good habit that will facilitate and improve your life as a developer.
You may be asking yourself that if you continuously touch the code to improve it, what assures you that it is still running correctly? With an amply battery of tests, units, integration, etc. There's nothing more. It is obvious but, do you do it?
If you find yourself with some free time, you do not want to read at the moment, what to do? A micro-improvement, adding more and better tests, etc. There is always something to improve in a software project.
Think what would happen if you accumulate a hundred micro-improvements over weeks and thousands over months.
{ #2 - Learn something new every week }
―
If you do not progress, it is because you're going backwards. That's it.
You may feel comfortable doing exactly the same things year by year: working on the same type of project, always using the same type of solutions, in the same environment and using the same language.
I want to tell you that that environment and language, are obsolete since longer than you can imagine, not in vain, the software industry is one of the more dynamic out there because all the economy is migrating to digital, if it hasn't done it yet somewhere. And I am not talking about fixed webs like a publicity issue, but technologies that were very expensive before and nowadays anyone can possess them (like all services brought by the cloud computer platforms), solutions that were so expensive are now open to be used at a very competitive price, new coding environments with very specific projects and allow new professions to exist like data scientists, big data analysts, security analysts,