{"appState":{"pageLoadApiCallsStatus":true},"categoryState":{"relatedCategories":{"headers":{"timestamp":"2025-04-29T08:01:08+00:00"},"categoryId":33592,"data":{"title":"Programming & Web Design","slug":"programming-web-design","image":{"src":null,"width":0,"height":0},"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592}],"parentCategory":{"categoryId":33512,"title":"Technology","slug":"technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"}},"childCategories":[{"categoryId":34511,"title":"Go Programming Language","slug":"go-programming-language","_links":{"self":"https://dummies-api.dummies.com/v2/categories/34511"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":1,"bookCount":1},{"categoryId":33593,"title":"3D Printing","slug":"3d-printing","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33593"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":33,"bookCount":1},{"categoryId":33594,"title":"App Development","slug":"app-development","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33594"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":85,"bookCount":6},{"categoryId":33595,"title":"C","slug":"c","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33595"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":17,"bookCount":3},{"categoryId":33596,"title":"C#","slug":"csharp","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33596"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":29,"bookCount":4},{"categoryId":33597,"title":"C++","slug":"cplusplus","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33597"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":63,"bookCount":3},{"categoryId":33598,"title":"Cisco Programming","slug":"cisco-programming","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33598"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":false,"articleCount":1,"bookCount":0},{"categoryId":33599,"title":"Coding","slug":"coding","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33599"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":106,"bookCount":5},{"categoryId":33600,"title":"HTML","slug":"html","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33600"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":false,"articleCount":8,"bookCount":0},{"categoryId":33601,"title":"HTML5","slug":"html5","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33601"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":265,"bookCount":2},{"categoryId":33602,"title":"Java","slug":"java","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33602"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":122,"bookCount":7},{"categoryId":33603,"title":"JavaScript","slug":"javascript","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33603"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":87,"bookCount":5},{"categoryId":33604,"title":"MATLAB","slug":"matlab","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33604"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":83,"bookCount":1},{"categoryId":33606,"title":"Python","slug":"python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":83,"bookCount":6},{"categoryId":33607,"title":"R","slug":"r","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33607"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":99,"bookCount":5},{"categoryId":33608,"title":"SQL","slug":"sql","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33608"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":26,"bookCount":4},{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":210,"bookCount":36},{"categoryId":34324,"title":"CSS3","slug":"css3","_links":{"self":"https://dummies-api.dummies.com/v2/categories/34324"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":false,"articleCount":4,"bookCount":0},{"categoryId":34338,"title":"Web Hosting","slug":"web-hosting","_links":{"self":"https://dummies-api.dummies.com/v2/categories/34338"},"image":{"src":"/img/background-image-2.fabfbd5c.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":6,"bookCount":1},{"categoryId":34376,"title":"Blogging & Website Platforms","slug":"blogging-website-platforms","_links":{"self":"https://dummies-api.dummies.com/v2/categories/34376"},"image":{"src":"/img/background-image-1.daf74cf0.png","width":0,"height":0},"hasArticle":true,"hasBook":true,"articleCount":66,"bookCount":9}],"description":"Ever wonder what makes the software, websites, and blogs you use every day function properly (or improperly)? It's programming. Our articles reveal the ins and outs of programming and web design.","relatedArticles":{"self":"https://dummies-api.dummies.com/v2/articles?category=33592&offset=0&size=5"},"hasArticle":true,"hasBook":true,"articleCount":1396,"bookCount":102},"_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"}},"relatedCategoriesLoadedStatus":"success"},"listState":{"list":{"count":10,"total":1396,"items":[{"headers":{"creationTime":"2025-04-28T14:54:25+00:00","modifiedTime":"2025-04-28T14:54:25+00:00","timestamp":"2025-04-28T15:01:07+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"Why Local Environments Hold Your Developers Back","strippedTitle":"why local environments hold your developers back","slug":"why-local-environments-hold-your-developers-back","canonicalUrl":"","seo":{"metaDescription":"Discover how local development environments hinder your developers. Learn why cloud development environments can boost innovation and efficiency.","noIndex":0,"noFollow":0},"content":"For enterprises whose growth depends on the innovation of their developers and data scientists, success moves at the speed of their development environments. Efficiency, effectiveness, and the ability to build without friction — that’s what sets the pace.\r\n\r\nThe question is simple enough: Do your developers and data scientists work their magic in cloud development environments (CDEs), or is their work bogged down by a legacy development environment? Read on to find out why local development environments and other traditional solutions may be holding back your developers, and how cloud development environments can set them free.\r\n<h2 id=\"tab1\" >How traditional development environments are lacking</h2>\r\nWhat are some of the ways the wrong development environment may be making your company’s progress sluggish?\r\n<ul>\r\n \t<li><strong>Local development environments:</strong> This was yesterday’s standard, with all developers managing their own environments on their own machines. All that local control gets in the way of getting ahead. It’s complicated and time-consuming to configure tools and dependencies on each individual environment. You wind up with inconsistencies that slow things down. And don’t even think about scaling this approach.</li>\r\n \t<li><strong>Virtual desktop infrastructures (VDIs):</strong> VDIs help to centralize environments, but they’re often not really workable for development. They’re expensive and complicated to maintain. They also tend to suffer from sluggish performance, and that’s no way to keep developers happy.</li>\r\n \t<li><strong>Shadow virtual machines (VMs):</strong> Developers may get around these issues with ad hoc VMs, but they end up creating different problems. “Shadow” solutions may be lacking in governance and are often overprovisioned. That makes them potential security risks, not to mention wasteful of resources.</li>\r\n</ul>\r\n<h2 id=\"tab2\" >How cloud development environments can help</h2>\r\nA fully managed environment is the answer to the challenges of these more disjointed solutions from yesteryear. The CDE may be hosted in the cloud or via on-premises infrastructure, and it brings together all the necessary tools, libraries, and infrastructure needed for efficient development.\r\n\r\nIt’s a development workspace that can be accessed from anywhere, not tied to a specific location or machine. It’s great for remote work, and because of its centralized infrastructure, it’s a lot more secure than storing code and data on developers’ laptops. Developers and data scientists can easily tap into it for coding applications and training machine learning (ML) models, getting up and running in minutes.\r\n\r\nProvisioning is automatic, so everything developers need is right there and ready to go. It can all be controlled from a centralized interface by authorized team members, ensuring only the right people can access code and data. And the compute and storage resources are easily scalable.\r\n<h2 id=\"tab3\" >How CDEs make developers more productive</h2>\r\nTraditional local development environments tend to be frustratingly slow when it comes to onboarding new developers or moving developers to new projects (and developers tend to take on new projects multiple times a year, of course). Provisioning environments can take days or even weeks, thanks to all the complexities of dependencies and the need for approvals.\r\n\r\nMeanwhile, if developers are off working in their own local environments, that also leads to problems requiring time-consuming troubleshooting. Mismatched environments are the enemy of success. What’s more, resource constraints can be a hangup in local development environments.\r\n\r\nCDEs, on the other hand, can be preconfigured, so developers just log in and get to work. Platform engineers can make global updates and ensure consistencies across the CDE. Configuration drift is no longer a problem.\r\n\r\nAs for resource constraints, the cloud can fix that with high-performance resources that scale as needed. Developers can set up resource-intensive tasks such as ML model training in the cloud, and use their local laptops to get other work done in the meantime.\r\n<h2 id=\"tab4\" >Why cloud development environments provide better security</h2>\r\nLocal development environments and various noncentralized alternatives can pose security threats, due to a lack of adequate governance and a hard-to-manage attack surface. Working with intellectual property and other sensitive data on developer laptops or unapproved VMs is risky. If developers need to pull sensitive data to their laptops for such things as ML model training, you’re tempting fate, because security problems don’t just hold developers back — they can set back the entire organization.\r\n\r\nCDEs, on the other hand, can live in a cloud environment or be centralized in on-premises infrastructure. They can be air-gapped if need be. Source code and data can stay in secure cloud or on-premise locations, along with any compute resources needed for dealing with them, so sensitive data never needs to leave the safety of home.\r\n\r\nCompliance teams aren’t fond of local environments because they’re tricky to monitor. CDEs, on the other hand, offer better monitoring and auditing capabilities, without getting in the way of the developers’ work.\r\n<h2 id=\"tab5\" >How CDEs save both money and time</h2>\r\nFace it — local development environments can be costly. Local hardware isn’t cheap, especially the high-end hardware needed for resource-intensive processes. But if your enterprise tries to trim those costs, developers are likely to be displeased.\r\n\r\nThe reality is, CDEs not only provide a better developer experience and greater security, they also save money and time. Developers can use most cost-effective machines that are less powerful and longer-lasting, because the heavy lifting is happening in the CDE, not on the local machine.\r\n\r\nWhat’s more, CDEs can tap into automation to optimize resource utilization. Auto-start and auto-stop features mean unused environments aren’t sitting there wasting money. Bin-packing multiple developer workspaces onto a single VM can reduce infrastructure costs, too.\r\n\r\nAnd once again, helping developers be more efficient — by easing onboarding and transitioning, while banishing sluggish equipment — saves money, too. Time is, after all, money. If you can save hours and days and weeks of wasted developer time, you’ll get a whole lot more out of the money you’re paying them.\r\n\r\nTo learn more about the benefits of CDEs, <a href=\"https://coder.com/ebooks-and-reports/ebooks/cloud-development-environments-for-dummies-coder-special-edition\" target=\"_blank\" rel=\"noopener\" data-testid=\"bookSponsorDownloadButton\">download your free <em>Cloud Development Environments For Dummies, </em>CoderTechnologies, Inc. Special Edition e-book</a>.","description":"For enterprises whose growth depends on the innovation of their developers and data scientists, success moves at the speed of their development environments. Efficiency, effectiveness, and the ability to build without friction — that’s what sets the pace.\r\n\r\nThe question is simple enough: Do your developers and data scientists work their magic in cloud development environments (CDEs), or is their work bogged down by a legacy development environment? Read on to find out why local development environments and other traditional solutions may be holding back your developers, and how cloud development environments can set them free.\r\n<h2 id=\"tab1\" >How traditional development environments are lacking</h2>\r\nWhat are some of the ways the wrong development environment may be making your company’s progress sluggish?\r\n<ul>\r\n \t<li><strong>Local development environments:</strong> This was yesterday’s standard, with all developers managing their own environments on their own machines. All that local control gets in the way of getting ahead. It’s complicated and time-consuming to configure tools and dependencies on each individual environment. You wind up with inconsistencies that slow things down. And don’t even think about scaling this approach.</li>\r\n \t<li><strong>Virtual desktop infrastructures (VDIs):</strong> VDIs help to centralize environments, but they’re often not really workable for development. They’re expensive and complicated to maintain. They also tend to suffer from sluggish performance, and that’s no way to keep developers happy.</li>\r\n \t<li><strong>Shadow virtual machines (VMs):</strong> Developers may get around these issues with ad hoc VMs, but they end up creating different problems. “Shadow” solutions may be lacking in governance and are often overprovisioned. That makes them potential security risks, not to mention wasteful of resources.</li>\r\n</ul>\r\n<h2 id=\"tab2\" >How cloud development environments can help</h2>\r\nA fully managed environment is the answer to the challenges of these more disjointed solutions from yesteryear. The CDE may be hosted in the cloud or via on-premises infrastructure, and it brings together all the necessary tools, libraries, and infrastructure needed for efficient development.\r\n\r\nIt’s a development workspace that can be accessed from anywhere, not tied to a specific location or machine. It’s great for remote work, and because of its centralized infrastructure, it’s a lot more secure than storing code and data on developers’ laptops. Developers and data scientists can easily tap into it for coding applications and training machine learning (ML) models, getting up and running in minutes.\r\n\r\nProvisioning is automatic, so everything developers need is right there and ready to go. It can all be controlled from a centralized interface by authorized team members, ensuring only the right people can access code and data. And the compute and storage resources are easily scalable.\r\n<h2 id=\"tab3\" >How CDEs make developers more productive</h2>\r\nTraditional local development environments tend to be frustratingly slow when it comes to onboarding new developers or moving developers to new projects (and developers tend to take on new projects multiple times a year, of course). Provisioning environments can take days or even weeks, thanks to all the complexities of dependencies and the need for approvals.\r\n\r\nMeanwhile, if developers are off working in their own local environments, that also leads to problems requiring time-consuming troubleshooting. Mismatched environments are the enemy of success. What’s more, resource constraints can be a hangup in local development environments.\r\n\r\nCDEs, on the other hand, can be preconfigured, so developers just log in and get to work. Platform engineers can make global updates and ensure consistencies across the CDE. Configuration drift is no longer a problem.\r\n\r\nAs for resource constraints, the cloud can fix that with high-performance resources that scale as needed. Developers can set up resource-intensive tasks such as ML model training in the cloud, and use their local laptops to get other work done in the meantime.\r\n<h2 id=\"tab4\" >Why cloud development environments provide better security</h2>\r\nLocal development environments and various noncentralized alternatives can pose security threats, due to a lack of adequate governance and a hard-to-manage attack surface. Working with intellectual property and other sensitive data on developer laptops or unapproved VMs is risky. If developers need to pull sensitive data to their laptops for such things as ML model training, you’re tempting fate, because security problems don’t just hold developers back — they can set back the entire organization.\r\n\r\nCDEs, on the other hand, can live in a cloud environment or be centralized in on-premises infrastructure. They can be air-gapped if need be. Source code and data can stay in secure cloud or on-premise locations, along with any compute resources needed for dealing with them, so sensitive data never needs to leave the safety of home.\r\n\r\nCompliance teams aren’t fond of local environments because they’re tricky to monitor. CDEs, on the other hand, offer better monitoring and auditing capabilities, without getting in the way of the developers’ work.\r\n<h2 id=\"tab5\" >How CDEs save both money and time</h2>\r\nFace it — local development environments can be costly. Local hardware isn’t cheap, especially the high-end hardware needed for resource-intensive processes. But if your enterprise tries to trim those costs, developers are likely to be displeased.\r\n\r\nThe reality is, CDEs not only provide a better developer experience and greater security, they also save money and time. Developers can use most cost-effective machines that are less powerful and longer-lasting, because the heavy lifting is happening in the CDE, not on the local machine.\r\n\r\nWhat’s more, CDEs can tap into automation to optimize resource utilization. Auto-start and auto-stop features mean unused environments aren’t sitting there wasting money. Bin-packing multiple developer workspaces onto a single VM can reduce infrastructure costs, too.\r\n\r\nAnd once again, helping developers be more efficient — by easing onboarding and transitioning, while banishing sluggish equipment — saves money, too. Time is, after all, money. If you can save hours and days and weeks of wasted developer time, you’ll get a whole lot more out of the money you’re paying them.\r\n\r\nTo learn more about the benefits of CDEs, <a href=\"https://coder.com/ebooks-and-reports/ebooks/cloud-development-environments-for-dummies-coder-special-edition\" target=\"_blank\" rel=\"noopener\" data-testid=\"bookSponsorDownloadButton\">download your free <em>Cloud Development Environments For Dummies, </em>CoderTechnologies, Inc. Special Edition e-book</a>.","blurb":"","authors":[],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":33584,"title":"Cloud Computing","slug":"cloud-computing","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33584"}},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":284787,"title":"What Your Society Says About You","slug":"what-your-society-says-about-you","categoryList":["academics-the-arts","humanities"],"_links":{"self":"/articles/284787"}},{"articleId":230957,"title":"Nikon D3400 For Dummies Cheat Sheet","slug":"nikon-d3400-dummies-cheat-sheet","categoryList":["home-auto-hobbies","photography"],"_links":{"self":"/articles/230957"}},{"articleId":208741,"title":"Kabbalah For Dummies Cheat Sheet","slug":"kabbalah-for-dummies-cheat-sheet","categoryList":["body-mind-spirit","religion-spirituality","kabbalah"],"_links":{"self":"/articles/208741"}},{"articleId":299133,"title":"ChatGPT For Dummies Cheat Sheet","slug":"chatgpt-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"/articles/299133"}}],"inThisArticle":[{"label":"How traditional development environments are lacking","target":"#tab1"},{"label":"How cloud development environments can help","target":"#tab2"},{"label":"How CDEs make developers more productive","target":"#tab3"},{"label":"Why cloud development environments provide better security","target":"#tab4"},{"label":"How CDEs save both money and time","target":"#tab5"}],"relatedArticles":{"fromBook":[],"fromCategory":[{"articleId":301736,"title":"Building DIY Websites For Dummies Cheat Sheet","slug":"building-diy-websites-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301736"}},{"articleId":299575,"title":"HTML, CSS, & JavaScript All-in-One For Dummies Cheat Sheet","slug":"html-css-javascript-all-in-one-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/299575"}},{"articleId":265680,"title":"Using DevOps To Improve Engineering","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"How To Automate DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"How To Choose a Cloud Service Provider for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":0,"slug":null,"isbn":null,"categoryList":null,"amazon":null,"image":null,"title":null,"testBankPinActivationLink":null,"bookOutOfPrint":false,"authorsInfo":null,"authors":null,"_links":null},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[null]},{&quot;key&quot;:&quot;sponsored&quot;,&quot;values&quot;:[&quot;customsolutions&quot;]}]\" id=\"du-slot-680f98348d9fa\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[null]},{&quot;key&quot;:&quot;sponsored&quot;,&quot;values&quot;:[&quot;customsolutions&quot;]}]\" id=\"du-slot-680f98348f157\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":true,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"Brought to you by Coder","brandingLink":"https://coder.com/","brandingLogo":{"src":"https://www.dummies.com/wp-content/uploads/coder-logo-transparent-strip-black.png","width":200,"height":44},"sponsorAd":"&nbsp;\r\n\r\n&nbsp;","sponsorEbookTitle":"Cloud Development Environments For Dummies, CoderTechnologies, Inc. Special Edition","sponsorEbookLink":"https://coder.com/ebooks-and-reports/ebooks/cloud-development-environments-for-dummies-coder-special-edition","sponsorEbookImage":{"src":"https://www.dummies.com/wp-content/uploads/cloud-development-environments-fd-coder-160x255.jpg","width":160,"height":255}},"primaryLearningPath":"Advance","lifeExpectancy":"One year","lifeExpectancySetFrom":"2025-04-29T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[{"adPairKey":"sponsored","adPairValue":"customsolutions"}]},"status":"publish","visibility":"public","articleId":302882},{"headers":{"creationTime":"2019-10-09T22:32:15+00:00","modifiedTime":"2024-10-28T20:21:54+00:00","timestamp":"2024-10-28T21:01:27+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"Python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"},"slug":"python","categoryId":33606}],"title":"How to Define and Use Python Lists","strippedTitle":"how to define and use python lists","slug":"how-to-define-and-use-python-lists","canonicalUrl":"","seo":{"metaDescription":"Use this guide from Dummies.com to learn how to define and use Python lists. This Python tutorial helps you make the most of your Python lists.","noIndex":0,"noFollow":0},"content":"The simplest data collection in <a href=\"https://www.dummies.com/programming/python/python-all-in-one-for-dummies-cheat-sheet/\">Python</a> is a list. A <em>list</em> is any list of data items, separated by commas, inside square brackets. Typically, you assign a name to the Python list using an = sign, just as you would with variables. If the list contains numbers, then don't use quotation marks around them. For example, here is a list of test scores:\r\n<pre class=\"code\">scores = [88, 92, 78, 90, 98, 84]</pre>\r\nIf the list contains strings then, as always, those strings should be enclosed in single or double quotation marks, as in this example:\r\n\r\nTo display the contents of a list on the screen, you can print it just as you would print any regular variable. For example, executing <code>print(students)</code> in your code after defining that list shows this on the screen.\r\n<pre class=\"code\">['Mark', 'Amber', 'Todd', 'Anita', 'Sandy']</pre>\r\nThis may not be exactly what you had in mind. But don’t worry, Python offers lots of great ways to access data in lists and display it however you like.\r\n<h2 id=\"tab1\" >Referencing Python list items by position</h2>\r\nEach item in a list has a position number, starting with zero, even though you don’t see any numbers. You can refer to any item in the list by its number using the name for the list followed by a number in square brackets. In other words, use this syntax:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;[&lt;em&gt;x&lt;/em&gt;]\r\n\r\nReplace &lt;em&gt;&lt;code&gt;listname&lt;/code&gt;&lt;/em&gt; with the name of the list you're accessing and replace &lt;em&gt;&lt;code&gt;x&lt;/code&gt;&lt;/em&gt; with the position number of item you want. Remember, the first item is always number zero, not one. For example, in the first line below, I define a list named &lt;code&gt;students&lt;/code&gt;, and then print item number zero from that list. The result, when executing the code, is that the name &lt;code&gt;Mark&lt;/code&gt; is displayed.</pre>\r\n<pre class=\"code\">students = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\nprint(students[0])\r\nMark</pre>\r\n<technicalstuff>\r\n\r\nWhen reading access list items, professionals use the word <em>sub</em> before the number. For example, <em>students[0]</em> would be spoken as <em>students sub zero</em>.\r\n\r\nThis next example shows a list named <code>scores</code>. The <code>print()</code> function prints the position number of the last score in the list, which is 4 (because the first one is always zero).\r\n<pre class=\"code\">scores = [88, 92, 78, 90, 84]\r\nprint(scores[4])\r\n84</pre>\r\nIf you try to access a list item that doesn't exist, you get an “index out of range” error. The <em>index</em> part is a reference to the number inside the square brackets. For example, the image below shows a little experiment in a <a href=\"https://www.dummies.com/programming/python/tips-for-using-jupyter-notebook-for-python-programming/\">Jupyter notebook</a> where a list of scores was created and then the printing of <code>score[5]</code> was attempted.\r\n\r\nIt failed and generated an error because there is no <code>scores[5]</code>. There's only <code>scores[0]</code>, <code>scores[1]</code>, <code>scores[2]</code>, <code>scores[3]</code>, and <code>scores[4]</code> because the counting always starts at zero with the first one on the list.\r\n\r\n[caption id=\"attachment_264920\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264920 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-index-range.jpg\" alt=\"Python index range\" width=\"535\" height=\"212\" /> Index out of range error because there is no scores[5].[/caption] \r\n<h2 id=\"tab2\" >Looping through a Python list</h2>\r\nTo access each item in a list, just use a for loop with this syntax:\r\n<pre class=\"code\">for &lt;em&gt;x&lt;/em&gt; in &lt;em&gt;list&lt;/em&gt;:</pre>\r\nReplace <em<code>&gt;x</code> with a variable name of your choosing. Replace <em><code>list</code></em> with the name of the list. An easy way to make the code readable is to always use a plural for the list name (such as <code>students</code>, <code>scores</code>). Then you can use the singular name (<code>student</code>, <code>score</code>) for the variable name. You don't need to use subscript numbers (numbers in square brackets) with this approach either. For example, the following code prints each score in the scores list:\r\n<pre class=\"code\">for score in scores:\r\nprint(score)</pre>\r\nRemember to always indent the code that’s to be executed within the loop. This image shows a more complete example where you can see the result of running the code in a Jupyter notebook.\r\n\r\n[caption id=\"attachment_264921\" align=\"aligncenter\" width=\"262\"]<img class=\"wp-image-264921 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-loop-list.jpg\" alt=\"Looping through a Python list\" width=\"262\" height=\"219\" /> Looping through a list.[/caption]\r\n\r\n \r\n<h2 id=\"tab3\" >Seeing whether a Python list contains an item</h2>\r\nIf you want your code to check the contents of a list to see whether it already contains some item, use <code>in &lt;em&gt;listname&lt;/em&gt;</code> in an <code>if</code> statement or a variable assignment.\r\n\r\nFor example, the code in the image below creates a list of names. Then, two variables store the results of searching the list for the names <em>Anita</em> and <em>Bob</em>. Printing the contents of each variable shows True for the one where the name (Anita) is in the list. The test to see whether Bob is in the list proves False.\r\n\r\n[caption id=\"attachment_264922\" align=\"aligncenter\" width=\"460\"]<img class=\"wp-image-264922 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-list-contain.jpg\" alt=\"Seeing whether an item is in a Python list\" width=\"460\" height=\"244\" /> Seeing whether an item is in a list.[/caption]\r\n\r\n \r\n<h2 id=\"tab4\" >Getting the length of a Python list</h2>\r\nTo determine how many items are in a list, use the <code>len()</code> function (short for <em>length</em>). Put the name of the list inside the parentheses. For example, type the following code into a Jupyter notebook or Python prompt or whatever:\r\n<pre class=\"code\">students = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\nprint(len(students))</pre>\r\nRunning that code produces this output:\r\n<pre class=\"code\">5</pre>\r\nThere are indeed five items in the list, though the last one is always one less than the number because Python starts counting at zero. So the last one, Sandy, actually refers to students[4] and not students[5].\r\n<h2 id=\"tab5\" >Appending an item to the end of a Python list</h2>\r\nWhen you want your Python code to add a new item to the end of a list, use the <code>.append()</code> method with the value you want to add inside the parentheses. You can use either a variable name or a literal value inside the quotation marks.\r\n\r\nFor instance, in the following image the line that reads <code>students.append(\"Goober\")</code> adds the name Goober to the list. The line that reads <code>students.append(new_student)</code> adds whatever name is stored in the variable named <code>new_student</code> to the list. The <code>.append()</code> method always adds to the end of the list. So when you print the list you see those two new names at the end.\r\n\r\n[caption id=\"attachment_264923\" align=\"aligncenter\" width=\"533\"]<img class=\"wp-image-264923 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-append-list.jpg\" alt=\"Python append list\" width=\"533\" height=\"272\" /> Appending two new names to the end of the list.[/caption]\r\n\r\n \r\n\r\nYou can use a test to see whether an item is in a list and then append it only when the item isn't already there. For example, the code below won’t add the name Amber to the list because that name is already in the list:\r\n<pre class=\"code\">student_name = \"Amanda\"\r\n\r\n#Add student_name but only if not already in the list.\r\nif student_name in students:\r\n print (student_name + \" already in the list\")\r\nelse: \r\n students.append(student_name)\r\n print (student_name + \" added to the list\")</pre>\r\n<h2 id=\"tab6\" >Inserting an item into a Python list</h2>\r\nAlthough the <code>append()</code> method allows you to add an item to the end of a list, the <code>insert()</code> method allows you to add an item to the list in any position. The syntax for <code>insert()</code> is\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.insert(&lt;em&gt;position&lt;/em&gt;, &lt;em&gt;item&lt;/em&gt;)</pre>\r\nReplace <em>listname</em> with the name of the list, <em>position</em> with the position at which you want to insert the item (for example, 0 to make it the first item, 1 to make it the second item, and so forth). Replace <em>item</em> with the value, or the name of a variable that contains the value, that you want to put into the list.\r\n\r\nFor example, the following code makes Lupe the first item in the list:\r\n<pre class=\"code\">#Create a list of strings (names).\r\nstudents = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\n\r\nstudent_name = \"Lupe\"\r\n# Add student name to front of the list.\r\nstudents.insert(0,student_name)\r\n\r\n#Show me the new list.\r\nprint(students)</pre>\r\nIf you run the code, <code>print(students)</code> will show the list after the new name has been inserted, as follows:\r\n<pre class=\"code\">['Lupe', 'Mark', 'Amber', 'Todd', 'Anita', 'Sandy']</pre>\r\n<h2 id=\"tab7\" >Changing an item in a Python list</h2>\r\nYou can change an item in a list using the = assignment operator (check out these <a href=\"https://www.dummies.com/programming/python/common-python-operators/\">common Python operators</a>) just like you do with variables. Just make sure you include the index number in square brackets of the item you want to change. The syntax is:\r\n\r\n<em>listname</em>[<em>index</em>]=<em>newvalue</em>\r\n\r\nReplace <em><code>listname</code></em> with the name of the list; replace <em><code>index</code></em> with the subscript (index number) of the item you want to change; and replace <em><code>newvalue</code></em> with whatever you want to put in the list item. For example, take a look at this code:\r\n<pre class=\"code\">#Create a list of strings (names).\r\nstudents = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\nstudents[3] = \"Hobart\"\r\nprint(students)</pre>\r\nWhen you run this code, the output is as follows, because Anita's name has been changed to Hobart.\r\n<pre class=\"code\">['Mark', 'Amber', 'Todd', 'Hobart', 'Sandy']</pre>\r\n<h2 id=\"tab8\" >Combining Python lists</h2>\r\nIf you have two lists that you want to combine into a single list, use the <code>extend()</code> function with the syntax:\r\n<pre class=\"code\">&lt;em&gt;original_list&lt;/em&gt;.extend(&lt;em&gt;additional_items_list&lt;/em&gt;)</pre>\r\nIn your code, replace <em>original_list</em> with the name of the list to which you’ll be adding new list items. Replace <em>additional_items_list</em> with the name of the list that contains the items you want to add to the first list. Here is a simple example using lists named <code>list1</code> and <code>list2</code>. After executing <code>list1.extend(list2)</code>, the first list contains the items from both lists, as you can see in the output of the <code>print()</code> statement at the end.\r\n<pre class=\"code\"># Create two lists of Names.\r\nlist1 = [\"Zara\", \"Lupe\", \"Hong\", \"Alberto\", \"Jake\"]\r\nlist2 = [\"Huey\", \"Dewey\", \"Louie\", \"Nader\", \"Bubba\"]\r\n\r\n# Add list2 names to list1.\r\nlist1.extend(list2)\r\n\r\n# Print list 1.\r\nprint(list1)\r\n\r\n['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake', 'Huey', 'Dewey', 'Louie', 'Nader', 'Bubba']</pre>\r\nEasy Parcheesi, no?\r\n<h2 id=\"tab9\" >Removing Python list items</h2>\r\nPython offers a <code>remove()</code> method so you can remove any value from the list. If the item is in the list multiple times, only the first occurrence is removed. For example, the following code shows a list of letters with the letter <em>C</em> repeated a few times. Then the code uses <code>letters.remove(\"C\")</code> to remove the letter <em>C</em> from the list:\r\n<pre class=\"code\"># Remove \"C\" from the list.\r\nletters.remove(\"C\")\r\n\r\n#Show me the new list.\r\nprint(letters)</pre>\r\nWhen you actually execute this code and then print the list, you'll see that only the first letter <em>C</em> has been removed:\r\n<pre class=\"code\">['A', 'B', 'D', 'C', 'E', 'C']</pre>\r\nIf you need to remove all of an item, you can use a <code>while</code> loop to repeat the <code>.remove</code> as long as the item still remains in the list. For example, this code repeats the .remove as long as the “C” is still in the list.\r\n<pre class=\"code\">#Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"C\", \"E\", \"C\"]</pre>\r\nIf you want to remove an item based on its position in the list, use <code>pop()</code> with an index number rather than <code>remove()</code> with a value. If you want to remove the last item from the list, use <code>pop()</code> without an index number.\r\n\r\nFor example, the following code creates a list, one line removes the first item (0), and another removes the last item <code>(pop()</code> with nothing in the parentheses). Printing the list shows those two items have been removed:\r\n<pre class=\"code\">#Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\"]\r\n \r\n#Remove the first item.\r\nletters.pop(0)\r\n#Remove the last item.\r\nletters.pop()\r\n \r\n#Show me the new list.\r\nprint(letters)</pre>\r\nRunning the code shows that the popping the first and last items did, indeed, work:\r\n<pre class=\"code\">['B', 'C', 'D', 'E', 'F']</pre>\r\nWhen you <code>pop()</code> an item off the list, you can store a copy of that value in some variable. For example this image shows the same code as above. However, it stores copies of what's been removed in variables named <code>first_removed</code> and <code>last_removed</code>. At the end it <a href=\"https://www.dummies.com/programming/python/printing-lists-using-python/\">prints the Python list</a>, and also shows which letters were removed.\r\n\r\n[caption id=\"attachment_264924\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264924 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-remove-list-item.jpg\" alt=\"remove items from Python list\" width=\"535\" height=\"231\" /> Removing list items with pop().[/caption]\r\n\r\nPython also offers a <code>del</code> (short for <em>delete</em>) command that deletes any item from a list based on its index number (position). But again, you have to remember that the first item is zero. So, let's say you run the following code to delete item number 2 from the list:\r\n<pre class=\"code\"># Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\"]\r\n \r\n# Remove item sub 2.\r\ndel letters[2]\r\n \r\nprint(letters)</pre>\r\nRunning that code shows the list again, as follows. The letter <em>C</em> has been deleted, which is the correct item to delete because letters are numbered 0, 1, 2, 3, and so forth.\r\n<pre class=\"code\">['A', 'B', 'D', 'E', 'F', 'G']</pre>\r\nYou can also use del to delete an entire list. Just don’t use the square brackets and the index number. For example, the code you see below creates a list then deletes it. Trying to print the list after the deletion causes an error, because the list no longer exists when the <code>print()</code> statement is executed.\r\n\r\n[caption id=\"attachment_264925\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264925 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-delete-list.jpg\" alt=\"delete Python list\" width=\"535\" height=\"273\" /> Deleting a list and then trying to print it causes an error.[/caption]\r\n\r\n \r\n<h2 id=\"tab10\" >Clearing out a Python list</h2>\r\nIf you want to delete the contents of a list but not the list itself, use <code>.clear()</code>. The list still exists; however, it contains no items. In other words, it's an empty list. The following code shows how you could test this. Running the code displays [] at the end, which lets you know the list is empty:\r\n<pre class=\"code\"># Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\"]\r\n \r\n# Clear the list of all entries.\r\nletters.clear()\r\n \r\n# Show me the new list.\r\nprint(letters)\r\n</pre>\r\n\r\n<h2 id=\"tab11\" >Counting how many times an item appears in a Python list</h2>\r\nYou can use the Python <code>count()</code> method to count how many times an item appears in a list. As with other list methods, the syntax is simple:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.count(&lt;em&gt;x&lt;/em&gt;)</pre>\r\nReplace <em>listname</em> with the name of your list, and <em>x</em> with the value you're looking for (or the name of a variable that contains that value).\r\n\r\nThe code in the image below counts how many times the letter <em>B</em> appears in the list, using a literal B inside the parentheses of <code>.count()</code>. This same code also counts the number of <em>C</em> grades, but that value was stored in a variable just to show the difference in syntax. Both counts worked, as you can see in the output of the program at the bottom. One was added to count the <em>F</em>'s, not using any variables. The <em>F</em>’s were counted right in the code that displays the message. There are no <em>F</em> grades, so this returns zero, as you can see in the output.\r\n\r\n[caption id=\"attachment_264926\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264926 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-count-list-item.jpg\" alt=\"count Python list items\" width=\"535\" height=\"296\" /> Counting items in a list.[/caption]\r\n\r\nWhen trying to combine numbers and strings to form a message, remember you have to convert the numbers to strings using the <code>str()</code> function. Otherwise, you get an error that reads something like can only <code>concatenate str (not \"int\") to str</code>. In that message, <code>int</code> is short for <em>integer</em>, and <code>str</code> is short for <em>string</em>.\r\n<h2 id=\"tab12\" >Finding a Python list item's index</h2>\r\nPython offers an .index() method that returns a number indicating the position, based on index number, of an item in a list. The syntax is:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.index(&lt;em&gt;x&lt;/em&gt;)</pre>\r\nAs always, replace <em><code>listname</code></em> with name of the list you want to search. Replace <em>x</em> what whatever you're looking for (either as a literal or as a variable name, as always). Of course, there’s no guarantee that the item is in the list, and even if it is, there’s no guarantee that the item is in the list only once. If the item isn’t in the list, then an error occurs. If the item is in the list multiple times, then the index of the first matching item is returned.\r\n\r\nThe following image shows an example where the program crashes at the line <code>f_index = grades.index(look_for)</code> because there is no <em>F</em> in the list.\r\n\r\n[caption id=\"attachment_264927\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264927 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-list-iem-index.jpg\" alt=\"Python list item index\" width=\"535\" height=\"374\" /> Program fails when trying to find index of a nonexistent list item.[/caption]\r\n\r\n \r\n\r\nAn easy way to get around that problem is to use an <code>if</code> statement to see whether an item is in the list before you try to get its index number. If the item isn't in the list, display a message saying so. Otherwise, get the index number and show it in a message. That code is as follows:\r\n<pre class=\"code\"># Create a list of strings.\r\ngrades = [\"C\", \"B\", \"A\", \"D\", \"C\", \"B\", \"C\"]\r\n# Decide what to look for\r\nlook_for = \"F\"\r\n# See if the item is in the list.\r\nif look_for in grades:\r\n # If it's in the list, get and show the index.\r\n print(str(look_for) + \" is at index \" + str(grades.index(look_for)))\r\nelse:\r\n # If not in the list, don't even try for index number.\r\n print(str(look_for) + \" isn't in the list.\")</pre>\r\n<h2 id=\"tab13\" >Alphabetizing and sorting Python lists</h2>\r\nPython offers a <code>sort()</code> method for sorting lists. In its simplest form, it alphabetizes the items in the list (if they’re strings). If the list contains numbers, they’re sorted smallest to largest. For a simple sort like that, just use <code>sort()</code> with empty parentheses:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.sort()</pre>\r\nReplace <em><code>listname</code></em> with the name of your list. The following image shows an example using a list of strings and a list of numbers. In the example, a new list was created for each of them simply by assigning each sorted list to a new list name. Then the code prints the contents of each sorted list.\r\n\r\n[caption id=\"attachment_264928\" align=\"aligncenter\" width=\"496\"]<img class=\"wp-image-264928 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-sort-list.jpg\" alt=\"sort Python list\" width=\"496\" height=\"296\" /> Sorting strings and numbers.[/caption]\r\n\r\n \r\n\r\nIf your list contains strings with a mixture of uppercase and lowercase letters, and if the results of the sort don't look right, try replacing <code>.sort()</code> with <code>.sort(key=lambda s:s.lower())</code> and then running the code again.\r\n\r\nDates are a little trickier because you can’t just type them in as strings, like <code>\"12/31/2020\"</code>. They have to be the <code>date</code> data type to sort correctly. This means using the <code>datetime</code> module and the <code>date()</code> method to define each date. You can add the dates to the list as you would any other list. For example, in the following line, the code creates a list of four dates, and the code is perfectly fine.\r\n<pre class=\"code\">dates = [dt.date(2020,12,31), dt.date(2019,1,31), dt.date(2018,2,28), dt.date(2020,1,1)]</pre>\r\nThe computer certainly won't mind if you create the list this way. But if you want to make the code more readable to yourself or other developers, you may want to create and append each date, one at a time, so just so it’s a little easier to see what’s going on and so you don’t have to deal with so many commas in one line of code. The image below shows an example where an empty list named <code>datelist</code> was created:\r\n<pre class=\"code\">datelist = []</pre>\r\n[caption id=\"attachment_264929\" align=\"aligncenter\" width=\"481\"]<img class=\"wp-image-264929 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-display-dates.jpg\" alt=\"display dates in Python\" width=\"481\" height=\"353\" /> Sorting and displaying dates in a nice format.[/caption]\r\n\r\n \r\n\r\nThen one date at a time was appended to the list using the <code>dt.date(&lt;em&gt;year&lt;/em&gt;,&lt;em&gt;month&lt;/em&gt;,&lt;em&gt;day&lt;/em&gt;)</code> syntax.\r\n\r\nAfter the list is created, the code uses <code>datelist.sort()</code> to sort them into chronological order (earliest to latest). You don’t need to use <code>print(datelist)</code> in that code because that method displays the dates with the data type information included, like this:\r\n<pre class=\"code\">[datetime.date(2018, 2, 28), datetime.date(2019, 1, 31), datetime.date (2020, 1, 1), datetime.date(2020, 12, 31)]</pre>\r\nNot the easiest list to read. So, rather than print the whole list with one <code>print()</code> statement, you can loop through each date in the list, and printed each one formatted with the f-string <code>%m/%d/%Y</code>. This displays each date on its own line in <em>mm/dd/yyyy</</em> format, as you can see at the bottom of the image above.\r\n\r\nIf you want to sort items in reverse order, put <code>reverse=True</code> inside the sort() parentheses (and don't forget to make the first letter uppercase). The image below shows examples of sorting all three lists in descending (reverse) order using <code>reverse=True</code>.\r\n\r\n[caption id=\"attachment_264930\" align=\"aligncenter\" width=\"403\"]<img class=\"wp-image-264930 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-sort-info-reverse.jpg\" alt=\"sort info in Python list in reverse\" width=\"403\" height=\"450\" /> Sorting strings, numbers, and dates in reverse order.[/caption]\r\n\r\n \r\n<h2 id=\"tab14\" >Reversing a Python list</h2>\r\nYou can also reverse the order of items in a list using the <code>.reverse</code> method. This is not the same as sorting in reverse, because when you sort in reverse, you still actually sort: Z–A for strings, largest to smallest for numbers, latest to earliest for dates. When you reverse a list, you simply reverse the items in the list, no matter their order, without trying to sort them in any way.\r\n\r\nThe following code shows an example in which you reverse the order of the names in the list and then print the list. The output shows the list items reversed from their original order:\r\n<pre class=\"code\"># Create a list of strings.\r\nnames = [\"Zara\", \"Lupe\", \"Hong\", \"Alberto\", \"Jake\"]\r\n# Reverse the list\r\nnames.reverse()\r\n# Print the list\r\nprint(names)\r\n \r\n['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']</pre>\r\n<h2 id=\"tab15\" >Copying a Python list</h2>\r\nIf you ever need to work with a copy of a list, use the <code>.copy()</code> method so as not to alter the original list,. For example, the following code is similar to the preceding code, except that instead of reversing the order of the original list, you make a copy of the list and reverse that one. Printing the contents of each list shows how the first list is still in the original order whereas the second one is reversed:\r\n<pre class=\"code\"># Create a list of strings.\r\nnames = [\"Zara\", \"Lupe\", \"Hong\", \"Alberto\", \"Jake\"]\r\n \r\n# Make a copy of the list\r\nbackward_names = names.copy()\r\n# Reverse the copy\r\nbackward_names.reverse()\r\n \r\n# Print the list\r\nprint(names)\r\nprint(backward_names)\r\n \r\n['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake']\r\n['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']</pre>\r\nFor future references, the following table summarizes the methods you've learned about.\r\n<table><caption>Methods for Working with Lists</caption>\r\n<thead>\r\n<tr>\r\n<td>Method</td>\r\n<td>What it Does</td>\r\n</tr>\r\n</thead>\r\n<tbody>\r\n<tr>\r\n<td><code>append()</code></td>\r\n<td>Adds an item to the end of the list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>clear()</code></td>\r\n<td>Removes all items from the list, leaving it empty.</td>\r\n</tr>\r\n<tr>\r\n<td><code>copy()</code></td>\r\n<td>Makes a copy of a list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>count()</code></td>\r\n<td>Counts how many times an element appears in a list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>extend()</code></td>\r\n<td>Appends the items from one list to the end of another list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>index()</code></td>\r\n<td>Returns the index number (position) of an element within a list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>insert()</code></td>\r\n<td>Inserts an item into the list at a specific position.</td>\r\n</tr>\r\n<tr>\r\n<td><code>pop()</code></td>\r\n<td>Removes an element from the list, and provides a copy of that item that you can store in a variable.</td>\r\n</tr>\r\n<tr>\r\n<td><code>remove()</code></td>\r\n<td>Removes one item from the list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>reverse()</code></td>\r\n<td>Reverses the order of items in the list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>sort()</code></td>\r\n<td>Sorts the list in ascending order. Put <code>reverse=True</code> inside the parentheses to sort in descending order.</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n<h1></h1>","description":"The simplest data collection in <a href=\"https://www.dummies.com/programming/python/python-all-in-one-for-dummies-cheat-sheet/\">Python</a> is a list. A <em>list</em> is any list of data items, separated by commas, inside square brackets. Typically, you assign a name to the Python list using an = sign, just as you would with variables. If the list contains numbers, then don't use quotation marks around them. For example, here is a list of test scores:\r\n<pre class=\"code\">scores = [88, 92, 78, 90, 98, 84]</pre>\r\nIf the list contains strings then, as always, those strings should be enclosed in single or double quotation marks, as in this example:\r\n\r\nTo display the contents of a list on the screen, you can print it just as you would print any regular variable. For example, executing <code>print(students)</code> in your code after defining that list shows this on the screen.\r\n<pre class=\"code\">['Mark', 'Amber', 'Todd', 'Anita', 'Sandy']</pre>\r\nThis may not be exactly what you had in mind. But don’t worry, Python offers lots of great ways to access data in lists and display it however you like.\r\n<h2 id=\"tab1\" >Referencing Python list items by position</h2>\r\nEach item in a list has a position number, starting with zero, even though you don’t see any numbers. You can refer to any item in the list by its number using the name for the list followed by a number in square brackets. In other words, use this syntax:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;[&lt;em&gt;x&lt;/em&gt;]\r\n\r\nReplace &lt;em&gt;&lt;code&gt;listname&lt;/code&gt;&lt;/em&gt; with the name of the list you're accessing and replace &lt;em&gt;&lt;code&gt;x&lt;/code&gt;&lt;/em&gt; with the position number of item you want. Remember, the first item is always number zero, not one. For example, in the first line below, I define a list named &lt;code&gt;students&lt;/code&gt;, and then print item number zero from that list. The result, when executing the code, is that the name &lt;code&gt;Mark&lt;/code&gt; is displayed.</pre>\r\n<pre class=\"code\">students = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\nprint(students[0])\r\nMark</pre>\r\n<technicalstuff>\r\n\r\nWhen reading access list items, professionals use the word <em>sub</em> before the number. For example, <em>students[0]</em> would be spoken as <em>students sub zero</em>.\r\n\r\nThis next example shows a list named <code>scores</code>. The <code>print()</code> function prints the position number of the last score in the list, which is 4 (because the first one is always zero).\r\n<pre class=\"code\">scores = [88, 92, 78, 90, 84]\r\nprint(scores[4])\r\n84</pre>\r\nIf you try to access a list item that doesn't exist, you get an “index out of range” error. The <em>index</em> part is a reference to the number inside the square brackets. For example, the image below shows a little experiment in a <a href=\"https://www.dummies.com/programming/python/tips-for-using-jupyter-notebook-for-python-programming/\">Jupyter notebook</a> where a list of scores was created and then the printing of <code>score[5]</code> was attempted.\r\n\r\nIt failed and generated an error because there is no <code>scores[5]</code>. There's only <code>scores[0]</code>, <code>scores[1]</code>, <code>scores[2]</code>, <code>scores[3]</code>, and <code>scores[4]</code> because the counting always starts at zero with the first one on the list.\r\n\r\n[caption id=\"attachment_264920\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264920 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-index-range.jpg\" alt=\"Python index range\" width=\"535\" height=\"212\" /> Index out of range error because there is no scores[5].[/caption] \r\n<h2 id=\"tab2\" >Looping through a Python list</h2>\r\nTo access each item in a list, just use a for loop with this syntax:\r\n<pre class=\"code\">for &lt;em&gt;x&lt;/em&gt; in &lt;em&gt;list&lt;/em&gt;:</pre>\r\nReplace <em<code>&gt;x</code> with a variable name of your choosing. Replace <em><code>list</code></em> with the name of the list. An easy way to make the code readable is to always use a plural for the list name (such as <code>students</code>, <code>scores</code>). Then you can use the singular name (<code>student</code>, <code>score</code>) for the variable name. You don't need to use subscript numbers (numbers in square brackets) with this approach either. For example, the following code prints each score in the scores list:\r\n<pre class=\"code\">for score in scores:\r\nprint(score)</pre>\r\nRemember to always indent the code that’s to be executed within the loop. This image shows a more complete example where you can see the result of running the code in a Jupyter notebook.\r\n\r\n[caption id=\"attachment_264921\" align=\"aligncenter\" width=\"262\"]<img class=\"wp-image-264921 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-loop-list.jpg\" alt=\"Looping through a Python list\" width=\"262\" height=\"219\" /> Looping through a list.[/caption]\r\n\r\n \r\n<h2 id=\"tab3\" >Seeing whether a Python list contains an item</h2>\r\nIf you want your code to check the contents of a list to see whether it already contains some item, use <code>in &lt;em&gt;listname&lt;/em&gt;</code> in an <code>if</code> statement or a variable assignment.\r\n\r\nFor example, the code in the image below creates a list of names. Then, two variables store the results of searching the list for the names <em>Anita</em> and <em>Bob</em>. Printing the contents of each variable shows True for the one where the name (Anita) is in the list. The test to see whether Bob is in the list proves False.\r\n\r\n[caption id=\"attachment_264922\" align=\"aligncenter\" width=\"460\"]<img class=\"wp-image-264922 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-list-contain.jpg\" alt=\"Seeing whether an item is in a Python list\" width=\"460\" height=\"244\" /> Seeing whether an item is in a list.[/caption]\r\n\r\n \r\n<h2 id=\"tab4\" >Getting the length of a Python list</h2>\r\nTo determine how many items are in a list, use the <code>len()</code> function (short for <em>length</em>). Put the name of the list inside the parentheses. For example, type the following code into a Jupyter notebook or Python prompt or whatever:\r\n<pre class=\"code\">students = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\nprint(len(students))</pre>\r\nRunning that code produces this output:\r\n<pre class=\"code\">5</pre>\r\nThere are indeed five items in the list, though the last one is always one less than the number because Python starts counting at zero. So the last one, Sandy, actually refers to students[4] and not students[5].\r\n<h2 id=\"tab5\" >Appending an item to the end of a Python list</h2>\r\nWhen you want your Python code to add a new item to the end of a list, use the <code>.append()</code> method with the value you want to add inside the parentheses. You can use either a variable name or a literal value inside the quotation marks.\r\n\r\nFor instance, in the following image the line that reads <code>students.append(\"Goober\")</code> adds the name Goober to the list. The line that reads <code>students.append(new_student)</code> adds whatever name is stored in the variable named <code>new_student</code> to the list. The <code>.append()</code> method always adds to the end of the list. So when you print the list you see those two new names at the end.\r\n\r\n[caption id=\"attachment_264923\" align=\"aligncenter\" width=\"533\"]<img class=\"wp-image-264923 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-append-list.jpg\" alt=\"Python append list\" width=\"533\" height=\"272\" /> Appending two new names to the end of the list.[/caption]\r\n\r\n \r\n\r\nYou can use a test to see whether an item is in a list and then append it only when the item isn't already there. For example, the code below won’t add the name Amber to the list because that name is already in the list:\r\n<pre class=\"code\">student_name = \"Amanda\"\r\n\r\n#Add student_name but only if not already in the list.\r\nif student_name in students:\r\n print (student_name + \" already in the list\")\r\nelse: \r\n students.append(student_name)\r\n print (student_name + \" added to the list\")</pre>\r\n<h2 id=\"tab6\" >Inserting an item into a Python list</h2>\r\nAlthough the <code>append()</code> method allows you to add an item to the end of a list, the <code>insert()</code> method allows you to add an item to the list in any position. The syntax for <code>insert()</code> is\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.insert(&lt;em&gt;position&lt;/em&gt;, &lt;em&gt;item&lt;/em&gt;)</pre>\r\nReplace <em>listname</em> with the name of the list, <em>position</em> with the position at which you want to insert the item (for example, 0 to make it the first item, 1 to make it the second item, and so forth). Replace <em>item</em> with the value, or the name of a variable that contains the value, that you want to put into the list.\r\n\r\nFor example, the following code makes Lupe the first item in the list:\r\n<pre class=\"code\">#Create a list of strings (names).\r\nstudents = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\n\r\nstudent_name = \"Lupe\"\r\n# Add student name to front of the list.\r\nstudents.insert(0,student_name)\r\n\r\n#Show me the new list.\r\nprint(students)</pre>\r\nIf you run the code, <code>print(students)</code> will show the list after the new name has been inserted, as follows:\r\n<pre class=\"code\">['Lupe', 'Mark', 'Amber', 'Todd', 'Anita', 'Sandy']</pre>\r\n<h2 id=\"tab7\" >Changing an item in a Python list</h2>\r\nYou can change an item in a list using the = assignment operator (check out these <a href=\"https://www.dummies.com/programming/python/common-python-operators/\">common Python operators</a>) just like you do with variables. Just make sure you include the index number in square brackets of the item you want to change. The syntax is:\r\n\r\n<em>listname</em>[<em>index</em>]=<em>newvalue</em>\r\n\r\nReplace <em><code>listname</code></em> with the name of the list; replace <em><code>index</code></em> with the subscript (index number) of the item you want to change; and replace <em><code>newvalue</code></em> with whatever you want to put in the list item. For example, take a look at this code:\r\n<pre class=\"code\">#Create a list of strings (names).\r\nstudents = [\"Mark\", \"Amber\", \"Todd\", \"Anita\", \"Sandy\"]\r\nstudents[3] = \"Hobart\"\r\nprint(students)</pre>\r\nWhen you run this code, the output is as follows, because Anita's name has been changed to Hobart.\r\n<pre class=\"code\">['Mark', 'Amber', 'Todd', 'Hobart', 'Sandy']</pre>\r\n<h2 id=\"tab8\" >Combining Python lists</h2>\r\nIf you have two lists that you want to combine into a single list, use the <code>extend()</code> function with the syntax:\r\n<pre class=\"code\">&lt;em&gt;original_list&lt;/em&gt;.extend(&lt;em&gt;additional_items_list&lt;/em&gt;)</pre>\r\nIn your code, replace <em>original_list</em> with the name of the list to which you’ll be adding new list items. Replace <em>additional_items_list</em> with the name of the list that contains the items you want to add to the first list. Here is a simple example using lists named <code>list1</code> and <code>list2</code>. After executing <code>list1.extend(list2)</code>, the first list contains the items from both lists, as you can see in the output of the <code>print()</code> statement at the end.\r\n<pre class=\"code\"># Create two lists of Names.\r\nlist1 = [\"Zara\", \"Lupe\", \"Hong\", \"Alberto\", \"Jake\"]\r\nlist2 = [\"Huey\", \"Dewey\", \"Louie\", \"Nader\", \"Bubba\"]\r\n\r\n# Add list2 names to list1.\r\nlist1.extend(list2)\r\n\r\n# Print list 1.\r\nprint(list1)\r\n\r\n['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake', 'Huey', 'Dewey', 'Louie', 'Nader', 'Bubba']</pre>\r\nEasy Parcheesi, no?\r\n<h2 id=\"tab9\" >Removing Python list items</h2>\r\nPython offers a <code>remove()</code> method so you can remove any value from the list. If the item is in the list multiple times, only the first occurrence is removed. For example, the following code shows a list of letters with the letter <em>C</em> repeated a few times. Then the code uses <code>letters.remove(\"C\")</code> to remove the letter <em>C</em> from the list:\r\n<pre class=\"code\"># Remove \"C\" from the list.\r\nletters.remove(\"C\")\r\n\r\n#Show me the new list.\r\nprint(letters)</pre>\r\nWhen you actually execute this code and then print the list, you'll see that only the first letter <em>C</em> has been removed:\r\n<pre class=\"code\">['A', 'B', 'D', 'C', 'E', 'C']</pre>\r\nIf you need to remove all of an item, you can use a <code>while</code> loop to repeat the <code>.remove</code> as long as the item still remains in the list. For example, this code repeats the .remove as long as the “C” is still in the list.\r\n<pre class=\"code\">#Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"C\", \"E\", \"C\"]</pre>\r\nIf you want to remove an item based on its position in the list, use <code>pop()</code> with an index number rather than <code>remove()</code> with a value. If you want to remove the last item from the list, use <code>pop()</code> without an index number.\r\n\r\nFor example, the following code creates a list, one line removes the first item (0), and another removes the last item <code>(pop()</code> with nothing in the parentheses). Printing the list shows those two items have been removed:\r\n<pre class=\"code\">#Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\"]\r\n \r\n#Remove the first item.\r\nletters.pop(0)\r\n#Remove the last item.\r\nletters.pop()\r\n \r\n#Show me the new list.\r\nprint(letters)</pre>\r\nRunning the code shows that the popping the first and last items did, indeed, work:\r\n<pre class=\"code\">['B', 'C', 'D', 'E', 'F']</pre>\r\nWhen you <code>pop()</code> an item off the list, you can store a copy of that value in some variable. For example this image shows the same code as above. However, it stores copies of what's been removed in variables named <code>first_removed</code> and <code>last_removed</code>. At the end it <a href=\"https://www.dummies.com/programming/python/printing-lists-using-python/\">prints the Python list</a>, and also shows which letters were removed.\r\n\r\n[caption id=\"attachment_264924\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264924 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-remove-list-item.jpg\" alt=\"remove items from Python list\" width=\"535\" height=\"231\" /> Removing list items with pop().[/caption]\r\n\r\nPython also offers a <code>del</code> (short for <em>delete</em>) command that deletes any item from a list based on its index number (position). But again, you have to remember that the first item is zero. So, let's say you run the following code to delete item number 2 from the list:\r\n<pre class=\"code\"># Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\"]\r\n \r\n# Remove item sub 2.\r\ndel letters[2]\r\n \r\nprint(letters)</pre>\r\nRunning that code shows the list again, as follows. The letter <em>C</em> has been deleted, which is the correct item to delete because letters are numbered 0, 1, 2, 3, and so forth.\r\n<pre class=\"code\">['A', 'B', 'D', 'E', 'F', 'G']</pre>\r\nYou can also use del to delete an entire list. Just don’t use the square brackets and the index number. For example, the code you see below creates a list then deletes it. Trying to print the list after the deletion causes an error, because the list no longer exists when the <code>print()</code> statement is executed.\r\n\r\n[caption id=\"attachment_264925\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264925 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-delete-list.jpg\" alt=\"delete Python list\" width=\"535\" height=\"273\" /> Deleting a list and then trying to print it causes an error.[/caption]\r\n\r\n \r\n<h2 id=\"tab10\" >Clearing out a Python list</h2>\r\nIf you want to delete the contents of a list but not the list itself, use <code>.clear()</code>. The list still exists; however, it contains no items. In other words, it's an empty list. The following code shows how you could test this. Running the code displays [] at the end, which lets you know the list is empty:\r\n<pre class=\"code\"># Create a list of strings.\r\nletters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\"]\r\n \r\n# Clear the list of all entries.\r\nletters.clear()\r\n \r\n# Show me the new list.\r\nprint(letters)\r\n</pre>\r\n\r\n<h2 id=\"tab11\" >Counting how many times an item appears in a Python list</h2>\r\nYou can use the Python <code>count()</code> method to count how many times an item appears in a list. As with other list methods, the syntax is simple:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.count(&lt;em&gt;x&lt;/em&gt;)</pre>\r\nReplace <em>listname</em> with the name of your list, and <em>x</em> with the value you're looking for (or the name of a variable that contains that value).\r\n\r\nThe code in the image below counts how many times the letter <em>B</em> appears in the list, using a literal B inside the parentheses of <code>.count()</code>. This same code also counts the number of <em>C</em> grades, but that value was stored in a variable just to show the difference in syntax. Both counts worked, as you can see in the output of the program at the bottom. One was added to count the <em>F</em>'s, not using any variables. The <em>F</em>’s were counted right in the code that displays the message. There are no <em>F</em> grades, so this returns zero, as you can see in the output.\r\n\r\n[caption id=\"attachment_264926\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264926 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-count-list-item.jpg\" alt=\"count Python list items\" width=\"535\" height=\"296\" /> Counting items in a list.[/caption]\r\n\r\nWhen trying to combine numbers and strings to form a message, remember you have to convert the numbers to strings using the <code>str()</code> function. Otherwise, you get an error that reads something like can only <code>concatenate str (not \"int\") to str</code>. In that message, <code>int</code> is short for <em>integer</em>, and <code>str</code> is short for <em>string</em>.\r\n<h2 id=\"tab12\" >Finding a Python list item's index</h2>\r\nPython offers an .index() method that returns a number indicating the position, based on index number, of an item in a list. The syntax is:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.index(&lt;em&gt;x&lt;/em&gt;)</pre>\r\nAs always, replace <em><code>listname</code></em> with name of the list you want to search. Replace <em>x</em> what whatever you're looking for (either as a literal or as a variable name, as always). Of course, there’s no guarantee that the item is in the list, and even if it is, there’s no guarantee that the item is in the list only once. If the item isn’t in the list, then an error occurs. If the item is in the list multiple times, then the index of the first matching item is returned.\r\n\r\nThe following image shows an example where the program crashes at the line <code>f_index = grades.index(look_for)</code> because there is no <em>F</em> in the list.\r\n\r\n[caption id=\"attachment_264927\" align=\"aligncenter\" width=\"535\"]<img class=\"wp-image-264927 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-list-iem-index.jpg\" alt=\"Python list item index\" width=\"535\" height=\"374\" /> Program fails when trying to find index of a nonexistent list item.[/caption]\r\n\r\n \r\n\r\nAn easy way to get around that problem is to use an <code>if</code> statement to see whether an item is in the list before you try to get its index number. If the item isn't in the list, display a message saying so. Otherwise, get the index number and show it in a message. That code is as follows:\r\n<pre class=\"code\"># Create a list of strings.\r\ngrades = [\"C\", \"B\", \"A\", \"D\", \"C\", \"B\", \"C\"]\r\n# Decide what to look for\r\nlook_for = \"F\"\r\n# See if the item is in the list.\r\nif look_for in grades:\r\n # If it's in the list, get and show the index.\r\n print(str(look_for) + \" is at index \" + str(grades.index(look_for)))\r\nelse:\r\n # If not in the list, don't even try for index number.\r\n print(str(look_for) + \" isn't in the list.\")</pre>\r\n<h2 id=\"tab13\" >Alphabetizing and sorting Python lists</h2>\r\nPython offers a <code>sort()</code> method for sorting lists. In its simplest form, it alphabetizes the items in the list (if they’re strings). If the list contains numbers, they’re sorted smallest to largest. For a simple sort like that, just use <code>sort()</code> with empty parentheses:\r\n<pre class=\"code\">&lt;em&gt;listname&lt;/em&gt;.sort()</pre>\r\nReplace <em><code>listname</code></em> with the name of your list. The following image shows an example using a list of strings and a list of numbers. In the example, a new list was created for each of them simply by assigning each sorted list to a new list name. Then the code prints the contents of each sorted list.\r\n\r\n[caption id=\"attachment_264928\" align=\"aligncenter\" width=\"496\"]<img class=\"wp-image-264928 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-sort-list.jpg\" alt=\"sort Python list\" width=\"496\" height=\"296\" /> Sorting strings and numbers.[/caption]\r\n\r\n \r\n\r\nIf your list contains strings with a mixture of uppercase and lowercase letters, and if the results of the sort don't look right, try replacing <code>.sort()</code> with <code>.sort(key=lambda s:s.lower())</code> and then running the code again.\r\n\r\nDates are a little trickier because you can’t just type them in as strings, like <code>\"12/31/2020\"</code>. They have to be the <code>date</code> data type to sort correctly. This means using the <code>datetime</code> module and the <code>date()</code> method to define each date. You can add the dates to the list as you would any other list. For example, in the following line, the code creates a list of four dates, and the code is perfectly fine.\r\n<pre class=\"code\">dates = [dt.date(2020,12,31), dt.date(2019,1,31), dt.date(2018,2,28), dt.date(2020,1,1)]</pre>\r\nThe computer certainly won't mind if you create the list this way. But if you want to make the code more readable to yourself or other developers, you may want to create and append each date, one at a time, so just so it’s a little easier to see what’s going on and so you don’t have to deal with so many commas in one line of code. The image below shows an example where an empty list named <code>datelist</code> was created:\r\n<pre class=\"code\">datelist = []</pre>\r\n[caption id=\"attachment_264929\" align=\"aligncenter\" width=\"481\"]<img class=\"wp-image-264929 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-display-dates.jpg\" alt=\"display dates in Python\" width=\"481\" height=\"353\" /> Sorting and displaying dates in a nice format.[/caption]\r\n\r\n \r\n\r\nThen one date at a time was appended to the list using the <code>dt.date(&lt;em&gt;year&lt;/em&gt;,&lt;em&gt;month&lt;/em&gt;,&lt;em&gt;day&lt;/em&gt;)</code> syntax.\r\n\r\nAfter the list is created, the code uses <code>datelist.sort()</code> to sort them into chronological order (earliest to latest). You don’t need to use <code>print(datelist)</code> in that code because that method displays the dates with the data type information included, like this:\r\n<pre class=\"code\">[datetime.date(2018, 2, 28), datetime.date(2019, 1, 31), datetime.date (2020, 1, 1), datetime.date(2020, 12, 31)]</pre>\r\nNot the easiest list to read. So, rather than print the whole list with one <code>print()</code> statement, you can loop through each date in the list, and printed each one formatted with the f-string <code>%m/%d/%Y</code>. This displays each date on its own line in <em>mm/dd/yyyy</</em> format, as you can see at the bottom of the image above.\r\n\r\nIf you want to sort items in reverse order, put <code>reverse=True</code> inside the sort() parentheses (and don't forget to make the first letter uppercase). The image below shows examples of sorting all three lists in descending (reverse) order using <code>reverse=True</code>.\r\n\r\n[caption id=\"attachment_264930\" align=\"aligncenter\" width=\"403\"]<img class=\"wp-image-264930 size-full\" src=\"https://www.dummies.com/wp-content/uploads/python-sort-info-reverse.jpg\" alt=\"sort info in Python list in reverse\" width=\"403\" height=\"450\" /> Sorting strings, numbers, and dates in reverse order.[/caption]\r\n\r\n \r\n<h2 id=\"tab14\" >Reversing a Python list</h2>\r\nYou can also reverse the order of items in a list using the <code>.reverse</code> method. This is not the same as sorting in reverse, because when you sort in reverse, you still actually sort: Z–A for strings, largest to smallest for numbers, latest to earliest for dates. When you reverse a list, you simply reverse the items in the list, no matter their order, without trying to sort them in any way.\r\n\r\nThe following code shows an example in which you reverse the order of the names in the list and then print the list. The output shows the list items reversed from their original order:\r\n<pre class=\"code\"># Create a list of strings.\r\nnames = [\"Zara\", \"Lupe\", \"Hong\", \"Alberto\", \"Jake\"]\r\n# Reverse the list\r\nnames.reverse()\r\n# Print the list\r\nprint(names)\r\n \r\n['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']</pre>\r\n<h2 id=\"tab15\" >Copying a Python list</h2>\r\nIf you ever need to work with a copy of a list, use the <code>.copy()</code> method so as not to alter the original list,. For example, the following code is similar to the preceding code, except that instead of reversing the order of the original list, you make a copy of the list and reverse that one. Printing the contents of each list shows how the first list is still in the original order whereas the second one is reversed:\r\n<pre class=\"code\"># Create a list of strings.\r\nnames = [\"Zara\", \"Lupe\", \"Hong\", \"Alberto\", \"Jake\"]\r\n \r\n# Make a copy of the list\r\nbackward_names = names.copy()\r\n# Reverse the copy\r\nbackward_names.reverse()\r\n \r\n# Print the list\r\nprint(names)\r\nprint(backward_names)\r\n \r\n['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake']\r\n['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']</pre>\r\nFor future references, the following table summarizes the methods you've learned about.\r\n<table><caption>Methods for Working with Lists</caption>\r\n<thead>\r\n<tr>\r\n<td>Method</td>\r\n<td>What it Does</td>\r\n</tr>\r\n</thead>\r\n<tbody>\r\n<tr>\r\n<td><code>append()</code></td>\r\n<td>Adds an item to the end of the list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>clear()</code></td>\r\n<td>Removes all items from the list, leaving it empty.</td>\r\n</tr>\r\n<tr>\r\n<td><code>copy()</code></td>\r\n<td>Makes a copy of a list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>count()</code></td>\r\n<td>Counts how many times an element appears in a list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>extend()</code></td>\r\n<td>Appends the items from one list to the end of another list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>index()</code></td>\r\n<td>Returns the index number (position) of an element within a list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>insert()</code></td>\r\n<td>Inserts an item into the list at a specific position.</td>\r\n</tr>\r\n<tr>\r\n<td><code>pop()</code></td>\r\n<td>Removes an element from the list, and provides a copy of that item that you can store in a variable.</td>\r\n</tr>\r\n<tr>\r\n<td><code>remove()</code></td>\r\n<td>Removes one item from the list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>reverse()</code></td>\r\n<td>Reverses the order of items in the list.</td>\r\n</tr>\r\n<tr>\r\n<td><code>sort()</code></td>\r\n<td>Sorts the list in ascending order. Put <code>reverse=True</code> inside the parentheses to sort in descending order.</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n<h1></h1>","blurb":"","authors":[{"authorId":26709,"name":"Alan Shovic","slug":"alan-shovic","description":"","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/26709"}},{"authorId":26710,"name":"John C. Shovic","slug":"john-shovic","description":"John Shovic, PhD, is a computer science faculty member at the University of Idaho specializing in robotics and artificial intelligence.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/26710"}}],"primaryCategoryTaxonomy":{"categoryId":33606,"title":"Python","slug":"python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":284787,"title":"What Your Society Says About You","slug":"what-your-society-says-about-you","categoryList":["academics-the-arts","humanities"],"_links":{"self":"/articles/284787"}},{"articleId":230957,"title":"Nikon D3400 For Dummies Cheat Sheet","slug":"nikon-d3400-dummies-cheat-sheet","categoryList":["home-auto-hobbies","photography"],"_links":{"self":"/articles/230957"}},{"articleId":208741,"title":"Kabbalah For Dummies Cheat Sheet","slug":"kabbalah-for-dummies-cheat-sheet","categoryList":["body-mind-spirit","religion-spirituality","kabbalah"],"_links":{"self":"/articles/208741"}},{"articleId":299133,"title":"ChatGPT For Dummies Cheat Sheet","slug":"chatgpt-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"/articles/299133"}}],"inThisArticle":[{"label":"Referencing Python list items by position","target":"#tab1"},{"label":"Looping through a Python list","target":"#tab2"},{"label":"Seeing whether a Python list contains an item","target":"#tab3"},{"label":"Getting the length of a Python list","target":"#tab4"},{"label":"Appending an item to the end of a Python list","target":"#tab5"},{"label":"Inserting an item into a Python list","target":"#tab6"},{"label":"Changing an item in a Python list","target":"#tab7"},{"label":"Combining Python lists","target":"#tab8"},{"label":"Removing Python list items","target":"#tab9"},{"label":"Clearing out a Python list","target":"#tab10"},{"label":"Counting how many times an item appears in a Python list","target":"#tab11"},{"label":"Finding a Python list item's index","target":"#tab12"},{"label":"Alphabetizing and sorting Python lists","target":"#tab13"},{"label":"Reversing a Python list","target":"#tab14"},{"label":"Copying a Python list","target":"#tab15"}],"relatedArticles":{"fromBook":[{"articleId":264911,"title":"How to Use Lambda Functions in Python","slug":"how-to-use-lambda-functions-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264911"}},{"articleId":264906,"title":"Your Guide to the Python Standard Library","slug":"your-guide-to-the-python-standard-library","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264906"}},{"articleId":264894,"title":"A Beginner’s Guide to Python Versions","slug":"a-beginners-guide-to-python-versions","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264894"}},{"articleId":264888,"title":"How to Build a Simple Neural Network in Python","slug":"how-to-build-a-simple-neural-network-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264888"}},{"articleId":264872,"title":"The Raspberry Pi: The Perfect PC Platform for Python","slug":"the-raspberry-pi-the-perfect-platform-for-physical-computing-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264872"}}],"fromCategory":[{"articleId":264911,"title":"How to Use Lambda Functions in Python","slug":"how-to-use-lambda-functions-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264911"}},{"articleId":264906,"title":"Your Guide to the Python Standard Library","slug":"your-guide-to-the-python-standard-library","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264906"}},{"articleId":264894,"title":"A Beginner’s Guide to Python Versions","slug":"a-beginners-guide-to-python-versions","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264894"}},{"articleId":264888,"title":"How to Build a Simple Neural Network in Python","slug":"how-to-build-a-simple-neural-network-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264888"}},{"articleId":264872,"title":"The Raspberry Pi: The Perfect PC Platform for Python","slug":"the-raspberry-pi-the-perfect-platform-for-physical-computing-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264872"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281833,"slug":"python-all-in-one-for-dummies","isbn":"9781394236152","categoryList":["technology","programming-web-design","python"],"amazon":{"default":"https://www.amazon.com/gp/product/1394236158/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1394236158/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1394236158-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1394236158/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1394236158/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/python-all-in-one-for-dummies-cover-9781394236152-203x255.jpg","width":203,"height":255},"title":"Python All-in-One For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"","authors":[{"authorId":35406,"name":"John C. Shovic","slug":"john-c-shovic","description":" <p> <b>John C. Shovic, PhD,</b> is a computer science faculty member specializing in robotics and artificial intelligence at the University of Idaho. <p><b>Alan Simpson</b> is a web development professional and prolific tech author with more than 100 publications to his credit. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/35406"}},{"authorId":10199,"name":"Alan Simpson","slug":"alan-simpson","description":" <p> <b>John C. Shovic, PhD,</b> is a computer science faculty member specializing in robotics and artificial intelligence at the University of Idaho. <p><b>Alan Simpson</b> is a web development professional and prolific tech author with more than 100 publications to his credit. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/10199"}},{"authorId":35433,"name":"","slug":"","description":" <p><b>Dr. Jill Schiefelbein</b> taught business communication at Arizona State University for 11 years before venturing into entrepreneurship. Jill’s business, The Dynamic Communicator<sup>®</sup>, helps organizations attract customers, increase sales, and retain clients. She is the author of <i>Dynamic Communication: 27 Strategies to Grow, Lead, and Manage Your Business.</i> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/35433"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;python&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394236152&quot;]}]\" id=\"du-slot-671ffba74cdb6\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;python&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394236152&quot;]}]\" id=\"du-slot-671ffba74d873\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"Two years","lifeExpectancySetFrom":"2024-10-28T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":264919},{"headers":{"creationTime":"2017-05-03T13:14:52+00:00","modifiedTime":"2024-10-28T17:51:19+00:00","timestamp":"2024-10-28T18:01:09+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"Java","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33602"},"slug":"java","categoryId":33602}],"title":"The Atoms: Java’s Primitive Types","strippedTitle":"the atoms: java’s primitive types","slug":"atoms-javas-primitive-types","canonicalUrl":"","seo":{"metaDescription":"The words int and double are examples of primitive types (also known as simple types) in Java. The Java language has exactly eight primitive types. As a newcome","noIndex":0,"noFollow":0},"content":"The words <em>int</em> and <em>double</em> are examples of <em>primitive types</em> (also known as <em>simple</em> types) in Java. The Java language has exactly eight primitive types. As a newcomer to Java, you can pretty much ignore all but four of these types. (As programming languages go, Java is nice and compact that way.)\r\n\r\nThe types that you shouldn’t ignore are <code>int</code>, <code>double</code>, <code>char</code>, and <code>boolean</code>.\r\n<h2 id=\"tab1\" >The char type</h2>\r\nSeveral decades ago, people thought computers existed only for doing big number-crunching calculations. Nowadays, nobody thinks that way. So, if you haven’t been in a cryogenic freezing chamber for the past 20 years, you know that computers store letters, punctuation symbols, and other characters.\r\n\r\nThe Java type that’s used to store characters is called <em>char.</em> The code below has a simple program that uses the <code>char</code> type. This image shows the output of the program in the code below.\r\n\r\n[caption id=\"attachment_239304\" align=\"aligncenter\" width=\"163\"]<a href=\"https://www.dummies.com/wp-content/uploads/java-7e-char-type.jpg\"><img class=\"wp-image-239304 size-full\" src=\"https://www.dummies.com/wp-content/uploads/java-7e-char-type.jpg\" alt=\"java char type\" width=\"163\" height=\"122\" /></a> An exciting run of the program of below as it appears in the Eclipse Console view.[/caption]\r\n\r\n<code>public class CharDemo {</code>\r\n\r\n \r\n\r\n<code>public static void main(String args[]) {</code>\r\n\r\n<code>char myLittleChar = 'b';</code>\r\n\r\n<code>char myBigChar = Character.toUpperCase(myLittleChar);</code>\r\n\r\n<code>System.out.println(myBigChar);</code>\r\n\r\n<code>}</code>\r\n\r\n<code>}</code>\r\n\r\nIn this code, the first initialization stores the letter <em>b</em> in the variable <code>myLittleChar</code>. In the initialization, notice how <em>b</em> is surrounded by single quote marks. In Java, every <code>char</code> literally starts and ends with a single quote mark.\r\n<p class=\"article-tips remember\">In a Java program, single quote marks surround the letter in a <code>char</code> literal.</p>\r\n<em>Character.toUpperCase.</em> The <code>Character.toUpperCase</code> method does just what its name suggests — the method produces the uppercase equivalent of the letter <em>b.</em> This uppercase equivalent (the letter <em>B</em>) is assigned to the <code>myBigChar</code> variable, and the <em>B</em> that’s in <code>myBigChar</code> prints onscreen.\r\n\r\nIf you’re tempted to write the following statement,\r\n\r\n<code>char myLittleChars = &apos;barry&apos;; //Don&apos;t do this</code>\r\n\r\nplease resist the temptation. You can’t store more than one letter at a time in a <code>char</code> variable, and you can’t put more than one letter between a pair of single quotes. If you’re trying to store words or sentences (not just single letters), you need to use something called a String.\r\n<p class=\"article-tips warning\">If you’re used to writing programs in other languages, you may be aware of something called ASCII character encoding. Most languages use ASCII; Java uses Unicode. In the old ASCII representation, each character takes up only 8 bits, but in Unicode, each character takes up 8, 16, or 32 bits. Whereas ASCII stores the letters of the Roman (English) alphabet, Unicode has room for characters from most of the world’s commonly spoken languages.</p>\r\nThe only problem is that some of the Java API methods are geared specially toward 16-bit Unicode. Occasionally, this bites you in the back (or it bytes you in the back, as the case may be). If you’re using a method to write <code>Hello</code> on the screen and <code>H e l l o</code> shows up instead, check the method’s documentation for mention of Unicode characters.\r\n\r\nIt’s worth noticing that the two methods, <code>Character.toUpperCase</code> and <code>System.out.println</code>, are used quite differently in the code above. The method <code>Character.toUpperCase</code> is called as part of an initialization or an assignment statement, but the method <code>System.out.println</code> is called on its own.\r\n<h2 id=\"tab2\" >The boolean type</h2>\r\nA variable of type <code>boolean</code> stores one of two values: <code>true</code> or <code>false</code>. The code below demonstrates the use of a <code>boolean</code> variable.\r\n\r\n<code>public class ElevatorFitter2 {</code>\r\n\r\n \r\n\r\n<code>public static void main(String args[]) {</code>\r\n\r\n<code>System.out.println(\"True or False?\");</code>\r\n\r\n<code>System.out.println(\"You can fit all ten of the\");</code>\r\n\r\n<code>System.out.println(\"Brickenchicker dectuplets\");</code>\r\n\r\n<code>System.out.println(\"on the elevator:\");</code>\r\n\r\n<code>System.out.println();</code>\r\n\r\n \r\n\r\n<code>int weightOfAPerson = 150;</code>\r\n\r\n<code>int elevatorWeightLimit = 1400;</code>\r\n\r\n<code>int numberOfPeople = elevatorWeightLimit / weightOfAPerson;</code>\r\n\r\n \r\n\r\n<code>&lt;strong&gt; boolean allTenOkay = numberOfPeople &gt;= 10;&lt;/strong&gt;</code>\r\n\r\n \r\n\r\n<code>System.out.println(allTenOkay);</code>\r\n\r\n<code>}</code>\r\n\r\n<code>}</code>\r\n\r\nIn this code, the <code>allTenOkay</code> variable is of type <code>boolean</code>. To find a value for the <code>allTenOkay</code> variable, the program checks to see whether <code>numberOfPeople</code> is greater than or equal to ten. (The symbols >= stand for <em>greater than or equal to.</em>)\r\n\r\nAt this point, it pays to be fussy about terminology. Any part of a Java program that has a value is an <em>expression.</em> If you write\r\n\r\n<code>weightOfAPerson = 150;</code>\r\n\r\nthen <code>150 ,</code>is an expression (an expression whose value is the quantity <code>150</code>). If you write\r\n\r\n<code>numberOfEggs = 2 + 2;</code>\r\n\r\nthen 2 + 2 is an expression (because <code>2 + 2</code> has the value <code>4</code>). If you write\r\n\r\n<code>int numberOfPeople = elevatorWeightLimit / weightOfAPerson;</code>\r\n\r\nthen <code>elevatorWeightLimit / weightOfAPerson</code> is an expression. (The value of the expression <code>elevatorWeightLimit / weightOfAPerson</code> depends on whatever values the variables <code>elevatorWeightLimit</code> and <code>weightOfAPerson</code> have when the code containing the expression is executed.)\r\n<p class=\"article-tips remember\">Any part of a Java program that has a value is an expression.</p>\r\nIn the second set of code, <code>numberOfPeople &gt;= 10</code> is an expression. The expression’s value depends on the value stored in the <code>numberOfPeople</code> variable. But, as you know from seeing the strawberry shortcake at the Brickenchicker family’s catered lunch, the value of <code>numberOfPeople</code> isn’t greater than or equal to ten. As a result, the value of <code>numberOfPeople &gt;= 10</code> is <code>false</code>. So, in the statement in the second set of code, in which <code>allTenOkay</code> is assigned a value, the <code>allTenOkay</code> variable is assigned a <code>false</code> value.\r\n<p class=\"article-tips tip\">In the second set of code, <code>System.out.println()</code> is called with nothing inside the parentheses. When you do this, Java adds a line break to the program’s output. In the second set of code, <code>System.out.println()</code> tells the program to display a blank line.</p>","description":"The words <em>int</em> and <em>double</em> are examples of <em>primitive types</em> (also known as <em>simple</em> types) in Java. The Java language has exactly eight primitive types. As a newcomer to Java, you can pretty much ignore all but four of these types. (As programming languages go, Java is nice and compact that way.)\r\n\r\nThe types that you shouldn’t ignore are <code>int</code>, <code>double</code>, <code>char</code>, and <code>boolean</code>.\r\n<h2 id=\"tab1\" >The char type</h2>\r\nSeveral decades ago, people thought computers existed only for doing big number-crunching calculations. Nowadays, nobody thinks that way. So, if you haven’t been in a cryogenic freezing chamber for the past 20 years, you know that computers store letters, punctuation symbols, and other characters.\r\n\r\nThe Java type that’s used to store characters is called <em>char.</em> The code below has a simple program that uses the <code>char</code> type. This image shows the output of the program in the code below.\r\n\r\n[caption id=\"attachment_239304\" align=\"aligncenter\" width=\"163\"]<a href=\"https://www.dummies.com/wp-content/uploads/java-7e-char-type.jpg\"><img class=\"wp-image-239304 size-full\" src=\"https://www.dummies.com/wp-content/uploads/java-7e-char-type.jpg\" alt=\"java char type\" width=\"163\" height=\"122\" /></a> An exciting run of the program of below as it appears in the Eclipse Console view.[/caption]\r\n\r\n<code>public class CharDemo {</code>\r\n\r\n \r\n\r\n<code>public static void main(String args[]) {</code>\r\n\r\n<code>char myLittleChar = 'b';</code>\r\n\r\n<code>char myBigChar = Character.toUpperCase(myLittleChar);</code>\r\n\r\n<code>System.out.println(myBigChar);</code>\r\n\r\n<code>}</code>\r\n\r\n<code>}</code>\r\n\r\nIn this code, the first initialization stores the letter <em>b</em> in the variable <code>myLittleChar</code>. In the initialization, notice how <em>b</em> is surrounded by single quote marks. In Java, every <code>char</code> literally starts and ends with a single quote mark.\r\n<p class=\"article-tips remember\">In a Java program, single quote marks surround the letter in a <code>char</code> literal.</p>\r\n<em>Character.toUpperCase.</em> The <code>Character.toUpperCase</code> method does just what its name suggests — the method produces the uppercase equivalent of the letter <em>b.</em> This uppercase equivalent (the letter <em>B</em>) is assigned to the <code>myBigChar</code> variable, and the <em>B</em> that’s in <code>myBigChar</code> prints onscreen.\r\n\r\nIf you’re tempted to write the following statement,\r\n\r\n<code>char myLittleChars = &apos;barry&apos;; //Don&apos;t do this</code>\r\n\r\nplease resist the temptation. You can’t store more than one letter at a time in a <code>char</code> variable, and you can’t put more than one letter between a pair of single quotes. If you’re trying to store words or sentences (not just single letters), you need to use something called a String.\r\n<p class=\"article-tips warning\">If you’re used to writing programs in other languages, you may be aware of something called ASCII character encoding. Most languages use ASCII; Java uses Unicode. In the old ASCII representation, each character takes up only 8 bits, but in Unicode, each character takes up 8, 16, or 32 bits. Whereas ASCII stores the letters of the Roman (English) alphabet, Unicode has room for characters from most of the world’s commonly spoken languages.</p>\r\nThe only problem is that some of the Java API methods are geared specially toward 16-bit Unicode. Occasionally, this bites you in the back (or it bytes you in the back, as the case may be). If you’re using a method to write <code>Hello</code> on the screen and <code>H e l l o</code> shows up instead, check the method’s documentation for mention of Unicode characters.\r\n\r\nIt’s worth noticing that the two methods, <code>Character.toUpperCase</code> and <code>System.out.println</code>, are used quite differently in the code above. The method <code>Character.toUpperCase</code> is called as part of an initialization or an assignment statement, but the method <code>System.out.println</code> is called on its own.\r\n<h2 id=\"tab2\" >The boolean type</h2>\r\nA variable of type <code>boolean</code> stores one of two values: <code>true</code> or <code>false</code>. The code below demonstrates the use of a <code>boolean</code> variable.\r\n\r\n<code>public class ElevatorFitter2 {</code>\r\n\r\n \r\n\r\n<code>public static void main(String args[]) {</code>\r\n\r\n<code>System.out.println(\"True or False?\");</code>\r\n\r\n<code>System.out.println(\"You can fit all ten of the\");</code>\r\n\r\n<code>System.out.println(\"Brickenchicker dectuplets\");</code>\r\n\r\n<code>System.out.println(\"on the elevator:\");</code>\r\n\r\n<code>System.out.println();</code>\r\n\r\n \r\n\r\n<code>int weightOfAPerson = 150;</code>\r\n\r\n<code>int elevatorWeightLimit = 1400;</code>\r\n\r\n<code>int numberOfPeople = elevatorWeightLimit / weightOfAPerson;</code>\r\n\r\n \r\n\r\n<code>&lt;strong&gt; boolean allTenOkay = numberOfPeople &gt;= 10;&lt;/strong&gt;</code>\r\n\r\n \r\n\r\n<code>System.out.println(allTenOkay);</code>\r\n\r\n<code>}</code>\r\n\r\n<code>}</code>\r\n\r\nIn this code, the <code>allTenOkay</code> variable is of type <code>boolean</code>. To find a value for the <code>allTenOkay</code> variable, the program checks to see whether <code>numberOfPeople</code> is greater than or equal to ten. (The symbols >= stand for <em>greater than or equal to.</em>)\r\n\r\nAt this point, it pays to be fussy about terminology. Any part of a Java program that has a value is an <em>expression.</em> If you write\r\n\r\n<code>weightOfAPerson = 150;</code>\r\n\r\nthen <code>150 ,</code>is an expression (an expression whose value is the quantity <code>150</code>). If you write\r\n\r\n<code>numberOfEggs = 2 + 2;</code>\r\n\r\nthen 2 + 2 is an expression (because <code>2 + 2</code> has the value <code>4</code>). If you write\r\n\r\n<code>int numberOfPeople = elevatorWeightLimit / weightOfAPerson;</code>\r\n\r\nthen <code>elevatorWeightLimit / weightOfAPerson</code> is an expression. (The value of the expression <code>elevatorWeightLimit / weightOfAPerson</code> depends on whatever values the variables <code>elevatorWeightLimit</code> and <code>weightOfAPerson</code> have when the code containing the expression is executed.)\r\n<p class=\"article-tips remember\">Any part of a Java program that has a value is an expression.</p>\r\nIn the second set of code, <code>numberOfPeople &gt;= 10</code> is an expression. The expression’s value depends on the value stored in the <code>numberOfPeople</code> variable. But, as you know from seeing the strawberry shortcake at the Brickenchicker family’s catered lunch, the value of <code>numberOfPeople</code> isn’t greater than or equal to ten. As a result, the value of <code>numberOfPeople &gt;= 10</code> is <code>false</code>. So, in the statement in the second set of code, in which <code>allTenOkay</code> is assigned a value, the <code>allTenOkay</code> variable is assigned a <code>false</code> value.\r\n<p class=\"article-tips tip\">In the second set of code, <code>System.out.println()</code> is called with nothing inside the parentheses. When you do this, Java adds a line break to the program’s output. In the second set of code, <code>System.out.println()</code> tells the program to display a blank line.</p>","blurb":"","authors":[{"authorId":11028,"name":"Barry A. Burd","slug":"barry-a-burd","description":"","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/11028"}}],"primaryCategoryTaxonomy":{"categoryId":33602,"title":"Java","slug":"java","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33602"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":284787,"title":"What Your Society Says About You","slug":"what-your-society-says-about-you","categoryList":["academics-the-arts","humanities"],"_links":{"self":"/articles/284787"}},{"articleId":230957,"title":"Nikon D3400 For Dummies Cheat Sheet","slug":"nikon-d3400-dummies-cheat-sheet","categoryList":["home-auto-hobbies","photography"],"_links":{"self":"/articles/230957"}},{"articleId":208741,"title":"Kabbalah For Dummies Cheat Sheet","slug":"kabbalah-for-dummies-cheat-sheet","categoryList":["body-mind-spirit","religion-spirituality","kabbalah"],"_links":{"self":"/articles/208741"}},{"articleId":299133,"title":"ChatGPT For Dummies Cheat Sheet","slug":"chatgpt-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"/articles/299133"}}],"inThisArticle":[{"label":"The char type","target":"#tab1"},{"label":"The boolean type","target":"#tab2"}],"relatedArticles":{"fromBook":[{"articleId":239553,"title":"Using Streams and Lambda Expressions in Java","slug":"using-streams-lambda-expressions-java","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/239553"}},{"articleId":239544,"title":"Command Line Arguments in Java","slug":"command-line-arguments-java","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/239544"}},{"articleId":239529,"title":"How to Add Searching Capability with Java","slug":"add-searching-capability-java","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/239529"}},{"articleId":239524,"title":"How to Use Subclasses in Java","slug":"use-subclasses-java","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/239524"}},{"articleId":239520,"title":"Defining a Class in Java (What It Means to Be an Account)","slug":"defining-class-java-means-account","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/239520"}}],"fromCategory":[{"articleId":275099,"title":"How to Download and Install TextPad","slug":"how-to-download-and-install-textpad","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/275099"}},{"articleId":275089,"title":"Important Features of the Java Language","slug":"important-features-of-the-java-language","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/275089"}},{"articleId":245151,"title":"How to Install JavaFX and Scene Builder","slug":"install-javafx-scene-builder","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/245151"}},{"articleId":245148,"title":"A Few Things about Java GUIs","slug":"things-java-guis","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/245148"}},{"articleId":245141,"title":"Getting a Value from a Method in Java","slug":"getting-value-method-java","categoryList":["technology","programming-web-design","java"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/245141"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281748,"slug":"java-for-dummies-2","isbn":"9781119861645","categoryList":["technology","programming-web-design","java"],"amazon":{"default":"https://www.amazon.com/gp/product/1119861640/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119861640/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1119861640-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119861640/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119861640/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/9781119861645-203x255.jpg","width":203,"height":255},"title":"Java For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><b>Dr. <b data-author-id=\"9069\">Barry Burd</b></b> holds an M.S. in Computer Science from Rutgers University and a Ph.D. in Mathematics from the University of Illinois. Barry is also the author of <i>Beginning Programming with Java For Dummies, Java for Android For Dummies,</i> and <i>Flutter For Dummies.</i></p>","authors":[{"authorId":9069,"name":"Barry Burd","slug":"barry-burd","description":" <p><b>Dr. Barry Burd</b> holds an M.S. in Computer Science from Rutgers University and a Ph.D. in Mathematics from the University of Illinois. Barry is also the author of <i>Beginning Programming with Java For Dummies, Java for Android For Dummies,</i> and <i>Flutter For Dummies.</i></p> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9069"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;java&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119861645&quot;]}]\" id=\"du-slot-671fd1658c809\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;java&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119861645&quot;]}]\" id=\"du-slot-671fd1658d3f6\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"Two years","lifeExpectancySetFrom":"2024-10-28T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":239303},{"headers":{"creationTime":"2017-07-12T12:46:38+00:00","modifiedTime":"2024-10-28T17:43:29+00:00","timestamp":"2024-10-28T18:01:08+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"Coding","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33599"},"slug":"coding","categoryId":33599}],"title":"Tips for Debugging the Code in Your Mobile App","strippedTitle":"tips for debugging the code in your mobile app","slug":"tips-debugging-code-mobile-app","canonicalUrl":"","seo":{"metaDescription":"When coding your app, you will almost inevitably write code that does not behave as you intended. HTML and CSS are relatively forgiving, with the browser even g","noIndex":0,"noFollow":0},"content":"When coding your app, you will almost inevitably write code that does not behave as you intended. HTML and CSS are relatively forgiving, with the browser even going so far as to insert tags so the page renders properly. However, JavaScript isn’t so forgiving, and the smallest error, such as a missing quotation mark, can cause the page to not render properly.\r\n\r\nErrors in web applications can consist of syntax errors, logic errors, and display errors. Often, the most likely culprit causing errors in your code will be syntax related. Here are some common errors to check when debugging your code:\r\n<ul>\r\n \t<li><strong>Opening and closing tags:</strong> In HTML, every opening tag has a closing tag, and you always close the most recently opened tag first.</li>\r\n \t<li><strong>Right and left angle brackets:</strong> In HTML, every left angle bracket <span style=\"text-decoration: line-through;\"><</span> has a right angle bracket <span style=\"text-decoration: line-through;\">></span>.</li>\r\n \t<li><strong>Right and left curly brackets:</strong> In CSS and JavaScript, every left curly bracket must have a right curly bracket. It can be easy to accidentally delete it or forget to include it.</li>\r\n \t<li><strong>Indentation:</strong> Indent your code and use plenty of tabs and returns to make your code as readable as possible. Proper indentation will make it easier for you to identify missing tags, angle brackets, and curly brackets.</li>\r\n \t<li><strong>Misspelled statements:</strong> Tags in any language can be misspelled, or spelled correctly but not part of the specification. For example, in HTML,\r\n<pre class=\"code\">&lt;img scr=\"image.jpg\"&gt;</pre>\r\nis incorrect because <code>scr</code> should really be <code>src</code> for the image to render properly. Similarly, in CSS <code>font-color</code> looks like it is spelled correctly but no such property exists. The correct property to set font color is just <code>color</code>.</li>\r\n</ul>\r\nKeep these errors in mind when debugging — they may not solve all your problems, but they should solve many of them. If you have tried the steps above and still cannot debug your code, tweet <code>@nikhilgabraham</code> and include the <code>#codingFD</code> hashtag and your <a href=\"https://www.codepen.io/\" target=\"_blank\" rel=\"noopener\">codepen.io</a> URL in your tweet.","description":"When coding your app, you will almost inevitably write code that does not behave as you intended. HTML and CSS are relatively forgiving, with the browser even going so far as to insert tags so the page renders properly. However, JavaScript isn’t so forgiving, and the smallest error, such as a missing quotation mark, can cause the page to not render properly.\r\n\r\nErrors in web applications can consist of syntax errors, logic errors, and display errors. Often, the most likely culprit causing errors in your code will be syntax related. Here are some common errors to check when debugging your code:\r\n<ul>\r\n \t<li><strong>Opening and closing tags:</strong> In HTML, every opening tag has a closing tag, and you always close the most recently opened tag first.</li>\r\n \t<li><strong>Right and left angle brackets:</strong> In HTML, every left angle bracket <span style=\"text-decoration: line-through;\"><</span> has a right angle bracket <span style=\"text-decoration: line-through;\">></span>.</li>\r\n \t<li><strong>Right and left curly brackets:</strong> In CSS and JavaScript, every left curly bracket must have a right curly bracket. It can be easy to accidentally delete it or forget to include it.</li>\r\n \t<li><strong>Indentation:</strong> Indent your code and use plenty of tabs and returns to make your code as readable as possible. Proper indentation will make it easier for you to identify missing tags, angle brackets, and curly brackets.</li>\r\n \t<li><strong>Misspelled statements:</strong> Tags in any language can be misspelled, or spelled correctly but not part of the specification. For example, in HTML,\r\n<pre class=\"code\">&lt;img scr=\"image.jpg\"&gt;</pre>\r\nis incorrect because <code>scr</code> should really be <code>src</code> for the image to render properly. Similarly, in CSS <code>font-color</code> looks like it is spelled correctly but no such property exists. The correct property to set font color is just <code>color</code>.</li>\r\n</ul>\r\nKeep these errors in mind when debugging — they may not solve all your problems, but they should solve many of them. If you have tried the steps above and still cannot debug your code, tweet <code>@nikhilgabraham</code> and include the <code>#codingFD</code> hashtag and your <a href=\"https://www.codepen.io/\" target=\"_blank\" rel=\"noopener\">codepen.io</a> URL in your tweet.","blurb":"","authors":[{"authorId":9097,"name":"Nikhil Abraham","slug":"nikhil-abraham","description":" <p><b>Nikhil Abraham</b> was Director of Business Development &#38; Growth at Codecademy. In that role, he taught and trained thousands of beginning coders across a variety of professions. He helped refine Codecademy&#39;s online courses, which have introduced basic coding skills to millions of learners. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9097"}}],"primaryCategoryTaxonomy":{"categoryId":33599,"title":"Coding","slug":"coding","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33599"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":284787,"title":"What Your Society Says About You","slug":"what-your-society-says-about-you","categoryList":["academics-the-arts","humanities"],"_links":{"self":"/articles/284787"}},{"articleId":230957,"title":"Nikon D3400 For Dummies Cheat Sheet","slug":"nikon-d3400-dummies-cheat-sheet","categoryList":["home-auto-hobbies","photography"],"_links":{"self":"/articles/230957"}},{"articleId":208741,"title":"Kabbalah For Dummies Cheat Sheet","slug":"kabbalah-for-dummies-cheat-sheet","categoryList":["body-mind-spirit","religion-spirituality","kabbalah"],"_links":{"self":"/articles/208741"}},{"articleId":299133,"title":"ChatGPT For Dummies Cheat Sheet","slug":"chatgpt-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"/articles/299133"}}],"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":242447,"title":"The People Who Bring a Web App to Life","slug":"people-bring-web-app-life","categoryList":["technology","programming-web-design","coding"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/242447"}},{"articleId":242444,"title":"Research Sources for Coding Your Own App","slug":"research-sources-coding-app","categoryList":["technology","programming-web-design","coding"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/242444"}},{"articleId":242436,"title":"Getting Ready to Code? Do These Things First","slug":"getting-ready-code-things-first","categoryList":["technology","programming-web-design","coding"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/242436"}},{"articleId":242408,"title":"Dealing with Dates in Your Data","slug":"dealing-dates-data","categoryList":["technology","programming-web-design","coding"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/242408"}},{"articleId":242404,"title":"The Limits of Rating Data in Machine Learning","slug":"limits-rating-data-machine-learning","categoryList":["technology","programming-web-design","coding"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/242404"}}],"fromCategory":[{"articleId":253846,"title":"Helping Kids with Coding: Distributing Mobile Apps","slug":"helping-kids-coding-distributing-mobile-apps","categoryList":["technology","programming-web-design","coding"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/253846"}},{"articleId":253837,"title":"Using the MIT App Inventor to Teach Kids Coding","slug":"using-mit-app-inventor-teach-kids-coding","categoryList":["technology","programming-web-design","coding"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/253837"}},{"articleId":253831,"title":"Teaching Kids Strategies for Debugging Code","slug":"teaching-kids-strategies-debugging-code","categoryList":["technology","programming-web-design","coding"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/253831"}},{"articleId":253826,"title":"Helping Kids Find Common Coding Semantic Errors","slug":"helping-kids-find-common-coding-semantic-errors","categoryList":["technology","programming-web-design","coding"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/253826"}},{"articleId":253818,"title":"Teaching Kids to Code Subprograms with Parameters","slug":"teaching-kids-code-subprograms-parameters","categoryList":["technology","programming-web-design","coding"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/253818"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281666,"slug":"coding-all-in-one-for-dummies","isbn":"9781119889564","categoryList":["technology","programming-web-design","coding"],"amazon":{"default":"https://www.amazon.com/gp/product/1119889561/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119889561/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1119889561-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119889561/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119889561/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/coding-all-in-one-for-dummies-9781119889564-203x255.jpg","width":203,"height":255},"title":"Coding All-in-One For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><p> <b><b data-author-id=\"9070\">Chris Minnick</b></b> is an accomplished author, teacher, and programmer. Minnick authored or co-authored over 20 books, including titles in the <i>For Dummies </i>series. He has developed video courses for top online training platforms and he teaches programming and machine learning to professional developers at some of the largest global companies.</p>","authors":[{"authorId":9070,"name":"Chris Minnick","slug":"chris-minnick","description":" <p> <b>Chris Minnick</b> is an accomplished author, teacher, and programmer. Minnick authored or co-authored over 20 books, including titles in the <i>For Dummies </i>series. He has developed video courses for top online training platforms and he teaches programming and machine learning to professional developers at some of the largest global companies. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9070"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;coding&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119889564&quot;]}]\" id=\"du-slot-671fd164bb0f6\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;coding&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119889564&quot;]}]\" id=\"du-slot-671fd164bbdb5\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"One year","lifeExpectancySetFrom":"2024-10-28T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":241918},{"headers":{"creationTime":"2016-03-26T14:56:06+00:00","modifiedTime":"2024-05-30T18:40:14+00:00","timestamp":"2024-05-30T21:01:10+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"How to Fix Noncompliant Code on Your Web Page","strippedTitle":"how to fix noncompliant code on your web page","slug":"how-to-fix-noncompliant-code-on-your-web-page","canonicalUrl":"","seo":{"metaDescription":"Easily fix web coding error mesages such as alt, tag, and more with these clear and useful solutions.","noIndex":0,"noFollow":0},"content":"For each web coding issue identified by a validator, you need to determine what course of action to take. Although some culprits that repeatedly crop up are easy to fix, such as missing <code>alt</code> text and <code>&lt;noscript&gt;</code> tags, you’re bound to find coding issues that completely baffle and stump you.\r\n\r\nFor instance, if you get an error message that reads <code>XML Parsing Error: Opening and ending tag mismatch: br line 52 and body</code>, it might be difficult to figure out what that means, let alone why it was caused and how you should fix it.\r\n\r\nAs a strategy then, try to fix the issues within the code from the top down, as they’re listed in the validation results, because sometimes fixing one issue resolves another. With the XML parsing error, that issue might disappear when you correct for an omitted closing element on a <code>&lt;br /&gt;</code> tag listed earlier in the error results.\r\n\r\nThe best way to find out how to code better and make fewer mistakes before validation testing is to make lots of honest mistakes and figure out how to correct them on your own. Most often, you can fix noncompliant code by hand or with the help of a good HTML editor.\r\n\r\nTo help you identify some of the more common coding mistakes, here several code issues along with suggestions about how to fix them.\r\n<table>\r\n<tbody>\r\n<tr>\r\n<th>Problem</th>\r\n<th>Solution</th>\r\n</tr>\r\n<tr>\r\n<td>\r\n<pre class=\"code\">alt</pre>\r\ntext attribute missing from\r\n<pre class=\"code\">&lt;img&gt;</pre>\r\ntag</td>\r\n<td>Add the alternative text attribute, either with or without a\r\ndescription, as in\r\n<pre class=\"code\">&lt;img\r\nsrc=\"images/logo.gif\" width=\"150\"\r\nheight=\"150\" alt=\"Pete’s Pizza\"&gt;\r\n&lt;img src=\"images/flourish.gif\" width=\"200\"\r\nheight=\"150\" alt=\"\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>\r\n<pre class=\"code\">&lt;noscript&gt;</pre>\r\ntags missing from\r\ncode</td>\r\n<td>Add\r\n<pre class=\"code\">&lt;noscript&gt;</pre>\r\ntags below each\r\ninstance when JavaScript is present in in-line JavaScript or at the\r\nend of the content before the closing body tag. Between the\r\n<pre class=\"code\">&lt;noscript&gt;</pre>\r\ntags, insert HTML content\r\n(text, graphics, media files, and so on) that describes the\r\nfunction of the JavaScript and, when appropriate, how visitors can\r\naccess the information revealed by it, as shown here:\r\n<pre class=\"code\">&lt;script language=\"JavaScript\"\r\nsrc=\"bookmark.js\"\r\ntype=\"text/javascript\"&gt;&lt;/script&gt;&lt;noscript&gt;The\r\nJavaScript used on this page provides a quick link that allows\r\nvisitors to automatically bookmark this page. As an alternative,\r\nplease use your browser’s Bookmark This Page feature.&lt;/noscript&gt;</pre>\r\n</td>\r\n</tr>\r\n<tr>\r\n<td>Flashing or flickering element(s) detected, such as animated\r\nGIFs, Java applets, and other multimedia plug-ins</td>\r\n<td>Adjust the speed of any animations to avoid causing the screen\r\nto flicker with a frequency between 2 Hz and 55 Hz. Animations that\r\nexceed these two measures may cause seizures in visitors with\r\nphotosensitive epilepsy.</td>\r\n</tr>\r\n<tr>\r\n<td>No\r\n<pre class=\"code\">DOCTYPE</pre>\r\nspecified</td>\r\n<td>Add a valid\r\n<pre class=\"code\">DOCTYPE</pre>\r\nabove the opening\r\n<pre class=\"code\">&lt;head&gt;</pre>\r\ntag.</td>\r\n</tr>\r\n<tr>\r\n<td>No HTTP charset parameter specified</td>\r\n<td>This special meta tag specifies the character set used in the\r\nHTML code. Some HTML editors include it automatically when\r\ngenerating new blank web pages. If validation finds that this tag\r\nis missing from your HTML or XHTML code, insert the following code\r\nby hand:\r\n<pre class=\"code\">&lt;meta\r\nhttp-equiv=\"Content-Type\" content=\"text/html;\r\ncharset=utf-8\"&gt;</pre>\r\n. For HTML5, insert\r\n<pre class=\"code\">&lt;meta charset=\"utf-8\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>No\r\n<pre class=\"code\">&lt;title&gt;</pre>\r\ntag specified</td>\r\n<td>Add a unique title between\r\n<pre class=\"code\">&lt;title&gt;</pre>\r\ntags in the head area on each\r\npage.</td>\r\n</tr>\r\n<tr>\r\n<td>No\r\n<pre class=\"code\">&lt;meta&gt;</pre>\r\ntags specified</td>\r\n<td>Add meta keywords and meta description tags to the head of each\r\npage. These can be identical on every page on the site. If desired,\r\nyou may also add additional meta tags as needed.</td>\r\n</tr>\r\n<tr>\r\n<td>No Robots tags specified</td>\r\n<td>Add the\r\n<pre class=\"code\">Robots</pre>\r\n<pre class=\"code\">&lt;meta&gt;</pre>\r\ntag in the head of the page to\r\ninstruct web spiders and robots whether to index the page and\r\nfollow any hyperlinks, such as\r\n<pre class=\"code\">&lt;meta\r\nname=\"Robots\" content=\"All\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>Deprecated\r\n<pre class=\"code\">&lt;font&gt;</pre>\r\ntags\r\ndetected</td>\r\n<td>Move all the presentation markup of the HTML (page, fonts,\r\ntables, links, and so on) to an external CSS file and remove all\r\n<pre class=\"code\">&lt;font&gt;</pre>\r\ntags and HTML and inline\r\nformatting attributes.</td>\r\n</tr>\r\n<tr>\r\n<td>Deprecated table height attribute detected</td>\r\n<td>Control table cell heights, when necessary, with CSS\r\nstyles.</td>\r\n</tr>\r\n<tr>\r\n<td>Style attributes detected in the opening\r\n<pre class=\"code\">&lt;body&gt;</pre>\r\ntag</td>\r\n<td>Move <code>body</code> attributes, like margin\r\nattributes and background page color, to a BODY tag redefine style\r\nin an external CSS file.</td>\r\n</tr>\r\n<tr>\r\n<td>\r\n<pre class=\"code\">type</pre>\r\nattribute not specified for\r\nJavaScript or CSS</td>\r\n<td>Add the\r\n<pre class=\"code\">type=\"text/css\"</pre>\r\nattribute for\r\n<pre class=\"code\">&lt;style&gt;</pre>\r\ntags and the\r\n<pre class=\"code\">type=\"text/javascript\"</pre>\r\nattribute for\r\n<pre class=\"code\">&lt;script&gt;</pre>\r\ntags:\r\n<pre class=\"code\">&lt;style type=\"text/css\" &gt;&lt;script\r\ntype=\"text/javascript\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>Entity name used instead of entity number</td>\r\n<td>Change the entity name to an entity number, such as using\r\n<pre class=\"code\">$#169;</pre>\r\ninstead of\r\n<pre class=\"code\">&copy;</pre>\r\nto create the copyright symbol\r\n(c).</td>\r\n</tr>\r\n<tr>\r\n<td>No background color attribute was specified for a CSS style\r\nthat specifies text color</td>\r\n<td>Provide each style that contains a text\r\n<pre class=\"code\">color</pre>\r\nattribute with an attending background\r\n<pre class=\"code\">color</pre>\r\nattribute. The background color\r\nshould match, or closely match, the background color upon which the\r\ntext will display on.</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\nWhen you’re finished identifying and adjusting all the noncompliant code identified by the validation tools, and have fixed everything that needed fixing, move on to the retesting and acceptable failure phase of the testing process.","description":"For each web coding issue identified by a validator, you need to determine what course of action to take. Although some culprits that repeatedly crop up are easy to fix, such as missing <code>alt</code> text and <code>&lt;noscript&gt;</code> tags, you’re bound to find coding issues that completely baffle and stump you.\r\n\r\nFor instance, if you get an error message that reads <code>XML Parsing Error: Opening and ending tag mismatch: br line 52 and body</code>, it might be difficult to figure out what that means, let alone why it was caused and how you should fix it.\r\n\r\nAs a strategy then, try to fix the issues within the code from the top down, as they’re listed in the validation results, because sometimes fixing one issue resolves another. With the XML parsing error, that issue might disappear when you correct for an omitted closing element on a <code>&lt;br /&gt;</code> tag listed earlier in the error results.\r\n\r\nThe best way to find out how to code better and make fewer mistakes before validation testing is to make lots of honest mistakes and figure out how to correct them on your own. Most often, you can fix noncompliant code by hand or with the help of a good HTML editor.\r\n\r\nTo help you identify some of the more common coding mistakes, here several code issues along with suggestions about how to fix them.\r\n<table>\r\n<tbody>\r\n<tr>\r\n<th>Problem</th>\r\n<th>Solution</th>\r\n</tr>\r\n<tr>\r\n<td>\r\n<pre class=\"code\">alt</pre>\r\ntext attribute missing from\r\n<pre class=\"code\">&lt;img&gt;</pre>\r\ntag</td>\r\n<td>Add the alternative text attribute, either with or without a\r\ndescription, as in\r\n<pre class=\"code\">&lt;img\r\nsrc=\"images/logo.gif\" width=\"150\"\r\nheight=\"150\" alt=\"Pete’s Pizza\"&gt;\r\n&lt;img src=\"images/flourish.gif\" width=\"200\"\r\nheight=\"150\" alt=\"\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>\r\n<pre class=\"code\">&lt;noscript&gt;</pre>\r\ntags missing from\r\ncode</td>\r\n<td>Add\r\n<pre class=\"code\">&lt;noscript&gt;</pre>\r\ntags below each\r\ninstance when JavaScript is present in in-line JavaScript or at the\r\nend of the content before the closing body tag. Between the\r\n<pre class=\"code\">&lt;noscript&gt;</pre>\r\ntags, insert HTML content\r\n(text, graphics, media files, and so on) that describes the\r\nfunction of the JavaScript and, when appropriate, how visitors can\r\naccess the information revealed by it, as shown here:\r\n<pre class=\"code\">&lt;script language=\"JavaScript\"\r\nsrc=\"bookmark.js\"\r\ntype=\"text/javascript\"&gt;&lt;/script&gt;&lt;noscript&gt;The\r\nJavaScript used on this page provides a quick link that allows\r\nvisitors to automatically bookmark this page. As an alternative,\r\nplease use your browser’s Bookmark This Page feature.&lt;/noscript&gt;</pre>\r\n</td>\r\n</tr>\r\n<tr>\r\n<td>Flashing or flickering element(s) detected, such as animated\r\nGIFs, Java applets, and other multimedia plug-ins</td>\r\n<td>Adjust the speed of any animations to avoid causing the screen\r\nto flicker with a frequency between 2 Hz and 55 Hz. Animations that\r\nexceed these two measures may cause seizures in visitors with\r\nphotosensitive epilepsy.</td>\r\n</tr>\r\n<tr>\r\n<td>No\r\n<pre class=\"code\">DOCTYPE</pre>\r\nspecified</td>\r\n<td>Add a valid\r\n<pre class=\"code\">DOCTYPE</pre>\r\nabove the opening\r\n<pre class=\"code\">&lt;head&gt;</pre>\r\ntag.</td>\r\n</tr>\r\n<tr>\r\n<td>No HTTP charset parameter specified</td>\r\n<td>This special meta tag specifies the character set used in the\r\nHTML code. Some HTML editors include it automatically when\r\ngenerating new blank web pages. If validation finds that this tag\r\nis missing from your HTML or XHTML code, insert the following code\r\nby hand:\r\n<pre class=\"code\">&lt;meta\r\nhttp-equiv=\"Content-Type\" content=\"text/html;\r\ncharset=utf-8\"&gt;</pre>\r\n. For HTML5, insert\r\n<pre class=\"code\">&lt;meta charset=\"utf-8\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>No\r\n<pre class=\"code\">&lt;title&gt;</pre>\r\ntag specified</td>\r\n<td>Add a unique title between\r\n<pre class=\"code\">&lt;title&gt;</pre>\r\ntags in the head area on each\r\npage.</td>\r\n</tr>\r\n<tr>\r\n<td>No\r\n<pre class=\"code\">&lt;meta&gt;</pre>\r\ntags specified</td>\r\n<td>Add meta keywords and meta description tags to the head of each\r\npage. These can be identical on every page on the site. If desired,\r\nyou may also add additional meta tags as needed.</td>\r\n</tr>\r\n<tr>\r\n<td>No Robots tags specified</td>\r\n<td>Add the\r\n<pre class=\"code\">Robots</pre>\r\n<pre class=\"code\">&lt;meta&gt;</pre>\r\ntag in the head of the page to\r\ninstruct web spiders and robots whether to index the page and\r\nfollow any hyperlinks, such as\r\n<pre class=\"code\">&lt;meta\r\nname=\"Robots\" content=\"All\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>Deprecated\r\n<pre class=\"code\">&lt;font&gt;</pre>\r\ntags\r\ndetected</td>\r\n<td>Move all the presentation markup of the HTML (page, fonts,\r\ntables, links, and so on) to an external CSS file and remove all\r\n<pre class=\"code\">&lt;font&gt;</pre>\r\ntags and HTML and inline\r\nformatting attributes.</td>\r\n</tr>\r\n<tr>\r\n<td>Deprecated table height attribute detected</td>\r\n<td>Control table cell heights, when necessary, with CSS\r\nstyles.</td>\r\n</tr>\r\n<tr>\r\n<td>Style attributes detected in the opening\r\n<pre class=\"code\">&lt;body&gt;</pre>\r\ntag</td>\r\n<td>Move <code>body</code> attributes, like margin\r\nattributes and background page color, to a BODY tag redefine style\r\nin an external CSS file.</td>\r\n</tr>\r\n<tr>\r\n<td>\r\n<pre class=\"code\">type</pre>\r\nattribute not specified for\r\nJavaScript or CSS</td>\r\n<td>Add the\r\n<pre class=\"code\">type=\"text/css\"</pre>\r\nattribute for\r\n<pre class=\"code\">&lt;style&gt;</pre>\r\ntags and the\r\n<pre class=\"code\">type=\"text/javascript\"</pre>\r\nattribute for\r\n<pre class=\"code\">&lt;script&gt;</pre>\r\ntags:\r\n<pre class=\"code\">&lt;style type=\"text/css\" &gt;&lt;script\r\ntype=\"text/javascript\"&gt;</pre>\r\n.</td>\r\n</tr>\r\n<tr>\r\n<td>Entity name used instead of entity number</td>\r\n<td>Change the entity name to an entity number, such as using\r\n<pre class=\"code\">$#169;</pre>\r\ninstead of\r\n<pre class=\"code\">&copy;</pre>\r\nto create the copyright symbol\r\n(c).</td>\r\n</tr>\r\n<tr>\r\n<td>No background color attribute was specified for a CSS style\r\nthat specifies text color</td>\r\n<td>Provide each style that contains a text\r\n<pre class=\"code\">color</pre>\r\nattribute with an attending background\r\n<pre class=\"code\">color</pre>\r\nattribute. The background color\r\nshould match, or closely match, the background color upon which the\r\ntext will display on.</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\nWhen you’re finished identifying and adjusting all the noncompliant code identified by the validation tools, and have fixed everything that needed fixing, move on to the retesting and acceptable failure phase of the testing process.","blurb":"","authors":[{"authorId":9719,"name":"Sue Jenkins","slug":"sue-jenkins","description":"Sue Jenkins is a working designer as well as a design trainer and author. Her design firm, Luckychair, provides design services for web, logo, and print. Jenkins has also created a series of courses on popular Adobe design tools including Photoshop and Illustrator.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9719"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":284787,"title":"What Your Society Says About You","slug":"what-your-society-says-about-you","categoryList":["academics-the-arts","humanities"],"_links":{"self":"/articles/284787"}},{"articleId":230957,"title":"Nikon D3400 For Dummies Cheat Sheet","slug":"nikon-d3400-dummies-cheat-sheet","categoryList":["home-auto-hobbies","photography"],"_links":{"self":"/articles/230957"}},{"articleId":208741,"title":"Kabbalah For Dummies Cheat Sheet","slug":"kabbalah-for-dummies-cheat-sheet","categoryList":["body-mind-spirit","religion-spirituality","kabbalah"],"_links":{"self":"/articles/208741"}},{"articleId":299133,"title":"ChatGPT For Dummies Cheat Sheet","slug":"chatgpt-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"/articles/299133"}}],"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":208112,"title":"Web Design All-in-One For Dummies Cheat Sheet","slug":"web-design-all-in-one-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/208112"}},{"articleId":204470,"title":"How to Add a DOCTYPE in Dreamweaver","slug":"how-to-add-a-doctype-in-dreamweaver","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/204470"}},{"articleId":204469,"title":"How to Remove Unwanted Formatting from Your Website","slug":"how-to-remove-unwanted-formatting-from-your-website","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/204469"}},{"articleId":204468,"title":"How to Transfer Files to Your Website with Dreamweaver","slug":"how-to-transfer-files-to-your-website-with-dreamweaver","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/204468"}},{"articleId":171074,"title":"Nine Basic CSS Categories to Use in Web Design","slug":"nine-basic-css-categories-to-use-in-web-design","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/171074"}}],"fromCategory":[{"articleId":301736,"title":"Building DIY Websites For Dummies Cheat Sheet","slug":"building-diy-websites-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301736"}},{"articleId":299575,"title":"HTML, CSS, & JavaScript All-in-One For Dummies Cheat Sheet","slug":"html-css-javascript-all-in-one-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/299575"}},{"articleId":265680,"title":"Using DevOps To Improve Engineering","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"How To Automate DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"How To Choose a Cloud Service Provider for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281890,"slug":"web-design-all-in-one-for-dummies-2nd-edition","isbn":"9781118404102","categoryList":["technology","programming-web-design","general-programming-web-design"],"amazon":{"default":"https://www.amazon.com/gp/product/1118404106/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1118404106/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1118404106-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1118404106/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1118404106/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/web-design-all-in-one-for-dummies-2nd-edition-cover-9781118404102-203x255.jpg","width":203,"height":255},"title":"Web Design All-in-One For Dummies, 2nd Edition","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p><b data-author-id=\"9719\">Sue Jenkins</b> is a working designer as well as a design trainer and author. Her design firm, Luckychair, provides design services for web, logo, and print. Sue has also created a series of training DVDs on popular Adobe design tools including Photoshop, Dreamweaver, and Illustrator.</p>","authors":[{"authorId":9719,"name":"Sue Jenkins","slug":"sue-jenkins","description":"Sue Jenkins is a working designer as well as a design trainer and author. Her design firm, Luckychair, provides design services for web, logo, and print. Jenkins has also created a series of courses on popular Adobe design tools including Photoshop and Illustrator.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9719"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781118404102&quot;]}]\" id=\"du-slot-6658e916d2e5b\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781118404102&quot;]}]\" id=\"du-slot-6658e916d366b\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"Two years","lifeExpectancySetFrom":"2022-05-31T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":166201},{"headers":{"creationTime":"2019-11-12T18:05:01+00:00","modifiedTime":"2024-05-30T18:15:24+00:00","timestamp":"2024-05-30T21:01:09+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"How To Choose a Cloud Service Provider for DevOps","strippedTitle":"how to choose a cloud service provider for devops","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","canonicalUrl":"","seo":{"metaDescription":"When implementing a DevOps initiative, you'll want to make sure you have the right cloud provider and tools. Use this guide to evaluate your DevOps options.","noIndex":0,"noFollow":0},"content":"The success of your DevOps initiative relies heavily on following the process, but it’s also important to use the right tools. Selecting a cloud service provider isn’t an easy choice, especially when DevOps is your driving motivation. GCP (Google Cloud Platform), AWS (Amazon Web Services), and Azure have more in common than they do apart.\r\n\r\nOften, your decision depends more on your DevOps team’s comfort level with a <a href=\"https://www.dummies.com/programming/cloud-computing/how-to-work-with-a-service-provider-in-cloud-computing/\">particular cloud provider</a> or your current stack more than the cloud provider itself. After you’ve decided to move to the cloud, the next decision is to decide on a cloud provider that fits your DevOps needs. Here are some things to consider when <a href=\"https://www.dummies.com/programming/cloud-computing/hybrid-cloud/questions-to-ask-a-possible-cloud-services-provider/\">evaluating cloud providers</a> with DevOps principles in mind:\r\n<ul>\r\n \t<li><strong>Solid track record.</strong> The cloud you choose should have a history of responsible financial decisions and enough capital to operate and expand large datacenters over decades.</li>\r\n \t<li><strong>Compliance and risk management. </strong><strong>Formal structure and established compliance policies are vital to ensure that your data is safe and secure. Ideally, review audits before you sign contracts.</strong></li>\r\n \t<li><strong>Positive reputation. </strong><strong>Customer trust is absolutely key. Do you trust that you can rely on this cloud provider to continue to grow and support your evolving DevOps needs?</strong></li>\r\n \t<li><strong>Service Level Agreements (SLAs).</strong> What level of service do you require? Typically cloud providers offer various levels of uptime reliability based on cost. For example, 99.9 percent uptime will be significantly cheaper than 99.999 percent uptime.</li>\r\n \t<li><strong>Metrics and monitoring.</strong> What types of application insights, monitoring, and telemetry does the vendor supply? Be sure that you can gain an appropriate level of insight into your systems in as close to real-time as possible.</li>\r\n</ul>\r\nFinally, ensure the cloud provider you choose has excellent technical capabilities that provide services that meet your specific <a href=\"https://www.dummies.com/business/operations-management/devops-for-dummies-cheat-sheet/\">DevOps</a> needs. Generally, look for\r\n<ul>\r\n \t<li>Compute capabilities</li>\r\n \t<li>Storage solutions</li>\r\n \t<li>Deployment features</li>\r\n \t<li>Logging and monitoring</li>\r\n \t<li>Friendly user interfaces</li>\r\n</ul>\r\nYou should also confirm the capability to implement a hybrid cloud solution in case you need to at some point, as well as to make HTTP calls to other APIs and services.\r\n\r\nThe three major cloud providers are Google Cloud Platform (GCP), Microsoft Azure, and Amazon web Services (AWS). You can also find smaller cloud providers and certainly a number of private cloud providers, but the bulk of what you need to know comes from comparing the public cloud providers.\r\n<h2 id=\"tab1\" >Amazon Web Services (AWS)</h2>\r\nAs do the other major public cloud providers, <a href=\"https://www.dummies.com/programming/cloud-computing/amazon-web-services/quick-overview-amazon-web-services/\">AWS</a> provides on-demand computing through a pay-as-you-go subscription. Users of AWS can subscribe to any number of services and computing resources. Amazon is the current market leader among cloud providers, holding the majority of cloud subscribers.\r\n\r\nIt offers a robust set of features and services in regions throughout the world. Two of the most well-known services are Amazon Elastic Compute Cloud (EC2) and Amazon Simple Storage Service (Amazon S3). As with other cloud providers, services are accessed and infrastructure is provisioned through APIs.\r\n<h2 id=\"tab2\" >Microsoft Azure</h2>\r\nBefore Microsoft launched this cloud provider as <a href=\"https://www.dummies.com/software/microsoft-office/can-microsoft-azure/\">Microsoft Azure</a>, it was called Windows Azure. Microsoft designed it to do just what the name implies — serve as a cloud provider for traditionally Windows IT organizations. But as the market became more competitive and Microsoft started to better understand the engineering landscape, Azure adapted, grew, and evolved.\r\n\r\nAlthough still arguably less robust than AWS, Azure is a well-rounded cloud provider focused on user experience. Through various product launches and acquisitions — notably GitHub — Microsoft has invested heavily in Linux infrastructure, which has enabled it to provide more robust services to a wider audience.\r\n<h2 id=\"tab3\" >Google Cloud Platform (GCP)</h2>\r\nThe <a href=\"https://www.dummies.com/web-design-development/other-web-software/work-google-cloud-platform-projects/\">Google Cloud Platform</a> (GCP) has the least market share of the three major public cloud providers but offers a substantial set of cloud services throughout nearly two dozen geographic regions.\r\n\r\nPerhaps the most appealing aspect of GCP is that it offers users the same infrastructure Google uses internally. This infrastructure includes extremely powerful computing, storage, analytics, and machine learning services. Depending on your specific product, GCP may have specialized tools that are lacking (or less mature) in AWS and Azure.\r\n<h2 id=\"tab4\" >Finding DevOps tools and services in the cloud</h2>\r\nLiterally hundreds of tools and services are at your disposal through the major cloud providers. Those tools and services are generally separated into the following categories:\r\n<ul>\r\n \t<li>Compute</li>\r\n \t<li>Storage</li>\r\n \t<li>Networking</li>\r\n \t<li>Resource management</li>\r\n \t<li>Cloud Artificial Intelligence (AI)</li>\r\n \t<li>Identity</li>\r\n \t<li>Security</li>\r\n \t<li>Serverless</li>\r\n \t<li>IoT</li>\r\n</ul>\r\nFollowing is a list of the most commonly used services across all three of the major cloud providers. These services include app deployment, virtual machine (VM) management, container orchestration, serverless functions, storage, and databases.\r\n\r\nAdditional services are included, such as identity management, block storage, private cloud, secrets storage, and more. It’s far from an exhaustive list but can serve as a solid foundation for you as you begin to research your options and get a feel for what differentiates the cloud providers.\r\n<ul>\r\n \t<li><strong>App deployment:</strong> Platform as a Service (PaaS) solution for deploying applications in a variety of languages including Java, .NET, Python, Node.js, C#, Ruby, and Go\r\n<ul>\r\n \t<li><strong>Azure:</strong> Azure Cloud Services</li>\r\n \t<li><strong>AWS:</strong> AWS Elastic Beanstalk</li>\r\n \t<li><strong>GCP:</strong> Google App Engine</li>\r\n</ul>\r\n</li>\r\n</ul>\r\n<ul>\r\n \t<li><strong>Virtual machine (VM) management:</strong> Infrastructure as a Service (IaaS) option for running virtual machines (VMs) with Linux or Windows\r\n<ul>\r\n \t<li><strong>Azure:</strong> Azure Virtual Machines</li>\r\n \t<li><strong>AWS:</strong> Amazon EC2</li>\r\n \t<li><strong>GCP:</strong> Google Compute Engine</li>\r\n</ul>\r\n</li>\r\n</ul>\r\n<ul>\r\n \t<li><strong>Managed Kubernetes:</strong> Enables better container management via the popular orchestrator Kubernetes\r\n<ul>\r\n \t<li><strong>Azure:</strong> Azure Kubernetes Service (AKS)</li>\r\n \t<li><strong>AWS:</strong> Amazon Elastic Container Service (ECS) for Kubernetes</li>\r\n \t<li><strong>GCP:</strong> Google Kubernetes Engine</li>\r\n</ul>\r\n</li>\r\n</ul>\r\n<ul>\r\n \t<li><strong>Serverless:</strong> Enables users to create logical workflows of serverless functions\r\n<ul>\r\n \t<li><strong>Azure:</strong> Azure Functions</li>\r\n \t<li><strong>AWS:</strong> AWS Lambda</li>\r\n \t<li><strong>GCP:</strong> Google Cloud Functions</li>\r\n</ul>\r\n</li>\r\n</ul>\r\n<ul>\r\n \t<li><strong>Cloud storage:</strong> Unstructured object storage with caching\r\n<ul>\r\n \t<li><strong>Azure:</strong> Azure Blob Storage</li>\r\n \t<li><strong>AWS:</strong> Amazon S3</li>\r\n \t<li><strong>GCP:</strong> Google Cloud Storage</li>\r\n</ul>\r\n</li>\r\n</ul>\r\n<ul>\r\n \t<li><strong>Databases:</strong> SQL and NoSQL databases, on demand\r\n<ul>\r\n \t<li><strong>Azure:</strong> Azure Cosmos DB</li>\r\n \t<li><strong>AWS:</strong> Amazon Relational Database Service (RDS) and Amazon DynamoDB (NoSQL)</li>\r\n \t<li><strong>GCP:</strong> Google Cloud SQL and Google Cloud BigTable (NoSQL)</li>\r\n</ul>\r\n</li>\r\n</ul>\r\nAs you explore the three major cloud providers, you notice a long list of services. You may feel overwhelmed by the hundreds of options at your disposal. If, by chance, you can’t find what you need, the marketplace will likely provide something similar. The marketplace is where independent developers offer services that plug into the cloud — hosted by Azure, AWS or GCP.\r\n\r\nThe table below lists additional services provided by most, if not all, cloud providers.\r\n<table><caption>Common Cloud Services</caption>\r\n<tbody>\r\n<tr>\r\n<td width=\"319\">Service Category</td>\r\n<td width=\"319\">Functionality</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Block storage</strong></td>\r\n<td width=\"319\">Data storage used in storage-area network (SAN) environments. Block storage is similar to storing data on a hard drive.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Virtual Private Cloud (VPC)</strong></td>\r\n<td width=\"319\">Logically isolated, shared computing resources.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Firewall</strong></td>\r\n<td width=\"319\">Network security that controls traffic.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Content Delivery Network (CDN)</strong></td>\r\n<td width=\"319\">Content delivery based on the location of the user. Typically utilizes caching, load balancing and analytics.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Domain Name System (DNS)</strong></td>\r\n<td width=\"319\">Translator of domain names to IP addresses for browsers.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Single Sign-On (SSO)</strong></td>\r\n<td width=\"319\">Access control to multiple systems or applications using the same credentials. If you’ve logged into an independent application with your Google, Twitter or GitHub credentials, you’ve used SSO.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Identity and Access Management (IAM)</strong></td>\r\n<td width=\"319\">Role-based user access management. Pre-determined roles have access to a set group of features; users are assigned roles.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Telemetry, monitoring and logging</strong></td>\r\n<td width=\"319\">Tools to provide application insights on performance, server load, memory consumption and more.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Deployments</strong></td>\r\n<td width=\"319\">Configuration, infrastructure and release pipeline management tools.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Cloud shell</strong></td>\r\n<td width=\"319\">Shell access from a command-line interface (CLI) within the browser.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Secrets storage</strong></td>\r\n<td width=\"319\">Secure storage of keys, tokens, passwords, certificates and other secrets.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Message Queues</strong></td>\r\n<td width=\"319\">Dynamically scaled message brokers.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Machine Learning (ML)</strong></td>\r\n<td width=\"319\">Deep learning frameworks and tools for data scientists.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>IoT</strong></td>\r\n<td width=\"319\">Device connection and management.</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n<h1></h1>","description":"The success of your DevOps initiative relies heavily on following the process, but it’s also important to use the right tools. Selecting a cloud service provider isn’t an easy choice, especially when DevOps is your driving motivation. GCP (Google Cloud Platform), AWS (Amazon Web Services), and Azure have more in common than they do apart.\r\n\r\nOften, your decision depends more on your DevOps team’s comfort level with a <a href=\"https://www.dummies.com/programming/cloud-computing/how-to-work-with-a-service-provider-in-cloud-computing/\">particular cloud provider</a> or your current stack more than the cloud provider itself. After you’ve decided to move to the cloud, the next decision is to decide on a cloud provider that fits your DevOps needs. Here are some things to consider when <a href=\"https://www.dummies.com/programming/cloud-computing/hybrid-cloud/questions-to-ask-a-possible-cloud-services-provider/\">evaluating cloud providers</a> with DevOps principles in mind:\r\n<ul>\r\n \t<li><strong>Solid track record.</strong> The cloud you choose should have a history of responsible financial decisions and enough capital to operate and expand large datacenters over decades.</li>\r\n \t<li><strong>Compliance and risk management. </strong><strong>Formal structure and established compliance policies are vital to ensure that your data is safe and secure. Ideally, review audits before you sign contracts.</strong></li>\r\n \t<li><strong>Positive reputation. </strong><strong>Customer trust is absolutely key. Do you trust that you can rely on this cloud provider to continue to grow and support your evolving DevOps needs?</strong></li>\r\n \t<li><strong>Service Level Agreements (SLAs).</strong> What level of service do you require? Typically cloud providers offer various levels of uptime reliability based on cost. For example, 99.9 percent uptime will be significantly cheaper than 99.999 percent uptime.</li>\r\n \t<li><strong>Metrics and monitoring.</strong> What types of application insights, monitoring, and telemetry does the vendor supply? Be sure that you can gain an appropriate level of insight into your systems in as close to real-time as possible.</li>\r\n</ul>\r\nFinally, ensure the cloud provider you choose has excellent technical capabilities that provide services that meet your specific <a href=\"https://www.dummies.com/business/operations-management/devops-for-dummies-cheat-sheet/\">DevOps</a> needs. Generally, look for\r\n<ul>\r\n \t<li>Compute capabilities</li>\r\n \t<li>Storage solutions</li>\r\n \t<li>Deployment features</li>\r\n \t<li>Logging and monitoring</li>\r\n \t<li>Friendly user interfaces</li>\r\n</ul>\r\nYou should also confirm the capability to implement a hybrid cloud solution in case you need to at some point, as well as to make HTTP calls to other APIs and services.\r\n\r\nThe three major cloud providers are Google Cloud Platform (GCP), Microsoft Azure, and Amazon web Services (AWS). You can also find smaller cloud providers and certainly a number of private cloud providers, but the bulk of what you need to know comes from comparing the public cloud providers.\r\n<h2 id=\"tab1\" >Amazon Web Services (AWS)</h2>\r\nAs do the other major public cloud providers, <a href=\"https://www.dummies.com/programming/cloud-computing/amazon-web-services/quick-overview-amazon-web-services/\">AWS</a> provides on-demand computing through a pay-as-you-go subscription. Users of AWS can subscribe to any number of services and computing resources. Amazon is the current market leader among cloud providers, holding the majority of cloud subscribers.\r\n\r\nIt offers a robust set of features and services in regions throughout the world. Two of the most well-known services are Amazon Elastic Compute Cloud (EC2) and Amazon Simple Storage Service (Amazon S3). As with other cloud providers, services are accessed and infrastructure is provisioned through APIs.\r\n<h2 id=\"tab2\" >Microsoft Azure</h2>\r\nBefore Microsoft launched this cloud provider as <a href=\"https://www.dummies.com/software/microsoft-office/can-microsoft-azure/\">Microsoft Azure</a>, it was called Windows Azure. Microsoft designed it to do just what the name implies — serve as a cloud provider for traditionally Windows IT organizations. But as the market became more competitive and Microsoft started to better understand the engineering landscape, Azure adapted, grew, and evolved.\r\n\r\nAlthough still arguably less robust than AWS, Azure is a well-rounded cloud provider focused on user experience. Through various product launches and acquisitions — notably GitHub — Microsoft has invested heavily in Linux infrastructure, which has enabled it to provide more robust services to a wider audience.\r\n<h2 id=\"tab3\" >Google Cloud Platform (GCP)</h2>\r\nThe <a href=\"https://www.dummies.com/web-design-development/other-web-software/work-google-cloud-platform-projects/\">Google Cloud Platform</a> (GCP) has the least market share of the three major public cloud providers but offers a substantial set of cloud services throughout nearly two dozen geographic regions.\r\n\r\nPerhaps the most appealing aspect of GCP is that it offers users the same infrastructure Google uses internally. This infrastructure includes extremely powerful computing, storage, analytics, and machine learning services. Depending on your specific product, GCP may have specialized tools that are lacking (or less mature) in AWS and Azure.\r\n<h2 id=\"tab4\" >Finding DevOps tools and services in the cloud</h2>\r\nLiterally hundreds of tools and services are at your disposal through the major cloud providers. Those tools and services are generally separated into the following categories:\r\n<ul>\r\n \t<li>Compute</li>\r\n \t<li>Storage</li>\r\n \t<li>Networking</li>\r\n \t<li>Resource management</li>\r\n \t<li>Cloud Artificial Intelligence (AI)</li>\r\n \t<li>Identity</li>\r\n \t<li>Security</li>\r\n \t<li>Serverless</li>\r\n \t<li>IoT</li>\r\n</ul>\r\nFollowing is a list of the most commonly used services across all three of the major cloud providers. These services include app deployment, virtual machine (VM) management, container orchestration, serverless functions, storage, and databases.\r\n\r\nAdditional services are included, such as identity management, block storage, private cloud, secrets storage, and more. It’s far from an exhaustive list but can serve as a solid foundation for you as you begin to research your options and get a feel for what differentiates the cloud providers.\r\n<ul>\r\n \t<li><strong>App deployment:</strong> Platform as a Service (PaaS) solution for deploying applications in a variety of languages including Java, .NET, Python, Node.js, C#, Ruby, and Go\r\n<ul>\r\n \t<li><strong>Azure:</strong> Azure Cloud Services</li>\r\n \t<li><strong>AWS:</strong> AWS Elastic Beanstalk</li>\r\n \t<li><strong>GCP:</strong> Google App Engine</li>\r\n</ul>\r\n</li>\r\n</ul>\r\n<ul>\r\n \t<li><strong>Virtual machine (VM) management:</strong> Infrastructure as a Service (IaaS) option for running virtual machines (VMs) with Linux or Windows\r\n<ul>\r\n \t<li><strong>Azure:</strong> Azure Virtual Machines</li>\r\n \t<li><strong>AWS:</strong> Amazon EC2</li>\r\n \t<li><strong>GCP:</strong> Google Compute Engine</li>\r\n</ul>\r\n</li>\r\n</ul>\r\n<ul>\r\n \t<li><strong>Managed Kubernetes:</strong> Enables better container management via the popular orchestrator Kubernetes\r\n<ul>\r\n \t<li><strong>Azure:</strong> Azure Kubernetes Service (AKS)</li>\r\n \t<li><strong>AWS:</strong> Amazon Elastic Container Service (ECS) for Kubernetes</li>\r\n \t<li><strong>GCP:</strong> Google Kubernetes Engine</li>\r\n</ul>\r\n</li>\r\n</ul>\r\n<ul>\r\n \t<li><strong>Serverless:</strong> Enables users to create logical workflows of serverless functions\r\n<ul>\r\n \t<li><strong>Azure:</strong> Azure Functions</li>\r\n \t<li><strong>AWS:</strong> AWS Lambda</li>\r\n \t<li><strong>GCP:</strong> Google Cloud Functions</li>\r\n</ul>\r\n</li>\r\n</ul>\r\n<ul>\r\n \t<li><strong>Cloud storage:</strong> Unstructured object storage with caching\r\n<ul>\r\n \t<li><strong>Azure:</strong> Azure Blob Storage</li>\r\n \t<li><strong>AWS:</strong> Amazon S3</li>\r\n \t<li><strong>GCP:</strong> Google Cloud Storage</li>\r\n</ul>\r\n</li>\r\n</ul>\r\n<ul>\r\n \t<li><strong>Databases:</strong> SQL and NoSQL databases, on demand\r\n<ul>\r\n \t<li><strong>Azure:</strong> Azure Cosmos DB</li>\r\n \t<li><strong>AWS:</strong> Amazon Relational Database Service (RDS) and Amazon DynamoDB (NoSQL)</li>\r\n \t<li><strong>GCP:</strong> Google Cloud SQL and Google Cloud BigTable (NoSQL)</li>\r\n</ul>\r\n</li>\r\n</ul>\r\nAs you explore the three major cloud providers, you notice a long list of services. You may feel overwhelmed by the hundreds of options at your disposal. If, by chance, you can’t find what you need, the marketplace will likely provide something similar. The marketplace is where independent developers offer services that plug into the cloud — hosted by Azure, AWS or GCP.\r\n\r\nThe table below lists additional services provided by most, if not all, cloud providers.\r\n<table><caption>Common Cloud Services</caption>\r\n<tbody>\r\n<tr>\r\n<td width=\"319\">Service Category</td>\r\n<td width=\"319\">Functionality</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Block storage</strong></td>\r\n<td width=\"319\">Data storage used in storage-area network (SAN) environments. Block storage is similar to storing data on a hard drive.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Virtual Private Cloud (VPC)</strong></td>\r\n<td width=\"319\">Logically isolated, shared computing resources.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Firewall</strong></td>\r\n<td width=\"319\">Network security that controls traffic.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Content Delivery Network (CDN)</strong></td>\r\n<td width=\"319\">Content delivery based on the location of the user. Typically utilizes caching, load balancing and analytics.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Domain Name System (DNS)</strong></td>\r\n<td width=\"319\">Translator of domain names to IP addresses for browsers.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Single Sign-On (SSO)</strong></td>\r\n<td width=\"319\">Access control to multiple systems or applications using the same credentials. If you’ve logged into an independent application with your Google, Twitter or GitHub credentials, you’ve used SSO.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Identity and Access Management (IAM)</strong></td>\r\n<td width=\"319\">Role-based user access management. Pre-determined roles have access to a set group of features; users are assigned roles.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Telemetry, monitoring and logging</strong></td>\r\n<td width=\"319\">Tools to provide application insights on performance, server load, memory consumption and more.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Deployments</strong></td>\r\n<td width=\"319\">Configuration, infrastructure and release pipeline management tools.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Cloud shell</strong></td>\r\n<td width=\"319\">Shell access from a command-line interface (CLI) within the browser.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Secrets storage</strong></td>\r\n<td width=\"319\">Secure storage of keys, tokens, passwords, certificates and other secrets.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Message Queues</strong></td>\r\n<td width=\"319\">Dynamically scaled message brokers.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>Machine Learning (ML)</strong></td>\r\n<td width=\"319\">Deep learning frameworks and tools for data scientists.</td>\r\n</tr>\r\n<tr>\r\n<td width=\"319\"><strong>IoT</strong></td>\r\n<td width=\"319\">Device connection and management.</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n<h1></h1>","blurb":"","authors":[{"authorId":30388,"name":"Emily Freeman","slug":"emily-freeman","description":" <p><b>Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren&#39;t technical, but human. She&#39;s worked with both cutting&#45;edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/30388"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":284787,"title":"What Your Society Says About You","slug":"what-your-society-says-about-you","categoryList":["academics-the-arts","humanities"],"_links":{"self":"/articles/284787"}},{"articleId":230957,"title":"Nikon D3400 For Dummies Cheat Sheet","slug":"nikon-d3400-dummies-cheat-sheet","categoryList":["home-auto-hobbies","photography"],"_links":{"self":"/articles/230957"}},{"articleId":208741,"title":"Kabbalah For Dummies Cheat Sheet","slug":"kabbalah-for-dummies-cheat-sheet","categoryList":["body-mind-spirit","religion-spirituality","kabbalah"],"_links":{"self":"/articles/208741"}},{"articleId":299133,"title":"ChatGPT For Dummies Cheat Sheet","slug":"chatgpt-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"/articles/299133"}}],"inThisArticle":[{"label":"Amazon Web Services (AWS)","target":"#tab1"},{"label":"Microsoft Azure","target":"#tab2"},{"label":"Google Cloud Platform (GCP)","target":"#tab3"},{"label":"Finding DevOps tools and services in the cloud","target":"#tab4"}],"relatedArticles":{"fromBook":[{"articleId":265680,"title":"Using DevOps To Improve Engineering","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"How To Automate DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}},{"articleId":265656,"title":"Moving to DevOps Processes: From a Line to a Circuit","slug":"moving-to-devops-processes-from-a-line-to-a-circuit","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265656"}},{"articleId":265651,"title":"Interview Techniques for Building a DevOps Team: Getting the Right Technical Skills","slug":"interview-techniques-for-building-a-devops-team-getting-the-right-technical-skills","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265651"}}],"fromCategory":[{"articleId":301736,"title":"Building DIY Websites For Dummies Cheat Sheet","slug":"building-diy-websites-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/301736"}},{"articleId":299575,"title":"HTML, CSS, & JavaScript All-in-One For Dummies Cheat Sheet","slug":"html-css-javascript-all-in-one-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/299575"}},{"articleId":265680,"title":"Using DevOps To Improve Engineering","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"How To Automate DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281681,"slug":"devops-for-dummies","isbn":"9781394159574","categoryList":["technology","programming-web-design","general-programming-web-design"],"amazon":{"default":"https://www.amazon.com/gp/product/1394159579/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1394159579/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1394159579-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1394159579/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1394159579/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/devops-for-dummies-cover-9781119552222-203x255.jpg","width":203,"height":255},"title":"DevOps For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><p><b><b data-author-id=\"30388\">Emily Freeman</b></b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren&#39;t technical, but human. She&#39;s worked with both cutting&#45;edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events.</p>","authors":[{"authorId":30388,"name":"Emily Freeman","slug":"emily-freeman","description":" <p><b>Emily Freeman</b> is a technologist and storyteller who helps engineering teams improve their velocity. She believes the biggest challenges facing engineers aren&#39;t technical, but human. She&#39;s worked with both cutting&#45;edge startups and some of the largest technology providers in the world. Emily is currently a Senior Cloud Advocate at Microsoft and a frequent keynote speaker at technology events. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/30388"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394159574&quot;]}]\" id=\"du-slot-6658e91630847\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394159574&quot;]}]\" id=\"du-slot-6658e91631107\"></div></div>"},"articleType":{"articleType":"Articles","articleList":null,"content":null,"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"Two years","lifeExpectancySetFrom":"2023-07-10T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":265672},{"headers":{"creationTime":"2016-03-27T16:54:26+00:00","modifiedTime":"2024-04-12T17:36:17+00:00","timestamp":"2024-04-12T18:01:11+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"SQL","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33608"},"slug":"sql","categoryId":33608}],"title":"SQL All-in-One For Dummies Cheat Sheet","strippedTitle":"sql all-in-one for dummies cheat sheet","slug":"sql-all-in-one-for-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"Get to know the basics of SQL development, including information on the set and value functions and using the WHERE clause.","noIndex":0,"noFollow":0},"content":"SQL is a popular and useful programming language. You can make SQL even more useful if you know the phases of SQL development, the criteria for normal forms, the data types used by SQL, a little bit about set and value functions, as well as some tips on how to filter tables with WHERE clauses.","description":"SQL is a popular and useful programming language. You can make SQL even more useful if you know the phases of SQL development, the criteria for normal forms, the data types used by SQL, a little bit about set and value functions, as well as some tips on how to filter tables with WHERE clauses.","blurb":"","authors":[{"authorId":9559,"name":"Allen G. Taylor","slug":"allen-g-taylor","description":" <p> <b>This All-in-One draws on the work of top authors in the <i>For Dummies </i>series who’ve created books designed to help data professionals do their work. The experts are Jack Hyman, Luca Massaron, Paul McFedries, John Paul Mueller, Lillian Pierson, Jonathan Reichental PhD, Joseph Schmuller PhD, Alan Simon, and Allen G. Taylor.</b> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9559"}},{"authorId":10600,"name":"Richard Blum","slug":"richard-blum","description":" <p><b>Richard Blum</b> has more than 30 years of experience as a systems administrator and programmer. He teaches online courses in PHP, JavaScript, HTML5, and CSS3 programming, and authored the latest edition of <i>Linux For Dummies</i>. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/10600"}}],"primaryCategoryTaxonomy":{"categoryId":33608,"title":"SQL","slug":"sql","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33608"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":284787,"title":"What Your Society Says About You","slug":"what-your-society-says-about-you","categoryList":["academics-the-arts","humanities"],"_links":{"self":"/articles/284787"}},{"articleId":230957,"title":"Nikon D3400 For Dummies Cheat Sheet","slug":"nikon-d3400-dummies-cheat-sheet","categoryList":["home-auto-hobbies","photography"],"_links":{"self":"/articles/230957"}},{"articleId":208741,"title":"Kabbalah For Dummies Cheat Sheet","slug":"kabbalah-for-dummies-cheat-sheet","categoryList":["body-mind-spirit","religion-spirituality","kabbalah"],"_links":{"self":"/articles/208741"}},{"articleId":299133,"title":"ChatGPT For Dummies Cheat Sheet","slug":"chatgpt-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"/articles/299133"}}],"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":188699,"title":"SQL Data Types","slug":"sql-data-types","categoryList":["technology","programming-web-design","sql"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/188699"}},{"articleId":188700,"title":"SQL Criteria for Normal Forms","slug":"sql-criteria-for-normal-forms","categoryList":["technology","programming-web-design","sql"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/188700"}}],"fromCategory":[{"articleId":260869,"title":"Using SQL Constraints Within Transactions","slug":"using-sql-constraints-within-transactions","categoryList":["technology","programming-web-design","sql"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/260869"}},{"articleId":260866,"title":"How to Use the SQL Union Join","slug":"how-to-use-the-sql-union-join","categoryList":["technology","programming-web-design","sql"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/260866"}},{"articleId":260727,"title":"How to Declare a SQL Cursor","slug":"how-to-declare-a-sql-cursor","categoryList":["technology","programming-web-design","sql"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/260727"}},{"articleId":260720,"title":"What is SQL?","slug":"what-is-sql","categoryList":["technology","programming-web-design","sql"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/260720"}},{"articleId":260678,"title":"ODBC: Interfacing with SQL Databases","slug":"odbc-interfacing-with-sql-databases","categoryList":["technology","programming-web-design","sql"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/260678"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281870,"slug":"sql-all-in-one-for-dummies-3rd-edition","isbn":"9781119569619","categoryList":["technology","programming-web-design","sql"],"amazon":{"default":"https://www.amazon.com/gp/product/1119569613/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1119569613/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1119569613-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1119569613/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1119569613/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/sql-all-in-one-for-dummies-3rd-edition-cover-9781119569619-203x255.jpg","width":203,"height":255},"title":"SQL All-in-One For Dummies","testBankPinActivationLink":"","bookOutOfPrint":false,"authorsInfo":"<p><b data-author-id=\"9559\">Allen G. Taylor</b> is a 40-year veteran of the computer industry and the author of more than 40 books, including <i>SQL For Dummies</i> and <i>Database Development For Dummies</i>. For the latest news on Allen's activities, check out his online courses (at pioneer-academy1.teachable.com) and his blog (at www.allengtaylor.com). You can contact Allen at [email protected]. </p>","authors":[{"authorId":9559,"name":"Allen G. Taylor","slug":"allen-g-taylor","description":" <p> <b>This All-in-One draws on the work of top authors in the <i>For Dummies </i>series who’ve created books designed to help data professionals do their work. The experts are Jack Hyman, Luca Massaron, Paul McFedries, John Paul Mueller, Lillian Pierson, Jonathan Reichental PhD, Joseph Schmuller PhD, Alan Simon, and Allen G. Taylor.</b> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9559"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;sql&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119569619&quot;]}]\" id=\"du-slot-661976e795fc7\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;sql&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781119569619&quot;]}]\" id=\"du-slot-661976e796599\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":188695,"title":"Phases of SQL System Development","slug":"phases-of-sql-system-development","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/188695"}},{"articleId":188700,"title":"SQL Criteria for Normal Forms","slug":"sql-criteria-for-normal-forms","categoryList":["technology","programming-web-design","sql"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/188700"}},{"articleId":188699,"title":"SQL Data Types","slug":"sql-data-types","categoryList":["technology","programming-web-design","sql"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/188699"}},{"articleId":188693,"title":"SQL Value Functions","slug":"sql-value-functions","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/188693"}},{"articleId":188692,"title":"SQL Set Functions","slug":"sql-set-functions","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/188692"}},{"articleId":188697,"title":"SQL WHERE Clause Predicates","slug":"sql-where-clause-predicates","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/188697"}}],"content":[{"title":"Phases of SQL system development","thumb":null,"image":null,"content":"<p>In developing any system, you start at the beginning and go through to the end, and it’s no different with SQL. The following list shows you what to consider at each phase of the SQL development life cycle:</p>\n<ul>\n<li><strong>Definition phase:</strong> Precisely define the problem to be solved, its magnitude, and who will work on it.</li>\n<li><strong>Requirements phase: </strong>Develop a detailed description of exactly what the development effort will produce. Gather all relevant information and put it into a requirements document (Statement of Requirements). Get client signoff.</li>\n<li><strong>Evaluation phase:</strong> Determine exactly how you will meet the requirements. What tools will you use? How will you deploy your development team? Determine whether the job is doable within time and budget constraints.</li>\n<li><strong>Design phase:</strong> Create a database model and then design a database and database application that satisfy the terms of the requirements document.</li>\n<li><strong>Implementation phase:</strong> Build the database and the database application. Include copious documentation within the code and in external documents.</li>\n<li><strong>Final documentation and testing phase:</strong> Give the database and application a tough workout. Hit the system with every conceivable input condition and a few inconceivable ones. Try to overload it. See where it breaks. When it breaks, send it back to the implementers or even back to the designers. Document everything.</li>\n<li><strong>Maintenance phase:</strong> Fix latent bugs as they arise. Provide updates and enhancements called for by the client.</li>\n</ul>\n"},{"title":"SQL criteria for normal forms","thumb":null,"image":null,"content":"<p>In SQL, normal forms are defining characteristics of relational databases. SQL forms get classified according to the types of modification anomalies they&#8217;re subject to. First, second, and third normal forms (1NF, 2NF, 3NF) serve as remedies to the three main sources of modification anomalies.</p>\n<p>The normal forms are nested in the sense that a table that&#8217;s in 2NF is automatically also in 1NF. Similarly, a table in 3NF is automatically in 2NF, and so on. For most practical applications, putting a database in 3NF is sufficient to ensure a high degree of integrity. To be absolutely sure of its integrity, you must put the database into DK/NF.</p>\n<p>The following lists lay out the criteria for each form:</p>\n<p><b>First Normal Form (1NF):</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">Table must be two-dimensional, with rows and columns.</p>\n</li>\n<li>\n<p class=\"first-para\">Each row contains data that pertains to one thing or one portion of a thing.</p>\n</li>\n<li>\n<p class=\"first-para\">Each column contains data for a single attribute of the thing being described.</p>\n</li>\n<li>\n<p class=\"first-para\">Each cell (intersection of row and column) of the table must be single-valued.</p>\n</li>\n<li>\n<p class=\"first-para\">All entries in a column must be of the same kind.</p>\n</li>\n<li>\n<p class=\"first-para\">Each column must have a unique name.</p>\n</li>\n<li>\n<p class=\"first-para\">No two rows may be identical.</p>\n</li>\n<li>\n<p class=\"first-para\">The order of the columns and of the rows does not matter.</p>\n</li>\n</ul>\n<p><b>Second Normal Form (2NF):</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">Table must be in first normal form (1NF).</p>\n</li>\n<li>\n<p class=\"first-para\">All non-key attributes (columns) must be dependent on the entire key.</p>\n</li>\n</ul>\n<p><b>Third Normal Form (3NF):</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">Table must be in second normal form (2NF).</p>\n</li>\n<li>\n<p class=\"first-para\">Table has no transitive dependencies.</p>\n</li>\n</ul>\n<p><b>Domain-Key Normal Form (DK/NF):</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">Every constraint on the table is a logical consequence of the definition of keys and domains.</p>\n</li>\n</ul>\n"},{"title":"SQL data types","thumb":null,"image":null,"content":"<p>Depending on their histories, different SQL implementations support a variety of data types. The SQL specification recognizes nine predefined general types, shown in the lists below</p>\n<p><b>Exact numerics:</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">INTEGER</p>\n</li>\n<li>\n<p class=\"first-para\">SMALLINT</p>\n</li>\n<li>\n<p class=\"first-para\">BIGINT</p>\n</li>\n<li>\n<p class=\"first-para\">NUMERIC</p>\n</li>\n<li>\n<p class=\"first-para\">DECIMAL</p>\n</li>\n<li>DECFLOAT</li>\n</ul>\n<p><b>Approximate numerics:</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">REAL</p>\n</li>\n<li>\n<p class=\"first-para\">DOUBLE PRECISION</p>\n</li>\n<li>\n<p class=\"first-para\">FLOAT</p>\n</li>\n</ul>\n<p><b>Boolean:</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">BOOLEAN</p>\n</li>\n</ul>\n<p><b>Character strings:</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">CHARACTER (CHAR)</p>\n</li>\n<li>\n<p class=\"first-para\">CHARACTER VARYING (VARCHAR)</p>\n</li>\n<li>\n<p class=\"first-para\">NATIONAL CHARACTER (NCHAR)</p>\n</li>\n<li>\n<p class=\"first-para\">NATIONAL CHARACTER VARYING (NVARCHAR)</p>\n</li>\n</ul>\n<p><b>Datetimes:</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">DATE</p>\n</li>\n<li>\n<p class=\"first-para\">TIME</p>\n</li>\n<li>\n<p class=\"first-para\">TIMESTAMP</p>\n</li>\n<li>\n<p class=\"first-para\">TIME WITH TIMEZONE</p>\n</li>\n<li>\n<p class=\"first-para\">TIMESTAMP WITH TIMEZONE</p>\n</li>\n</ul>\n<p><b>Intervals:</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">INTERVAL DAY</p>\n</li>\n<li>\n<p class=\"first-para\">INTERVAL YEAR</p>\n</li>\n</ul>\n<p><b>Large objects:</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">BLOB</p>\n</li>\n<li>\n<p class=\"first-para\">CLOB</p>\n</li>\n</ul>\n<p><b>Collection types:</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">ARRAY</p>\n</li>\n<li>\n<p class=\"first-para\">MULTISET</p>\n</li>\n</ul>\n<p><b>Other types:</b></p>\n<ul class=\"level-one\">\n<li>\n<p class=\"first-para\">ROW</p>\n</li>\n<li>\n<p class=\"first-para\">XML</p>\n</li>\n<li>JSON</li>\n</ul>\n"},{"title":"SQL value functions","thumb":null,"image":null,"content":"<p>These SQL value functions perform operations on data. There are all kinds of operations that could conceivably be performed on data items, but these are some that are needed most often.</p>\n<h3>String value functions</h3>\n<table>\n<tbody>\n<tr>\n<th>Function</th>\n<th>Effect</th>\n</tr>\n<tr>\n<td>SUBSTRING</td>\n<td>Extracts a substring from a source string</td>\n</tr>\n<tr>\n<td>SUBSTRING SIMILAR</td>\n<td>Extracts a substring from a source string, using POSIX-based<br />\nregular expressions</td>\n</tr>\n<tr>\n<td>SUBSTRING_REGEX</td>\n<td>Extracts from a string the first occurrence of an XQuery<br />\nregular expression pattern and returns one occurrence of the<br />\nmatching substring</td>\n</tr>\n<tr>\n<td>TRANSLATE_REGEX</td>\n<td>Extracts from a string the first or every occurrence of an<br />\nXQuery regular expression pattern and replaces it or them with an XQuery replacement string</td>\n</tr>\n<tr>\n<td>UPPER</td>\n<td>Converts a character string to all uppercase</td>\n</tr>\n<tr>\n<td>LOWER</td>\n<td>Converts a character string to all lowercase</td>\n</tr>\n<tr>\n<td>BTRIM</td>\n<td>Trims multiple characters both before and after the text</td>\n</tr>\n<tr>\n<td>LTRIM</td>\n<td>Trims multiple characters to the left of the text</td>\n</tr>\n<tr>\n<td>RTRIM</td>\n<td>Trims multiple characters to the right of the text</td>\n</tr>\n<tr>\n<td>TRIM</td>\n<td>Trims off leading or trailing blanks</td>\n</tr>\n<tr>\n<td>LPAD</td>\n<td>Adds padding characters to the left of the text</td>\n</tr>\n<tr>\n<td>RPAD</td>\n<td>Adds padding characters to the right of the text</td>\n</tr>\n<tr>\n<td>TRANSLATE</td>\n<td>Transforms a source string from one character set to<br />\nanother</td>\n</tr>\n<tr>\n<td>CONVERT</td>\n<td>Transforms a source string from one character set to<br />\nanother</td>\n</tr>\n</tbody>\n</table>\n<h3>Numeric value functions</h3>\n<table>\n<tbody>\n<tr>\n<th>Function</th>\n<th>Effect</th>\n</tr>\n<tr>\n<td>POSITION</td>\n<td>Returns the starting position of a target string within a<br />\nsource string</td>\n</tr>\n<tr>\n<td>CHARACTER_LENGTH</td>\n<td>Returns the number of characters in a string</td>\n</tr>\n<tr>\n<td>OCTET_LENGTH</td>\n<td>Returns the number of octets (bytes) in a character string</td>\n</tr>\n<tr>\n<td>EXTRACT</td>\n<td>Extracts a single field from a datetime or interval</td>\n</tr>\n</tbody>\n</table>\n<h3>Datetime value functions</h3>\n<table>\n<tbody>\n<tr>\n<th>Function</th>\n<th>Effect</th>\n</tr>\n<tr>\n<td>CURRENT_DATE</td>\n<td>Returns the current date</td>\n</tr>\n<tr>\n<td>CURRENT_TIME(p)</td>\n<td>Returns the current time; (p) is precision of seconds</td>\n</tr>\n<tr>\n<td>CURRENT_TIMESTAMP(p)</td>\n<td>Returns the current date and the current time; (p) is precision of seconds</td>\n</tr>\n</tbody>\n</table>\n"},{"title":"SQL set functions","thumb":null,"image":null,"content":"<p>The SQL set functions give you a quick answer to questions you may have about the characteristics of your data as a whole. How many rows does a table have? What is the highest value in the table? What is the lowest? These are the kinds of questions that the SQL set functions can answer for you.</p>\n<table>\n<tbody>\n<tr>\n<th>Function</th>\n<th>Effect</th>\n</tr>\n<tr>\n<td><code>COUNT</code></td>\n<td>Returns the number of rows in the specified table</td>\n</tr>\n<tr>\n<td><code>MAX</code></td>\n<td>Returns the maximum value that occurs in the specified able</td>\n</tr>\n<tr>\n<td><code>MIN</code></td>\n<td>Returns the minimum value that occurs in the specified table</td>\n</tr>\n<tr>\n<td><code>SUM</code></td>\n<td>Adds up the values in a specified column</td>\n</tr>\n<tr>\n<td><code>AVG</code></td>\n<td>Returns the average of all the values in the specified column</td>\n</tr>\n<tr>\n<td><code>ANY_VALUE</code></td>\n<td>Returns a random value from a specified set of data</td>\n</tr>\n<tr>\n<td><code>GREATEST</code></td>\n<td>Returns the largest value from a specified set of data</td>\n</tr>\n<tr>\n<td><code>LEAST</code></td>\n<td>Returns the smallest value from a specified set of data</td>\n</tr>\n<tr>\n<td><code>LISTAGG</code></td>\n<td>Transforms values from a group of rows into a delimited string</td>\n</tr>\n</tbody>\n</table>\n<h3>Trigonometric and logarithmic functions</h3>\n<p><code>sin</code>, <code>cos</code>, <code>tan</code>, <code>asin</code>, <code>acos</code>, <code>atan</code>, <code>sinh</code>, <code>cosh</code>, <code>tanh</code>, <code>log(&lt;base&gt;, &lt;value&gt;)</code>, <code>log10(&lt;value&gt;)</code>. <code>ln( &lt;value&gt;)</code></p>\n<h3>JSON constructor functions</h3>\n<p><code>JSON_OBJECT</code></p>\n<p><code>JSON_ARRAY</code></p>\n<p><code>JSON_OBJECTAGG</code></p>\n<p><code>JSON_ARRAYAGG</code></p>\n<h3>JSON query functions</h3>\n<p><code>JSON_EXISTS</code></p>\n<p><code>JSON_VALUE</code></p>\n<p><code>JSON_QUERY</code></p>\n<p><code>JSON_TABLE</code></p>\n"},{"title":"SQL WHERE clause predicates","thumb":null,"image":null,"content":"<p>Predicates boil down to either a TRUE or a FALSE result. You can filter out unwanted rows from the result of an SQL query by applying a WHERE clause whose predicate excludes the unwanted rows.</p>\n<h3>Comparison predicates</h3>\n<table>\n<tbody>\n<tr>\n<td>=</td>\n<td>Equal</td>\n</tr>\n<tr>\n<td>&lt;&gt;</td>\n<td>Not equal</td>\n</tr>\n<tr>\n<td>&lt;</td>\n<td>Less than</td>\n</tr>\n<tr>\n<td>&lt;=</td>\n<td>Less than or equal</td>\n</tr>\n<tr>\n<td>&gt;</td>\n<td>Greater than</td>\n</tr>\n<tr>\n<td>&gt;=</td>\n<td>Greater than or equal</td>\n</tr>\n</tbody>\n</table>\n<h3>Other predicates</h3>\n<table>\n<tbody>\n<tr>\n<td>ALL</td>\n<td>BETWEEN</td>\n</tr>\n<tr>\n<td>DISTINCT</td>\n<td>EXISTS</td>\n</tr>\n<tr>\n<td>IN</td>\n<td>LIKE</td>\n</tr>\n<tr>\n<td>MATCH</td>\n<td>NOT IN</td>\n</tr>\n<tr>\n<td>NOT LIKE</td>\n<td>NULL</td>\n</tr>\n<tr>\n<td>OVERLAPS</td>\n<td>SOME, ANY</td>\n</tr>\n<tr>\n<td>UNIQUE</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"}],"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"Two years","lifeExpectancySetFrom":"2024-04-12T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":208690},{"headers":{"creationTime":"2019-05-15T17:19:50+00:00","modifiedTime":"2024-04-12T14:02:57+00:00","timestamp":"2024-04-12T15:01:11+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"Python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"},"slug":"python","categoryId":33606}],"title":"Python All-in-One For Dummies Cheat Sheet","strippedTitle":"python all-in-one for dummies cheat sheet","slug":"python-all-in-one-for-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"Learn about Python operators, Python data types, and Python functions, which are all important parts of this flexible programming language.","noIndex":0,"noFollow":0},"content":"Python is a flexible programming language that has become increasingly popular in the past few years. This cheat sheet is designed to give you a handy resource for common Python data types, Python operators, and Python functions. It includes Python data types, operators, special characters, f-strings, and functions for working with robots.","description":"Python is a flexible programming language that has become increasingly popular in the past few years. This cheat sheet is designed to give you a handy resource for common Python data types, Python operators, and Python functions. It includes Python data types, operators, special characters, f-strings, and functions for working with robots.","blurb":"","authors":[{"authorId":26710,"name":"John Shovic","slug":"john-shovic","description":"John Shovic, PhD, is a computer science faculty member at the University of Idaho specializing in robotics and artificial intelligence.","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/26710"}},{"authorId":10199,"name":"Alan Simpson","slug":"alan-simpson","description":" <p><b>John Shovic, PhD,</b> is a computer science faculty member at the University of Idaho specializing in robotics and artificial intelligence.</p> <p><b>Alan Simpson</b> is a web development professional who has published more than 100 articles and books on technology.</p> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/10199"}}],"primaryCategoryTaxonomy":{"categoryId":33606,"title":"Python","slug":"python","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33606"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":284787,"title":"What Your Society Says About You","slug":"what-your-society-says-about-you","categoryList":["academics-the-arts","humanities"],"_links":{"self":"/articles/284787"}},{"articleId":230957,"title":"Nikon D3400 For Dummies Cheat Sheet","slug":"nikon-d3400-dummies-cheat-sheet","categoryList":["home-auto-hobbies","photography"],"_links":{"self":"/articles/230957"}},{"articleId":208741,"title":"Kabbalah For Dummies Cheat Sheet","slug":"kabbalah-for-dummies-cheat-sheet","categoryList":["body-mind-spirit","religion-spirituality","kabbalah"],"_links":{"self":"/articles/208741"}},{"articleId":299133,"title":"ChatGPT For Dummies Cheat Sheet","slug":"chatgpt-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"/articles/299133"}}],"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":264919,"title":"How to Define and Use Python Lists","slug":"how-to-define-and-use-python-lists","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264919"}},{"articleId":264911,"title":"How to Use Lambda Functions in Python","slug":"how-to-use-lambda-functions-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264911"}},{"articleId":264906,"title":"Your Guide to the Python Standard Library","slug":"your-guide-to-the-python-standard-library","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264906"}},{"articleId":264894,"title":"A Beginner’s Guide to Python Versions","slug":"a-beginners-guide-to-python-versions","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264894"}},{"articleId":264888,"title":"How to Build a Simple Neural Network in Python","slug":"how-to-build-a-simple-neural-network-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264888"}}],"fromCategory":[{"articleId":264919,"title":"How to Define and Use Python Lists","slug":"how-to-define-and-use-python-lists","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264919"}},{"articleId":264911,"title":"How to Use Lambda Functions in Python","slug":"how-to-use-lambda-functions-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264911"}},{"articleId":264906,"title":"Your Guide to the Python Standard Library","slug":"your-guide-to-the-python-standard-library","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264906"}},{"articleId":264894,"title":"A Beginner’s Guide to Python Versions","slug":"a-beginners-guide-to-python-versions","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264894"}},{"articleId":264888,"title":"How to Build a Simple Neural Network in Python","slug":"how-to-build-a-simple-neural-network-in-python","categoryList":["technology","programming-web-design","python"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/264888"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281833,"slug":"python-all-in-one-for-dummies","isbn":"9781394236152","categoryList":["technology","programming-web-design","python"],"amazon":{"default":"https://www.amazon.com/gp/product/1394236158/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1394236158/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1394236158-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1394236158/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1394236158/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/python-all-in-one-for-dummies-cover-9781394236152-203x255.jpg","width":203,"height":255},"title":"Python All-in-One For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"","authors":[{"authorId":34775,"name":"John C. Shovic","slug":"john-c-shovic","description":" <p><b>John Shovic, PhD,</b> is a computer science faculty member at the University of Idaho specializing in robotics and artificial intelligence.</p> <p><b>Alan Simpson</b> is a web development professional who has published more than 100 articles and books on technology.</p> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/34775"}},{"authorId":10199,"name":"Alan Simpson","slug":"alan-simpson","description":" <p><b>John Shovic, PhD,</b> is a computer science faculty member at the University of Idaho specializing in robotics and artificial intelligence.</p> <p><b>Alan Simpson</b> is a web development professional who has published more than 100 articles and books on technology.</p> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/10199"}},{"authorId":34784,"name":"","slug":"","description":" <p><b>John Shovic, PhD,</b> is a computer science faculty member at the University of Idaho specializing in robotics and artificial intelligence.</p> <p><b>Alan Simpson</b> is a web development professional who has published more than 100 articles and books on technology.</p> ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/34784"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[{"title":"Pondering the Pi Possibilities","slug":"pondering-the-pi-possibilities","collectionId":297524}],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;python&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394236152&quot;]}]\" id=\"du-slot-66194cb7ec247\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;python&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394236152&quot;]}]\" id=\"du-slot-66194cb7ecae6\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":261606,"title":"Python Data Types","slug":"","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/261606"}},{"articleId":261610,"title":"Python Operators and Special Characters","slug":"","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/261610"}},{"articleId":261613,"title":"Python Functions for Working with Robots","slug":"","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/261613"}}],"content":[{"title":"Python data types","thumb":null,"image":null,"content":"<p>Python, like all programming languages, uses data types to classify types of information. The specific data type you use determines the values you can assign to it, how you can store it, and what you can do to it (including the operations you can perform on it).</p>\n<div class=\"figure-container\"><figure id=\"attachment_261607\" aria-labelledby=\"figcaption_attachment_261607\" class=\"wp-caption alignnone\" style=\"width: 545px\"><img loading=\"lazy\" class=\"size-full wp-image-261607\" src=\"https://www.dummies.com/wp-content/uploads/Python-3D.jpg\" alt=\"Python-3D\" width=\"535\" height=\"357\" /><figcaption id=\"figcaption_attachment_261607\" class=\"wp-caption-text\">Source: ©supimol kumying / Shutterstock</figcaption></figure></div><div class=\"clearfix\"></div>\n<p>You deal with written information all the time and probably don’t think about the difference between numbers and text (that is, letters and words). But there’s a big difference between numbers and text in a computer because with numbers, you can do arithmetic (add, subtract, multiple, divide). For example, everybody knows that 1+1 = 2. The same doesn’t apply to letters and words. The expression A+A doesn’t necessary equal B or AA or anything else because unlike numbers, letters and words aren’t quantities. You can buy <em>12 apples</em> at the store, because 12 is a quantity, a number — a <em>scalar value</em> in programming jargon. You can’t really buy a <em>snorkel apples</em> because a snorkel is a thing, it’s not a quantity, number, or scalar value.</p>\n<p>Strings are sort of the opposite of numbers. With numbers, you can add, subtract, multiply, and divide because the numbers represent quantities. Strings are for just about everything else. Names, addresses, and all other kinds of text you see every day would be a <em>string</em> in Python (and for computers in general). It’s called a <em>string</em> because it’s a string of characters (letters, spaces, punctuation marks, maybe some numbers). To us, a string usually has some meaning, like a person’s name or address, but computers don’t have eyes to see with or brains to think with or any awareness that humans even exist, so if it’s not something on which you can do arithmetic, it’s just a string of characters.</p>\n<p>The following list shows the seven most common Python data types:</p>\n<ul>\n<li><strong><code>integer</code>:</strong> These are whole numbers, positive or negative (including 0). Example: <code>100</code>.</li>\n<li><strong><code>float</code>:</strong> Floating-point numbers are real numbers, rational or irrational. In most cases, this means numbers with decimal fractions. Example: <code>123.45</code>.</li>\n<li><strong><code>string</code>:</strong> Strings are sequences of characters, or text, enclosed in quotes. Example: <code>\"any text\"</code>.</li>\n<li><strong><code>boolean</code>:</strong> Can be one of two values, true or false. Example: <code>True </code>or <code>False</code>.</li>\n<li><strong><code>list</code>:</strong> An ordered sequence of elements. With a list, the order of the elements can be changed. Example: [<em><code>value1</code></em>, <em><code>value2</code></em>, &#8230; ].</li>\n<li><strong><code>tuple</code>:</strong> An unchangeable ordered sequence of elements. Example: (<em><code>value1</code></em>, <em><code>value2</code></em>, &#8230;).</li>\n<li><strong><code>dictionary</code>:</strong> This is Python’s mapping data type. Dictionaries map keys to values as a means of storing information. Example: {<em><code>key1</code></em>:<em>value1</em>, <em><code>key2</code></em>:<em>value2</em>, &#8230;}.</li>\n</ul>\n"},{"title":"Python operators and special characters","thumb":null,"image":null,"content":"<p>With Python and for computers in general it helps to think of information as being one of the following data types: number, string, or Boolean. You also use computers to <em>operate</em> on that information, meaning to do any necessary math or comparisons or searches or whatever to help you find information and organize it in a way that makes sense to you.</p>\n<p>Python offers many <a href=\"https://dummies-wp-admin.dummies.com/programming/python/beginning-programming-python-dummies-cheat-sheet/\">different operators</a> and special characters for working with and comparing types of information. Here we just summarize them all for future reference, without going into great detail.</p>\n<h2>Special Characters</h2>\n<table>\n<tbody>\n<tr>\n<td width=\"266\"><strong><code>#</code></strong></td>\n<td width=\"266\">comment</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>\"\"\"</code></strong></td>\n<td width=\"266\">string literal</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>\\n</code></strong></td>\n<td width=\"266\">new line</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>\\<em>char</em></code></strong></td>\n<td width=\"266\">escape character</td>\n</tr>\n</tbody>\n</table>\n<h2>Numeric Operators (in Order of Precedence)</h2>\n<table>\n<tbody>\n<tr>\n<td width=\"266\"><strong><code>()</code></strong></td>\n<td width=\"266\">grouping</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>**</code></strong></td>\n<td width=\"266\">exponent</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>–</code></strong></td>\n<td width=\"266\">negation</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>*</code></strong></td>\n<td width=\"266\">multiplication</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>/</code></strong></td>\n<td width=\"266\">division</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>%</code></strong></td>\n<td width=\"266\">modulus</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>//</code></strong></td>\n<td width=\"266\">floor division</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>+</code></strong></td>\n<td width=\"266\">addition</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>–</code></strong></td>\n<td width=\"266\">subtraction</td>\n</tr>\n</tbody>\n</table>\n<h2>Comparison Operators</h2>\n<table>\n<tbody>\n<tr>\n<td width=\"266\"><strong><code>==</code></strong></td>\n<td width=\"266\">equal</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>!=</code></strong></td>\n<td width=\"266\">not equal</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>&gt; </code></strong></td>\n<td width=\"266\">greater than</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>&lt; </code></strong></td>\n<td width=\"266\">less than</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>&gt;=</code></strong></td>\n<td width=\"266\">greater than or equal to</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>&lt;=</code></strong></td>\n<td width=\"266\">less than or equal to</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>and</code></strong></td>\n<td width=\"266\">logical and</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>or</code></strong></td>\n<td width=\"266\">logical or</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>not</code></strong></td>\n<td width=\"266\">logical not</td>\n</tr>\n</tbody>\n</table>\n<h2>f strings</h2>\n<table>\n<tbody>\n<tr>\n<td width=\"266\"><strong><em><code>number</code></em></strong></td>\n<td width=\"266\">width</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>.2f</code></strong></td>\n<td width=\"266\">1234.56</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>,.2f</code></strong></td>\n<td width=\"266\">1,234,56</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>.1%</code></strong></td>\n<td width=\"266\">6.5%</td>\n</tr>\n<tr>\n<td width=\"266\"><strong><code>:</code></strong></td>\n<td width=\"266\">align left</td>\n</tr>\n<tr>\n<td width=\"266\"><code>^</code></td>\n<td width=\"266\">center</td>\n</tr>\n</tbody>\n</table>\n<p>&nbsp;</p>\n"},{"title":"Python functions for working robots","thumb":null,"image":null,"content":"<p>The basic components of robots can be controlled with Python functions and can work together to accomplish robotic tasks. One way to do so is through the use of a python class file called <code>RobotInterface.py</code>. Here is a list of the functions that are defined in the <code>RobotInterface.py</code> library:</p>\n<ul>\n<li><strong>Utilities</strong></li>\n</ul>\n<p style=\"padding-left: 30px;\"><code>Color( red, green, blue, white = 0)</code></p>\n<p style=\"padding-left: 30px;\">Converts the provided red, green, blue color to a 24-bit color value. Each color component should be a value 0–255, where 0 is the lowest intensity and 255 is the highest intensity.</p>\n<p style=\"padding-left: 30px;\"><code>allLEDSOff()</code></p>\n<p style=\"padding-left: 30px;\">Turns all the LEDs off on the robot.</p>\n<p style=\"padding-left: 30px;\"><code>centerAllServos()</code></p>\n<p style=\"padding-left: 30px;\">Moves all servos to their center position.</p>\n<ul>\n<li><strong>Front LEDs</strong></li>\n</ul>\n<p style=\"padding-left: 30px;\"><code>set_Front_LED_On(colorLED)</code></p>\n<p style=\"padding-left: 30px;\">One of these constants: <code>RobotInterface.left_R</code>, <code>RobotInterface.left_G</code>, <code>RobotInterface.left_B</code>, <code>RobotInterface.right_R</code>, <code>RobotInterface.right_G</code>, <code>RobotInterface.right_B</code>.</p>\n<p style=\"padding-left: 30px;\"><code>set_Front_LED_Off(colorLED)</code></p>\n<p style=\"padding-left: 30px;\">One of these constants: <code>RobotInterface.left_R</code>, <code>RobotInterface.left_G</code>, <code>RobotInterface.left_B</code>, <code>RobotInterface.right_R</code>, <code>RobotInterface.right_G</code>, <code>RobotInterface.right_B</code>.</p>\n<ul>\n<li><strong>Strip LEDs</strong></li>\n</ul>\n<p style=\"padding-left: 30px;\"><code>rainbowCycle( wait_ms = 20, iterations = 3)</code></p>\n<p style=\"padding-left: 30px;\">Cycles the Pixel LEDs through the rainbow for at least three iterations.</p>\n<p style=\"padding-left: 30px;\"><code>colorWipe</code>( color)</p>\n<p style=\"padding-left: 30px;\">Changes all the Pixel LEDs to the same color.</p>\n<p style=\"padding-left: 30px;\"><code>setPixelColor( pixel, color, brightness)</code></p>\n<p style=\"padding-left: 30px;\">Sets an individual Pixel to a specific color; brightness is for the whole string.</p>\n<ul>\n<li><strong>Ultrasonic Sensor</strong></li>\n</ul>\n<p style=\"padding-left: 30px;\"><code>fetchUltraDistance()</code></p>\n<p style=\"padding-left: 30px;\">Returns the distance in front of the sensor in centimeters (cm).</p>\n<p style=\"padding-left: 30px;\"><code>motorForward( speed, delay)</code></p>\n<p style=\"padding-left: 30px;\">Moves the robot forward at <code>speed</code> (0–100) for <code>delay</code> seconds.</p>\n<p style=\"padding-left: 30px;\"><code>motorBackward( speed, delay)</code></p>\n<p style=\"padding-left: 30px;\">Moves the robot backwards at <code>speed</code> (0–100) for <code>delay</code> seconds.</p>\n<p style=\"padding-left: 30px;\"><code>stopMotor()</code></p>\n<p style=\"padding-left: 30px;\">Immediately stops the drive motor.</p>\n<ul>\n<li><strong>Head Turn Servo</strong></li>\n</ul>\n<p style=\"padding-left: 30px;\"><code>headTurnLeft()</code></p>\n<p style=\"padding-left: 30px;\">Turns head all the way left.</p>\n<p style=\"padding-left: 30px;\"><code>headTurnRight()</code></p>\n<p style=\"padding-left: 30px;\">Turns head all the way right.</p>\n<p style=\"padding-left: 30px;\"><code>headTurnMiddle()</code></p>\n<p style=\"padding-left: 30px;\">Turns the head to the middle.</p>\n<p style=\"padding-left: 30px;\"><code>headTurnPercent( percent)</code></p>\n<p style=\"padding-left: 30px;\">Turns the head as a percent 0–100, where 0 is all the way left and 100 is all the way right.</p>\n<ul>\n<li><strong>Head Tilt Servo</strong></li>\n</ul>\n<p style=\"padding-left: 30px;\"><code>headTiltDown()</code></p>\n<p style=\"padding-left: 30px;\">Tilts the head all the way down.</p>\n<p style=\"padding-left: 30px;\"><code>headTiltUp()</code></p>\n<p style=\"padding-left: 30px;\">Tilts the head all the way up.</p>\n<p style=\"padding-left: 30px;\"><code>headTiltMiddle()</code></p>\n<p style=\"padding-left: 30px;\">Tilts the head to the middle.</p>\n<p style=\"padding-left: 30px;\"><code>headTiltPercent( percent)</code></p>\n<p style=\"padding-left: 30px;\">Tilts the head as a percent 0–100, where 0 is all the way up and 100 is all the way down.</p>\n<ul>\n<li><strong>Front Wheel Servo</strong></li>\n</ul>\n<p style=\"padding-left: 30px;\"><code>wheelsLeft()</code></p>\n<p style=\"padding-left: 30px;\">Turns the wheels all the way to the left.</p>\n<p style=\"padding-left: 30px;\"><code>wheelsRight()</code></p>\n<p style=\"padding-left: 30px;\">Turns the wheels all the way to the right.</p>\n<p style=\"padding-left: 30px;\"><code>wheelsMiddle()</code></p>\n<p style=\"padding-left: 30px;\">Turns the wheels to the middle.</p>\n<p style=\"padding-left: 30px;\"><code>wheelsPercent(percent)</code></p>\n<p style=\"padding-left: 30px;\">Turns the wheels as a percent 0–100, where 0 is all the way left and 100 is all the way right.</p>\n"}],"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"One year","lifeExpectancySetFrom":"2024-04-12T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":261616},{"headers":{"creationTime":"2024-03-26T15:35:09+00:00","modifiedTime":"2024-03-26T15:35:09+00:00","timestamp":"2024-03-26T18:01:09+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"General Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"},"slug":"general-programming-web-design","categoryId":33610}],"title":"Building DIY Websites For Dummies Cheat Sheet","strippedTitle":"building diy websites for dummies cheat sheet","slug":"building-diy-websites-for-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"Unlock the secrets and best practices that web developers know and implement when building any quality website with this cheat sheet.","noIndex":0,"noFollow":0},"content":"If you want to build your own website from start to finish, this book serves as a great resource. It includes many secrets and best practices that web developers know and implement when building any quality website. This cheat sheet includes bits and pieces of what you'll <a href=\"/book/technology/programming-web-design/general-programming-web-design/building-diy-websites-for-dummies-301663/\" target=\"_blank\" rel=\"noopener\">find in the book</a>.","description":"If you want to build your own website from start to finish, this book serves as a great resource. It includes many secrets and best practices that web developers know and implement when building any quality website. This cheat sheet includes bits and pieces of what you'll <a href=\"/book/technology/programming-web-design/general-programming-web-design/building-diy-websites-for-dummies-301663/\" target=\"_blank\" rel=\"noopener\">find in the book</a>.","blurb":"","authors":[{"authorId":35385,"name":"Jennifer DeRosa","slug":"jennifer-derosa","description":" <p> <b>Jennifer DeRosa</b> is the founder of Toto Coaching, which walks the DIY website builder through the process of building a website from start to finish. Jennifer has been building websites since 1994. She formed her web development agency in 2001, growing it into a successful website development agency over two decades. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/35385"}}],"primaryCategoryTaxonomy":{"categoryId":33610,"title":"General Programming & Web Design","slug":"general-programming-web-design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33610"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":284787,"title":"What Your Society Says About You","slug":"what-your-society-says-about-you","categoryList":["academics-the-arts","humanities"],"_links":{"self":"/articles/284787"}},{"articleId":230957,"title":"Nikon D3400 For Dummies Cheat Sheet","slug":"nikon-d3400-dummies-cheat-sheet","categoryList":["home-auto-hobbies","photography"],"_links":{"self":"/articles/230957"}},{"articleId":208741,"title":"Kabbalah For Dummies Cheat Sheet","slug":"kabbalah-for-dummies-cheat-sheet","categoryList":["body-mind-spirit","religion-spirituality","kabbalah"],"_links":{"self":"/articles/208741"}},{"articleId":299133,"title":"ChatGPT For Dummies Cheat Sheet","slug":"chatgpt-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"/articles/299133"}}],"inThisArticle":[],"relatedArticles":{"fromBook":[],"fromCategory":[{"articleId":299575,"title":"HTML, CSS, & JavaScript All-in-One For Dummies Cheat Sheet","slug":"html-css-javascript-all-in-one-for-dummies-cheat-sheet","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/299575"}},{"articleId":265680,"title":"Using DevOps To Improve Engineering","slug":"tips-for-improving-engineering-performance-with-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265680"}},{"articleId":265675,"title":"How To Automate DevOps in the Cloud","slug":"make-more-of-your-cloud-tools-automating-devops-in-the-cloud","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265675"}},{"articleId":265672,"title":"How To Choose a Cloud Service Provider for DevOps","slug":"choosing-the-best-cloud-service-provider-features-and-tools-for-devops","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265672"}},{"articleId":265664,"title":"How to Form DevOps Teams in Your Organization","slug":"how-to-form-devops-teams-in-your-organization","categoryList":["technology","programming-web-design","general-programming-web-design"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/265664"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":301663,"slug":"building-diy-websites-for-dummies","isbn":"9781394232987","categoryList":["technology","programming-web-design","general-programming-web-design"],"amazon":{"default":"https://www.amazon.com/gp/product/1394232985/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1394232985/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1394232985-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1394232985/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1394232985/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/building-diy-websites-for-dummies-cover-9781394232987-203x255.jpg","width":203,"height":255},"title":"Building DIY Websites For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><p> <b><b data-author-id=\"35385\">Jennifer DeRosa</b></b> is the founder of Toto Coaching, which walks the DIY website builder through the process of building a website from start to finish. Jennifer has been building websites since 1994. She formed her web development agency in 2001, growing it into a successful website development agency over two decades.</p>","authors":[{"authorId":35385,"name":"Jennifer DeRosa","slug":"jennifer-derosa","description":" <p> <b>Jennifer DeRosa</b> is the founder of Toto Coaching, which walks the DIY website builder through the process of building a website from start to finish. Jennifer has been building websites since 1994. She formed her web development agency in 2001, growing it into a successful website development agency over two decades. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/35385"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394232987&quot;]}]\" id=\"du-slot-66030d6670d0a\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;general-programming-web-design&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394232987&quot;]}]\" id=\"du-slot-66030d6671483\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":0,"title":"","slug":null,"categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/"}}],"content":[{"title":"Building pages that work","thumb":null,"image":null,"content":"<p>There is a lot to consider as you build your site. However, as you organize your pages, keep in mind these five main ideas:</p>\n<ul>\n<li>Build trust with your visitors.</li>\n<li>Resonate with your visitors.</li>\n<li>Let your visitors know your offering.</li>\n<li>Give your visitors the same information in multiple places — in other words, reiterate topics on each page. No one is going to read your website like a book from start to finish, so you need to “catch” them in a few places.</li>\n<li>Build a website where visitors don’t need to think that much. If you provide the information that visitors would naturally want to know when they visit your service pages, you have done a good job. This is good UX.</li>\n</ul>\n"},{"title":"Designing your homepage","thumb":null,"image":null,"content":"<p>Your homepage could be the most important page on your website, so you want to make sure it’s doing its job! The homepage has a lot of jobs, but here are the four most important:</p>\n<ul>\n<li><strong>Lets visitors know they’re in the right place by showing the services or products you offer and, if applicable, your location.</strong> If you provide local services, let visitors know right away where you are located. For example, if you are a landscaper or doctor in Idaho, people in California or Arizona are probably not going to use your services. Many times, a business will have a similar name or the same name but they might be in different states&#8230; so you want to let visitors know right away that they are in the correct place!</li>\n<li><strong>Makes a great first impression and encourage the visitors to stick around and engage with you. </strong>You want the homepage to look gorgeous and bring the visitors in. You have three-five seconds to make this impression, so right up front you want to connect with the visitors.</li>\n<li><strong>Shows that your company is up to date with a modern website.</strong> If visitors see an outdated, old, shall I say “vintage” website, they will translate that feeling of being “out of touch” or “behind the times” to your company. You want to show through your modern website homepage that you are keeping up with modern technologies, services, and techniques.</li>\n<li><strong>Strategically drives people to content.</strong> You want visitors to take action toward your primary goals on your website.</li>\n</ul>\n<p>On modern websites, information is typically organized in rows down the page. The first row on your homepage is crucial, as it&#8217;s the initial area that visitors see. Therefore, you want to dedicate significant effort to perfecting this row.</p>\n"},{"title":"Finding good stock photography for your site","thumb":null,"image":null,"content":"<p>There is good stock photography and horrible stock photography. When you are on a website searching the photography, there are a few factors you want to keep in mind.</p>\n<p>High-quality, relevant images can draw in visitors, create an emotional connection, and convey your brand&#8217;s message effectively. On the other hand, poor quality or overused images can turn visitors away. Here are some tips for choosing good stock photography for your website:</p>\n<ul>\n<li><strong>Consider your audience:</strong> When selecting stock photography for your website, it is important to consider your target audience. Ask yourself what type of images will resonate most with your audience. Choose images that help communicate your message in a meaningful way.</li>\n<li><strong>Consider your brand&#8217;s tone and aesthetic:</strong> Images should align with your brand&#8217;s tone and aesthetic.</li>\n<li><strong>Choose the color palette:</strong> Choose images with colors that complement or match your brand&#8217;s color palette. This helps create a consistent and harmonious visual experience.</li>\n<li><strong>Make sure photos are authentic:</strong> Choose images that feel genuine and natural, as opposed to overly staged or unrealistic. Authentic images are more relatable and can help establish trust with your audience.</li>\n<li><strong>Pick</strong> <strong>creative commons/royalty free images:</strong> When searching for free stock photos, look for Royalty Free or Creative Commons labeled images on websites. Some software may offer different licensed images, which can become costly, so be cautious. Always read the terms of use. If you happen to use an image that you do not have the rights to, you can get fined significantly. Don’t get into this situation. Purchase them, or if they are free, make sure you are allowed to use them.</li>\n</ul>\n"},{"title":"Choosing file formats for images","thumb":null,"image":null,"content":"<p>Here is a quick summary of the image file formats:</p>\n<ul>\n<li>JPEG is a good choice for photographs and images with lots of colors.</li>\n<li>PNG is a good choice for graphics and images with transparent backgrounds.</li>\n<li>GIF is a good choice for simple graphics and animations.</li>\n<li>WebP is a good choice for graphics, photographs, and animation with reduced image file sizes.</li>\n<li>SVG is a good choice for graphics and images that need to be resized without losing quality, but most likely you will not use these.</li>\n<li>At this time, it&#8217;s best to convert any HEIC images to JPG images for best results.</li>\n</ul>\n"},{"title":"Following basic design rules","thumb":null,"image":null,"content":"<p>If you remember only one thing, remember to always strive for simplicity and consistency in your design:</p>\n<ul>\n<li>Use the same fonts in the same places.</li>\n<li>Use less color to begin and add tiny elements as you go along.</li>\n<li>Use the same types of borders across your site.</li>\n<li>Make sure all your buttons are consistent.</li>\n<li>Employ lots of whitespace.</li>\n<li>Choose crisp, clear images that support your content and do not look staged.</li>\n</ul>\n"},{"title":"Researching keywords","thumb":null,"image":null,"content":"<p>Keyword research helps you determine which keywords people are typing into search engines. You can literally “research” the keywords that people are using in searches and determine if those searches have grown or shrunk recently. These are powerful insights that will help you choose the perfect keywords and phrases to use on your website.</p>\n<p>The goal is to build a list of keywords and keyword phrases that you want to appear in the search results. The best keywords stand on actual data — they are keywords and phrases that people are actually typing in and searching, thousands of times a month.</p>\n<p>Follow these steps to begin building your seed keywords:</p>\n<ol>\n<li>\n<p class=\"first-para\"><strong>Open a web browser, head over to Google, and type some search terms that you think your customers will use or have used to find your website.</strong></p>\n<p class=\"child-para\">When you see the SERP, look closely at the websites that Google returns for your search and ask: Does this look like a list that your company should appear in?</p>\n</li>\n<li>\n<p class=\"first-para\"><strong>If list doesn&#8217;t match your business, refine your search terms and use long-tail keyword phrases. Find some specific phrases that, when searched, return a list of your competition.</strong></p>\n<p class=\"child-para\">These are the results you want to appear in, and hopefully appear on top of! These phrases are a great place to start your keyword research. Do this search for each term you can think of.</p>\n</li>\n<li>\n<p class=\"first-para\"><strong>Add these phrases to your initial keyword list.</strong></p>\n</li>\n<li>\n<p class=\"first-para\"><strong>For each keyword phrase you choose, scroll down the page.</strong> You will see “Related Searches” (at the time of the publishing of this book Google is calling it Related Searches. They used to call it “People Also Search For” and “People Also Ask”).</p>\n<p class=\"child-para\">This section can be a valuable strategy when it comes to generating search terms and enhancing your content strategy because it shows related search queries that you can use to expand your keyword list, inspire content ideas, reveal user intent, aid you in competitive analysis, and uncover long-tail keyword opportunities. Look at this list and add these words to your seed keyword list.</p>\n</li>\n<li>\n<p class=\"first-para\"><strong>You should now have a pretty long list of keywords. Take that list and put them into a tool of your choice to get some real data.</strong></p>\n<p class=\"child-para\">There are a ton of tools you can use, and I mention just a few here.</p>\n</li>\n</ol>\n"},{"title":"Obtaining backlinks","thumb":null,"image":null,"content":"<p>A <em>backlink</em> is simply a link to your website from another website. You might also hear backlinks also called “incoming links” or “inbound links” and the sites that link to your website are called “referring domains.”</p>\n<p>Other websites will link to your website if they view your website as important. You can think of a backlink to your website as a vote of confidence! Search engines use backlinks to determine the value of your website.</p>\n<p>There are some quick and easy ways you can get some backlinks — the rest is hard work. The process of getting links is called <em>link building.</em> You get backlinks by either outright asking for them or because your content is good enough that another site chooses to link to it.</p>\n<p>Here are some ways you can obtain backlinks to your website:</p>\n<ul>\n<li>Include links to your website from your social media channels. Set up social media profiles on all the platforms and then link back to your website.</li>\n<li>Many associations have a public online directory where they list a link to your website. Chambers, networking groups, clubs, and associations are good places to look.</li>\n<li>Ask blog owners of reputable, informative blogs in your industry if you can write a guest post. Then, write an amazing article with an author bio and ask for a follow link back to your website.</li>\n<li>Ask your local paper or better yet, a regional or national paper to do a story on your company or organization. This is a great way to obtain a backlink that is high authority.</li>\n<li>Write amazing, complete how-to guides or other content, and then ask other websites in your industry to link to your valuable content. This is sometimes called <em>reverse outreach</em>. This needs to be a comprehensive guide with great, valuable information. It is even better if there are not a lot of articles already online about this topic.</li>\n<li>Publish free guides or a free tool is great, as other websites might want to link to your free guide or tool to help their visitors.</li>\n<li>Check if there are unlinked mentions of your brand on the Internet, meaning your brand was mentioned but they did not link to your website. When you find these, ask the websites to include a link.</li>\n<li>Check with your suppliers or those you supply to. Will they link to your website? Do a bit of research on their websites and see if there is a natural spot where they could link or ask your rep.</li>\n<li>Many industries grant awards. Find those websites behind the awards and see what the application process is like. Determine if you can receive a follow backlink to your site.</li>\n<li>Some people use the broken link method and this can be effective but takes some time. If you install the Chrome extension called Check My Links and then visit websites in your industry, you can see using this tool to identify links that the website has provided that are broken. Then, write a great alternative to the broken link. Reach out to the webmaster that takes care of the site with the broken links. Tell them how much you love their content and that you found a broken link, but that you have created an alternative and they should link to your site.</li>\n<li>Local directories and citations are important. If you provide services or products to a local area or if you are a brick and mortar store, you are known as a local business. You should set up directories and citations. There are two ways to do this: you can create your own directory listings or you can pay a service to set these up for you. Either way, this is very important.</li>\n<li>HARO (Help a Reporter Out) is a website that matches experts and writers with journalists. Many journalists are looking for experts in fields to help them with their articles. You can create an account on the HARO system and you will be sent requests for articles.</li>\n<li>Find influencers who like what you have to offer and see if they will link to your website. This is becoming a completely new and vibrant industry. There are influencer brokers you can contact as well.</li>\n<li>Interview people, post the interview on your website, and then place a link to their website. They will most likely link back to this article.</li>\n</ul>\n<p>Want to learn more? Get the <em><a href=\"https://www.amazon.com/gp/product/1394232985/ref=as_li_tl?ie=UTF8&amp;tag=wiley01-20\" target=\"_blank\" rel=\"noopener\">Building DIY Websites For Dummies</a></em> book.</p>\n"}],"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"One year","lifeExpectancySetFrom":"2024-03-26T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":301736},{"headers":{"creationTime":"2016-03-27T16:49:33+00:00","modifiedTime":"2024-01-18T18:44:02+00:00","timestamp":"2024-01-18T21:01:08+00:00"},"data":{"breadcrumbs":[{"name":"Technology","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33512"},"slug":"technology","categoryId":33512},{"name":"Programming & Web Design","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33592"},"slug":"programming-web-design","categoryId":33592},{"name":"Blogging & Website Platforms","_links":{"self":"https://dummies-api.dummies.com/v2/categories/34376"},"slug":"blogging-website-platforms","categoryId":34376},{"name":"WordPress","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33609"},"slug":"wordpress","categoryId":33609}],"title":"WordPress All-in-One For Dummies Cheat Sheet","strippedTitle":"wordpress all-in-one for dummies cheat sheet","slug":"wordpress-all-in-one-for-dummies-cheat-sheet","canonicalUrl":"","seo":{"metaDescription":"Start by familiarizing yourself with the WordPress dashboard, then learn where to find more support for managing WordPress site content with this cheat sheet.","noIndex":0,"noFollow":0},"content":"Tailor your blog with WordPress software, whether you're writing, editing, or publishing WordPress site content. An understanding of WordPress's dashboard controls and of the types of content available to you helps you get the most out of your website. Also, when all else fails, it's good to know where you can turn to for help with WordPress.","description":"Tailor your blog with WordPress software, whether you're writing, editing, or publishing WordPress site content. An understanding of WordPress's dashboard controls and of the types of content available to you helps you get the most out of your website. Also, when all else fails, it's good to know where you can turn to for help with WordPress.","blurb":"","authors":[{"authorId":9028,"name":"Lisa Sabin-Wilson","slug":"lisa-sabin-wilson","description":" <p><b>Lisa Sabin&#45;Wilson</b> is cofounder of WebDevStudios, one of the largest WordPress design and development agencies in the world. She is a regular public speaker at national events on topics such as WordPress, development, design, CSS, and social media. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9028"}}],"primaryCategoryTaxonomy":{"categoryId":33609,"title":"WordPress","slug":"wordpress","_links":{"self":"https://dummies-api.dummies.com/v2/categories/33609"}},"secondaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"tertiaryCategoryTaxonomy":{"categoryId":0,"title":null,"slug":null,"_links":null},"trendingArticles":[{"articleId":192609,"title":"How to Pray the Rosary: A Comprehensive Guide","slug":"how-to-pray-the-rosary","categoryList":["body-mind-spirit","religion-spirituality","christianity","catholicism"],"_links":{"self":"/articles/192609"}},{"articleId":284787,"title":"What Your Society Says About You","slug":"what-your-society-says-about-you","categoryList":["academics-the-arts","humanities"],"_links":{"self":"/articles/284787"}},{"articleId":230957,"title":"Nikon D3400 For Dummies Cheat Sheet","slug":"nikon-d3400-dummies-cheat-sheet","categoryList":["home-auto-hobbies","photography"],"_links":{"self":"/articles/230957"}},{"articleId":208741,"title":"Kabbalah For Dummies Cheat Sheet","slug":"kabbalah-for-dummies-cheat-sheet","categoryList":["body-mind-spirit","religion-spirituality","kabbalah"],"_links":{"self":"/articles/208741"}},{"articleId":299133,"title":"ChatGPT For Dummies Cheat Sheet","slug":"chatgpt-for-dummies-cheat-sheet","categoryList":["technology","information-technology","ai","general-ai"],"_links":{"self":"/articles/299133"}}],"inThisArticle":[],"relatedArticles":{"fromBook":[{"articleId":167476,"title":"Designing a Website with WordPress Designers","slug":"designing-a-website-with-wordpress-designers","categoryList":["technology","programming-web-design","blogging-website-platforms","wordpress"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/167476"}},{"articleId":163671,"title":"Filter by Internet Protocol (IP) Address to Limit Access to the WordPress Dashboard","slug":"filter-by-internet-protocol-ip-address-to-limit-access-to-the-wordpress-dashboard","categoryList":["technology","programming-web-design","blogging-website-platforms","wordpress"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/163671"}}],"fromCategory":[{"articleId":244958,"title":"Contemplating the Structure of Your WordPress Website","slug":"contemplating-structure-wordpress-website","categoryList":["technology","programming-web-design","blogging-website-platforms","wordpress"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244958"}},{"articleId":244955,"title":"How to Use Tags with Parameters for Sidebars in WordPress","slug":"use-tags-parameters-sidebars-wordpress","categoryList":["technology","programming-web-design","blogging-website-platforms","wordpress"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244955"}},{"articleId":244951,"title":"How to Use Sidebar Templates in WordPress","slug":"use-sidebar-templates-wordpress","categoryList":["technology","programming-web-design","blogging-website-platforms","wordpress"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244951"}},{"articleId":244948,"title":"Getting WordPress to Check for Your Custom Field","slug":"getting-wordpress-check-custom-field","categoryList":["technology","programming-web-design","blogging-website-platforms","wordpress"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244948"}},{"articleId":244944,"title":"Entering the Custom Field Code in the WordPress Template File","slug":"entering-custom-field-code-wordpress-template-file","categoryList":["technology","programming-web-design","blogging-website-platforms","wordpress"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/244944"}}]},"hasRelatedBookFromSearch":false,"relatedBook":{"bookId":281904,"slug":"wordpress-all-in-one-for-dummies-4th-edition","isbn":"9781394225385","categoryList":["technology","programming-web-design","blogging-website-platforms","wordpress"],"amazon":{"default":"https://www.amazon.com/gp/product/1394225385/ref=as_li_tl?ie=UTF8&tag=wiley01-20","ca":"https://www.amazon.ca/gp/product/1394225385/ref=as_li_tl?ie=UTF8&tag=wiley01-20","indigo_ca":"http://www.tkqlhce.com/click-9208661-13710633?url=https://www.chapters.indigo.ca/en-ca/books/product/1394225385-item.html&cjsku=978111945484","gb":"https://www.amazon.co.uk/gp/product/1394225385/ref=as_li_tl?ie=UTF8&tag=wiley01-20","de":"https://www.amazon.de/gp/product/1394225385/ref=as_li_tl?ie=UTF8&tag=wiley01-20"},"image":{"src":"https://www.dummies.com/wp-content/uploads/wordpress-all-in-one-for-dummies-5th-edition-cover-9781394225385-203x255.jpg","width":203,"height":255},"title":"WordPress All-in-One For Dummies","testBankPinActivationLink":"","bookOutOfPrint":true,"authorsInfo":"<p><p><b>Lisa Sabin&#45;Wilson</b> is cofounder of WebDevStudios, one of the largest WordPress design and development agencies in the world. She is a regular public speaker at national events on topics such as WordPress, development, design, CSS, and social media.</p>","authors":[{"authorId":9028,"name":"Lisa Sabin-Wilson","slug":"lisa-sabin-wilson","description":" <p><b>Lisa Sabin&#45;Wilson</b> is cofounder of WebDevStudios, one of the largest WordPress design and development agencies in the world. She is a regular public speaker at national events on topics such as WordPress, development, design, CSS, and social media. ","hasArticle":false,"_links":{"self":"https://dummies-api.dummies.com/v2/authors/9028"}}],"_links":{"self":"https://dummies-api.dummies.com/v2/books/"}},"collections":[],"articleAds":{"footerAd":"<div class=\"du-ad-region row\" id=\"article_page_adhesion_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_adhesion_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;blogging-website-platforms&quot;,&quot;wordpress&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394225385&quot;]}]\" id=\"du-slot-65a9919491b41\"></div></div>","rightAd":"<div class=\"du-ad-region row\" id=\"article_page_right_ad\"><div class=\"du-ad-unit col-md-12\" data-slot-id=\"article_page_right_ad\" data-refreshed=\"false\" \r\n data-target = \"[{&quot;key&quot;:&quot;cat&quot;,&quot;values&quot;:[&quot;technology&quot;,&quot;programming-web-design&quot;,&quot;blogging-website-platforms&quot;,&quot;wordpress&quot;]},{&quot;key&quot;:&quot;isbn&quot;,&quot;values&quot;:[&quot;9781394225385&quot;]}]\" id=\"du-slot-65a9919493b66\"></div></div>"},"articleType":{"articleType":"Cheat Sheet","articleList":[{"articleId":167484,"title":"The WordPress Dashboard","slug":"the-wordpress-dashboard","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/167484"}},{"articleId":167485,"title":"WordPress Content Types","slug":"wordpress-content-types","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/167485"}},{"articleId":167479,"title":"WordPress Resources","slug":"wordpress-resources","categoryList":[],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/167479"}},{"articleId":167476,"title":"Designing a Website with WordPress Designers","slug":"designing-a-website-with-wordpress-designers","categoryList":["technology","programming-web-design","blogging-website-platforms","wordpress"],"_links":{"self":"https://dummies-api.dummies.com/v2/articles/167476"}}],"content":[{"title":"The WordPress dashboard","thumb":null,"image":null,"content":"<p>The WordPress Dashboard gives you an all-in-one glance at your website’s statistics and activity. This table gives you brief descriptions of the main menu items in the WordPress Dashboard that apply across all versions of WordPress.com and WordPress.org. Each version provides different options, but the basic main menu of the Dashboard is standard across all versions.</p>\n<table>\n<tbody>\n<tr>\n<th>Menu</th>\n<th>Description</th>\n</tr>\n<tr>\n<td>Dashboard</td>\n<td>Find basic information and statistics for your site, as well as information from the WordPress Development Site and other sites run by those involved with WordPress development or resources.</td>\n</tr>\n<tr>\n<td>Posts</td>\n<td>Write new posts and edit previous ones. Create categories to organize your posts by topic; upload images; create post excerpts; send trackbacks; manage custom fields.</td>\n</tr>\n<tr>\n<td>Media</td>\n<td>View all media files you’ve uploaded to your site, including images, audio, and video. Upload and manage new media files with the built-in media uploader.</td>\n</tr>\n<tr>\n<td>Pages</td>\n<td>Write and publish new static pages for your site, edit or delete previously published pages, and assign pages to custom page templates.</td>\n</tr>\n<tr>\n<td>Comments</td>\n<td>Manage comments here by viewing, editing, or deleting them; also manage your comment moderation queue and comment/trackback spam.</td>\n</tr>\n<tr>\n<td>Appearance</td>\n<td>Manage your WordPress themes by viewing them, activating them, and editing them using the site editor. Use and create block patterns.</td>\n</tr>\n<tr>\n<td>Plugins</td>\n<td>View a listing of plugins installed in your WordPress site. Find new plugins, and install, activate, deactivate, upgrade, and edit them.</td>\n</tr>\n<tr>\n<td>Users</td>\n<td>Manage your users and subscribers and edit your own profile.</td>\n</tr>\n<tr>\n<td>Tools</td>\n<td>Import data into your site from another content management platform (such as Blogger, Typepad, or Movable Type) or export your current site data into a backup file. Upgrade your WordPress software to the latest version using the auto-upgrade feature.</td>\n</tr>\n<tr>\n<td>Settings</td>\n<td>Set the general options for your site, and find settings for posts, RSS feed, discussion options, privacy, and permalinks.</td>\n</tr>\n</tbody>\n</table>\n"},{"title":"WordPress content types","thumb":null,"image":null,"content":"<p>Content is the lifeblood of a website, regardless of author or topic. Populate your site with a variety of content types to engage reader interest and to ensure return visits. WordPress offers several types of content that can be published on your website using the different, built-in features.</p>\n<table>\n<tbody>\n<tr>\n<th>Menu</th>\n<th>Description</th>\n</tr>\n<tr>\n<td>Posts</td>\n<td>Articles that get written and published to your site — posts are included as part of your archived site.</td>\n</tr>\n<tr>\n<td>Pages</td>\n<td>Static, individual pages do not get published and archived as part of the site on your site; rather are used as standalone pages to publish items like an &#8220;About Me&#8221; page.</td>\n</tr>\n<tr>\n<td>Categories</td>\n<td>File your blog posts into different topics.</td>\n</tr>\n<tr>\n<td>Tags</td>\n<td>Define micro-categories for your posts by using tags to define extended keywords to help your readers locate posts on your site relevant to the topic they want to read about.</td>\n</tr>\n<tr>\n<td>Images and Galleries</td>\n<td>Upload photos or images and create photo galleries, or a portfolio of images.</td>\n</tr>\n<tr>\n<td>Media files</td>\n<td>Upload audio files for podcasting, or video files for video publishing. Even upload files like PDFs or Microsoft Word documents to provide downloadable content, like e-books or manuals.</td>\n</tr>\n<tr>\n<td>Custom Post Types</td>\n<td>Create different methods of posting niche content types on your site, like a photo gallery, video gallery, or a repository of reviews for things like movies, books, and music (just to name a few of many examples).</td>\n</tr>\n<tr>\n<td>Custom Post Formats</td>\n<td>Create customized display of different post formats like photos, quotes, posts, links, videos, and so on.</td>\n</tr>\n<tr>\n<td>Custom Fields</td>\n<td>Use custom fields to attach different post metadata to individual posts and pages, like your current mood, what you&#8217;re currently listening to or your current local weather.</td>\n</tr>\n</tbody>\n</table>\n"},{"title":"WordPress resources","thumb":null,"image":null,"content":"<p>If you use WordPress as the platform for your blog or website, you can make use of any or all of the many tools WordPress offers. Tap into some solid information from WordPress user forums, get ideas for themes, and boost your WordPress knowledge.</p>\n<table>\n<tbody>\n<tr>\n<td width=\"249\">Name</td>\n<td width=\"480\">Description</td>\n</tr>\n<tr>\n<td width=\"249\"><a href=\"https://wordpress.org/plugins/\" target=\"_blank\" rel=\"noopener\">WordPress Plugins</a></td>\n<td width=\"480\">Offers thousands of downloads that let you do almost anything you can imagine — and you can imagine quite a lot, can&#8217;t you?</td>\n</tr>\n<tr>\n<td width=\"249\"><a href=\"https://wordpress.org/themes\" target=\"_blank\" rel=\"noopener\">WordPress Themes</a></td>\n<td width=\"480\">Lets you choose from hundreds of themes to manage the look and functionality of your home page.</td>\n</tr>\n<tr>\n<td width=\"249\"><a href=\"https://wordpress.org/documentation/\" target=\"_blank\" rel=\"noopener\">WordPress Documentation</a></td>\n<td width=\"480\">Use WordPress Documentation to tap into the encyclopedia of WordPress knowledge.</td>\n</tr>\n<tr>\n<td width=\"249\"><a href=\"https://wordpress.org/news/\" target=\"_blank\" rel=\"noopener\">WordPress News &amp; Updates</a></td>\n<td width=\"480\">This section of the official WordPress website gives you the latest news and notes on all things WordPress.</td>\n</tr>\n<tr>\n<td width=\"249\"><a href=\"https://wordpress.com/forums/\" target=\"_blank\" rel=\"noopener\">Support Forums for WordPress.com</a></td>\n<td width=\"480\">Lets you post questions, answers, and comments for other WordPress users who are using the hosted/commercial version of WordPress.com.</td>\n</tr>\n<tr>\n<td width=\"249\"><a href=\"https://wordpress.org/support/forums/\" target=\"_blank\" rel=\"noopener\">Support Forums for WordPress.org</a></td>\n<td width=\"480\">Post your questions and obtain answers from the vast WordPress community for users of the self-hosted WordPress.org software.</td>\n</tr>\n</tbody>\n</table>\n"},{"title":"Designing a website with WordPress designers","thumb":null,"image":null,"content":"<p>Turn to WordPress designers if you need help designing your website. The look and feel of your website are critical to its success, so take your time when choosing themes, color, and layout. If you&#8217;re looking for a cool theme, or someone to add pizzazz to your site through design, you want that person to know your WordPress platform. These designers fit the bill.</p>\n<table width=\"67%\">\n<tbody>\n<tr>\n<td width=\"47%\"><strong>Name / URL</strong></td>\n<td width=\"52%\"><strong>Description</strong></td>\n</tr>\n<tr>\n<td width=\"47%\"><a href=\"https://webdevstudios.com/\" target=\"_blank\" rel=\"noopener\">WebDevStudios</a></td>\n<td width=\"52%\">Cutting edge, custom WordPress design and development</td>\n</tr>\n<tr>\n<td width=\"47%\"><a href=\"https://freshysites.com/\" target=\"_blank\" rel=\"noopener\">Freshy Sites</a></td>\n<td width=\"52%\">WordPress web design services</td>\n</tr>\n<tr>\n<td width=\"47%\"><a href=\"https://www.kadencewp.com/\" target=\"_blank\" rel=\"noopener\">KadenceWP</a></td>\n<td width=\"52%\">Purchase and download easy-to-use WordPress premium themes.</td>\n</tr>\n<tr>\n<td width=\"47%\"><a href=\"https://greenbay.digital/\" target=\"_blank\" rel=\"noopener\">GB Digital</a></td>\n<td width=\"52%\">Custom WordPress design and development for small businesses and organizations</td>\n</tr>\n</tbody>\n</table>\n"}],"videoInfo":{"videoId":null,"name":null,"accountId":null,"playerId":null,"thumbnailUrl":null,"description":null,"uploadDate":null}},"sponsorship":{"sponsorshipPage":false,"backgroundImage":{"src":null,"width":0,"height":0},"brandingLine":"","brandingLink":"","brandingLogo":{"src":null,"width":0,"height":0},"sponsorAd":"","sponsorEbookTitle":"","sponsorEbookLink":"","sponsorEbookImage":{"src":null,"width":0,"height":0}},"primaryLearningPath":"Advance","lifeExpectancy":"Two years","lifeExpectancySetFrom":"2022-03-02T00:00:00+00:00","dummiesForKids":"no","sponsoredContent":"no","adInfo":"","adPairKey":[]},"status":"publish","visibility":"public","articleId":207989}],"_links":{"self":{"self":"https://dummies-api.dummies.com/v2/categories/33592/categoryArticles?sortField=time&sortOrder=1&size=10&offset=0"},"next":{"self":"https://dummies-api.dummies.com/v2/categories/33592/categoryArticles?sortField=time&sortOrder=1&size=10&offset=10"},"last":{"self":"https://dummies-api.dummies.com/v2/categories/33592/categoryArticles?sortField=time&sortOrder=1&size=10&offset=1386"}}},"objectTitle":"","status":"success","pageType":"article-category","objectId":"33592","page":1,"sortField":"time","sortOrder":1,"categoriesIds":[],"articleTypes":[],"filterData":{"categoriesFilter":[{"itemId":0,"itemName":"All Categories","count":1396},{"itemId":33593,"itemName":"3D Printing","count":33},{"itemId":33594,"itemName":"App Development","count":85},{"itemId":34376,"itemName":"Blogging & Website Platforms","count":66},{"itemId":33595,"itemName":"C","count":17},{"itemId":33596,"itemName":"C#","count":29},{"itemId":33597,"itemName":"C++","count":63},{"itemId":33598,"itemName":"Cisco Programming","count":1},{"itemId":33599,"itemName":"Coding","count":106},{"itemId":34324,"itemName":"CSS3","count":4},{"itemId":33610,"itemName":"General Programming & Web Design","count":210},{"itemId":34511,"itemName":"Go Programming Language","count":1},{"itemId":33600,"itemName":"HTML","count":8},{"itemId":33601,"itemName":"HTML5","count":265},{"itemId":33602,"itemName":"Java","count":122},{"itemId":33603,"itemName":"JavaScript","count":87},{"itemId":33604,"itemName":"MATLAB","count":83},{"itemId":33592,"itemName":"Programming & Web Design","count":2},{"itemId":33606,"itemName":"Python","count":83},{"itemId":33607,"itemName":"R","count":99},{"itemId":33608,"itemName":"SQL","count":26},{"itemId":34338,"itemName":"Web Hosting","count":6}],"articleTypeFilter":[{"articleType":"All Types","count":1396},{"articleType":"Articles","count":1285},{"articleType":"Cheat Sheet","count":55},{"articleType":"Step by Step","count":56}]},"filterDataLoadedStatus":"success","pageSize":10},"adsState":{"pageScripts":{"headers":{"timestamp":"2025-04-29T05:50:01+00:00"},"adsId":0,"data":{"scripts":[{"pages":["all"],"location":"header","script":"<!--Optimizely Script-->\r\n<script src=\"https://cdn.optimizely.com/js/10563184655.js\"></script>","enabled":false},{"pages":["all"],"location":"header","script":"<!-- comScore Tag -->\r\n<script>var _comscore = _comscore || [];_comscore.push({ c1: \"2\", c2: \"15097263\" });(function() {var s = document.createElement(\"script\"), el = document.getElementsByTagName(\"script\")[0]; s.async = true;s.src = (document.location.protocol == \"https:\" ? \"https://sb\" : \"http://b\") + \".scorecardresearch.com/beacon.js\";el.parentNode.insertBefore(s, el);})();</script><noscript><img src=\"https://sb.scorecardresearch.com/p?c1=2&c2=15097263&cv=2.0&cj=1\" /></noscript>\r\n<!-- / comScore Tag -->","enabled":true},{"pages":["all"],"location":"footer","script":"<!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->\r\n<script type='text/javascript'>\r\n(function(){var g=function(e,h,f,g){\r\nthis.get=function(a){for(var a=a+\"=\",c=document.cookie.split(\";\"),b=0,e=c.length;b<e;b++){for(var d=c[b];\" \"==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};\r\nthis.set=function(a,c){var b=\"\",b=new Date;b.setTime(b.getTime()+6048E5);b=\"; expires=\"+b.toGMTString();document.cookie=a+\"=\"+c+b+\"; path=/; \"};\r\nthis.check=function(){var a=this.get(f);if(a)a=a.split(\":\");else if(100!=e)\"v\"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(\":\"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case \"v\":return!1;case \"r\":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(\":\")),!c}return!0};\r\nthis.go=function(){if(this.check()){var a=document.createElement(\"script\");a.type=\"text/javascript\";a.src=g;document.body&&document.body.appendChild(a)}};\r\nthis.start=function(){var t=this;\"complete\"!==document.readyState?window.addEventListener?window.addEventListener(\"load\",function(){t.go()},!1):window.attachEvent&&window.attachEvent(\"onload\",function(){t.go()}):t.go()};};\r\ntry{(new g(100,\"r\",\"QSI_S_ZN_5o5yqpvMVjgDOuN\",\"https://zn5o5yqpvmvjgdoun-wiley.siteintercept.qualtrics.com/SIE/?Q_ZID=ZN_5o5yqpvMVjgDOuN\")).start()}catch(i){}})();\r\n</script><div id='ZN_5o5yqpvMVjgDOuN'><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>\r\n<!--END WEBSITE FEEDBACK SNIPPET-->","enabled":false},{"pages":["all"],"location":"header","script":"<!-- Hotjar Tracking Code for http://www.dummies.com -->\r\n<script>\r\n (function(h,o,t,j,a,r){\r\n h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\r\n h._hjSettings={hjid:257151,hjsv:6};\r\n a=o.getElementsByTagName('head')[0];\r\n r=o.createElement('script');r.async=1;\r\n r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\r\n a.appendChild(r);\r\n })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');\r\n</script>","enabled":false},{"pages":["article"],"location":"header","script":"<!-- //Connect Container: dummies --> <script src=\"//get.s-onetag.com/bffe21a1-6bb8-4928-9449-7beadb468dae/tag.min.js\" async defer></script>","enabled":true},{"pages":["homepage"],"location":"header","script":"<meta name=\"facebook-domain-verification\" content=\"irk8y0irxf718trg3uwwuexg6xpva0\" />","enabled":true},{"pages":["homepage","article","category","search"],"location":"footer","script":"<!-- Facebook Pixel Code -->\r\n<noscript>\r\n<img height=\"1\" width=\"1\" src=\"https://www.facebook.com/tr?id=256338321977984&ev=PageView&noscript=1\"/>\r\n</noscript>\r\n<!-- End Facebook Pixel Code -->","enabled":true}]}},"pageScriptsLoadedStatus":"success"},"navigationState":{"navigationCollections":[{"collectionId":287568,"title":"BYOB (Be Your Own Boss)","hasSubCategories":false,"url":"/collection/for-the-entry-level-entrepreneur-287568"},{"collectionId":293237,"title":"Be a Rad Dad","hasSubCategories":false,"url":"/collection/be-the-best-dad-293237"},{"collectionId":295890,"title":"Career Shifting","hasSubCategories":false,"url":"/collection/career-shifting-295890"},{"collectionId":294090,"title":"Contemplating the Cosmos","hasSubCategories":false,"url":"/collection/theres-something-about-space-294090"},{"collectionId":287563,"title":"For Those Seeking Peace of Mind","hasSubCategories":false,"url":"/collection/for-those-seeking-peace-of-mind-287563"},{"collectionId":287570,"title":"For the Aspiring Aficionado","hasSubCategories":false,"url":"/collection/for-the-bougielicious-287570"},{"collectionId":291903,"title":"For the Budding Cannabis Enthusiast","hasSubCategories":false,"url":"/collection/for-the-budding-cannabis-enthusiast-291903"},{"collectionId":299891,"title":"For the College Bound","hasSubCategories":false,"url":"/collection/for-the-college-bound-299891"},{"collectionId":291934,"title":"For the Exam-Season Crammer","hasSubCategories":false,"url":"/collection/for-the-exam-season-crammer-291934"},{"collectionId":301547,"title":"For the Game Day Prepper","hasSubCategories":false,"url":"/collection/big-game-day-prep-made-easy-301547"}],"navigationCollectionsLoadedStatus":"success","navigationCategories":{"books":{"0":{"data":[{"categoryId":33512,"title":"Technology","hasSubCategories":true,"url":"/category/books/technology-33512"},{"categoryId":33662,"title":"Academics & The Arts","hasSubCategories":true,"url":"/category/books/academics-the-arts-33662"},{"categoryId":33809,"title":"Home, Auto, & Hobbies","hasSubCategories":true,"url":"/category/books/home-auto-hobbies-33809"},{"categoryId":34038,"title":"Body, Mind, & Spirit","hasSubCategories":true,"url":"/category/books/body-mind-spirit-34038"},{"categoryId":34224,"title":"Business, Careers, & Money","hasSubCategories":true,"url":"/category/books/business-careers-money-34224"}],"breadcrumbs":[],"categoryTitle":"Level 0 Category","mainCategoryUrl":"/category/books/level-0-category-0"}},"articles":{"0":{"data":[{"categoryId":33512,"title":"Technology","hasSubCategories":true,"url":"/category/articles/technology-33512"},{"categoryId":33662,"title":"Academics & The Arts","hasSubCategories":true,"url":"/category/articles/academics-the-arts-33662"},{"categoryId":33809,"title":"Home, Auto, & Hobbies","hasSubCategories":true,"url":"/category/articles/home-auto-hobbies-33809"},{"categoryId":34038,"title":"Body, Mind, & Spirit","hasSubCategories":true,"url":"/category/articles/body-mind-spirit-34038"},{"categoryId":34224,"title":"Business, Careers, & Money","hasSubCategories":true,"url":"/category/articles/business-careers-money-34224"}],"breadcrumbs":[],"categoryTitle":"Level 0 Category","mainCategoryUrl":"/category/articles/level-0-category-0"}}},"navigationCategoriesLoadedStatus":"success"},"searchState":{"searchList":[],"searchStatus":"initial","relatedArticlesList":[],"relatedArticlesStatus":"initial"},"routeState":{"name":"ArticleCategory","path":"/category/articles/programming-web-design-33592/","hash":"","query":{},"params":{"category":"programming-web-design-33592"},"fullPath":"/category/articles/programming-web-design-33592/","meta":{"routeType":"category","breadcrumbInfo":{"suffix":"Articles","baseRoute":"/category/articles"},"prerenderWithAsyncData":true},"from":{"name":null,"path":"/","hash":"","query":{},"params":{},"fullPath":"/","meta":{}}},"profileState":{"auth":{},"userOptions":{},"status":"success"}}
Logo
  • Articles Open Article Categories
  • Books Open Book Categories
  • Collections Open Collections list
  • Custom Solutions

Article Categories

Book Categories

Collections

Explore all collections
BYOB (Be Your Own Boss)
Be a Rad Dad
Career Shifting
Contemplating the Cosmos
For Those Seeking Peace of Mind
For the Aspiring Aficionado
For the Budding Cannabis Enthusiast
For the College Bound
For the Exam-Season Crammer
For the Game Day Prepper
Log In
  • Home
  • Technology Articles
  • Programming & Web Design Articles

Programming & Web Design Articles

Ever wonder what makes the software, websites, and blogs you use every day function properly (or improperly)? It's programming. Our articles reveal the ins and outs of programming and web design.

Browse By Category

Go Programming Language

3D Printing

App Development

C

C#

C++

Cisco Programming

Coding

HTML

HTML5

Java

JavaScript

MATLAB

Python

R

SQL

General Programming & Web Design

CSS3

Web Hosting

Blogging & Website Platforms

Previous slideNext slide

Go Programming Language

3D Printing

App Development

C

C#

C++

Cisco Programming

Coding

HTML

HTML5

Java

JavaScript

MATLAB

Python

R

SQL

General Programming & Web Design

CSS3

Web Hosting

Blogging & Website Platforms

Articles From Programming & Web Design

page 1
page 2
page 3
page 4
page 5
page 6
page 7
page 8
page 9
page 10
page 11
page 12
page 13
page 14
page 15
page 16
page 17
page 18
page 19
page 20
page 21
page 22
page 23
page 24
page 25
page 26
page 27
page 28
page 29
page 30
page 31
page 32
page 33
page 34
page 35
page 36
page 37
page 38
page 39
page 40
page 41
page 42
page 43
page 44
page 45
page 46
page 47
page 48
page 49
page 50
page 51
page 52
page 53
page 54
page 55
page 56
page 57
page 58
page 59
page 60
page 61
page 62
page 63
page 64
page 65
page 66
page 67
page 68
page 69
page 70
page 71
page 72
page 73
page 74
page 75
page 76
page 77
page 78
page 79
page 80
page 81
page 82
page 83
page 84
page 85
page 86
page 87
page 88
page 89
page 90
page 91
page 92
page 93
page 94
page 95
page 96
page 97
page 98
page 99
page 100
page 101
page 102
page 103
page 104
page 105
page 106
page 107
page 108
page 109
page 110
page 111
page 112
page 113
page 114
page 115
page 116
page 117
page 118
page 119
page 120
page 121
page 122
page 123
page 124
page 125
page 126
page 127
page 128
page 129
page 130
page 131
page 132
page 133
page 134
page 135
page 136
page 137
page 138
page 139
page 140

Filter Results

1,396 results
1,396 results
General Programming & Web Design Why Local Environments Hold Your Developers Back

Article / Updated 04-28-2025

For enterprises whose growth depends on the innovation of their developers and data scientists, success moves at the speed of their development environments. Efficiency, effectiveness, and the ability to build without friction — that’s what sets the pace. The question is simple enough: Do your developers and data scientists work their magic in cloud development environments (CDEs), or is their work bogged down by a legacy development environment? Read on to find out why local development environments and other traditional solutions may be holding back your developers, and how cloud development environments can set them free. How traditional development environments are lacking What are some of the ways the wrong development environment may be making your company’s progress sluggish? Local development environments: This was yesterday’s standard, with all developers managing their own environments on their own machines. All that local control gets in the way of getting ahead. It’s complicated and time-consuming to configure tools and dependencies on each individual environment. You wind up with inconsistencies that slow things down. And don’t even think about scaling this approach. Virtual desktop infrastructures (VDIs): VDIs help to centralize environments, but they’re often not really workable for development. They’re expensive and complicated to maintain. They also tend to suffer from sluggish performance, and that’s no way to keep developers happy. Shadow virtual machines (VMs): Developers may get around these issues with ad hoc VMs, but they end up creating different problems. “Shadow” solutions may be lacking in governance and are often overprovisioned. That makes them potential security risks, not to mention wasteful of resources. How cloud development environments can help A fully managed environment is the answer to the challenges of these more disjointed solutions from yesteryear. The CDE may be hosted in the cloud or via on-premises infrastructure, and it brings together all the necessary tools, libraries, and infrastructure needed for efficient development. It’s a development workspace that can be accessed from anywhere, not tied to a specific location or machine. It’s great for remote work, and because of its centralized infrastructure, it’s a lot more secure than storing code and data on developers’ laptops. Developers and data scientists can easily tap into it for coding applications and training machine learning (ML) models, getting up and running in minutes. Provisioning is automatic, so everything developers need is right there and ready to go. It can all be controlled from a centralized interface by authorized team members, ensuring only the right people can access code and data. And the compute and storage resources are easily scalable. How CDEs make developers more productive Traditional local development environments tend to be frustratingly slow when it comes to onboarding new developers or moving developers to new projects (and developers tend to take on new projects multiple times a year, of course). Provisioning environments can take days or even weeks, thanks to all the complexities of dependencies and the need for approvals. Meanwhile, if developers are off working in their own local environments, that also leads to problems requiring time-consuming troubleshooting. Mismatched environments are the enemy of success. What’s more, resource constraints can be a hangup in local development environments. CDEs, on the other hand, can be preconfigured, so developers just log in and get to work. Platform engineers can make global updates and ensure consistencies across the CDE. Configuration drift is no longer a problem. As for resource constraints, the cloud can fix that with high-performance resources that scale as needed. Developers can set up resource-intensive tasks such as ML model training in the cloud, and use their local laptops to get other work done in the meantime. Why cloud development environments provide better security Local development environments and various noncentralized alternatives can pose security threats, due to a lack of adequate governance and a hard-to-manage attack surface. Working with intellectual property and other sensitive data on developer laptops or unapproved VMs is risky. If developers need to pull sensitive data to their laptops for such things as ML model training, you’re tempting fate, because security problems don’t just hold developers back — they can set back the entire organization. CDEs, on the other hand, can live in a cloud environment or be centralized in on-premises infrastructure. They can be air-gapped if need be. Source code and data can stay in secure cloud or on-premise locations, along with any compute resources needed for dealing with them, so sensitive data never needs to leave the safety of home. Compliance teams aren’t fond of local environments because they’re tricky to monitor. CDEs, on the other hand, offer better monitoring and auditing capabilities, without getting in the way of the developers’ work. How CDEs save both money and time Face it — local development environments can be costly. Local hardware isn’t cheap, especially the high-end hardware needed for resource-intensive processes. But if your enterprise tries to trim those costs, developers are likely to be displeased. The reality is, CDEs not only provide a better developer experience and greater security, they also save money and time. Developers can use most cost-effective machines that are less powerful and longer-lasting, because the heavy lifting is happening in the CDE, not on the local machine. What’s more, CDEs can tap into automation to optimize resource utilization. Auto-start and auto-stop features mean unused environments aren’t sitting there wasting money. Bin-packing multiple developer workspaces onto a single VM can reduce infrastructure costs, too. And once again, helping developers be more efficient — by easing onboarding and transitioning, while banishing sluggish equipment — saves money, too. Time is, after all, money. If you can save hours and days and weeks of wasted developer time, you’ll get a whole lot more out of the money you’re paying them. To learn more about the benefits of CDEs, download your free Cloud Development Environments For Dummies, CoderTechnologies, Inc. Special Edition e-book.

View Article
Python How to Define and Use Python Lists

Article / Updated 10-28-2024

The simplest data collection in Python is a list. A list is any list of data items, separated by commas, inside square brackets. Typically, you assign a name to the Python list using an = sign, just as you would with variables. If the list contains numbers, then don't use quotation marks around them. For example, here is a list of test scores: scores = [88, 92, 78, 90, 98, 84] If the list contains strings then, as always, those strings should be enclosed in single or double quotation marks, as in this example: To display the contents of a list on the screen, you can print it just as you would print any regular variable. For example, executing print(students) in your code after defining that list shows this on the screen. ['Mark', 'Amber', 'Todd', 'Anita', 'Sandy'] This may not be exactly what you had in mind. But don’t worry, Python offers lots of great ways to access data in lists and display it however you like. Referencing Python list items by position Each item in a list has a position number, starting with zero, even though you don’t see any numbers. You can refer to any item in the list by its number using the name for the list followed by a number in square brackets. In other words, use this syntax: <em>listname</em>[<em>x</em>] Replace <em><code>listname</code></em> with the name of the list you're accessing and replace <em><code>x</code></em> with the position number of item you want. Remember, the first item is always number zero, not one. For example, in the first line below, I define a list named <code>students</code>, and then print item number zero from that list. The result, when executing the code, is that the name <code>Mark</code> is displayed. students = ["Mark", "Amber", "Todd", "Anita", "Sandy"] print(students[0]) Mark When reading access list items, professionals use the word sub before the number. For example, students[0] would be spoken as students sub zero. This next example shows a list named scores. The print() function prints the position number of the last score in the list, which is 4 (because the first one is always zero). scores = [88, 92, 78, 90, 84] print(scores[4]) 84 If you try to access a list item that doesn't exist, you get an “index out of range” error. The index part is a reference to the number inside the square brackets. For example, the image below shows a little experiment in a Jupyter notebook where a list of scores was created and then the printing of score[5] was attempted. It failed and generated an error because there is no scores[5]. There's only scores[0], scores[1], scores[2], scores[3], and scores[4] because the counting always starts at zero with the first one on the list. Looping through a Python list To access each item in a list, just use a for loop with this syntax: for <em>x</em> in <em>list</em>: Replace >x with a variable name of your choosing. Replace list with the name of the list. An easy way to make the code readable is to always use a plural for the list name (such as students, scores). Then you can use the singular name (student, score) for the variable name. You don't need to use subscript numbers (numbers in square brackets) with this approach either. For example, the following code prints each score in the scores list: for score in scores: print(score) Remember to always indent the code that’s to be executed within the loop. This image shows a more complete example where you can see the result of running the code in a Jupyter notebook. Seeing whether a Python list contains an item If you want your code to check the contents of a list to see whether it already contains some item, use in <em>listname</em> in an if statement or a variable assignment. For example, the code in the image below creates a list of names. Then, two variables store the results of searching the list for the names Anita and Bob. Printing the contents of each variable shows True for the one where the name (Anita) is in the list. The test to see whether Bob is in the list proves False. Getting the length of a Python list To determine how many items are in a list, use the len() function (short for length). Put the name of the list inside the parentheses. For example, type the following code into a Jupyter notebook or Python prompt or whatever: students = ["Mark", "Amber", "Todd", "Anita", "Sandy"] print(len(students)) Running that code produces this output: 5 There are indeed five items in the list, though the last one is always one less than the number because Python starts counting at zero. So the last one, Sandy, actually refers to students[4] and not students[5]. Appending an item to the end of a Python list When you want your Python code to add a new item to the end of a list, use the .append() method with the value you want to add inside the parentheses. You can use either a variable name or a literal value inside the quotation marks. For instance, in the following image the line that reads students.append("Goober") adds the name Goober to the list. The line that reads students.append(new_student) adds whatever name is stored in the variable named new_student to the list. The .append() method always adds to the end of the list. So when you print the list you see those two new names at the end. You can use a test to see whether an item is in a list and then append it only when the item isn't already there. For example, the code below won’t add the name Amber to the list because that name is already in the list: student_name = "Amanda" #Add student_name but only if not already in the list. if student_name in students: print (student_name + " already in the list") else: students.append(student_name) print (student_name + " added to the list") Inserting an item into a Python list Although the append() method allows you to add an item to the end of a list, the insert() method allows you to add an item to the list in any position. The syntax for insert() is <em>listname</em>.insert(<em>position</em>, <em>item</em>) Replace listname with the name of the list, position with the position at which you want to insert the item (for example, 0 to make it the first item, 1 to make it the second item, and so forth). Replace item with the value, or the name of a variable that contains the value, that you want to put into the list. For example, the following code makes Lupe the first item in the list: #Create a list of strings (names). students = ["Mark", "Amber", "Todd", "Anita", "Sandy"] student_name = "Lupe" # Add student name to front of the list. students.insert(0,student_name) #Show me the new list. print(students) If you run the code, print(students) will show the list after the new name has been inserted, as follows: ['Lupe', 'Mark', 'Amber', 'Todd', 'Anita', 'Sandy'] Changing an item in a Python list You can change an item in a list using the = assignment operator (check out these common Python operators) just like you do with variables. Just make sure you include the index number in square brackets of the item you want to change. The syntax is: listname[index]=newvalue Replace listname with the name of the list; replace index with the subscript (index number) of the item you want to change; and replace newvalue with whatever you want to put in the list item. For example, take a look at this code: #Create a list of strings (names). students = ["Mark", "Amber", "Todd", "Anita", "Sandy"] students[3] = "Hobart" print(students) When you run this code, the output is as follows, because Anita's name has been changed to Hobart. ['Mark', 'Amber', 'Todd', 'Hobart', 'Sandy'] Combining Python lists If you have two lists that you want to combine into a single list, use the extend() function with the syntax: <em>original_list</em>.extend(<em>additional_items_list</em>) In your code, replace original_list with the name of the list to which you’ll be adding new list items. Replace additional_items_list with the name of the list that contains the items you want to add to the first list. Here is a simple example using lists named list1 and list2. After executing list1.extend(list2), the first list contains the items from both lists, as you can see in the output of the print() statement at the end. # Create two lists of Names. list1 = ["Zara", "Lupe", "Hong", "Alberto", "Jake"] list2 = ["Huey", "Dewey", "Louie", "Nader", "Bubba"] # Add list2 names to list1. list1.extend(list2) # Print list 1. print(list1) ['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake', 'Huey', 'Dewey', 'Louie', 'Nader', 'Bubba'] Easy Parcheesi, no? Removing Python list items Python offers a remove() method so you can remove any value from the list. If the item is in the list multiple times, only the first occurrence is removed. For example, the following code shows a list of letters with the letter C repeated a few times. Then the code uses letters.remove("C") to remove the letter C from the list: # Remove "C" from the list. letters.remove("C") #Show me the new list. print(letters) When you actually execute this code and then print the list, you'll see that only the first letter C has been removed: ['A', 'B', 'D', 'C', 'E', 'C'] If you need to remove all of an item, you can use a while loop to repeat the .remove as long as the item still remains in the list. For example, this code repeats the .remove as long as the “C” is still in the list. #Create a list of strings. letters = ["A", "B", "C", "D", "C", "E", "C"] If you want to remove an item based on its position in the list, use pop() with an index number rather than remove() with a value. If you want to remove the last item from the list, use pop() without an index number. For example, the following code creates a list, one line removes the first item (0), and another removes the last item (pop() with nothing in the parentheses). Printing the list shows those two items have been removed: #Create a list of strings. letters = ["A", "B", "C", "D", "E", "F", "G"] #Remove the first item. letters.pop(0) #Remove the last item. letters.pop() #Show me the new list. print(letters) Running the code shows that the popping the first and last items did, indeed, work: ['B', 'C', 'D', 'E', 'F'] When you pop() an item off the list, you can store a copy of that value in some variable. For example this image shows the same code as above. However, it stores copies of what's been removed in variables named first_removed and last_removed. At the end it prints the Python list, and also shows which letters were removed. Python also offers a del (short for delete) command that deletes any item from a list based on its index number (position). But again, you have to remember that the first item is zero. So, let's say you run the following code to delete item number 2 from the list: # Create a list of strings. letters = ["A", "B", "C", "D", "E", "F", "G"] # Remove item sub 2. del letters[2] print(letters) Running that code shows the list again, as follows. The letter C has been deleted, which is the correct item to delete because letters are numbered 0, 1, 2, 3, and so forth. ['A', 'B', 'D', 'E', 'F', 'G'] You can also use del to delete an entire list. Just don’t use the square brackets and the index number. For example, the code you see below creates a list then deletes it. Trying to print the list after the deletion causes an error, because the list no longer exists when the print() statement is executed. Clearing out a Python list If you want to delete the contents of a list but not the list itself, use .clear(). The list still exists; however, it contains no items. In other words, it's an empty list. The following code shows how you could test this. Running the code displays [] at the end, which lets you know the list is empty: # Create a list of strings. letters = ["A", "B", "C", "D", "E", "F", "G"] # Clear the list of all entries. letters.clear() # Show me the new list. print(letters) Counting how many times an item appears in a Python list You can use the Python count() method to count how many times an item appears in a list. As with other list methods, the syntax is simple: <em>listname</em>.count(<em>x</em>) Replace listname with the name of your list, and x with the value you're looking for (or the name of a variable that contains that value). The code in the image below counts how many times the letter B appears in the list, using a literal B inside the parentheses of .count(). This same code also counts the number of C grades, but that value was stored in a variable just to show the difference in syntax. Both counts worked, as you can see in the output of the program at the bottom. One was added to count the F's, not using any variables. The F’s were counted right in the code that displays the message. There are no F grades, so this returns zero, as you can see in the output. When trying to combine numbers and strings to form a message, remember you have to convert the numbers to strings using the str() function. Otherwise, you get an error that reads something like can only concatenate str (not "int") to str. In that message, int is short for integer, and str is short for string. Finding a Python list item's index Python offers an .index() method that returns a number indicating the position, based on index number, of an item in a list. The syntax is: <em>listname</em>.index(<em>x</em>) As always, replace listname with name of the list you want to search. Replace x what whatever you're looking for (either as a literal or as a variable name, as always). Of course, there’s no guarantee that the item is in the list, and even if it is, there’s no guarantee that the item is in the list only once. If the item isn’t in the list, then an error occurs. If the item is in the list multiple times, then the index of the first matching item is returned. The following image shows an example where the program crashes at the line f_index = grades.index(look_for) because there is no F in the list. An easy way to get around that problem is to use an if statement to see whether an item is in the list before you try to get its index number. If the item isn't in the list, display a message saying so. Otherwise, get the index number and show it in a message. That code is as follows: # Create a list of strings. grades = ["C", "B", "A", "D", "C", "B", "C"] # Decide what to look for look_for = "F" # See if the item is in the list. if look_for in grades: # If it's in the list, get and show the index. print(str(look_for) + " is at index " + str(grades.index(look_for))) else: # If not in the list, don't even try for index number. print(str(look_for) + " isn't in the list.") Alphabetizing and sorting Python lists Python offers a sort() method for sorting lists. In its simplest form, it alphabetizes the items in the list (if they’re strings). If the list contains numbers, they’re sorted smallest to largest. For a simple sort like that, just use sort() with empty parentheses: <em>listname</em>.sort() Replace listname with the name of your list. The following image shows an example using a list of strings and a list of numbers. In the example, a new list was created for each of them simply by assigning each sorted list to a new list name. Then the code prints the contents of each sorted list. If your list contains strings with a mixture of uppercase and lowercase letters, and if the results of the sort don't look right, try replacing .sort() with .sort(key=lambda s:s.lower()) and then running the code again. Dates are a little trickier because you can’t just type them in as strings, like "12/31/2020". They have to be the date data type to sort correctly. This means using the datetime module and the date() method to define each date. You can add the dates to the list as you would any other list. For example, in the following line, the code creates a list of four dates, and the code is perfectly fine. dates = [dt.date(2020,12,31), dt.date(2019,1,31), dt.date(2018,2,28), dt.date(2020,1,1)] The computer certainly won't mind if you create the list this way. But if you want to make the code more readable to yourself or other developers, you may want to create and append each date, one at a time, so just so it’s a little easier to see what’s going on and so you don’t have to deal with so many commas in one line of code. The image below shows an example where an empty list named datelist was created: datelist = [] Then one date at a time was appended to the list using the dt.date(<em>year</em>,<em>month</em>,<em>day</em>) syntax. After the list is created, the code uses datelist.sort() to sort them into chronological order (earliest to latest). You don’t need to use print(datelist) in that code because that method displays the dates with the data type information included, like this: [datetime.date(2018, 2, 28), datetime.date(2019, 1, 31), datetime.date (2020, 1, 1), datetime.date(2020, 12, 31)] Not the easiest list to read. So, rather than print the whole list with one print() statement, you can loop through each date in the list, and printed each one formatted with the f-string %m/%d/%Y. This displays each date on its own line in mm/dd/yyyy format, as you can see at the bottom of the image above. If you want to sort items in reverse order, put reverse=True inside the sort() parentheses (and don't forget to make the first letter uppercase). The image below shows examples of sorting all three lists in descending (reverse) order using reverse=True. Reversing a Python list You can also reverse the order of items in a list using the .reverse method. This is not the same as sorting in reverse, because when you sort in reverse, you still actually sort: Z–A for strings, largest to smallest for numbers, latest to earliest for dates. When you reverse a list, you simply reverse the items in the list, no matter their order, without trying to sort them in any way. The following code shows an example in which you reverse the order of the names in the list and then print the list. The output shows the list items reversed from their original order: # Create a list of strings. names = ["Zara", "Lupe", "Hong", "Alberto", "Jake"] # Reverse the list names.reverse() # Print the list print(names) ['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara'] Copying a Python list If you ever need to work with a copy of a list, use the .copy() method so as not to alter the original list,. For example, the following code is similar to the preceding code, except that instead of reversing the order of the original list, you make a copy of the list and reverse that one. Printing the contents of each list shows how the first list is still in the original order whereas the second one is reversed: # Create a list of strings. names = ["Zara", "Lupe", "Hong", "Alberto", "Jake"] # Make a copy of the list backward_names = names.copy() # Reverse the copy backward_names.reverse() # Print the list print(names) print(backward_names) ['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake'] ['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara'] For future references, the following table summarizes the methods you've learned about. Methods for Working with Lists Method What it Does append() Adds an item to the end of the list. clear() Removes all items from the list, leaving it empty. copy() Makes a copy of a list. count() Counts how many times an element appears in a list. extend() Appends the items from one list to the end of another list. index() Returns the index number (position) of an element within a list. insert() Inserts an item into the list at a specific position. pop() Removes an element from the list, and provides a copy of that item that you can store in a variable. remove() Removes one item from the list. reverse() Reverses the order of items in the list. sort() Sorts the list in ascending order. Put reverse=True inside the parentheses to sort in descending order.

View Article
Java The Atoms: Java’s Primitive Types

Article / Updated 10-28-2024

The words int and double are examples of primitive types (also known as simple types) in Java. The Java language has exactly eight primitive types. As a newcomer to Java, you can pretty much ignore all but four of these types. (As programming languages go, Java is nice and compact that way.) The types that you shouldn’t ignore are int, double, char, and boolean. The char type Several decades ago, people thought computers existed only for doing big number-crunching calculations. Nowadays, nobody thinks that way. So, if you haven’t been in a cryogenic freezing chamber for the past 20 years, you know that computers store letters, punctuation symbols, and other characters. The Java type that’s used to store characters is called char. The code below has a simple program that uses the char type. This image shows the output of the program in the code below. public class CharDemo { public static void main(String args[]) { char myLittleChar = 'b'; char myBigChar = Character.toUpperCase(myLittleChar); System.out.println(myBigChar); } } In this code, the first initialization stores the letter b in the variable myLittleChar. In the initialization, notice how b is surrounded by single quote marks. In Java, every char literally starts and ends with a single quote mark. In a Java program, single quote marks surround the letter in a char literal. Character.toUpperCase. The Character.toUpperCase method does just what its name suggests — the method produces the uppercase equivalent of the letter b. This uppercase equivalent (the letter B) is assigned to the myBigChar variable, and the B that’s in myBigChar prints onscreen. If you’re tempted to write the following statement, char myLittleChars = 'barry'; //Don't do this please resist the temptation. You can’t store more than one letter at a time in a char variable, and you can’t put more than one letter between a pair of single quotes. If you’re trying to store words or sentences (not just single letters), you need to use something called a String. If you’re used to writing programs in other languages, you may be aware of something called ASCII character encoding. Most languages use ASCII; Java uses Unicode. In the old ASCII representation, each character takes up only 8 bits, but in Unicode, each character takes up 8, 16, or 32 bits. Whereas ASCII stores the letters of the Roman (English) alphabet, Unicode has room for characters from most of the world’s commonly spoken languages. The only problem is that some of the Java API methods are geared specially toward 16-bit Unicode. Occasionally, this bites you in the back (or it bytes you in the back, as the case may be). If you’re using a method to write Hello on the screen and H e l l o shows up instead, check the method’s documentation for mention of Unicode characters. It’s worth noticing that the two methods, Character.toUpperCase and System.out.println, are used quite differently in the code above. The method Character.toUpperCase is called as part of an initialization or an assignment statement, but the method System.out.println is called on its own. The boolean type A variable of type boolean stores one of two values: true or false. The code below demonstrates the use of a boolean variable. public class ElevatorFitter2 { public static void main(String args[]) { System.out.println("True or False?"); System.out.println("You can fit all ten of the"); System.out.println("Brickenchicker dectuplets"); System.out.println("on the elevator:"); System.out.println(); int weightOfAPerson = 150; int elevatorWeightLimit = 1400; int numberOfPeople = elevatorWeightLimit / weightOfAPerson; <strong> boolean allTenOkay = numberOfPeople >= 10;</strong> System.out.println(allTenOkay); } } In this code, the allTenOkay variable is of type boolean. To find a value for the allTenOkay variable, the program checks to see whether numberOfPeople is greater than or equal to ten. (The symbols >= stand for greater than or equal to.) At this point, it pays to be fussy about terminology. Any part of a Java program that has a value is an expression. If you write weightOfAPerson = 150; then 150 ,is an expression (an expression whose value is the quantity 150). If you write numberOfEggs = 2 + 2; then 2 + 2 is an expression (because 2 + 2 has the value 4). If you write int numberOfPeople = elevatorWeightLimit / weightOfAPerson; then elevatorWeightLimit / weightOfAPerson is an expression. (The value of the expression elevatorWeightLimit / weightOfAPerson depends on whatever values the variables elevatorWeightLimit and weightOfAPerson have when the code containing the expression is executed.) Any part of a Java program that has a value is an expression. In the second set of code, numberOfPeople >= 10 is an expression. The expression’s value depends on the value stored in the numberOfPeople variable. But, as you know from seeing the strawberry shortcake at the Brickenchicker family’s catered lunch, the value of numberOfPeople isn’t greater than or equal to ten. As a result, the value of numberOfPeople >= 10 is false. So, in the statement in the second set of code, in which allTenOkay is assigned a value, the allTenOkay variable is assigned a false value. In the second set of code, System.out.println() is called with nothing inside the parentheses. When you do this, Java adds a line break to the program’s output. In the second set of code, System.out.println() tells the program to display a blank line.

View Article
Coding Tips for Debugging the Code in Your Mobile App

Article / Updated 10-28-2024

When coding your app, you will almost inevitably write code that does not behave as you intended. HTML and CSS are relatively forgiving, with the browser even going so far as to insert tags so the page renders properly. However, JavaScript isn’t so forgiving, and the smallest error, such as a missing quotation mark, can cause the page to not render properly. Errors in web applications can consist of syntax errors, logic errors, and display errors. Often, the most likely culprit causing errors in your code will be syntax related. Here are some common errors to check when debugging your code: Opening and closing tags: In HTML, every opening tag has a closing tag, and you always close the most recently opened tag first. Right and left angle brackets: In HTML, every left angle bracket < has a right angle bracket >. Right and left curly brackets: In CSS and JavaScript, every left curly bracket must have a right curly bracket. It can be easy to accidentally delete it or forget to include it. Indentation: Indent your code and use plenty of tabs and returns to make your code as readable as possible. Proper indentation will make it easier for you to identify missing tags, angle brackets, and curly brackets. Misspelled statements: Tags in any language can be misspelled, or spelled correctly but not part of the specification. For example, in HTML, <img scr="image.jpg"> is incorrect because scr should really be src for the image to render properly. Similarly, in CSS font-color looks like it is spelled correctly but no such property exists. The correct property to set font color is just color. Keep these errors in mind when debugging — they may not solve all your problems, but they should solve many of them. If you have tried the steps above and still cannot debug your code, tweet @nikhilgabraham and include the #codingFD hashtag and your codepen.io URL in your tweet.

View Article
General Programming & Web Design How to Fix Noncompliant Code on Your Web Page

Article / Updated 05-30-2024

For each web coding issue identified by a validator, you need to determine what course of action to take. Although some culprits that repeatedly crop up are easy to fix, such as missing alt text and <noscript> tags, you’re bound to find coding issues that completely baffle and stump you. For instance, if you get an error message that reads XML Parsing Error: Opening and ending tag mismatch: br line 52 and body, it might be difficult to figure out what that means, let alone why it was caused and how you should fix it. As a strategy then, try to fix the issues within the code from the top down, as they’re listed in the validation results, because sometimes fixing one issue resolves another. With the XML parsing error, that issue might disappear when you correct for an omitted closing element on a <br /> tag listed earlier in the error results. The best way to find out how to code better and make fewer mistakes before validation testing is to make lots of honest mistakes and figure out how to correct them on your own. Most often, you can fix noncompliant code by hand or with the help of a good HTML editor. To help you identify some of the more common coding mistakes, here several code issues along with suggestions about how to fix them. Problem Solution alt text attribute missing from <img> tag Add the alternative text attribute, either with or without a description, as in <img src="images/logo.gif" width="150" height="150" alt="Pete’s Pizza"> <img src="images/flourish.gif" width="200" height="150" alt=""> . <noscript> tags missing from code Add <noscript> tags below each instance when JavaScript is present in in-line JavaScript or at the end of the content before the closing body tag. Between the <noscript> tags, insert HTML content (text, graphics, media files, and so on) that describes the function of the JavaScript and, when appropriate, how visitors can access the information revealed by it, as shown here: <script language="JavaScript" src="bookmark.js" type="text/javascript"></script><noscript>The JavaScript used on this page provides a quick link that allows visitors to automatically bookmark this page. As an alternative, please use your browser’s Bookmark This Page feature.</noscript> Flashing or flickering element(s) detected, such as animated GIFs, Java applets, and other multimedia plug-ins Adjust the speed of any animations to avoid causing the screen to flicker with a frequency between 2 Hz and 55 Hz. Animations that exceed these two measures may cause seizures in visitors with photosensitive epilepsy. No DOCTYPE specified Add a valid DOCTYPE above the opening <head> tag. No HTTP charset parameter specified This special meta tag specifies the character set used in the HTML code. Some HTML editors include it automatically when generating new blank web pages. If validation finds that this tag is missing from your HTML or XHTML code, insert the following code by hand: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> . For HTML5, insert <meta charset="utf-8"> . No <title> tag specified Add a unique title between <title> tags in the head area on each page. No <meta> tags specified Add meta keywords and meta description tags to the head of each page. These can be identical on every page on the site. If desired, you may also add additional meta tags as needed. No Robots tags specified Add the Robots <meta> tag in the head of the page to instruct web spiders and robots whether to index the page and follow any hyperlinks, such as <meta name="Robots" content="All"> . Deprecated <font> tags detected Move all the presentation markup of the HTML (page, fonts, tables, links, and so on) to an external CSS file and remove all <font> tags and HTML and inline formatting attributes. Deprecated table height attribute detected Control table cell heights, when necessary, with CSS styles. Style attributes detected in the opening <body> tag Move body attributes, like margin attributes and background page color, to a BODY tag redefine style in an external CSS file. type attribute not specified for JavaScript or CSS Add the type="text/css" attribute for <style> tags and the type="text/javascript" attribute for <script> tags: <style type="text/css" ><script type="text/javascript"> . Entity name used instead of entity number Change the entity name to an entity number, such as using $#169; instead of © to create the copyright symbol (c). No background color attribute was specified for a CSS style that specifies text color Provide each style that contains a text color attribute with an attending background color attribute. The background color should match, or closely match, the background color upon which the text will display on. When you’re finished identifying and adjusting all the noncompliant code identified by the validation tools, and have fixed everything that needed fixing, move on to the retesting and acceptable failure phase of the testing process.

View Article
General Programming & Web Design How To Choose a Cloud Service Provider for DevOps

Article / Updated 05-30-2024

The success of your DevOps initiative relies heavily on following the process, but it’s also important to use the right tools. Selecting a cloud service provider isn’t an easy choice, especially when DevOps is your driving motivation. GCP (Google Cloud Platform), AWS (Amazon Web Services), and Azure have more in common than they do apart. Often, your decision depends more on your DevOps team’s comfort level with a particular cloud provider or your current stack more than the cloud provider itself. After you’ve decided to move to the cloud, the next decision is to decide on a cloud provider that fits your DevOps needs. Here are some things to consider when evaluating cloud providers with DevOps principles in mind: Solid track record. The cloud you choose should have a history of responsible financial decisions and enough capital to operate and expand large datacenters over decades. Compliance and risk management. Formal structure and established compliance policies are vital to ensure that your data is safe and secure. Ideally, review audits before you sign contracts. Positive reputation. Customer trust is absolutely key. Do you trust that you can rely on this cloud provider to continue to grow and support your evolving DevOps needs? Service Level Agreements (SLAs). What level of service do you require? Typically cloud providers offer various levels of uptime reliability based on cost. For example, 99.9 percent uptime will be significantly cheaper than 99.999 percent uptime. Metrics and monitoring. What types of application insights, monitoring, and telemetry does the vendor supply? Be sure that you can gain an appropriate level of insight into your systems in as close to real-time as possible. Finally, ensure the cloud provider you choose has excellent technical capabilities that provide services that meet your specific DevOps needs. Generally, look for Compute capabilities Storage solutions Deployment features Logging and monitoring Friendly user interfaces You should also confirm the capability to implement a hybrid cloud solution in case you need to at some point, as well as to make HTTP calls to other APIs and services. The three major cloud providers are Google Cloud Platform (GCP), Microsoft Azure, and Amazon web Services (AWS). You can also find smaller cloud providers and certainly a number of private cloud providers, but the bulk of what you need to know comes from comparing the public cloud providers. Amazon Web Services (AWS) As do the other major public cloud providers, AWS provides on-demand computing through a pay-as-you-go subscription. Users of AWS can subscribe to any number of services and computing resources. Amazon is the current market leader among cloud providers, holding the majority of cloud subscribers. It offers a robust set of features and services in regions throughout the world. Two of the most well-known services are Amazon Elastic Compute Cloud (EC2) and Amazon Simple Storage Service (Amazon S3). As with other cloud providers, services are accessed and infrastructure is provisioned through APIs. Microsoft Azure Before Microsoft launched this cloud provider as Microsoft Azure, it was called Windows Azure. Microsoft designed it to do just what the name implies — serve as a cloud provider for traditionally Windows IT organizations. But as the market became more competitive and Microsoft started to better understand the engineering landscape, Azure adapted, grew, and evolved. Although still arguably less robust than AWS, Azure is a well-rounded cloud provider focused on user experience. Through various product launches and acquisitions — notably GitHub — Microsoft has invested heavily in Linux infrastructure, which has enabled it to provide more robust services to a wider audience. Google Cloud Platform (GCP) The Google Cloud Platform (GCP) has the least market share of the three major public cloud providers but offers a substantial set of cloud services throughout nearly two dozen geographic regions. Perhaps the most appealing aspect of GCP is that it offers users the same infrastructure Google uses internally. This infrastructure includes extremely powerful computing, storage, analytics, and machine learning services. Depending on your specific product, GCP may have specialized tools that are lacking (or less mature) in AWS and Azure. Finding DevOps tools and services in the cloud Literally hundreds of tools and services are at your disposal through the major cloud providers. Those tools and services are generally separated into the following categories: Compute Storage Networking Resource management Cloud Artificial Intelligence (AI) Identity Security Serverless IoT Following is a list of the most commonly used services across all three of the major cloud providers. These services include app deployment, virtual machine (VM) management, container orchestration, serverless functions, storage, and databases. Additional services are included, such as identity management, block storage, private cloud, secrets storage, and more. It’s far from an exhaustive list but can serve as a solid foundation for you as you begin to research your options and get a feel for what differentiates the cloud providers. App deployment: Platform as a Service (PaaS) solution for deploying applications in a variety of languages including Java, .NET, Python, Node.js, C#, Ruby, and Go Azure: Azure Cloud Services AWS: AWS Elastic Beanstalk GCP: Google App Engine Virtual machine (VM) management: Infrastructure as a Service (IaaS) option for running virtual machines (VMs) with Linux or Windows Azure: Azure Virtual Machines AWS: Amazon EC2 GCP: Google Compute Engine Managed Kubernetes: Enables better container management via the popular orchestrator Kubernetes Azure: Azure Kubernetes Service (AKS) AWS: Amazon Elastic Container Service (ECS) for Kubernetes GCP: Google Kubernetes Engine Serverless: Enables users to create logical workflows of serverless functions Azure: Azure Functions AWS: AWS Lambda GCP: Google Cloud Functions Cloud storage: Unstructured object storage with caching Azure: Azure Blob Storage AWS: Amazon S3 GCP: Google Cloud Storage Databases: SQL and NoSQL databases, on demand Azure: Azure Cosmos DB AWS: Amazon Relational Database Service (RDS) and Amazon DynamoDB (NoSQL) GCP: Google Cloud SQL and Google Cloud BigTable (NoSQL) As you explore the three major cloud providers, you notice a long list of services. You may feel overwhelmed by the hundreds of options at your disposal. If, by chance, you can’t find what you need, the marketplace will likely provide something similar. The marketplace is where independent developers offer services that plug into the cloud — hosted by Azure, AWS or GCP. The table below lists additional services provided by most, if not all, cloud providers. Common Cloud Services Service Category Functionality Block storage Data storage used in storage-area network (SAN) environments. Block storage is similar to storing data on a hard drive. Virtual Private Cloud (VPC) Logically isolated, shared computing resources. Firewall Network security that controls traffic. Content Delivery Network (CDN) Content delivery based on the location of the user. Typically utilizes caching, load balancing and analytics. Domain Name System (DNS) Translator of domain names to IP addresses for browsers. Single Sign-On (SSO) Access control to multiple systems or applications using the same credentials. If you’ve logged into an independent application with your Google, Twitter or GitHub credentials, you’ve used SSO. Identity and Access Management (IAM) Role-based user access management. Pre-determined roles have access to a set group of features; users are assigned roles. Telemetry, monitoring and logging Tools to provide application insights on performance, server load, memory consumption and more. Deployments Configuration, infrastructure and release pipeline management tools. Cloud shell Shell access from a command-line interface (CLI) within the browser. Secrets storage Secure storage of keys, tokens, passwords, certificates and other secrets. Message Queues Dynamically scaled message brokers. Machine Learning (ML) Deep learning frameworks and tools for data scientists. IoT Device connection and management.

View Article
SQL SQL All-in-One For Dummies Cheat Sheet

Cheat Sheet / Updated 04-12-2024

SQL is a popular and useful programming language. You can make SQL even more useful if you know the phases of SQL development, the criteria for normal forms, the data types used by SQL, a little bit about set and value functions, as well as some tips on how to filter tables with WHERE clauses.

View Cheat Sheet
Python Python All-in-One For Dummies Cheat Sheet

Cheat Sheet / Updated 04-12-2024

Python is a flexible programming language that has become increasingly popular in the past few years. This cheat sheet is designed to give you a handy resource for common Python data types, Python operators, and Python functions. It includes Python data types, operators, special characters, f-strings, and functions for working with robots.

View Cheat Sheet
General Programming & Web Design Building DIY Websites For Dummies Cheat Sheet

Cheat Sheet / Updated 03-26-2024

If you want to build your own website from start to finish, this book serves as a great resource. It includes many secrets and best practices that web developers know and implement when building any quality website. This cheat sheet includes bits and pieces of what you'll find in the book.

View Cheat Sheet
WordPress WordPress All-in-One For Dummies Cheat Sheet

Cheat Sheet / Updated 01-18-2024

Tailor your blog with WordPress software, whether you're writing, editing, or publishing WordPress site content. An understanding of WordPress's dashboard controls and of the types of content available to you helps you get the most out of your website. Also, when all else fails, it's good to know where you can turn to for help with WordPress.

View Cheat Sheet
page 1
page 2
page 3
page 4
page 5
page 6
page 7
page 8
page 9
page 10
page 11
page 12
page 13
page 14
page 15
page 16
page 17
page 18
page 19
page 20
page 21
page 22
page 23
page 24
page 25
page 26
page 27
page 28
page 29
page 30
page 31
page 32
page 33
page 34
page 35
page 36
page 37
page 38
page 39
page 40
page 41
page 42
page 43
page 44
page 45
page 46
page 47
page 48
page 49
page 50
page 51
page 52
page 53
page 54
page 55
page 56
page 57
page 58
page 59
page 60
page 61
page 62
page 63
page 64
page 65
page 66
page 67
page 68
page 69
page 70
page 71
page 72
page 73
page 74
page 75
page 76
page 77
page 78
page 79
page 80
page 81
page 82
page 83
page 84
page 85
page 86
page 87
page 88
page 89
page 90
page 91
page 92
page 93
page 94
page 95
page 96
page 97
page 98
page 99
page 100
page 101
page 102
page 103
page 104
page 105
page 106
page 107
page 108
page 109
page 110
page 111
page 112
page 113
page 114
page 115
page 116
page 117
page 118
page 119
page 120
page 121
page 122
page 123
page 124
page 125
page 126
page 127
page 128
page 129
page 130
page 131
page 132
page 133
page 134
page 135
page 136
page 137
page 138
page 139
page 140

Quick Links

  • About For Dummies
  • Contact Us
  • Activate Online Content

Connect

About Dummies

Dummies has always stood for taking on complex concepts and making them easy to understand. Dummies helps everyone be more knowledgeable and confident in applying what they know. Whether it's to pass that big test, qualify for that big promotion or even master that cooking technique; people who rely on dummies, rely on it to learn the critical skills and relevant information necessary for success.

Copyright @ 2000-2024 by John Wiley & Sons, Inc., or related companies. All rights reserved, including rights for text and data mining and training of artificial technologies or similar technologies.

Terms of Use
Privacy Policy
Cookies Settings
Do Not Sell My Personal Info - CA Only