April 01, 2017

How to Create an Online Course in Five Simple Steps

Create an online course to learn something yourself, to promote one of your other products, to help others and to make millions. Here are the five simple steps.

First, pick a topic. To create an online course, you are NOT required to have expertise in a topic. Although having it will speed up the process from a few weeks, or even months, to a few day, or even hours. Seriously. It took me 0 time to create my first online course on Node. I just invited a friend to record my workshop. I already knew the material. The course has close to 20,000 students now.

Then, create an outline. Give it to someone who is not your lover or close friend because they are NOT likely to give you an honest feedback. Even better, ask someone to pay you for the course based on the outline. It’s called MVP and pre-sales. It’s the best way to test an idea.

Third, create slides. I use Deckset but you can use Powerpoint or Keynotes. Whatever you already know or the fastest to learn. Google presentation is the best choice after Markdown.

Fourth, find a quiet place, and then record voice overs. If you’re on macOS, then you can just use QuickTime. I use Screenflow which is just $100. You might need to re-record a few times before you get it right. It’s normal. No pressure. No one will see your failures.

Fifth, upload videos somewhere. You can use simplistic YouTube or Vimeo, or more advanced Teachable or Thinkific. It doesn’t matter at this point too much, so don’t spend hour upon hours on research. The goal is to find at least 10 customers for your course and get their feedback. After that you can always update slides, re-record videos or change platforms.

To summarize,

  1. Pick a topic
  2. Create an outline
  3. Create slides
  4. Record voice over videos (slides + audio)
  5. Upload videos

What are you waiting for? Your students need you. Go and create a course!

PS: If you are interested in hearing my full story on how I transitioned from writing coding books to being an online course creator, then I wrote a book about it. Check it out. It’s called ProgWriter 2.

March 11, 2017

Idiocy of Open Offices

I’ve been doing software engineering for over 15 years now, and I always had to sit in an open office space. Sometimes like at FDIC or NIH, I had a short wall to form a noise barrier- sort of a cubicle. The walls are only shoulder length so they are still a galaxy away from being sound proof. Especially when the desk is in the hallway like how mine was at FDIC, or near a chatty NIH colleague who spends hours everyday talking with someone on the phone in loud Cantonese. Argh. Human voice is very distracting even when you don’t understand it.

However, that set up is luxury compared to the idiocy of open offices practiced by startup and large corporations on the West Coast. There are rows upon rows of narrow tables with 50 or 100+ people in giant rooms. Tables to tables. Rows and rows. This is a 21st analog of an industrial age factory.

But in this information age, the metrics are not tangible goods. They are harder to measure, and this is what fools senior leadership, office designers, founders and CEOs/COOs. Activity is not “result”. Do they put everyone in the open to reduce slacking because they can’t effectively measure results? (Slack and IM are constant distractions too but that’s a different story. At least you can turn them off!)

In fancy San Francisco unicorn “startups” or giant Silicon Valley corporations, you can be next to a ping pong, foosball or a product manager. With all this noise and distractions, people can’t work. They tire quickly because they go to chat with co-workers, laugh, and play another stupid game which should be banned from any office, which only adds to the noise even more. Catch 22.

Since there’s little work that can be done between 9-5pm, people come early or stay late… or work from home to get at least something done. When they are in the office from 9 to 5, only shallow work gets done. Deep work is almost impossible in an open office. That, and distractions in the form of useless meetings, social media, email arguments, long lunch breaks sprinkled with lots of coffee breaks and gossiping- just anything to kill the time.

And no, noise cancelling headphones are not a solution because the music is a distraction itself and none of it will help from a nerf dart being shot at you (as often happened at DocuSign and was source of constant(something is missing here)).

The bottom line is that open office employees become dumber because all they can do is shallow work. Also some of them will become:

  • More negative: Social media, procrastination and late night works at home to catch up
  • Dissatisfied: Deep work is very rewarding
  • Fatter: All the stress, and the extra snack (typically free), and coffee breaks will increase your chances of survival if you ever will be marooned on a deserted island

Companies waste money because they are paying for unproductive time. Yes. Companies save on real estate, but if there are more remote workers there would be virtually zero demand for office space for them.

I’ve noticed, most of my best work happens in early mornings or late evenings when I’m at alone at the office or at home and the neighbors’ twin toddlers are not crying. I hate open offices. They are just a bit better than working from a cafe or an airplane. At least in a cafe you are surrounded by strangers and not obligated to talk to them.

People are in the open office trap. Some escaped it by working only remotely. Good for them, but for the rest of us it’s a vicious circle of frustration, stress, dissatisfaction and becoming dumber due to inability to perform at peak level and do deep work.

Let’s come up with a solution. How about having library rule in an office like what BaseCamp has? No games, no nerf guns, no talking on the freaking phone (even if you’re a product manager). And the community areas and kitchens can have all the collaboration, chat and noise they want. :)

PS: Michael Lopp in his top-seller book Managing Humans, which I highly recommend reading, refers to collaboration as “a word used to convince you to work with people you’d rather avoid.”

March 04, 2017

Why Goals Are for Losers, How to Generate Luck and to be Promoted for Being Unqualified

Last week, I finished reading Scott Adam’s How to Fail at Almost Everything and Still Win Big: Kind of the Story of My Life. Scott is the creator of the Dilbert cartoon series. He is also a hypnotist and a master of the mindset. I highly recommend his book. Here are the three nuggets:

Goals are for losers. Use routines instead. Routines will make you have progress without constantly focusing on how far your goal is. So keep your goals but don’t obsess over them being too far. Instead build routines and system to make progress towards your goals daily or at least weekly.

Luck can be generated. It’s a product of your skills. The more relevant skills you have, the better. Learning skills like public speaking, hypnosis, writing, programming, or second language (or third like I am doing right now) - all will increase your chances and luck.

Promotion could be given for being unqualified. This is how Scott was promoted in not one but two big companies. His job wasn’t what he was supposed to do but finding and interviewing for the next job. Think about it. Interviewing and day job are often two very separate things and skill sets. This is very true in tech and IT field! My own experience of frustration over tech interviewing is described in I will puke if I hear array search interview question again.

Scott has many other gems in his book. He is also funny, but not too funny since the book is actually on a serious topic of success, career and the proper mindset. Get your own copy and read it!

February 04, 2017

How to Find Time: Stop Finding and Start Creating It

When people hear that I published 14 books and several online courses while speaking at 17 conferences in 2016 and working full time at Capital One on hands-on projects, they ask one question: “How do you find time?”. Simple answer is I don’t.

I never lost time to find it. Every day each of us gets 24 hour. Not more and not less. Generally it’s not a lack of time but a lack of energy. Have you ever come from work and felt tired, then had dinner and vegetated on a sofa watching yet another TV show? I use this time to write books, blogs, and courses.

I also create time. People like to watch movies while flying. I write this blog post right now as I’m 10000s feet up in the air. People like to play games on their iPhones and Android while in a subway commuting to work (I hope not while driving!). I listen to books and podcasts to educate myself and stay on top of current technologies and events. People spend time looking at social media to become negative because they can’t keep up with the Jones. I get my relevant news from digests and newsletters while automating social media postings.

In the end, time is not the problem and often times you can create more time. Having enough energy is more important, and flow and paleo helps me with that.

January 22, 2017

Flow

Flow is a blissful state of activity in which time is distorted and reality is ignored. Programming, writing, painting are all examples of a flow.

Distractions kill flow. Emails, IMs, noise are examples of such flow killers. Each distraction not only robs you of your amazing flow time, but it also taxes the mental capacity to get back into the flow. So a 5-minute detour typically cost 15-20 minutes because it takes time to remember the last step, focus and remove residual thinking. That 30-minute call actually ate 1-1.5 hours because you stopped the flow 15 minutes prior the call at a stopping point so you are not in the middle and have plenty of time to dial in. Then you had to get back into the flow after the call which took at lest 15 minutes more. That’s a 3-4x increase which don’t account for. But that’s not the only problem with work fragmentation.

It is more exhaustive to multitask (which is a form of constant switching) than to be in the flow. Most of us had a tiresome day when we can’t name a thing we accomplished because there were meetings, calls, conversations, urgent things, emails and IMs. I feel more tired when I try (and fail) to multitask in a meeting by checking emails or taking notes.

So flow feels good, it’s more productive and produces a higher quality results (Deep Work). Good. Then why the multitasking habit is so prevalent in our day and age? I’ll blame the internet.

You see, the Internet is a network built on server client architecture. Clients, a.k.a. as browsers, make requests to remote servers to fetch information or to send it. There’s delay. The delay was way worse a decade ago. That’s why there are tabs in a browser. I noticed that I tend to open multiple webpages using “Open in a New Tab”, then start with the first while others are loading. It was saving me minutes a decade ago but now the time saved is negligible. However, I’m distracted by jumping from the content of one task to another.

For programmers, compilation time is something they utilize by multitasking. So tempting to check IM messanger while my Webpack is transpiling JavaScript! Or Maven and Java for you, Java devs. Engineers are great of optimizing after all. They try to optimize their time too… at a cost of breaking the flow. They are also very curious (as noted in Managing Humans) which makes them good at learning but prone to losing focus.

The solution is to resist to optimize the waiting time. Use the waiting time to continue to work on the same task… or just sit and stare at that rotating loading icon. I despise SMS/text messages for this because you can drag a 5-minute call into a multi-day correspondence. If you send me anything other than an address, phone number, price or your SSN, I’ll ignore you.

To add to the habit of optimizing the waiting time, there’s over-reliance on external resources like online search, documentation, colleagues and forums. Every time you need to look up something, you risk of going down the rabbit hole, getting distracted by unrelated content. If I can write a book without a research, I can do it in a few day. (In fact, I wrote ProgWriter in a day while on a internet-less train ride from Portland, Oregon to Oakland, California.)

The solution is to get all you need offline. Some email clients like Outlook allow you to switch to offline mode. The programming library APIs can be remembered after you use them a few times. Offline docs like man command, reading source code in node_modules, or Dash app are other options. If not feasible to remember something, then just leave a TK or TODO and batch up the search for a later time.

Finally, the third type of distraction is the distractions are the easiest to eliminate because they are external. Things like noise, email notifications, etc. Sitting near a ping pong table, foosball or sales team is the worst! Solution: turn do not disturb mode ON, stop working in cafes and/or office, download music without words (Spotify has music from video games), process emails instead of checking them, and let people know that you respond only once a day or even better once a week.

It might be hard to adjust at first. You might feel good about being in the flow for an hour or two. Maybe three. But then feel an urge to peek into email or news or social media. What is someone needs you? What if something important happened? Resist. It’ll go away. Take a walk in the park or around the office if needed, and get back into the flow of your task. I read somewhere that humans can only spend two to four (2-4) hours per day in an intense focus. You are a human, right? The do the important things first while your brain is still fresh and will power the strongest.

PS: I remember I was able to have a TV in the background and still work (and play) on my computer when I was younger. I am sure that I wasn’t doing as much focused and advanced work back then. My guess is that over the years of programming and meditation practice, I developed the ability to focus deeper on my work by using flow. Conclusion? The deeper your work (which requires flow) the more sensitive and damaging the distractions are.

January 04, 2017

I Don't Need Your Feedback

I was at a conference and some guy told me after a quick chat “I’ll give you my feedback on Node University”. No, I don’t need your feedback. I don’t even know if you are my target audience. 👊

Sometimes we assume all feedback is good. The more the better. Bring it on! This is especially true if you’ve been feedback starved which usually means you didn’t have enough users or no one really cared. Ugh.

Let’s put aside Lean Startup, most of feedback is garbage because the person who is giving it:

  • Not a customer 💰: They are NOT paying you money and most likely never will, therefore they are NOT your target audience. Of course, first you must have a paid product or a service. You can replace paying with actively engaging.
  • Not a majority 💯: Minority which means you should NOT cater to their needs — use 80/20 rule.
  • Not an expert 🎓: They don’t know what’s best. It’s your job to be on the cutting-edge of innovation and bring the goodies to the user. It’s not the user’s job to know about the new stuff. (Think Ford and horses.)

The downsides of listening to too much wrong feedback is a feature creep, fashion-driven development and lack of innovation. For example, most of my negative reviews on Amazon are written by people who never read the books’ introductions and most of them never finished reading the books either. Ignore.

Feedback is proliferating. Uber ride? Leave your feedback. Hotel stay? Fill out a survey. Meal in a restaurant? Comment on Yelp. Listened to a conference talk? Fill a survey. Watched an online course? Leave stars. Read a book? Write a review… But we know so little about the background of those reviewers! Be careful who you are listening to, because you are missing on other opportunities… use some feedback filter like the one I listed above.

January 01, 2017

Shaming is Good

Shaming is good because it’s a strong motivator to change. If you have a trouble with the word itself due to negative bias, then substitute it with peer pressure or environment.

Humans as tribal creatures evolved to conform, for the most part, to our environment. It’s done via shaming. Let’s take an accent for example. Most people will adapt to the accent of their region to fit in. They do it automatically, both adults and children. Children do it faster, because there’s more shaming from other children. Thus, there’s a stronger motivator.

To expand on accents, when I worked on the East Coast in the IT industry as an app developer, I was surrounded by other foreigners and native English speakers. But neither of them who would correct pronunciation or point out. The foreigners didn’t care or knew and native speaker were polite to correct such trivialities (which are not trivial at all). As a result, there was very little motivation and even awareness to not just to change an accent, but event to pronounce words correctly. It seemed like no one cared… and of course adults and professionals just more tolerant and mature to laugh (form of shaming) at other adults’ pronunciation.

Lack of shaming could be one of the reason why despite being dumber kids learn accents faster than adults do. The latter just coast in their blissful ignorance once they acquire the minimum functional level. I’m sure you can find other examples of good shaming like switching to macOS from Windows, picking up a new programming language because PHP is not cool anymore, finding a better job or to dumping that crazy girlfriend. :)

Shaming is an important fail check that prevent individuals to fall below a certain level. Of course, too much shaming like too much of almost anything is bad… however, no shaming at all can lead to no personal or career growth at all.

December 28, 2016

What I Learned Reading 200 Books 📚

I’m not a huge fan of reading. In fact, I don’t like reading. But I love getting better, finding out something new and useful.

You can talk only to few interesting people in-person. The limit is in time, location or just that they won’t talk with you. Books are a transferable information. Good info can change career, life, relationships… everything!

So three years ago I start reading and logging books I read or listened to in a spreadsheet. Also, I was writing number of page or hours along with brief book summaries. I reached 200 with this breakdown:

  • 2014: 33 books
  • 2015: 67 books with 26 audio and 41 digital or print
  • 2016: 101 books with 75 audio and 26 in digital or print

Just the audio books for 2016 amount to over 400 hours of content. That’s 50 days of 8-hour listening per day. Almost all of the books were non-fiction. So here’s what I learned:

  • Books are not created equal: So books are junk or should be 50 not 350 pages because they don’t have than much substance. Most modern non-fiction books are junk.
  • Listening on 1.5x and speed reading rocks.
  • I really don’t like printed books. Kindle is a way to go!
  • Successful people have different rules, habits, approaches which often contradict other successful people. Thus, don’t listen to their advices. It’s not what brought them success. (Icons and Idiots by Bob Lutz).
  • History and biographies (especially auto biographies) tend to be the better books.
  • Eat my frogs first to get things done.
  • Black Swans can be good and bad. To benefit from good black swans, you have to take risk and action.
  • Writing books is more fun than reading books. I should write a non-technical book next.
  • Monopoly is good if you are the monopoly (Zero to One)
  • Wheat, bread, and GMO are evil. I knew it before but it’s good to be reminded.
  • Why steak houses make you eat in darkness (Mindless Eating).
  • Less is more (The Paradox of Choice).

That’s more or less all. It’s extremely hard to summarize books. The way they work, is that they take you on a journey and influence your subconscious. In the end you might have new ideas or perspective without realizing it’s from a book.

Bonus! My top 5 list:

  1. Antifragile
  2. Deep Work
  3. The Next 100 Years
  4. Made in America
  5. Grain Brain

December 23, 2016

Check vs. Process Emails

I stopped saying “I’m checking my email”, because I almost never check them. That’s true. I stopped checking my emails a few years ago, and it brought more focus, fun and productivity to my life.

Instead of checking my emails, I process them. What is the difference? Checking is looking at the inbox, fishing for urgent, filtering non-urgent and plain spam but answering only to urgent. This will make you seem like a very responsive person to senders, but most of the times they can wait a few hours or even a few days. If they are your clients or employees, then they’ll learn to batch items and not treat email like an IM, or write only as the last resort after they took a stub at or googled a question they want to ask.

Processing on the other hand is dealing with all emails from first to last. It’s inbox 0, but I take it to extreme. In the productivity method called Get Things Done (GTD), the author of the method recommends to respond to an email if it’s less that 2 minutes. I process an email which I estimate would take under 30 minutes right away. The reason is that I don’t want to star an email or move it to my todo list. I’ll be harder to come back to it. I’m already in the context by reading it, so I will benefit from not having a context switch. I take care of the email and the task right there.

A few words about mobile email processing. Sorry, but it’s not possible in most cases. Okay, maybe your work and life is different. Maybe all you need is your brain and a few sentences of reply in most of the cases. My work and life require me to have at my disposal developer tools, writing and publishing apps, calendar, word processor, etc. Therefore, I never process emails on my phone. Yes, I still do have the app to get some useful information like a travel itinerary but that’s it. Whatever time is gained by me filtering out quick responses and dealing with them at a Starbucks line is lost by the cognitive load of task switching and open loops of myriads of unfinished tasks marked by stars, flags and (worse) unread to move it back to inbox.

Human brains are wired for novelty so we see the thrill of new urgent emails and avoid non-urgent or boring. Casinos exploit this trait in their slot machines. Email apps and slot machine even have the same motion downwards: scroll down the inbox and pull down a lever.

It take longer to process emails than to check them once. However, processing is faster than checking emails over and over, and then one more time when you doing the task asked in the email. That’s what usually happens. All those unclosed loops overwhelm us. Argh.

Liberate yourself. Start processing instead of checking. I process my personal emails only once a day or ever every other day when I’m traveling. I love it.

December 16, 2016

Barbel Theory Applied to a Career in Tech

After reading Nassim Taleb’s great book Antifragile, I saw how one can apply the barbell theory, which he described in the book, to building a career in tech:

  • Focus 80-90% of fundamentals like algorithms, data structures, specifications (W3C), standards (ECMAScript), etc.: These concepts are less prone to changes.
  • Focus 10-20% on riskier but more promising new things which haven’t even been discovered by early adopters let alone the early majority.
  • Focus 0 on stuff in the middle

If your bet on 20% of the riskier stuff is correct, you’ll be ahead of the Rogers’ bell curve. If not, then you are still safe with your 80% in the fundamentals. Maybe you even learned something like a special pattern which can be applied to another concept or language in the future. For example, functional programming.

In my career, I followed the Barbell Theory without knowing about it. I got bachelors and masters degrees, the safest bet one can make. Then I focused on web development which is NOT very exciting but very ubiquitous and always in demand. That’s my 80%.

Then, I branched out into Node.js which was very controversial in 2011-2012. Node.js is mainstream now. Also, I started writing books which is one of the most riskier activities to do (high chance of failure).

In his book Quitter, Jon Acuff starts the narrative with advice NOT to quit a job. I agree with him 150%. It’s way better and easier to take long-term riskier and more impactful bets when you have your steady base. Your 80%. I did my writing while still holding a full-time job. That’s barbell again. Moreover, teaching in-person and online, working full-time job, and writing fed one of another. Writing and teaching made me a better developer and vice versa.

So start a project on a weekend. Pick up a new language and read learn it over the holidays. If there’s a book on the language or framework—it’s too late. IGNORE the stuff in the middle. Ignore the noise, but know about the trends, and see a big one you can jump on while still standing on a solid ground. That’s the barbell theory in action.