Search This Blog

Showing posts with label SharpenYourSkills. Show all posts
Showing posts with label SharpenYourSkills. Show all posts

Wednesday, December 2, 2020

Meeting at the Right Time

 

Meeting at the Right Time

Have you ever had a time when everything just came together. A time when two or more separate things seemed to sync up together and you discovered there were very much the same?

It's happened two me a few times. One of the more memorable times is when I heard a young lady talking about the troubles she was having with her BMW while waiting for a church service to start. I turned around and suggested she might want to try the very good BMW shop I knew of. When I told her the name, she laughed and said she had known them for years. As we talked, we realized we both knew the same set of friends, but because we knew them from different areas of their lives (race tracks vs. rallies) we had never met before. The common people we knew were involved in both.

As it happened, I dragged her into the rally community (she became a great navigator), and she dragged me into coaching drivers at the track.

It Happened Again

I recently started a new permanent job with a major corporation. In an interesting twist on how one usually gets a job, the hiring manager sought me out. Once again, it came down to meeting some people at at the Qt World Summit 2018 and made some connections. In 2019, I sent them a copy of Hands-on Embedded Programming with Qt as a thank you for some of the help they provided. When I was suddenly looking for a new job and wanting to do Qt, I let them know I was looking and sent a resume.

In the mean time, a new Qt customer was looking for someone with experience. Through an interesting series of connections, my resume made it to the hiring manager for the new customer, and now I am working for him.

And Yet Again...

So now I am working for this new company and writing my next book, one on Qt and Design Patterns.  As I am trying to understand what the code is, it finally hits me: "That's the Model View ViewModel Design Pattern I have to write about in a couple of chapters."

As I was making some final edits to a chapter, I realized a section of code that didn't feel right to me, was basically using what I was explaining in the chapter I was editing, but missing some of the finer points.

And So?

So why am I bothering to tell you this?  There are a few reasons:
  1. As a reminder that we need not to over compartmentalize what we work on. It is quite easy to learn something in one area of our lives and never see the application in another.
  2. Realize that importance of things we often overlook, like Design Patterns, when we are trying to solve problems.
  3. Encourage you to get out of the box. Don't just look at your code all day or keep to yourself. You never know what you might learn or gain by looking at something different or talking to someone else. I often find just explaining the issue I am trying to solve to a family member can help me thing through it. It is in the process of explaining that I understand the problem better.
  4. Because these are some pretty awesome coincidences!
Cheers,
-John

Thursday, May 7, 2020

Sharpening Your Programming Skills!

The problem I have with looking for work is finding something to keep my programming skills sharp. Just like a knife can get dull if it is not sharpened, so can programming skills.

I was recently introduced to an interesting site as part of an interview process. Codility is a site recruiters and hiring managers use to see if you really have the coding skills you say you do,... But it is also so much more.  It's a place where you can learn and practice your skills.

Verifying Your Skills

My introduction to Codility was as part of an interview. It helps answer the questions of "Do I know what I say I do?" and "How do I approach solving problems?"

Unlike many of the sites I have taken coding tests, this tests not only your programming knowledge, but also your ability to take a problem, solve it, and deliver working code in a real language. There are no questions like

What is the value of y in this C++ code?

int x;
auto y = x + 2;
y /= 2;
 
A) 0   B) 1   C) 231  D) undefined
 
Instead, you are given a problem to solve with your own code in your choice of language (C++, C, Java, Basic, and a lot more). You have access to an online compiler so you can test your code, and you can even create your own test input. There is some pressure, as you are given a limited amount of time to do it. Once you submit your code, you are done, and automated testing evaluates it.

The problems are interesting and designed to test different parts of your programming talent. Based on the ones I have tried, a problem might be something like this: (I hope I don't guess a real one!)

Given a set of arbitrary positive integers, find all of the prime numbers in the set and then calculate the mean, medium and average of those primes. You have 30 minutes.

[Oh cr*p! having written that problem, I feel the need to try solving it myself.]

Sharpening Your Skills

After taking a couple of tests, I found out about Codility for Programmers. This is where you can sharpen your skills by going through lessons and completing challenges. Working through a few lessons helped me remembered things I hadn't used in a while, and learned how think through all of the possible ways my code might fail.  [I have been using Qt so extensively for the past few years that I sometimes forget how to use the C++ Std functions instead. Working through the lessons and exercises helped me refresh that knowledge.]

If you want to keep your coding sharp, you really should check out the Programmers section of Codility at https://app.codility.com/programmers/.

Another way to Learn (or blatant self promotion)

If you are interested in learning more about programming with Qt or doing Embedded Development with Qt, please consider checking out Hands-on Embedded Programming with Qt. In it I introduce you to almost every aspect of Qt programming and how you can use it for Embedded Software.  It's available digitally and in hard copy on Amazon and the Packt Publishing website.

Stay Safe!
-John

#Packt #Qt #Qt5 #EmbeddedSW #Codility #SharpenTheSaw #TestYourSkills #KeepLearning