Archive for December, 2020
I used to spend a lot of time playing video games as a kid. Loved my Atari 2600!! Shortly after I started working full-time at age 14, I bought my first computer. After spending what I thought to be too much time playing Wolfenstein 3D and Doom on my computer, I decided I should never have games installed on my computers. And that’s how it has been ever since: I do not play computer games.
Shortly after getting my first iPhone (v2), I ended up getting some games on it. I’ve played the heck out of Angry Birds! At one point, I noticed I was spending too much time playing Doodle Jump. Yeah, this game…
The game has a stats feature. When I saw the total time I had spent on that game, I was not happy. I don’t remember what the number was, but it added up to a few days.
I couldn’t believe I had spent that much of my life on such a thing. I thought about many other activities I could have done in that amount of time and realized I’d be much happier if had spent such time in those activities instead (working on my music, sharpening skills I use to make a living, reading great books…).
So I decided to never have games on my phone again. And it has been like that since 2010.
When I first moved to the US in 2002, my first guilty pleasure was a 1st generation X-Box (videogame consoles are ridiculously expensive in Brazil!). I used to play on it for several hours some weekends. I’ve had the X-Box 360 and currently have the X-Box One X. So, how do I handle it these days?
For the last year or so, I’ve been tracking my time spent on certain activities using the ATracker app on my phone. The activities I track may vary, based on what I’m trying to improve in my life:
- If I feel like I’m spending too much time on a given type of activity, I track it;
- If I feel like I’m not spending enough time on a given activity, I track it;
- In a given month, I may want to make sure I spend more time working on my music;
- On another, I may want to spend more time catching up with friends.
I use time tracking as a tool to keep myself accountable.
Since March, I’ve been track the time I spent reading books vs the time I spend on the video game. When I pull up the app, I want to see no more than 20% of my tracked time going into video games over the last 30-day period. Playing games is fun, but I also get a lot of fun out of reading, and can get even better things out of it.
As I pulled up my phone right now to check the time tracker, I see 76% reading and 24% gaming, which tells me I need to focus on getting more reading done over the next couple days, before I think of video games.
When I do play video game, I deliberately set how long I’ll play (usually 30 minutes, sometimes 1 or 2 hours), and I have the ATracker timer in a visible spot at all times.
One of my goals for this year was to improve my Spanish. One of the milestones was to give my first talk in Spanish. It happened yesterday.
“Big deal, you are from Brazil, you speak Spanish!”. Not really. “But it’s very similar, isn’t it?”. Sometimes. “It should make it easier for you to learn Spanish, right?”. Well, I can now officially say it: No, it doesn’t. Quite the opposite.
But let me reminisce about things…
After I got involved with technical communities and gave my first talk in Portuguese, people said they enjoyed it, that they were entertained and learned things. So I kept giving talks. When I moved the US, one of my goals was to continue giving talks, so I had to work hard on my English.
I gave my first technical talk in English to a few of co-workers back in 2003, and specifically asked them to write down any tips they could give me in regards to my English. I know I have a video of that somewhere. At the time I’d get every one of my talks on video so I could later watch and look for areas of improvement. I’m always interested in the nuances of the languages: the subtle pronunciation of certain letters and how it varies when words are strung together, the choice of words based on context and message we want to get across, etc.
The talk I gave in Spanish yesterday is a relatively new one. I’ve only given it once, earlier this year. I was thinking in English during its creation, since the main target would be English-speaking attendees. In the past, I have taken a talk created in English and then delivered it in Portuguese, and I remember getting stuck at times, even though Portuguese is my primary language. I was sure I’d get stuck in Spanish today. And I felt I did.
My attendees today were my very kind Spanish-speaking co-workers, who signed up to my talk and gave me feedback at the end.
Spanish and Portuguese do have words that sound similar. Some of the grammar is also similar. But not all of it. And that’s where things break down. Sometimes, I used the correct Spanish words in a sentence, but the structure of the sentence was wrong: unintentionally, I used the Portuguese struture, which then produced improper Spanish. Sometimes, I said words that sounded half-Spanish and half-Portuguese, because they’re very similar, but yet, spelled and pronounced differently.
My co-workes assured me my talk went fine and the mistakes didn’t seem to cause them to misunderstand what I was saying. That is great and it encourages me to keep pushing it and offer talks for more Spanish-speaking venues.
I’ve always been very hard on myself in regards to languages and I will work hard on the feedback I’ve received, as it gives me very specific points I can focus on.
To finish this post, I’d like to call back to my Know, Say, Do post: just knowing Spanish isn’t enough, just saying a few words here and there isn’t enough… I had to do it, and giving a talk is a way I knew for sure would raise my stakes and give me something to aim at.
Note: I started my talk yesterday showing my acoustic guitar and saying “if my Spanish doesn’t work, I’ll just pick up the guitar and start playing something”. 🙂
The other day I’ve mentioned I do some speed reading when reading autobiographies. I actually also do it when reading other things. Here’s what I currently know and do about speed reading.
Back in 2000 or 2001, a co-worker was taking a very expensive speed reading course. He kindly offered to pass his learnings on to those of us who were interested. We only had a couple of lessons, but it was enough for me to immediately harvest the benefits.
Speed vs Comprehension
In the first lesson, he gave us the test to find out our current reading speed (words per minute, or WPM) and the level of comprehension. At the time I was reading like we are taught at school: one word at a time (often one syllable at a time). I can’t remember what my WPM was, but I remember my comprehension was at around 70% or so. There are such tests online you can find to see where you are with that at the moment.
He gave us some excercises to practice for a week. The exercise was a page containing 3 or 4 columns of words. We’ve cut a piece of paper so its length would be enough to cover the page top to bottom, and its width would be enough to cover an entire column of words. We’ve cut a rectangular gap on the paper so that we could see one word, and only one word, when laying it down on the page.
Seeing words, instead of reading them
The exercise was to pass that piece of pager on the page, top to bottom, one column at a time, left to right, at a speed where we could see each word going by, but not read it. If we passed too fast, we’d only see a blur of words; if we passed too slow, we’d end up reading the words. The idea is to only see the word, without reading it in our mind.
The following week, we did the test again. I don’t remember my specific numbers, but I know that I read the text much faster, and my comprehension went up to 85% or so. That blew me away. Since I was forcing myself not to silently read the words (saying them in my mind), I thought there was no way I’d be able to answer any question about the text I had just read. Seeing my comprehension going up was enough for me to pursue speed reading a little more.
One of the following exercises was to read text on a page using my index finger going left to right line by line (which was something I remember my school teachers specifically telling us not to do. They were wrong). That’s how I still read it today when I’m going fast. It helps me focus on moving my reading forward, instead of constantly going back to re-read words or sentences I’ve just gone through.
Sing one thing, Read another, at the same time
Another exercise was to listen to a song and sing it out loud as I read something. That one was awesome! Saying the words in our minds as we’re read them slows us down a lot. The brain doesn’t need us to read the words back to us. Once we see words, the brain processes them immediately. If we’re driving on the road and know that we have to take the exit to Such and Such City, we do not need to read every word on every road sign along the way; as soon as we see Such and Such City on a sign, the brain tells us “dude, that’s your exit”.
So, back to reading something while singing. The point of the exercise is: if we are singing lyrics out loud, it’s very unlinkely we will be able to say in our minds words we are reading on text that is not the lyrics we’re singing. So we can only see the words. Give that a try! Pick a song you know the lyrics by heart, let it play, sing a long, while reading a page of a book, a blog post, or anything like that. When the song is done, write own what you remember from the text you’ve read. You don’t have to write down word by word; just write down in your own words what you remember. Then go back to the text and see how much of it you got right.
I do NOT speed read everything. I control my pace based on what I want to get out of the text I’m reading. For example, if I’m trying to just quickly learn about a new technology, I’ll most likely read through the book really fast, focusing on the title of each chapter, words that are in bold or highlighted some how, bulleted lists, etc. As I mentioned about reading biographies, I speed read through sections I’m not deeply interested in, and slow down on sessions that grab my interest. When reading fiction, I really slow it down, so I can appreciate more the author’s craft with words, character development, etc.
Slow or fast, go read something else now!!
Front-End development technologies come and go. In my experience, they have been the single most volatile part of software. Their lifespan seems to be very short (5-10 years).
Why are they so volatile?
- Probably because the devices the users interact with evolve far faster than what they don’t interact with (back-end, databases and such);
- Users now expect more. Back in the day, users would happily use whatever software they had to automate their work. That has changed over the years as most people have their own personal computers and devices, which they use for way more things than just “boring accounting and payroll systems”. Also, since the first iPhone came out, users have learned to expect software to be more intuitive. And now “there’s an app for everything”, and for each app, there are likely multiple options to choose from.
Since the late ’90s, I’ve worked on a huge number of software “rewrites”. Most of them were really painful and time-consuming. Why so?
- Developers put way too much code on the front-end;
- In most “rewrites”, people simply want to replace the old with the new, making the new one look and behave like the old one, but on a different platform
Every time a new front-end toy comes out, I’m mostly interested in seeing how developers are writing code in it. More often than not, I see the same pattern over and over: a TON of code put right there in the front-end. Knowing that these frameworks and libraries aren’t like to last more than 5-10 years (by last I mean to be continuous developed), I know that a rewrite for such software means, well, rewriting all of that code!!
For the most part, the front-end part of software should simply allow the user to ask questions to the system and see responses. That’s it. Present the users with what they need to formulate questions, and then show them the answers in the best way possible (which could mean, fast, or illustrated with charts, or whatever it takes to give users the insight they need in that moment of time). In certain scenarios, it may be crytical to have most of the processing happening on the front-end, but those are the exception, not the rule.
Don’t get me wrong: I used to jump at every new shiny toy, too. There was a time when Microsoft put out a new toy called LightSwitch. That was probably the first time I looked at a new toy and thought “hmm, I don’t think that thing will last long”.
I didn’t quite recall when it went away, but found out on a quick search that its lifecycle started on Oct 30, 2011, and it’s mainstream support ended on Jan 1, 2017. The official death announcement states that “the landscape has changed significantly from the time when we first thought about LightSwitch”.
Such a shame. I had worked so hard on adding LightSwitch to my resume. I had even documented my proficiency with it on this short 45-second video!
Prior to March of 2020, I had not read many autobiographies. The ones I’ve read, or rather heard as e-books, were usually those of some of my favorite musicians, such as Dave Mustaine or Ozzy Osbourne, as a way to hear some stories about the context around the creation of some of my favorite albums by them.
I had some other autobiographies on my “books to read” list, but they kept sitting low in priority.
Then, I’ve listened to some content by Tony Robbins where he recommends reading autobiographies. His main point now seems obvious, but I hadn’t taken it into consideration before: autobiographies are books where people share their experiences of a lifetime.
The toughest and hardest lessons learned are likely to be there. The biggests achievements, and maybe even more important, the biggest failures. What were the things the person tried before becoming successful, and why didn’t they work? So much too learn by investing a small number of hours into it.
For the last 9 months, reading autobiographies have been my bedtime habit every single day, and I’ll keep it going.
There are sections of the book that I speed-read, and there are sections where I slow down, to fully absorb the words.
I like autobiographies because they are are, well, written by the people themselves, as opposed to biographies. So we get the person’s reasoning, the person’s memories (or how they remember it). In the case of Richard Branson’s, some of the content comes straight from his journals, which is great, because it’s not how he remembers it decades after the fact, but how he wrote it down immediately after it happened.
How do I decide what autobiographies to read? It varies. For example, back in 2015, I’ve listened to this Tim Ferriss’ interview with Arnold Schwarzenegger, and learned many things about Arnold that I didn’t know before (such as the fact that he became a millionaire before his acting career took off). I wrote down a note that I should read his autobiography at some point, which I finally did a couple of months ago.
In the case of Richard Branson, I had heard and read many times about the number of companies he was involved with, his journaling habit, etc.
In the case of Bruce Dickinson’s, besides being the singer of one of my all-time favorite bands (Iron Maiden), he’s also known for his entrepreneurial spirit (aviation, writing, radio and TV…), as well as beating a throat cancer (he’s a singer!!)
When I read an autobiography, I take note of people that the person refers to as inspiration on their life; if those people have autobiographies (or biographies), I add it to my list (Nelson Mandela is one that keeps coming up).
A few months ago, I took the Read to Lead challenge, and got some more ideas of books I should consider.
Of the four autobiographies I’ve read this year, the two I’ve enjoyed a lot are Arnold’s and Richard’s. I’m considering writing up separate blog posts to talk about why I’ve enjoyed those so much.
Technical Communities may be the single most important factor I’ve had (and continue to have) in building my professional career. Yes, that’s how important I believe they are.
I first got involved with communities back in the late ’90s. I got a job where I got to work with FoxPro, which I knew nothing about other than that it looked similar to what I knew at the time: Clipper and dBase. That was also around the time the internet was becoming a thing in Brazil in the days of dial-up connections.
In order to get up and running on the required tech stack, I found online forums in Portuguese.
There were many resources in English for FoxPro, but not a lot in Portuguese. I knew some English at the time. Many Brazilian developers didn’t. So here’s what I did: I’d see people’s questions in the online forums, look up the answers in English on the web, and reply to the posts in Portuguese. Why did I get from doing that?
- I learned a lot of FoxPro in a short period of time
- I learned a lot of English
- I helped other fellow developers
A member of the community invited me for lunch one day and gave me a couple of FoxPro books. I asked the reason for the gift, and he said: “If I help 100 people, maybe one of them will give me a hand in a moment when I could really use some help”. I have taken that lesson to heart and applied it to my life deliberately ever since.
Because I was answering so many questions, people thought I was an expert.
When a new version of FoxPro was about to come out, members of the community reached out to the Microsoft office in Sao Paulo to ask if there was going to be an official launch event. The MS manager said they could do that, but there were no MS employees in Brazil who were well-versed in FoxPro. The community member said, “well, problem solved: I know a guy”. Next thing I know, I’m presenting two full-day, soldout launch events. Attendance included people flying from other states (if you don’t know how big Brazil is, please pick up a map…)!
So that’s how I broke into technical public speaking. Next, I got into writing articles, creating a magazine, organizing conferences in a few different States, organizing study groups, creating training videos…
So much came out of the common need to learn a new tech stack, followed by the simple action of helping others along the way, with however little I knew of anything.
The fact that I’ve been living in the US since 2002 is directly related to this involvement with technical communities.
See why I have a cute fox as part of my office decor? Never forget where you come from!
Also, when some youngsters make smartass comments about the mention of FoxPro on my business card, I may just say: “sit down, kid, let me tell you a story…” 😉
I’m slowly building my book library. I enjoy books in all shapes and forms: paperback, e-book, audiobook, animated book summary, etc. My library reflects that.
Most of my technical books are e-books. I usually get their PDF version and put it in a “Books” notebook in Evernote; its search feature goes into those PDF files to find what I’m looking for. Quick access when I need that information.
My fiction books are either paperpack or e-book (usually in Kindle format).
The non-fiction, non-technical books are well spread out in different formats.
I’ve been reading more and more of my e-books on Kindle (on my iPad), using its features to highlight and comment; I often review my notes and highlights.
I’m getting more and more paperback books. Sometimes, I end up getting them after either listening to the audiobook or reading the e-book versions.
I have books in my library that I’ve purchased over a decade ago and haven’t read yet. I also have been acquiring more books that I don’t know when I’ll read them, but I do want to have them readily available. I don’t ever want to be in a situation where I tell myself “oh, gee, I really want to read something, but I have nothing to read”. Seriously, dude? Just go to your library and pick something up!
When I get book recommendations from friends or from reading other books, I look them up on Amazon and add them to my “books wishlist”, and I add a note to remind me where the recommendation came from.
To keep track of my backlog, books I want to read soon, books I’m currently reading, and books I’ve read, I still use the same process I’ve described in 2016.
There are countless of articles and resources out there on “how to improve your work-life balance”. In the last many years, I actually cringe when I hear “work-life balance”. There’s just life. I didn’t use to think that way, though.
I see myself bringing “work-related” things to my personal life: from using Scrum and Agile practices in my own life to leveraging my product and software developer skills to my hobbies. I also bring my personal life experiences to my work.
If I’m in a work situation and I’m interacting with a co-worker who I know share similar passions with me (maybe motorcycles and racing or music), why not bring that part of my “personal life” to my “work life”? We can freely draw analogies from things that light us up and bring us closer to a shared understanding of the business context at hand.
If I’m in a personal situation where things seem to be going out of whack, why not bring in Scrum practices that can help me expose my challenges, see through them clearly, identify ways to tackle them, and stay focused? If I see things in my life I could make better through software, why not do that? If the answer to that last one is “well, because that’d feel like work”, it’d make me believe I don’t like my work. Since I do love the work I do, it’s not “just my work”, it’s actually something I enjoy as I live my life.
There’s a quote out there that goes somewhat like “craft a life you don’t need to escape from”. The practice of writing up annual reviews has been helping me over the years to make sure I “live the life I love, love the life I live”.
In closing, I’ll drop this quote I got from Headspace:
Mindfulness reminds us that any separation in life is artificial. Work-life, home-life, social-life… there is just life. This. Here. Now.
Here’s a quick summary of topics we’ve covered in November.
Job interviews, Azure Certification, Azure emulator, Node.JS, React Context and Context Provider.
Discussion on testing, GPT-3 (AI, neural network), asking about SOLID in interviews, what is good code?