WWDC24 SALE: Save 50% on all my Swift books and bundles! >>

About the author


I've developed software for a huge range of devices, including iPhones, iPads, Apple Watch, Apple TV, Android, Windows, Windows Mobile, Xbox 360, and Linux, using languages like Swift, Objective-C, Python, PHP, Java, C#, and more. Each platform has its own appeal; each platform has something I've learned from.


I spent eight years in computer journalism, writing features and tutorials for Linux Format, MacFormat, TechRadar, .net, and others.


When I switched to full time iOS coding, I built apps that were enjoyed by over 30 million users, including UBS, Fender, and PlayStation.


In my spare time I've developed over 100 apps for iOS and Android. My tools have been used by Apple, Verizon, Autodesk, GE, and others.


Writing is now my full-time job once again, and I've authored over 20 books on iOS, macOS, watchOS, React, PHP, Linux, and more.

Want to get in touch?

You can email me at paul@hackingwithswift.com or tweet me @twostraws. I'm happy to deliver talks and workshops at conferences, or be a guest on podcasts – let me know how I can help!

Tips for success

I've lost track how many people have emailed me in the past asking for my secrets to success, as if I'm some sort of Tibetan monk guarding mysteries. I'm not; I'm a programmer just like you, although it's possible I've been doing it longer.

That being said, I've picked up some tips along the way that can help you learn more efficiently. I don't claim these were invented by me – in fact, quite the opposite! – but here they are, in no particular order:

  • To be a programmer you just need to program. There's no rite of passage, there's no graduation, and there's no certification – programmers are people who program, regardless of platform and regardless of language. As soon as you start writing code for one of my tutorials, you've made it - good job!
  • The best way to get started learning is just by diving in. That means launching a code editor such as Xcode, and get busy trying to make something. But remember, you're not alone: there are many tutorials you can follow, including my own, and I encourage you to follow one of them to help you learn in a more structured way.
  • Always ask questions. There are so many generous, patient people in our community who will go out of their way to help you, but they aren't magically able to notice people who need assistance. So, learn to ask questions: explain what you want, what you know, and what you've tried – that's usually enough to get some helpful pointers towards a solution.
  • Be ready to read. Some people tell me they don't like reading books and instead prefer videos, but the blunt truth is that once you progress past the early stages the vast majority of documentation is available solely as text, so you'll struggle if you're unable to read effectively.
  • Don't try to memorize things. A large chunk – certainly well over half – of what you'll learn isn't worth memorizing, and the rest will be repeated so often that you'll memorize it by brute force over time. Learn to rely on Xcode's autocomplete system; it's a huge crutch for all of us.
  • Follow the classic path to success: "make it work, make it right, make it fast." That means don't worry if the first version of your code is shocking to the point that it probably breaks the Geneva convention – if it proves your idea is sound, or generates enough insight to help you make a second, better pass, then it's done its job.
  • There is no silver bullet language or platform. Almost all languages and all platforms have something of merit, and if you're able to sample a variety you'll be a better developer for it. While it can sometimes be fun to poke at other programmers, don't indulge in language snobbery – it's a pretty tedious look.
  • Build on your interests. So, take whatever coding ability you have and mash it up with whatever personal interests you have, and build an app that combines the two. Trust me on this: if you build an app that solves a problem you have, you can be guaranteed there are 100,000 other folks out there who have the same problem and would pay for your solution.

Support my work

If you're enjoying Hacking with Swift there are three ways you can help support my work so that I can continue to write news, tutorials, and books.

First, you can buy one of my books. I have a huge selection to choose from, and there's something for every level of developer. You can browse the full list of books in my store, or if you prefer you can also buy them on Apple Books.

Second, you can add a link to Hacking with Swift from your website. This helps others find the site, but also helps me rank higher on Google so more people find me by chance. You can find some suggested links and text here.

Third, you can write a tweet recommending the site. I don't care whether you have 5 followers, 50, or 50,000, every tweet helps me build awareness. After all, happy readers are the only marketing I have!

Want to get in touch?

You can email me at paul@hackingwithswift.com or tweet me @twostraws. I'm happy to deliver talks and workshops at conferences, or be a guest on podcasts – let me know how I can help!

Unknown user

You are not logged in

Log in or create account

Link copied to your pasteboard.