Search This Blog

Showing posts with label Learning. Show all posts
Showing posts with label Learning. Show all posts

Sunday, July 19, 2020

Too Much

I have been asked a few time what the hardest part of writing a book is:
  • Is it coming up with an outline? No.
  • Is it forcing yourself to regularly write? Maybe.
  • Is it not having enough to write about? Definitely not for me.
My problem is: I have too much to say and it comes out in my writing.

This may surprise many people. I am a typical introvert. I try to keep to myself and don't usually join conversations unless it is something I care about. But if it is something for which I would call myself a geek, sometimes it is hard to stop. That could include Cooking, TV Shows, Programming, Cars, Racing, Modifying cars, writing blog posts... I should stop now.

The perfect example of this is in the book I am writing. The estimate for Chapter 3 was 40 pages. I worked carefully on the estimate. I know that software developers are famous for their poor time estimates, and I wanted to be as close to possible both on time and length.

I completely failed on time estimates: I hadn't planned on some family health issues, covid-19, quarantines, losing my job, and a host of other things that hit most of the world over the past few months.

I found that when I was searching for a job, it was hard to get motivated to write. I found myself reading job listings and dealing with job searches and recruiters. I got to meet a lot of great people, and also a bunch of people who apparently never read my resume.  Where in my resume of software development would they get the idea I should be a purchasing manager?

Anyway, the other problem with Chapter 3 was the BIG problem. I over achieved on page count. When I finally turned in my 45 page chapter, I had 63 pages. Even with that many pages, I felt like I had cheated on some sections and not written enough. After talking with my editor [Packt has a great editorial team!], we decided to split the chapter into two chapters, which changes the outline for the book, but we think it is for the best.

Sometimes when I am talking or writing about something I know or am passionate about, I find I have so much in my head that I am trying to get out about the subject. Other times, I write a what seems like a quick simple thought, then I realize that I am assuming knowledge that others might not have, so I have to go back and make sure I have covered that, which sometimes make me go back and ... you can see where this is going.

In the end, I am getting a lot of appreciation for teachers who have to go through this when they are developing new syllabuses. Writing a Hands-On book is quite similar. It's important to present the information in a way that makes sense and is complete enough for everyone who my be in the class (or be the target audience for the book) to understand.

As I continue writing the book, I am sure I will find this problem again... It could be worse, I could have nothing to write about.

-John

PS: You might have caught "when I was searching for a job." Assuming everything goes well with background and drug checks, I should be starting a new job doing Qt development with a new employer in a totally new application field. Honestly, I'm a quite excited to get going!




Sunday, May 17, 2020

Developing Solutions While Remote

Working remote changes things. It makes it harder for me to drop into someone's cube to talk my latest puzzle out with them. Often, it is the process of articulating the puzzle that helps me find the solution.
Talking Through a
Sound Reinforcement Issue

How can I do this now? Use more communication tools with colleagues!  There are many tools out there that run on multiple platforms that will allow you do communicate with friends.

Check out my post "Staying Connected in a Time of Social Distancing" for some tools I have used lately.

So...
How do you best solve problems?

How are you problems solving when remote?

Leave a comment and let others know.

#solvingproblems #staysafe
#getmodern #worksafe #remoteworking #remoteworktips #remoteworklife #problemsolving #thinkingdifferently #thinkingoutsidethebox #thewaywethink

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