One of my favorite hobbies is reading. I read a lot, books and more. But I don’t take notes on what I read: this is my fault. I want to start keeping track of the interesting things I read, week by week. I start today, with a collection of 5 articles that I have read and that I want to share.

You can build a neural network in JavaScript even if you don’t really understand neural networks

link

A well done guide on how to create artificial intelligence using JavaScript. Do not dwell on the theoretical part but create a practical example using BrainJS, a library for browsers and NodeJS.

It’s a post from a few years ago (2018 … how fast time goes by) and there’s some problem with the formatting. I therefore recommend reading it alongside the source code of the project. It can be found on GitHub: lordpoint/neural-network-author-classifier. To use it locally you need Python 2.7. However, if possible, I recommend using the CDN link:

<script src="//unpkg.com/brain.js"></script>

A nice example of what you can get through this library is the Rock Paper Scissors - With Artificial Intellegence site. We can play against an artificial intelligence that learns to recognize our style of play and predict our moves. A tip: the only way to win is to play completely random.

How to Build A Plugin System with Node.js

link

I admit that I have not yet put into practice what is written in this guide of November 2021, but I plan to do so sooner or later. This post explains how to create a plugin system to use in conjunction with Node.js. This intrigues me. One of the problems I will face with the gest-dashboard project will be very similar. Knowing that it can be done, and having a vague idea of the various steps will be very helpful.

Here’s Bill Gates’s Advice to New Programmers. It Should Not be Ignored.

link

Somnath Singh often writes very interesting pieces. On my list of articles to recommend there are many of him. So, in addition to this article, I recommend that you also browse his other posts and read some of them. It is worth it.

This piece is very interesting because it collects some advices from Bill Gates, explaining them and helping to understand them better:

  1. Don’t overthink, just dive in: The best way to prepare [to be a programmer] is to write programs, and to study great programs that other people have written.
  2. Know your tools well — Really well: If you ever talk to a great programmer, you’ll find he knows his tools like an artist knows his paintbrushes.
  3. Get good at reading the code: I still think that one of the finest tests of programming ability is to hand the programmer about 30 pages of code and see how quickly he can read through and understand it.
  4. Learn to make things as simple as possible: The hardest part is deciding what the algorithms are, and then simplifying them as much as you can.
  5. Learn to work in the group: So the idea of spending a lot of time on structuring groups has always been very important.
  6. Visualize first then create it: It’s what’s going on in their heads that’s most important.
  7. Know the joy of creating something: It’s fun and quite rewarding.

Somnath also adds: “Embrace the new technology”.

Avoiding Premature Software Abstractions

link

A technical piece that tackles a complicated question. At least for me, for what my level of knowledge and experience is. It is an interesting and informative read. The author, Jonas Tulstrup, presents four examples:

  1. Responsibilities are abstracted too granularly
  2. Design patterns are used without real benefit
  3. Performance is optimized prematurely
  4. Low coupling is introduced everywhere

I also recommend the other post written by the same author:

In this post he explains, in his opinion, class-based unit testing problems:

  1. Class tests make changes painful
  2. Class tests don’t validate actual behavior
  3. Class tests are hard to understand

Instead of this methodology he proposes: instead of unit testing classes, we are treating our entire system, a microservice for example, as the unit or system under test. It is worth taking some time to read this idea.

Here’s Why You Should be Bullet Journaling

link

The last article I recommend is not related to the world of programming. This is a piece by Jillian Fegan about her use of the Bullet Journal. There are many such articles on Medium but I particularly liked this one.

What is the Bullet Journal? It is an agenda built according to your needs and with which to organize and track everything you need, from private life to work. Mine is awful, aesthetically speaking, but it’s a functional technique that I recommend trying.

Well, that’s okay for today. There is enough to read, I think. I count on writing more pieces like this, perhaps on a regular basis.