
Category: Programming
If you’ve wanted to learn programming and web development through Suncoast Developer Guild’s excellent bootcamp, but couldn’t take 12 weeks off work to do so, they’re launching a new program that might work for you. It’s called Night Shift, and it’s their bootcamp program, but as a part-time after-hours course that you can take while keeping your day job!
Suncoast Developer Guild’s 12-week, full-time immersive coding bootcamp is an excellent program. I know the folks at SDG. I’ve done guest presentations at their classes. I’ve met many of their students, and have even worked with their graduates (and yes, by and large, they’re good).
But not everyone can drop their job to devote 12 full-time weeks to a course and cover the costs of tuition. Night Shift allows you to keep a full-time job and still learn take part in SDG’s well-regarded course by stretching the course over 36 weeks, with online lectures on Tuesday and Thursday evenings, and lab work in your spare time.
Think of it as more than just learning while still being able to cover the rent or mortgage. Think of it treating your day job as an angel investor in your new software development career.
I can tell you that having programming skills — especially in combination with other talents — is valuable. They can future-proof your work, open opportunities unavailable to many people, and help you weather seismic job market shifts like the ones COVID-19 is bringing about.
And now, the warning. In addition to devoting time to participating the Tuesday and Thursday evening lectures, you should expect to devote a couple of hours on most nights to your lab work. If you’re new to programming, you’re not only going to learn a lot of new concepts; you’ll also have to apply them in order to make working software. You’re also going to have to be creative, because you’ll have to come up with an idea for your end-of-course capstone project.
Simply put: Your spare time will vanish. You will work on a code editor and do Google searches for hours, and you will see them in your dreams. You will spend inordinate amounts of time trying to figure out higher-order functions, wondering why there are so many ways to create objects and functions in JavaScript, trying to understand the difference between ==
and ===
and experiencing all the other joys of working with a programming language whose original version had to be cobbled together in 10 days.
On the bright side, if you have a Netflix or videogame addiction, Night Shift is an effective (and productive!) way of quitting those “cold turkey”.
The folks at Suncoast Developers Guild aren’t just capitalizing on our software-driven economy to run a coding school. They’re key players in and supporters of the Tampa Bay tech scene. They support their students beyond just the coursework. If you think you can handle both your job and night classes (and a lot of time on your computer),Night Shift might be your first step into the world of software development.
Find out more in Suncoast Developer Guild’s press release for Night Shift.

If…
- You’ve decided to learn JavaScript (or just need a refresher), and
- you’re short on cash due to the current economic situation
…you’re in luck! There are a couple of good books on JavaScript whose contents are available to read online, free of charge!
The first of these books is Eloquent JavaScript, Third Edition, written by Marijn Haverbeke and published by No Starch Press. It’s not just an introduction to JavaScript, but an introduction to programming in general. It’s beginner-friendly, which is one of the reasons why it’s the main book for the first part of the JavaScript/React course that I’m teaching.
You can Eloquent JavaScript, Third Edition online here.
The second book is JavaScript for Impatient Programmers, ECMAScript 2020 edition, written by Dr. Alex Rauschmeyer. Its coverage of JavaScript is more complete, but it’s a little less beginner-friendly, which is why it’s the backup book for my course. I’m going to incorporate some of its content into the course, and point students to the online edition if they’d like some additional reading material.
You can read JavaScript for Impatient Programmers, ECMAScript 2020 edition online here.
The folks at Computer Coach Training Center must like my work, because they have me teaching another course — a 12-week, 3-times-a-week, 4-hours-per-session Intro to JavaScript and React programming!
I taught the Intro to Python Coding course on Computer Coach’s behalf in July and August. That one took place twice a week over 6 weeks, with each session lasting 4 hours.
The Intro to JavaScript and React Programming course starts next Tuesday evening, and happens Tuesday and Thursday evenings and Saturday mornings for 12 weeks.
The first six weeks of the course will be dedicated to gaining a solid understanding of JavaScript programming. During that part of the course, the text will be Eloquent JavaScript, Third Edition, which remains one of the most-recommended books for beginners. I’ll use it as a basis, but also add some additional material and cover changes in the 2019 and 2020 versions of JavaScript.
The second six weeks of the course will be all about React.js — and nothing but React. Yes, people use React in combination with all sorts of other technologies, but in order to get a solid grounding in React, it’s helpful to start by working purely in React. Hence Pure React, May 2020 Edition (which includes the newly-introduced feature of hooks) is the text for this section of the course.
If you’ve ever been in any of my Tampa iOS Meetup sessions, you’ve seen my teaching technique — you’re not passively watching slides, but coding along with me, and even experimenting, just to see what happens. That’s I what I did with the Python class, and it’s what I’m going to do with the JavaScript/React class — enter code, see what happens, and gain experience along the way. It’s learning by doing.
If this course interests you, it starts next Tuesday, and you can sign up by contacting Computer Coach.
The origin of Programmer’s Day
The 256th day of the year (the 100th day in hexadecimal) is known as the Day of the Programmer. On most years, it’s September 13th, but on leap years — which includes this one — it’s September 12th.
The day was proposed by two Russian programmers, Valentin Balt and Michael Cherviakov, who petitioned their government to recognize this day. The recognition came on September 11, 2009 when Russian president Dmitry Medvedev signed the decree, making it official.
The deal
Whenever an “official unofficial” day like this happens, there’s always at least one vendor offering a deal. Day of the Programmer is no exception, and Fanatical are offering a bundle of three books from Packt for free in its honor!
Yes, I know that Packt is almost industry shorthand for “Not necessarily good, but not necessarily bad,” but at this price, you can’t say that these books aren’t worth every penny.
Here’s a video that goes a little deeper into deal, and a little deeper into poking a little fun at Packt:

Dr. Martin Jones, the author behind the book and site Python for Biologists, has come up with a chart to help Python programmers when their code doesn’t work and they can’t figure out why.
He writes:
A few times a year, I have the job of teaching a bunch of people who have never written code before how to program from scratch. The nature of programming being what it is, the same error crop up every time in a very predictable pattern. I usually encourage my students to go through a step-by-step troubleshooting process when trying to fix misbehaving code, in which we go through these common errors one by one and see if they could be causing the problem. Today, I decided to finally write this troubleshooting process down and turn it into a flowchart in non-threatening colours.
Behold, the “my code isn’t working” step-by-step troubleshooting guide! Follow the arrows to find the likely cause of your problem – if the first thing you reach doesn’t work, then back up and try again.
It’s intended for programmers who are new to Python, but even experienced Pythonistas sometimes get distracted and stuck on simple things. I’m keeping a copy handy.
You can tap on the image above to view it at full size, and there’s also a printable PDF version as well.
[ Thanks to my UC Baseline classmate Daniel Jimenez for the find! ]
In my article about the Capture the Flag at The Undercroft in which I recently participated, I wrote about my solution to this particular challenge:
Your answer lies in the 1’s and 0’s…
0010111 00001111 00010111, 00011001 00001111 10101 00000001 00010010 00000101 00010010 00001001 00000111 00001000 00010100
(Make sure to use the comma, and spaces correctly)
The first part of my solution was turning those numbers into a list. Copy the numbers into a text editor, stick 0b
in front of each one, and then turn the sequence into a Python list:
numbers = [0b0010111, 0b00001111, 0b00010111, 0b00011001, 0b00001111, 0b10101, 0b00000001, 0b00010010, 0b00000101, 0b00010010, 0b00001001, 0b00000111, 0b00001000, 0b00010100]
Paste the list into a Python REPL and then display its contents to see the numbers in decimal:
>>> numbers [23, 15, 23, 25, 15, 21, 1, 18, 5, 18, 9, 7, 8, 20]
The next step is to convert those numbers into letters. Once again, the Unicode/ASCII value for “A” is 65, so the trick is to add 64 to each number and convert the resulting number into a character.
Here’s how I did that:
>>> characters = map(lambda number: chr(number + 64), numbers) >>> list(characters) ['W', 'O', 'W', 'Y', 'O', 'U', 'A', 'R', 'E', 'R', 'I', 'G', 'H', 'T']
I could’ve gone super-functional and done it in one line:
>>> list(map(lambda number: chr(number + 64), numbers)) ['W', 'O', 'W', 'Y', 'O', 'U', 'A', 'R', 'E', 'R', 'I', 'G', 'H', 'T']

Between lambda
and map()
, there’s a whole lot of functional programming concepts to solve a relatively simple problem.
I could write a whole article — and I probably should — based on just that single line of code, but in the meantime, I thought I’d post an easier, more Pythonic solution.
This simpler solution uses good ol’ list comprehensions:
>>> characters = [chr(number + 64) for number in numbers] >>> characters ['W', 'O', 'W', 'Y', 'O', 'U', 'A', 'R', 'E', 'R', 'I', 'G', 'H', 'T']
Most programming languages don’t have list comprehensions. In those languages, if you want to perform some operation on every item in an array, you use a mapping function, typically named map()
, but sometimes collect()
or select()
.
Hence my original solution with lambda
and map()
— it’s force of habit from working in JavaScript, Kotlin, Ruby, and Swift, which don’t have Python’s nifty list comprehensions.