Search This Blog

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

Free Qt Training & Convention!


UPDATE: Videos of the sessions are now available online:




The world has changed the last few months. Many events have been cancelled or rescheduled. I was hoping to go to the 2020 Qt World Summit in May, but it was cancelled... or was it.

I recently came across a post from the Qt company. It looks like the conference has been virtualized, and it is free!


Our free *Qt Virtual Tech Con* online event registrations are now open! Join 36 stellar speakers from around the globe! The live sessions with interactive Q&A are on the way to help equip you with the tools & skills you need for your technology objectives on May 12-13!

Register for free here: https://hubs.ly/H0p9ZPW0

Topics include, but are not limited to:
* The Qt roadmap and bridging the gap​ between UI/UX designers & software developers
* Qt basics​
* Embedded & solutions ​
* Platforms ​
* Staying ahead
and many more topics to choose from! Not only this, but you also have the Qt hotline to ask questions and get answers to best practices while you get inspired during the show.
Register and invite your peers to #QtVTC20....


Why not attend some sessions?  

Since I am at home, looking for work, and waiting for hiring to re-start, I will be there!  Will You?

#embracethesuck #QtWTC20 #Qt5 #QML #Qt

Friday, April 3, 2020

Too Much Time? Learn a New Computer Skill!

Bored and Unemployed?

Back in 2009 and early 2010, I found myself unexpectedly between jobs. The economy was in a downturn, and there were lots of professionals looking for jobs. I spent a fair amount of time looking for jobs, hoping for at least a phone interview. It took six months to find a job.

But I didn't stop there. So what else did I do?


Best Advice

One of the best pieces of advice I was given was join a bi-weekly networking group. We met for about two hours, practiced our "30 second intros," talked about what we had done (accountability), and listened and gave feedback to others. Sometimes a nugget would come out: "ASKIT Tech has an opening an SW Engineer to work on COBOL. If you know some who knows COBOL, I can tell them who to talk to."

While joining the network group was great advice, it wasn't the best advice I got. The BEST advice was:

Don't let your skills rust while you are waiting. Do Something with them. Learn a new Skill!


Learn a New Skill

If you are software developer, one of the best places to find some great books and training programs is Packt Publishing. They have a Huge catalog of resources.

Personally, I recommend you learn Qt 5. Why?
  1. Qt 5 is cool!
    1. It runs on almost anything these days! Embedded to desktop. Linux - Windows - Mac - QNX
    2. It's fun to say correctly like "cute," or incorrectly "Q T."
    3. It's some much more than just a graphics framework.
  2. I wrote a Packt Hand-On book that teaches you how to go from a basic knowledge of C++ to a Qt developer. Along the way, you learn as you do.

Don't be scared off by the "Embedded" in the title! The book was written so that 90% of the exercises can be completed without using the embedded target, a Raspberry Pi!  Part of what you learn is how to build and debug on a host system and then re-build and final test on the target! 

(Don't take my word, read the reviews on Amazon!)

Free Stuff!

Packt is currently offering Free Access to their Workshops. I've already taken advantage of this and grabbed a couple of ones that match some of the job listings I am seeing.

Monday, March 30, 2020

Staying Connected in a Time of Social Distancing

While many of us are social distancing ourselves, it doesn't mean we can't meet, it just means we can't do it near to each other.
Back when I lived in a lower class section of the city, this was the norm. People would stand on their porches and yell to each other, often using words I wouldn't (or couldn't) use. I'm not suggesting we do that.
What we can do is use the old school phone and call one another.
Another way that I have been using with a couple of organizations are online meetings. I attend them using my smartphone and computer. In fact, a local Scout Troop will be doing a Court of Honor from one of our newest Eagle Scouts using this technology!
Here are some of the options that are free for at least 40 minutes with unlimited participants:
There are also general text, voice, and video apps
  • What's App
  • Line App
  • Google Duo
  • Marco Polo
  • Skype

Do you have a favorite or two you have used that I haven't listed? Leave a comment!


Enjoy,
-John

Saturday, March 28, 2020

A Time of #EmbraceTheSuck


What a wild start to 2020! I have been swamped with too many things happening, some good, and... as you can guess from the title... some not so good.

The Next Book

Work on my second book for Packt continues. It is focusing on Qt. Unfortunately, it encountered real life. We are still looking for publication this year, but not quite when expected. I'm still really excited about the project. As in my previous book, I am learning so much. There's an old phrase about teaching: Learn-Do-Teach. That's exactly what I am doing, and I love it!

Something Old Comes Back

In the midst of all of that, I got a totally unexpected call for help with a project I last worked on over 6 years ago.

I had setup a Jenkins CI Build machine to build and test a C# project. We used NCover, NUnit, and some custom tools I created. Sometime after development on the product finally finished, someone decided they could get rid of the VM the build machine was running on. Not being able to find a image to restore from, they have called me in to rebuild it.

The cool thing is I get to work with some of the best SW developers I know. I also finally got a job with a consulting company, First Consulting Inc. of Rochester, NY, that I have admired and hoped to work for. It's only a small project, but it should be fun!

The Bad

Amidst the good have been some bad things that have adjusted my focus and challenged my resolve: A family member was diagnosed with cancer, a family friend unexpectedly died, COVID-19 came to New York State, and I was laid off from my full time job. COVID-19's even impacted that. (Most of the past week has been dealing with all of the issues around the latter.)

[For those noting the cancer diagnosis and job loss, and assuming benefits loss: You are right. Luckily the cancer patient qualifies for Emergency Medical Coverage.]

What Now?

Honestly, the first thing is looking for a job that provides benefits. I'm a giver and not much of a receiver. The first time I had to apply for any government assistance was about 10 years ago, and I resisted do it until a friend sat me down and said "John, you paid into the system so it will be there when you need it. Swallow your pride and use it." So, this time I've done my due diligence in that regard and also kicked off the job search.

While I am searching, I plan to be continuing work on my short contract and writing both my book and blog. But, these will probably be at a slower pace. In New York State, every day you "work" is a day you can't collect unemployment. It doesn't matter how much work it is or how much you made from doing it. It just matters that you worked. (I am trying to find answers on what qualifies as "work." Is writing a book if I don't see money immediately? How about this blog? Lots of questions to be answered.)

Want to Help? Here's How

I hate asking for help, but I'm swallowing my pride here:
  • Buy Hands On Embedded Programing with Qt from Packt or Amazon. I doubt I will sell enough to make up what I lost from my job, but everything helps.
  • Read my book and leave reviews.
  • Tell others about my book!
  • If you know of a company looking for a Qt developer, C++11 programmer, and/or author that will allow remote work or is in the Rochester, NY area:  Please let me know and feel free to pass my name on to them. Visit my professional website at http://john.werner-ny.net for my resume and more!

#EmbraceTheSuck

The day before I lost my job I wrote "This is the year of #EmbraceTheSuck." How ironic that it would get suckier.

The phrase "Embrace the suck," comes out of the military. The basic essence of it is "I know the conditions you are in suck, but you are going to have to choose to 'ring the bell' and give up, or push through it. So, embrace the situation, make the best of it you can, and push through it!"
("Ring the bell" is another military expression. It means giving up.)

I have to remind myself everyday to Embrace The Suck and Not Ring The Bell. I even keep a reminder I designed on my desk as a mouse pad.


(The star field was captured by me.)

#EmbraceTheSuck is hard, but it is worth it. Feel free to use the artwork under CC-BY-SA

Stay Safe Everyone!
-John