Book Archives - Grape Programmer https://grapeprogrammer.com Axel Fortun's blog - Passion for Software! Sun, 01 Nov 2020 21:05:20 +0000 en-US hourly 1 https://wordpress.org/?v=6.8 https://grapeprogrammer.com/wp-content/uploads/2021/07/cropped-GrapeProgrammerFavIcon_Min-1.png Book Archives - Grape Programmer https://grapeprogrammer.com 32 32 Programming skills: How to train? https://grapeprogrammer.com/train-programming-skills/ Mon, 02 Nov 2020 07:00:00 +0000 https://grapeprogrammer.com/?p=4892

Do you train your programming skills? Do you follow any programs to keep your programming skills up to date?

It was not the case for me one year ago. Currently, I am maintaining my level and learning some new programming languages! My training is based on three axes: Book reading, learning new languages, and skills maintenance.

The first pillar of programming skills training: Book reading.

The first part of my training is dedicated to book reading. Each day, I take about 15-30min of my time to read books.

At first, I read some “no technical books”. Like personal development in the programming world. I can recommend you some books like this one:

Here is a little review of "Pragmatic Programmer".  Indeed, This is one of my favorite "programming" books". Written by Andy Hunt and Dave Thomas, two professional software developers, this book reviews different situations in the Software industry. Furthermore, I felt that this book was really easy to read: Few codes

Read More

In all cases, this training has three goals: To learn new skills, new practicals and the evolution of the programming world. When I started to read books, I felt that my Software skills had been improved. Among all my recommendations here, it is the best one!

Learn a new language per year.

Simple ClassRoom

The second part of my training is learning a new programming language. The programming world is in constant evolution. A few years ago, Typescript didn’t exist. Docker is recent and now Virtual Reality and Artificial Intelligence are coming up!

As Software developers, we should learn new competencies constantly. Personally, I am learning one programming language per year.

To learn a new programming language, you don’t need to learn all specificity. My program to be proficient is simply to start by reading a book/following a course. Then, I start a personal project to practice my new language.

You don’t need to know a new programming language at 100%. Only 20-40% of the language is sufficient to be proficient!

Maintain your programming skills: The code Kata.

Coding kata

There are many programming languages. However, in a single job, you can exercise only a few programming languages. Moreover, “coding” is only a few parts of our job. You participate to meetings, maintain designs, review strategies...

Your programming skills are rotting. Specially the ones you don't use. We should maintain them to be proficient at any time.

To maintain our programming skills, we should train it! Personally, I follow a great method featured by Dave Thomas: the Code Kata! Later, Robert C. Martin described the concept in his book “The Clean Coder”.

In martial art, a Kata is a choreographed movement that simulates one side of combat. Converted to the programming world, a Kata is a precise set of movements to resolve a simple programming problem. It can be “How to convert a string to uppercase” or “Create a simple chess game”.

Choose your programming language, and repeat the exercise again, again, and again!  Practicing a set of Kata is a great way to maintain your programming skills. Personally, I follow some websites to train my programming skills in multiple languages, like C, C++, Rust, or Python. Here two of them:

Those websites propose to you a set of simple exercises to train your coding skill. Enjoy!

]]>
Quick Review: The Pragmatic Programmer: your journey to mastery. https://grapeprogrammer.com/quick-review-the-pragmatic-programmer-your-journey-to-mastery/ Sat, 15 Aug 2020 19:54:04 +0000 https://grapeprogrammer.com/?p=1662

Here is a little review of "The Pragmatic Programmer".  Indeed, This is one of my favorite "programming" books".

Written by Andy Hunt and Dave Thomas, two professional software developers, this book reviews different situations in the Software industry. Furthermore, I felt that this book was really easy to read: Few codes and tips available whatever the programming language. In fact, it is a great entry in the Software world for each new comers in the Software industry. If you are a veteran in the industry, I am not sure that you'll learn a lot!

With "The Pragmatic Programmer", you'll review several point of the industry, specially:

  • How to fight the technical debt (rot code).
  • How to don't repeat yourself.
  • Create flexible, dynamic and adaptable code.
  • Capture the real requirement.
  • The essence of agility.
  • And other stuffs...

Despite the dated examples (The first edition was released in 1999!), the different anecdote are still relevant!

From my personal experience, this is my first programming book and the one which motivated me to create this blog. After, I continued to read more and more book and become a better Software Developer. More of that, this book gave to me "words" to several practice I done during my carrier.

Also, it reveals one aspect that I specially liked. The parallel between a Software Developer and a "Gardener". Indeed, as a gardener, a developer must regularly work on old and legacy system. Those legacy system should be maintained regularly to avoid technical debt (and then, keep a minimum of modernity!).

If I should recommend one book for a fresh Software Developer, it would be probably this one. So, don't hesitate to review it!

]]>
Quick review: Clean Code https://grapeprogrammer.com/quick-review-clean-code/ Wed, 27 May 2020 22:33:06 +0000 https://grapeprogrammer.com/?p=228

Hey, I want to feature you quickly this book (A classic one!).

​Clean Code by Robert C.Martin (also known as Uncle Bob). Robert C.Martin is a Software engineer and instructor. ​He is also known as one of the authors of the famous ​Agile Manifesto​​​!

​I read this book for the first time few month ago. And I'll certainly restart in one year.

Why? Because ​the examples are timeless and in total abstraction of the language used! It is a great introduction to recognize what is the difference between good code and bad code. Quick example of the principle featured:

  • ​Choose descriptive names for your variables - In one year, you may probably forgotten the meaning of this strange variable named "testTmp" !
  • Keep Configurable Data at High Levels - Avoid magic number ​and simplify the configuration of your variables with default value!
  • ​Avoid dead code (even commented)! - Your source control system is able to remember all the history.

​There are many other example and better illustrated than I did ​above. It also illustrate at the perfection the "Boy Scout Principle".

"Leave your code better than you found it"

“​Can you imagine working on a project where the code simply got better as time passed ? Do you believe that any other option is professional? Indeed, isn't continuous improvement an intrinsic part of professionalism?”

- ​Robert C.Martin - Clean Code

​The question of "Why a clean code is important in the industry" and "Is it vital for a business to keep clean code" is a question which deserve several post due to its ​complexity and ​multiple opinions.

​In all cases, I think it is ​a great book for every developers which want to improve. So, don't hesitate to acquire this book, it is a must have!

]]>