A running list of miscellaneous tips I’ve found useful for development:
Core Competencies for Software Development
Here are a few things I personally found useful toward becoming technically competent for software development:
Codility: Algorithmic lessons including complexity analysis and exercises on a multi-language OJ! I used this to get my feet wet in understanding how to apply algorithms to interview exercises.
LeetCode: A super popular site that hosts a large repository of algorithmic questions (and more!). I would highly recommend their premium subscription, which sometimes goes on special during the year. Their premium subscription allows you to filter questions previously asked by different companies (including Google, Amazon, Facebook) and frequency asked.
InterviewBit: Contains several system architecture questions with clear and simple walkthroughs for each question.
Project Euler: Mathematically-oriented questions. Not exactly an online judge, but definitely a great source for sophisticated questions.
Cody: A gentler introduction to programming challenges, featuring a relatively interesting way of generating scores, centered on MATLAB.
Algorithms by Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vazirani (Superb for a crash course in algo theory)
Cracking The Coding Interview by Gayle Laakmann McDowell (Also a surprisingly active contributor on Quora)
Effective C++: 55 Specific Ways to Improve Your Programs and Designs by Scott Meyers (Surprisingly helpful even beyond C++)
Don’t Make Me Think! (Revisited) by Steve Krug (Great introduction to usability)
Introduction to Algorithms (6.006) on MIT OpenCourseware
Signals and Systems on MIT OpenCourseware (by Professor Alan Oppenheim himself!)
Solarized: An Easy Color Scheme for the Eyes
“Solarized reduces brightness contrast but, unlike many low contrast colorschemes, retains contrasting hues (based on colorwheel relations) for syntax highlighting readability.”
“As far as I know Solarized is the only color scheme that has been engineered. It’s arguable that Solarized is best because science makes it so.”
Solarized is available for an array of editors (vim, emacs, fancy IDEs, etc.), terminal emulators, and more.
Get it here for free:
Here’s an article that praises the scheme (at the unfortunate cost of sounding a bit fanatical):
When starting a new session of iTerm2 using a login shell, you may see the following error:
## exec failed ## argpath=login error=No such file or directory
iTerm then terminates the shell with a “short-lived session” error.
The short answer: Profiles -> Open Profiles … -> Default -> Edit Profiles -> Command -> Command -> /bin/bash -l