markdown guide
 

Regarding the clean coding patterns and teaching them early, I agree it's not that important to teach specific clean coding styles and techniques early, but I do think it's important to understand that code is meant to communicate with people, especially your future self.

Also, the point about the reason makes me feel a bit weird, because I didn't have a particular reason to get into programming. I originally got into it by making silly little games, and now I just enjoy it as a problem solving tool.

 

Yes, indicating that code needs to communicate with people is a good lesson to learn.

As to the reason, I'm really not certain anymore. I think if you have a reason it's good, but I think making something fun is a good enough reason. If you're having fun, then you probably don't need a reason at all -- I don't think I did when I started either to be honest.

 

I'm still hazy about the have a reason thing. Yes, we go into programming because it was fun, but then real life happened and family and clients became the sole point of attention. For me it's worse because I have this habit of not sticking to a particular thing, and when I start to 'enjoy' programming, it derails all my discipline and work. 😕

In general, I'm wondering how do I put a finger on what exactly that reason is (or was), and how do I keep myself motivated (in other words, use that reason to give push to my career)? Surely it's not advisable to drop everything and get into game development because that's what you wanted to do when you started out? 😝

 

Get good at pattern recognition: I think the key thing to understand about pattern recognition is that it's an emergent property. I don't believe that it's possible to explicitly develop intuition. Instead it's a byproduct of experience; of solving lots of problems; of digging into the fundamentals; and of breaking down problems into simpler ones -- all of those other things discussed in Ali's article and your video.

For me, it's playing the game of go that has made this really apparent. I've studied and played go over the last several years, gradually improving over time. I'm by no means an amazing player, but I have mastered some of the important fundamentals. One thing I've found out recently is that I can evaluate a game in which a couple of hundred moves have been played, and I can generally tell who is leading without counting if the difference is at least about 5 points. I can just look over the board and say "okay, I think White is leading by about 5 points." I'd say I'm right about 75% of the time when I try this and then count carefully afterward to confirm. A few years ago, I had no idea how this was even possible, and I marvelled at players who could do it. Now I can do passable job of it myself, although I'm not really sure how I am now doing it either!

As a side note, it's interesting that machine learning algorithms have become powerful enough to do this too! They're even better at it in many domains than we humans are - in the last couple of years, this has been extended to the game of go! It's kind of amazing that they can just look at a situation and make an accurate overall evaluation of it. It's a pattern recognition that is very similar to human intuition. However, these algorithms are even worse than we are at breaking down their intuition into some kind of "explanation."

Classic DEV Post from Apr 16

Investing in the right technologies to avoid technical debt

How patience can help you avoid jumping on the wrong tech.

edA‑qa mort‑ora‑y profile image
I'm a creative writer and adventurous programmer. I cook monsters.