├── .gitignore └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by http://www.gitignore.io 2 | 3 | ### OSX ### 4 | .DS_Store 5 | .AppleDouble 6 | .LSOverride 7 | 8 | # Icon must ends with two \r. 9 | Icon 10 | 11 | # Thumbnails 12 | ._* 13 | 14 | # Files that might appear on external disk 15 | .Spotlight-V100 16 | .Trashes 17 | 18 | 19 | ### Windows ### 20 | # Windows image file caches 21 | Thumbs.db 22 | ehthumbs.db 23 | 24 | # Folder config file 25 | Desktop.ini 26 | 27 | # Recycle Bin used on file shares 28 | $RECYCLE.BIN/ 29 | 30 | # Windows Installer files 31 | *.cab 32 | *.msi 33 | *.msm 34 | *.msp 35 | 36 | 37 | ### Linux ### 38 | *~ 39 | 40 | 41 | ### Emacs ### 42 | # -*- mode: gitignore; -*- 43 | *~ 44 | \#*\# 45 | /.emacs.desktop 46 | /.emacs.desktop.lock 47 | *.elc 48 | auto-save-list 49 | tramp 50 | .\#* 51 | 52 | # Org-mode 53 | .org-id-locations 54 | *_archive 55 | 56 | # flymake-mode 57 | *_flymake.* 58 | 59 | # eshell files 60 | /eshell/history 61 | /eshell/lastdir 62 | 63 | # elpa packages 64 | /elpa/ 65 | 66 | 67 | ### vim ### 68 | [._]*.s[a-w][a-z] 69 | [._]s[a-w][a-z] 70 | *.un~ 71 | Session.vim 72 | .netrwhist 73 | *~ 74 | 75 | 76 | ### Intellij ### 77 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode 78 | 79 | ## Directory-based project format 80 | .idea/ 81 | # if you remove the above rule, at least ignore user-specific stuff: 82 | # .idea/workspace.xml 83 | # .idea/tasks.xml 84 | # and these sensitive or high-churn files: 85 | # .idea/dataSources.ids 86 | # .idea/dataSources.xml 87 | # .idea/sqlDataSources.xml 88 | # .idea/dynamic.xml 89 | 90 | ## File-based project format 91 | *.ipr 92 | *.iws 93 | *.iml 94 | 95 | ## Additional for IntelliJ 96 | out/ 97 | 98 | # generated by mpeltonen/sbt-idea plugin 99 | .idea_modules/ 100 | 101 | 102 | ### PyCharm ### 103 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode 104 | 105 | ## Directory-based project format 106 | .idea/ 107 | # if you remove the above rule, at least ignore user-specific stuff: 108 | # .idea/workspace.xml 109 | # .idea/tasks.xml 110 | # and these sensitive or high-churn files: 111 | # .idea/dataSources.ids 112 | # .idea/dataSources.xml 113 | # .idea/sqlDataSources.xml 114 | # .idea/dynamic.xml 115 | 116 | ## File-based project format 117 | *.ipr 118 | *.iws 119 | *.iml 120 | 121 | ## Additional for IntelliJ 122 | out/ 123 | 124 | # generated by mpeltonen/sbt-idea plugin 125 | .idea_modules/ 126 | 127 | 128 | ### WebStorm ### 129 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode 130 | 131 | ## Directory-based project format 132 | .idea/ 133 | # if you remove the above rule, at least ignore user-specific stuff: 134 | # .idea/workspace.xml 135 | # .idea/tasks.xml 136 | # and these sensitive or high-churn files: 137 | # .idea/dataSources.ids 138 | # .idea/dataSources.xml 139 | # .idea/sqlDataSources.xml 140 | # .idea/dynamic.xml 141 | 142 | ## File-based project format 143 | *.ipr 144 | *.iws 145 | *.iml 146 | 147 | ## Additional for IntelliJ 148 | out/ 149 | 150 | # generated by mpeltonen/sbt-idea plugin 151 | .idea_modules/ 152 | 153 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Gitter chat](https://badges.gitter.im/andreis/interview.png)](https://gitter.im/andreis/interview) 2 | 3 | ### Contents 4 | 5 | * [Articles](#articles) 6 | * [Algorithms](#algorithms) 7 | * [Coding](#coding) 8 | * [Guides](#guides) 9 | * [Language-specific](#language-specific) 10 | * [JavaScript](#javascript) 11 | * [Python](#python) 12 | * [Maths](#maths) 13 | * [Meta](#meta) 14 | * [Questions](#questions) 15 | * [Systems Design](#systems-design) 16 | * [Unix](#unix) 17 | * [Videos](#videos) 18 | * [other repos](#similar-github-repos) 19 | 20 | 21 | ## Articles 22 | 23 | Recommended: Steve Yegge – **Get That Job at Google** [[web][a_sy]] 24 | 25 | * Carlos Bueno – **Get That Job at Facebook** [[web][a_cb]] 26 | * Daniel Blumenthal – **How to Prepare for Technical Interviews** [[web][a_db3]] 27 | * David Byttow – **ABC: Always Be Coding** [[web][a_db]] 28 | * David Byttow – **Four Steps to Google, Without a Degree** [[web][a_db2]] 29 | * Thomas L. Friedman – **How to Get a Job at Google** [[part 1][a_tf]] [[part 2][a_tf2]] 30 | * Andrew Rothbart – **Preparing for a technical interview with programming contests** [[web][a_ar]] 31 | * Steve Yegge – **Ten Tips for a (Slightly) Less Awful Resume** [[web][a_sy2]] 32 | 33 | [a_cb]: https://www.facebook.com/notes/10150964382448920 34 | [a_ar]: https://www.facebook.com/notes/10151298476823920 35 | [a_db]: https://medium.com/tech-talk/d5f8051afce2 36 | [a_db2]: https://medium.com/this-happened-to-me/8f381aa6bd5e 37 | [a_db3]: http://dandreamsofcoding.com/2012/11/25/how-to-prepare-for-technical-interviews/ 38 | [a_sy]: http://steve-yegge.blogspot.co.uk/2008/03/get-that-job-at-google.html 39 | [a_sy2]: http://steve-yegge.blogspot.co.uk/2007_09_01_archive.html 40 | [a_tf]: http://mobile.nytimes.com/2014/02/23/opinion/sunday/friedman-how-to-get-a-job-at-google.html 41 | [a_tf2]: http://mobile.nytimes.com/2014/04/20/opinion/sunday/friedman-how-to-get-a-job-at-google-part-2.html 42 | 43 | 44 | ## Algorithms 45 | 46 | Recommended: Steven Skiena – **The Algorithm Design Manual** [[Amazon][b_tadm_amzn]] [[pdf][b_tadm_pdf]] [[web][b_tadm_web]] 47 | 48 | * Jon Bentley – **Programming Pearls** [[Amazon][b_pp_amzn]] [[web (full text)][b_pp_web]] 49 | * Cormen, Leiserson, Rivest, Stein – **Introduction to Algorithms** [[Amazon][b_clrs_amzn]] [[pdf][b_clrs_pdf]] 50 | * more – **Free Programming Books** (*giant* collection) [[Github][b_fbp]] 51 | * more – **IT eBooks** [[web][b_ite]] 52 | * more – **Free Programming Books** [[web][b_fpbcom]] 53 | 54 | Please support the authors by buying the books. 55 | 56 | [b_clrs_amzn]: http://www.amazon.com/dp/0262033844 57 | [b_clrs_pdf]: https://www.google.com/search?q=cormen+pdf 58 | [b_fbp]: https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md 59 | [b_fpbcom]: http://www.freeprogrammingbook.com/ 60 | [b_ite]: http://it-ebooks.info/ 61 | [b_pp_amzn]: http://www.amazon.com/dp/8177588583 62 | [b_pp_web]: http://www.cs.bell-labs.com/cm/cs/pearls/ 63 | [b_tadm_amzn]: http://www.amazon.com/dp/1848000693 64 | [b_tadm_pdf]: https://www.google.com/search?q=skiena+algorithm+design+manual+pdf 65 | [b_tadm_web]: http://www.algorist.com/ 66 | 67 | 68 | ## Coding 69 | 70 | Recommended: **Talentbuddy** [[web][c_tb]] [[free app][c_tb_app]] 71 | 72 | * **Coderust** (great selection of problems) [[$10 app][c_cr]] 73 | * **Hacker Rank** [[web][c_hr]] 74 | * **Interview Cake** [[web][c_ic]] 75 | * **HackerEarth** [[web][c_he]] 76 | * **HiredInTech** [[web][c_hit]] 77 | * **Project Euler** [[web][c_pe]] 78 | * **Google Code Jam practice problems** [[web][c_gcj]] 79 | * **Top Coder tutorials** [[web][c_tct]] 80 | * **Infoarena training path** (RO) [[web][c_itp]] 81 | * **LeetCode Online Judge** [[web][c-lc]] 82 | * more – **Free Programming Resources** [[web][c_fpr]] 83 | * more - **Web Resources and Tutorials That Don't Suck** [[web][c_p]] 84 | 85 | [c_cr]: http://coderust.com/ 86 | [c_fpr]: http://resrc.io/ 87 | [c_gcj]: https://code.google.com/codejam/contests.html 88 | [c_he]: http://www.hackerearth.com/ 89 | [c_hit]: http://www.hiredintech.com/ 90 | [c_hr]: https://www.hackerrank.com/ 91 | [c_ic]: https://www.interviewcake.com/ 92 | [c_itp]: http://www.infoarena.ro/training-path 93 | [c_p]: http://pineapple.io/ 94 | [c_pe]: https://projecteuler.net/ 95 | [c_tb]: http://www.talentbuddy.co/ 96 | [c_tb_app]: https://itunes.apple.com/us/app/talentbuddy/id845593905 97 | [c_tct]: http://www.topcoder.com/tc?d1=tutorials&d2=alg_index&module=Static 98 | [c-lc]: http://oj.leetcode.com/ 99 | 100 | 101 | ## Guides 102 | 103 | Recommended (resume): Gayle McDowell – **The Google Resume** [[Amazon][g_tgr_amzn]] [[pdf][g_tgr_pdf]] 104 | 105 | Recommended (interview): Gayle McDowell – **Cracking the Coding Interview** [[Amazon][g_cci_amzn]] [[pdf][g_cci_pdf]] 106 | 107 | * **CareerCup** [[web][g_cc]] 108 | * **Coding for Interviews** [[web][g_cfi]] 109 | * **Here's How to Prepare for Tech Interviews** [[reddit][g_rd]] 110 | * **Programming Interviews Exposed** [[Amazon][g_pie_amzn]] [[pdf][g_pie_pdf]] 111 | * **Elements of Programming Interviews** [[Amazon][g_epibook]] [[web][g_epiweb]] 112 | 113 | **Quora**: 114 | * [How to prepare for my Google/Facebook interview if I have 6 months left?](http://www.quora.com/Career-Advice/What-are-the-ways-to-utilize-6-months-to-build-skill-set-to-get-into-Facebook-or-Google) 115 | * [How should I prepare for my Google interview if I have 1 month left?](https://www.quora.com/Google-Interview-Questions/How-should-I-prepare-for-my-Google-interview-if-I-have-1-month-left) 116 | * [What is the best advice for an engineering internship interview at Google or Facebook?](https://www.quora.com/What-is-the-best-advice-for-an-engineering-internship-interview-at-Google-or-Facebook) 117 | * [What graph topics should I study in order to be adequately prepared for a Google Software Engineer interview?](https://www.quora.com/Google-Interview-Questions/What-graph-topics-should-I-study-in-order-to-be-adequately-prepared-for-a-Google-Software-Engineer-interview) 118 | 119 | [g_cc]: http://www.careercup.com/ 120 | [g_cci_amzn]: http://www.amazon.com/dp/098478280X 121 | [g_cci_pdf]: https://www.google.com/search?q=cracking+the+coding+interview+pdf 122 | [g_cfi]: http://codingforinterviews.com/ 123 | [g_pie_amzn]: http://www.amazon.com/dp/047012167X 124 | [g_pie_pdf]: https://www.google.com/search?q=programming+interviews+exposed+it-ebooks 125 | [g_rd]: http://redd.it/1jov24 126 | [g_tgr_amzn]: http://www.amazon.com/dp/0470927623 127 | [g_tgr_pdf]: https://www.google.com/search?q=the+google+resume+pdf 128 | [g_epiweb]: https://code.google.com/p/elements-of-programming-interviews/ 129 | [g_epibook]: http://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836 130 | 131 | 132 | ## Language-specific 133 | 134 | ### JavaScript 135 | 136 | * [Superhero.js](http://superherojs.com/) 137 | 138 | ### Python 139 | 140 | * [The Hitchhiker's Guide to Python](http://docs.python-guide.org/en/latest/) 141 | * [The Insider's Guide to Python Interviewing](http://www.toptal.com/python#hiring-guide) 142 | 143 | ## Maths 144 | 145 | Recommended: MIT - **Mathematics for Computer Science** [[Youtube][m_mit_yt]] [[web][m_mit_web]] 146 | 147 | * Graham, Knuth, Patashnik – **Concrete Mathematics: A Foundation for Computer Science** [[Amazon][m_cm_amzn]] [[pdf][m_cm_pdf]] 148 | 149 | [m_cm_amzn]: http://www.amazon.com/dp/0201558025/ 150 | [m_cm_pdf]: https://www.google.co.uk/search?q=knuth+concrete+mathematics+pdf 151 | [m_mit_web]: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/ 152 | [m_mit_yt]: https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B 153 | 154 | 155 | ## Meta 156 | 157 | **Quora** 158 | 159 | * [How does an interviewer define the difficulty level of a question?](http://www.quora.com/Programming-Interviews/How-does-an-interviewer-define-the-difficulty-level-of-a-question) 160 | 161 | 162 | ## Questions 163 | 164 | Recommended: MIT – **Hacking a Google Interview** [[web][q_hgi]] 165 | 166 | * **Computer Science Primer / Interview Questions** [[web][q_csp]] 167 | * **Programming Interview Questions** [[web][q_piq]] 168 | * **Prismo-Skills** [[web][q_ps]] 169 | * Jeff Atwood – **How Good an Estimator Are You?** [[web][q_ja]] 170 | * Daniel Blumenthal – **Questions I Want to Ask, but Can't** [[web][q_db]] 171 | * Steve Yegge – **The Five Essential Phone-Screen Questions** [[web][q_feps]] 172 | 173 | [q_db]: http://dandreamsofcoding.com/2013/03/01/questions-i-want-to-ask-but-cant/ 174 | [q_csp]: http://www.grokit.ca/spc/computer_science_review/ 175 | [q_feps]: https://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions 176 | [q_hgi]: https://courses.csail.mit.edu/iap/interview/materials.php 177 | [q_ja]: http://blog.codinghorror.com/how-good-an-estimator-are-you/ 178 | [q_piq]: http://maxnoy.com/interviews.html 179 | [q_ps]: http://prismoskills.appspot.com/freshers.jsp 180 | 181 | 182 | ## Systems Design 183 | 184 | **Quora** 185 | 186 | * [How should I prepare system design questions for Google/Facebook interview?](http://www.quora.com/Job-Interviews/How-should-I-prepare-system-design-questions-for-Google-Facebook-Interview) 187 | 188 | 189 | **Websites and Engineering Blogs** 190 | * [High Scalability](http://highscalability.com/) 191 | * [The GitHub Blog](https://github.com/blog/category/engineering) 192 | * [Engineering at Quora](http://engineering.quora.com/) 193 | * [Yelp Engineering Blog](http://engineeringblog.yelp.com/) 194 | * [Twitter Engineering](https://engineering.twitter.com/) 195 | * [Facebook Engineering](https://www.facebook.com/Engineering) 196 | * [Yammer Engineering](http://eng.yammer.com/blog/) 197 | * [Etsy Code as Craft](http://codeascraft.com/) 198 | * [Foursquare Engineering Blog](http://engineering.foursquare.com/) 199 | * [Airbnb Engineering](http://nerds.airbnb.com/) 200 | * [WebEngage Engineering Blog](http://engineering.webengage.com/) 201 | * [LinkedIn Engineering](http://engineering.linkedin.com/blog) 202 | * [The Netflix Tech Blog](http://techblog.netflix.com/) 203 | * [BankSimple Simple Blog](https://www.simple.com/engineering/) 204 | * [Square The Corner](http://corner.squareup.com/) 205 | * [SoundCloud Backstage Blog](https://developers.soundcloud.com/blog/) 206 | * [Flickr Code](http://code.flickr.net/) 207 | * [Instagram Engineering](http://instagram-engineering.tumblr.com/) 208 | * [Dropbox Tech Blog](https://tech.dropbox.com/) 209 | * [Cloudera Developer Blog](http://blog.cloudera.com/blog/) 210 | * [Bandcamp Tech](http://bandcamptech.wordpress.com/) 211 | * [Oyster Tech Blog](http://tech.oyster.com/) 212 | * [THE REDDIT BLOG](http://www.redditblog.com/) 213 | * [Groupn Engineering Blog](https://engineering.groupon.com/) 214 | * [Songkick Technology Blog](http://devblog.songkick.com/) 215 | * [Google Research Blog](http://googleresearch.blogspot.com/) 216 | * [Pinterest Engineering Blog](http://engineering.pinterest.com/) 217 | * [Twilio Engineering Blog](http://www.twilio.com/engineering) 218 | * [Bitly Engineering Blog](http://word.bitly.com/) 219 | 220 | 221 | 222 | ## Unix 223 | 224 | **Quora** 225 | 226 | * [What is the difference between a process and a thread?](http://www.quora.com/What-is-the-difference-between-a-process-and-a-thread) 227 | 228 | 229 | ## Videos 230 | 231 | Recommended: **Candidate Coaching Session: Tech Interviewing** [[Youtube][v_ccs]] 232 | 233 | * Gayle McDowell – **Cracking the Coding Interview** [[Youtube][v_cci]] 234 | * Gayle McDowell - **Cracking the Coding Interview (examples)** [[one][v_cci2]] [[two][v_cci3]] 235 | * Hangouts on Air: **Google Recruiters Share Interview Tips** [[technical][v_gt]] [[non-technical][v_gnt]] 236 | 237 | [v_cci]: http://youtu.be/rEJzOhC5ZtQ 238 | [v_cci2]: http://youtu.be/aClxtDcdpsQ 239 | [v_cci3]: http://youtu.be/2cf9xo1S134 240 | [v_ccs]: http://youtu.be/oWbUtlUhwa8 241 | [v_gt]: http://youtu.be/qc1owf2-220 242 | [v_gnt]: http://youtu.be/DINxNbBOEoI 243 | 244 | ## Similar Github repos 245 | 246 | * [interview-resources](https://github.com/davidhampgonsalves/interview-resources) 247 | * [code-problems](https://github.com/blakeembrey/code-problems) 248 | * [InterviewThis](https://github.com/ChiperSoft/InterviewThis) 249 | * [job_interview](https://github.com/ruby-jokes/job_interview) 250 | * [what-happens-when](https://github.com/alex/what-happens-when) 251 | --------------------------------------------------------------------------------