Was trying to figure out why only four lines were printed on the display as I was writing the driver this morning, took me a whole hour, re-read the datasheet like ten times only to realize that I made the hexadecimal rookie mistake. I was printing 0x01
instead of 0xFF
and that was a hour and a half gone from my morning. Nonetheless, I still had fun. The strange thing is that I was thinking the whole time that I've missed some initialization or my commands were off but I was not even close. Anyhow I can print to the whole display now. Also realized that the display is faulty and only about half of it comes on, the other half is quite dim. It's not a big deal though. I'll get another display that hopefully works. I don't think it's the driver as during initialization I do reset the display.
Practice
Been listening to John Carmack a lot lately, the common theme that comes up is practicing more. He is regarded as one of the best programmers ever. He does talk a bit about hard work, and to be honest it makes complete sense. I like how he describes it as hard work, when he speaks of hard work he is talking about effective work. Also it's quite inspiring to know that he got good because he programmed for sixty hours a week. It's also a relief because it just means the secret is that there is no secret. Just spend more time on your craft and you will get good over time. The other thing that I've picked up on is that he is curious and seems to love programming.
To be honest in the beginning it's quite hard to know what is effective, so the simplest thing to do is to throw more hours at it. It helps get familiar with the tools and the language. It's been in theme with my recent desire to find out how much better can I get if I spend a lot more time than I am currently. The only solution that I could come up with was to wake up earlier and use the morning, after about six in the evening I find myself to be quite useless. So my thinking was, go to bed as close to six as possible but not so early that I can't play badminton in the evening when I want to. The best possible turned out to be eight and eight hours after is four, so that's what I have been doing. It's quite awesome really, by about seven in the morning I've streamed for an hour or two, finished this blog and am ready to go to the gym. I really do want to work six to seven days a week and write a lot of code. As much as I possibly can. One of the other things I relate with what he said is that after about twelve hours his brain goes to mush and I feel the same. So don't really try after ten to twelve hours.
I would like to check in after a month, three months, six months to a year to see how fast I can progress. I might never get to be the best but I want to get as close as I possibly can. I want to know what it feels like to be fucking competent at what I do.
I've been noting down problems I would like to fix for myself so that I can write a lot of code. More importantly do deliberate practice where I do things that I've never done before and are slightly outside my comfort zone. It's a lot harder but I'm finding out that this is a lot more satisfying and I do end up being a lot more confident and competent after each of these. So I'm going to do more of it.
Getting used to the early wake up
Truth be told, I'm still adjusting to the early wake up. The great thing is that I fall asleep the minute my head hits the pillow and I'm waking up just a few minutes before the alarm even rings. I still feel a bit tired now and again, but it's only been a week. I'm certain I'll adjust to this better in another week's time.