1. Understanding the basics, with Jonathan Snook 22:08

Jonathan is the creator of the influential SMACSS methodology for writing scalable and modular C-S-S. He has worked his magic at Xero, Yahoo!, and Shopify, and has appeared on stage at conferences such as Generate, CSSConf, and the Smashing Conference. With 3 highly-acclaimed books, Jonathan has - a - knack for influencing devs around the world and earning the respect of the top people in the industry.

Time Stamped Show Notes

1:56 – Everything feels like an evolution of what came before. Jonathan loves the creativity and design of his work, rather than all the new things that will inevitably come out.

4:48 – Recognising when you’re not behaving ok is the beginning of how to create an environment where everyone can do the best work they can do.

6:04 – Jonathan loves Vim. He mentions that there are editors like Atom or Microsoft’s Visual Studio Code that bring a lot to the table, but Vim is his comfort zone. Likewise, when it comes to using Git, he is most comfortable with the command line.

7:20 – Jonathan likes the ease of use that tools like MAMP being, where running an installer will set up your environment, and there’s very little configuration after that.

8:02 – Procrastination or “busy work” gets in the way of getting work done. Blocking out social media using the Self Control app helps Jonathan to focus and get into a state of flow.

10:03 – Larry mentions that he uses a Chrome extension, Kill News Feed, that blocks his Facebook feed.

10:10 – Jonathan has started reading Deep Work by Cal Newport.

10:49 – Jonathan has written a blog post in which he describes his approach to learning.

  • First level: just take everything in
  • Second level: implement an idea that you’ve discovered during a project. If you don’t get the opportunity to try something out on a project, come up with your own project and test out your ideas
  • Last phase: teach people what you’ve learnt.
  • Check out the full post here

12:46 – To get to an implementation stage Jonathan will come up with his own projects that take a few hours that allow him to test out one idea and understand things better.

14:44 – Jonathan explains the importance of understanding the basics. Because of all the libraries and frameworks available, people tend to jump into things at a higher abstraction level. Because he learnt to code before those things existed, he was forced to learn the underlying concepts first. He believes he is a better developer for it.

15:05 – Jonathan contrasts his learning experience with devs who start with Rails and the built in ORM – he learned by writing SQL queries directly. Jonathan feels the need to understand datasets, joins, and the underlying concepts about how things are done.

16:09 – Having the underlying knowledge allows Jonathan to write better code

Quickfire Questions

17:16Best advice about programming
Understand the basics.

17:29Habits for writing better code
Good sleep and proper rest help you write better code.

17:52Book
Scalable and Modular Architecture for CSS
Design Patterns: Elements of Reusable Object-Oriented Software by The Gang of Four

18:52Inspiring devs
Chris Coyier. Not only is he a genuinely nice guy, but he also does a lot of great work and pumps out great content.

19:41How to learn code from scratch
Jonathan says that the best way for him to learn is to have a project. If he had to learn to program from scratch, he would pick up a project and start with the basics.

20:55How to work smart
Stay focused, whether it’s by blocking out social media or using time management tools like the Pomodoro technique.

Tools, Tips, and Books Mentioned

Contact Jonathan