{"id":27980,"date":"2017-09-09T17:34:06","date_gmt":"2017-09-09T15:34:06","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=27980"},"modified":"2017-09-09T17:34:06","modified_gmt":"2017-09-09T15:34:06","slug":"every-programmer-should-know","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/","title":{"rendered":"Every Programmer Should Know"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>&#8220;<a href=\"https:\/\/github.com\/mr-mig\/every-programmer-should-know\">Every Programmer Should Know<\/a>&#8221; is a collection of subjects and resources that every programmer should know. \u00a0It is not specific to any technology stack, and it&#8217;s rich enough to offer something to programmer of any level or experience.<\/p>\n<p>While the whole list is great, I&#8217;ll single out this <a href=\"http:\/\/bigocheatsheet.com\/\">Big O Cheatsheet<\/a>:<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/09\/big-o.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"27981\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/big-o\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/09\/big-o.png?fit=805%2C568&amp;ssl=1\" data-orig-size=\"805,568\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"big o\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/09\/big-o.png?fit=660%2C466&amp;ssl=1\" class=\"aligncenter size-medium wp-image-27981\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/09\/big-o-500x353.png?resize=500%2C353&#038;ssl=1\" alt=\"\" width=\"500\" height=\"353\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/09\/big-o.png?resize=500%2C353&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/09\/big-o.png?resize=768%2C542&amp;ssl=1 768w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/09\/big-o.png?w=805&amp;ssl=1 805w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>&#8220;Every Programmer Should Know&#8221; is a collection of subjects and resources that every programmer should know. \u00a0It is not specific to any technology stack, and it&#8217;s rich enough to offer something to programmer of any level or experience. While the whole list is great, I&#8217;ll single out this Big O Cheatsheet:<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Every Programmer Should Know #WebDev #programming #algorithms #ComputerScience","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,18,62],"tags":[850,1192,1330],"keyring_services":[],"class_list":["post-27980","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","tag-algorithms","tag-computer-science","tag-web-development"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"&quot;Every Programmer Should Know&quot; is a collection of subjects and resources that every programmer should know. It is not specific to any technology stack, and it&#039;s rich enough to offer something to programmer of any level or experience. While the whole list is great, I&#039;ll single out this Big O Cheatsheet:\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Every Programmer Should Know - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"&quot;Every Programmer Should Know&quot; is a collection of subjects and resources that every programmer should know. It is not specific to any technology stack, and it&#039;s rich enough to offer something to programmer of any level or experience. While the whole list is great, I&#039;ll single out this Big O Cheatsheet:\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2017-09-09T15:34:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2017-09-09T15:34:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Every Programmer Should Know - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"&quot;Every Programmer Should Know&quot; is a collection of subjects and resources that every programmer should know. It is not specific to any technology stack, and it&#039;s rich enough to offer something to programmer of any level or experience. While the whole list is great, I&#039;ll single out this Big O Cheatsheet:\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/09\\\/09\\\/every-programmer-should-know\\\/#blogposting\",\"name\":\"Every Programmer Should Know - Leonid Mamchenkov\",\"headline\":\"Every Programmer Should Know\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/big-o-500x353.png\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/09\\\/09\\\/every-programmer-should-know\\\/#articleImage\"},\"datePublished\":\"2017-09-09T17:34:06+02:00\",\"dateModified\":\"2017-09-09T17:34:06+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/09\\\/09\\\/every-programmer-should-know\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/09\\\/09\\\/every-programmer-should-know\\\/#webpage\"},\"articleSection\":\"All, Programming, Technology, algorithms, Computer Science, web development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/09\\\/09\\\/every-programmer-should-know\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"position\":3,\"name\":\"Programming\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/09\\\/09\\\/every-programmer-should-know\\\/#listItem\",\"name\":\"Every Programmer Should Know\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/09\\\/09\\\/every-programmer-should-know\\\/#listItem\",\"position\":4,\"name\":\"Every Programmer Should Know\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/09\\\/09\\\/every-programmer-should-know\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/09\\\/09\\\/every-programmer-should-know\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/09\\\/09\\\/every-programmer-should-know\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/09\\\/09\\\/every-programmer-should-know\\\/\",\"name\":\"Every Programmer Should Know - Leonid Mamchenkov\",\"description\":\"\\\"Every Programmer Should Know\\\" is a collection of subjects and resources that every programmer should know. It is not specific to any technology stack, and it's rich enough to offer something to programmer of any level or experience. While the whole list is great, I'll single out this Big O Cheatsheet:\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/09\\\/09\\\/every-programmer-should-know\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2017-09-09T17:34:06+02:00\",\"dateModified\":\"2017-09-09T17:34:06+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Every Programmer Should Know - Leonid Mamchenkov","description":"\"Every Programmer Should Know\" is a collection of subjects and resources that every programmer should know. It is not specific to any technology stack, and it's rich enough to offer something to programmer of any level or experience. While the whole list is great, I'll single out this Big O Cheatsheet:","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/#blogposting","name":"Every Programmer Should Know - Leonid Mamchenkov","headline":"Every Programmer Should Know","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/09\/big-o-500x353.png","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/#articleImage"},"datePublished":"2017-09-09T17:34:06+02:00","dateModified":"2017-09-09T17:34:06+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/#webpage"},"articleSection":"All, Programming, Technology, algorithms, Computer Science, web development"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","position":3,"name":"Programming","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/#listItem","name":"Every Programmer Should Know"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/#listItem","position":4,"name":"Every Programmer Should Know","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/","name":"Every Programmer Should Know - Leonid Mamchenkov","description":"\"Every Programmer Should Know\" is a collection of subjects and resources that every programmer should know. It is not specific to any technology stack, and it's rich enough to offer something to programmer of any level or experience. While the whole list is great, I'll single out this Big O Cheatsheet:","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2017-09-09T17:34:06+02:00","dateModified":"2017-09-09T17:34:06+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"Every Programmer Should Know - Leonid Mamchenkov","og:description":"&quot;Every Programmer Should Know&quot; is a collection of subjects and resources that every programmer should know. It is not specific to any technology stack, and it's rich enough to offer something to programmer of any level or experience. While the whole list is great, I'll single out this Big O Cheatsheet:","og:url":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2017-09-09T15:34:06+00:00","article:modified_time":"2017-09-09T15:34:06+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"Every Programmer Should Know - Leonid Mamchenkov","twitter:description":"&quot;Every Programmer Should Know&quot; is a collection of subjects and resources that every programmer should know. It is not specific to any technology stack, and it's rich enough to offer something to programmer of any level or experience. While the whole list is great, I'll single out this Big O Cheatsheet:","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"27980","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-19 20:01:24","updated":"2026-01-15 13:13:46","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/\" title=\"Programming\">Programming<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tEvery Programmer Should Know\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Programming","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/"},{"label":"Every Programmer Should Know","link":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/09\/every-programmer-should-know\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":27162,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/22\/signs-that-youre-a-bad-programmer\/","url_meta":{"origin":27980,"position":0},"title":"Signs that you&#8217;re a bad programmer","author":"Leonid Mamchenkov","date":"December 22, 2016","format":false,"excerpt":"Software Engineering Tips shares some tips on how to figure out if you are a bad programmer, and how to remedy that. Signs that you're a bad programmer Inability to reason about code Poor understanding of the language's programming model Deficient research skills \/ Chronically poor knowledge of the platform's\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28373,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/02\/10\/this-is-why-you-shouldnt-interrupt-a-programmer\/","url_meta":{"origin":27980,"position":1},"title":"This is why you shouldn&#8217;t interrupt a programmer","author":"Leonid Mamchenkov","date":"February 10, 2018","format":false,"excerpt":"Yup.\u00a0 This is exactly why you shouldn't interrupt a programmer.\u00a0 It takes him at least a few minutes to get back to where he was, irrelevant how brief and unimportant the interruption was.\u00a0 And that's why we invented managers (interrupt them all you want!), asynchronous communication (emails, ticketing systems, etc),\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/02\/ProgrammerInterrupted-130x500.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27362,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/19\/programmer-interrupted\/","url_meta":{"origin":27980,"position":2},"title":"Programmer Interrupted","author":"Leonid Mamchenkov","date":"February 19, 2017","format":false,"excerpt":"Slashdot runs a thread on \"Are Remote Software Teams More Productive?\". \u00a0The original post links to a few research references that, unsurprisingly, show how expensive interruptions are to programmers, and how unprepared we are, as an industry, to deal with this problem. \u00a0I particularly liked a rather in-depth look at\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26317,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/08\/08\/classic-programmer-paintings\/","url_meta":{"origin":27980,"position":3},"title":"Classic Programmer Paintings","author":"Leonid Mamchenkov","date":"August 8, 2016","format":false,"excerpt":"Classic Programmer Paintings is a hilarious resource with classic paintings featured with modern captions from the programming world. Well worth adding the RSS feed to your geek humor collection... Found via\u00a0Andrey Vystavkin.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"\"Gentle technical discussion on IRC channel\", Francisco Goya, Oil on canvas, 1814","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/08\/technical-discussion-500x387.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":26340,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/08\/12\/the-traits-of-a-proficient-programmer\/","url_meta":{"origin":27980,"position":4},"title":"The traits of a proficient programmer","author":"Leonid Mamchenkov","date":"August 12, 2016","format":false,"excerpt":"\"The traits of a proficient programmer - Bridging the gap between competence and proficiency\" is a good continuation of the recent \"What is a Senior Developer?\" discussion. \u00a0This time, the question \"Do you know what the difference between competence and proficiency is?\" is asked and answered: Competence means having enough\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8037,"url":"https:\/\/mamchenkov.net\/wordpress\/2004\/10\/11\/secure-programmer-prevent-race-conditions\/","url_meta":{"origin":27980,"position":5},"title":"Secure programmer: Prevent race conditions","author":"Leonid Mamchenkov","date":"October 11, 2004","format":false,"excerpt":"IBM developerWorks runs an excellent article about preventing race conditions - \"Secure programmer: Prevent race conditions\". It is written in clean and simple language and explains nicely most common problems with races. It talks about lock files, alternatives to lock files, and doing lock files properly. It features good examples\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27980","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=27980"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27980\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=27980"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=27980"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=27980"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=27980"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}