Ask HN: Moved from Windows to Macbook Pro – How can I get up to speed quickly?

21 points by jxm262 ↗ HN
I've been using Windows for my entire career and was just given a Macbook Pro for my new job. I'm a web developer and was hoping to get some ideas on how to make the transition more easily.

Any tips, shortcuts, plugins, etc.. that can get me up to speed on being super productive? All ideas are welcome :)

Edit: Are there any recommended websites/resources that give an aggregate of information I can find in these responses? It's awesome to get the information here (very much appreciated!), but it would be cool if there was an existing website that gave an overall rundown of all the quick hacks to get devs up and running quickly.

36 comments

[ 2.3 ms ] story [ 115 ms ] thread
I suggest using Homebrew (http://brew.sh/) for package management.
Whoa, thanks. Just installed homebrew and did a `brew search`. Has a ton of stuff. Pretty cool that it's all git/ruby too :)
Editor:

- Atom

   - Plugins:
     - Sublime-Style-Column-Selection
     - atom-beautiful
     - autocomplete-plus
     - emmet
     - pretty-json
     - (few other plugins for spotify etc...)
Utilities:

    - Grunt
    - Bower
    - Compass
Terminal: I personally use iTerm for all of my terminal needs, this is purely a personal choice.
1password if you're not using any other password organizer app.

Bartender to keep your menu bar items organized.

Flashlight to make Spotlight a bit more powerful.

Flux if you're into it.

Github OSX app is quite nice.

That's what I got from a quick look to my system.

(comment deleted)
Unless you're required to use OS X, you can always install Windows. I would actually recommend this if using OS X really is that outside your comfort zone.

If you need to use OS X, then IMO, the best way to learn is to just start using it for everything. And Google, a lot. If you're familiar with *nix systems, OS X shouldn't be too mind blowing.

If not, I would seriously just boot camp Windows 7 or 8.1. It works flawlessly these days and its a very common practice.

Get to know Mission Control (formerly Exposé), and configure it to your liking. Personally, I use hot corners to quickly show all running app windows or the desktop at my whim. This is (for me) an perfect replacement for Alt-Tab and the Start Bar in Windows. You can also drag and drop while using Mission Control, which is really handy when dragging between Windows, or to and from the desktop. I think this feature is understated.
Mission Control or Alfred has contributed the most to increase my efficency whilst my transition from PC to Mac
As others have mentioned, the quickest way to be as productive on a MacBook as previously on a Windows Box is to install and run Windows. Problem solved: get on with developing software. Just researching 'tips and tricks' is already a drag on productivity.

Switching operating systems will typically create a non-trivial learning curve for at least a few weeks anywhere that a person has to perform system administration. Eleswhere, EMACS is EMACS (so to speak).

GitTower for a git GUI

Divvy for window management

1Password for password management

Homebrew for package management

Atom for a text editor

One thing that took me a while to get up to speed on was the different in alt+tab here switching between entire apps vs individual windows as on a PC. To be able to get that functionality back, install Witch http://manytricks.com/witch/
You can use Cmd+` to switch between windows within apps.
I am aware of that, this is more to switch between the individual windows without bringing up all of the other windows of that program. Make sense?
Memory Clean for memory optimization

Alfred for searching things on your Mac (better than Spotlight)

BetterSnapTool for window management (cheaper than Divvy)

GitHub for Mac and Atom are excellent as others have mentioned

Memory Clean... when you can't stand having your bits set for no reason...
Do you have to run OSX? Having spent years working in both OSX and Linux I've found the latter is much more usable as a developer - in terms of customisation, scripted setup, flexibility, UI[1].

If you're going to the bother of changing OS, I suggest trying Linux (I use Linux Mint) as well, and see which you prefer. My setup is here:

https://github.com/duncan-bayne/mint-setup/wiki

Using a tiling window manager like StumpWM[2] is a major win as you can almost entirely give up using the mouse. Plus a programmable window manager (again, like StumpWM) gives you the flexibility to tailor your environment to suit exactly the way you work, and keep changing it as your style develops.

OSX is miles better than Windows, I'll grant you, but it's still primarily a consumer-focused OS. Be a producer, not a consumer ;)

[1] The OSX GUI is great for discoverability. But as a developer, you might benefit more from a powerful, flexible, trivially programmable GUI.

[2] https://stumpwm.github.io/ ... see https://www.youtube.com/watch?v=do0DVxy4HBc for an intro

Most people moving from Windows need some applications that are not available on Linux but are available on OS X. If this is the case, then virtualbox on OS X with Linux VMs is a reasonable way to go.
... or dual-boot if you've the hard drive space. Mint starts up in literally a few seconds on my hardware (a several year old ThinkPad L520).

Personally, I found that going cold-turkey worked for me when I switched from Windows for C development back in the day. Every time I ran into the "oh, I need a Windows app" problem, I'd stop and learn the Linux equivalent.

Fortunately there were no road-blocks; literally everything I needed to do as a developer could be done on Linux, and that was back in 2001 or so from memory.

These days there's little I can't do on a Linux box. There's an old Windows laptop knocking around the office to run Niagara Workbench; I suspect it'll work on Linux through Wine but due to licensing complexities I haven't tried. Probably will when that laptop finally shuffles off this mortal coil.

For development yes, but for the consumer apps you might be used to using (or have paid for) it could be difficult switching.

YNAB, Fluenz, & iTunes are things you might want a mac for.

I'd have assumed that people would flee from iTunes given the chance :) Perhaps it's improved in the years since I last used it (bought an iPhone when they were the New Hotness here in Australia) but I doubt it.

When I migrated off iOS I encoded my iTunes music to .ogg, which was a pretty good experience. I don't know what the state of the art is now though.

According to the forums, YNAB runs in Linux on WINE. Also people have reported some success with Fluenz on WINE as well. For music I run Spotify, which has a good Linux client these days.

I'll grant you it isn't always easy, or even possible, but there are usually alternatives.

I use iTunes mainly for podcasts. I don't know of a good alternative to that.

I also hate ruining a good linux installation with WINE. =)

:)

My podcast workflow is a little odd - I subscribe to RSS feeds with Newsblur, and as new podcasts come up, I save those I'm interested in to a directory that I synchronise with my home NAS with Unison.

I imagine gPodder (http://gpodder.org/) might be a more normal solution :)

If you like speed as much as I do :

1. Total Space. Setup shortcuts and disable transitions

2. Disable (or speed up) OSX animation (I don't have the commands on my phone, just Google it)

3. iTerm and window splitting (Cmd d) and switch (Cmd [ or ])

4. And The REAL time saver : Keyboard Maestro Create at least one macro per app. I assigned shortcuts like

Cmd Shift L - iTerm

Cmd Shift / - Atom

Cmd Shift ' - Chrome

Ctrl Shift < - Finder

Ctrl Shift M - Mailbox

And so (Xcode, Slack etc.)

Then I pur each app in fullscreen (Ctrl Cmd F).

Now I have O(1) access over my computer \o/

Edit: disclaimer I'm a vim user

For the application shortcuts, is there an advantage over activating spotlight (cmd + space) and typing the first few letters of the application name?

I've been thinking about making screenflow workflows to open up a set of files, which could be quite powerful.

Yes. For those you often switch (eg Atom > Chrome > Atom). O(1) access FTW.

I use Spotlight for app I launch but don't really switch Mostly CSGO, Heroes of The Storm, Mumble and TS (Games!)

Actually I use shortcut a lot more for switching than for launching. For instance I launch atom from iTerm. A standard flow could be code, test, terminal commit, chat on Slack/IRSSI, IDE.

Alfred is amazing (and the Power Pack is totally worth it). F.lux is great if you plan on spending any significant amount of time on it after dark. Bartender is quite nice to have. As others have mentioned, iTerm2 is a must, it offers a vastly superior experience to the native Terminal.app. Disable Caps Lock and switch it to Alt, you'll save yourself some pain in the palm/thumb (Google how). Enable Dark Mode (subjective, but I and most people I know greatly prefer it). Enable Autohiding on your dock, and Google how to speed up the animation and reduce the delay. Make heavy use of Spaces. Enable 4-finger swipe to switch spaces, and three-finger drag for click-and-hold. Get rid of the Widgets space (useless). Wish I could provide more links but I'm on my phone at the moment. Hope this helps, enjoy your new MacBook!
Please provide some links when you get a chance :)
Here you go :)

#Apps

Alfred: http://www.alfredapp.com/ Also, here are some good workflows to get you started (heads-up: PowerPack required for workflows): https://github.com/zenorocha/alfred-workflows

Bartender: http://www.macbartender.com/

F.lux: https://justgetflux.com/

iTerm2: http://iterm2.com/

Dash (offline docs browser - one of those things you don't know you need until you need it): http://kapeli.com/dash

Cellist (HTTP debugging proxy that beats Charles): https://itunes.apple.com/us/app/cellist-http-debugging-proxy...

LimeChat (IRC client): http://limechat.net/mac/

Keka (zip utility): http://www.kekaosx.com/en/

Raindrop (bookmarking app): https://raindrop.io

Spectacle (window management): http://spectacleapp.com/

Tower (git GUI): http://www.git-tower.com/

Homebrew (package manager): http://brew.sh/

---

# Tutorials

http://www.howtogeek.com/tips/how-to-disable-the-useless-das...

http://krypted.com/mac-security/remove-the-delay-for-the-doc...

Remapping Caps Lock: Every Google result wants you to download some bogus software. Nonsense. System Preferences > Keyboard > Modifier Keys

Gestures: System Preferences > Trackpad

Enabling word-jump in iTerm2 (weird that it doesn't come with it I know): https://coderwall.com/p/h6yfda/use-and-to-jump-forwards-back...

---

That's my bag of tricks, without getting into more personalization type stuff. Should be enough to get you up and more productive than before in a matter of weeks. Let me know if you have any other questions!

This podcast/show notes gives some good info. http://www.startupsfortherestofus.com/episodes/episode-185-m...

I moved to mac last year from windows I would recommend:

Mac App Store:

Window Magnet (drag and drop your windows/automatic resize) Skitch (Screen Shots)

I also use:

sublime text Virtual Box/Vagrant MAMP Sequel Pro

Other than installing your favorite browsers and extensions you should be good to go.

dot files are pretty nice to have [1]. Also see EmacsForOSX.com. Know the Readline shortcuts for editing most textboxes. Run $ man open to read about opening apps from the command line.

[1] https://github.com/mathiasbynens/dotfiles

On the topic of OSX productivity, is there a way to keybind moving a window to a new space?
There's an app called Divvy (2 v's) that I use every day.
vim and git natively is a great thing to have
Learn the shortcut keys. Unlike windows, they are pretty consistent across apps. For example, command-, is settings in almost every app.