<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[computer programming languages - Medium]]></title>
        <description><![CDATA[Old, Current, and new programming languages. - Medium]]></description>
        <link>https://medium.com/computer-programming-languages?source=rss----77f078b224e3---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>computer programming languages - Medium</title>
            <link>https://medium.com/computer-programming-languages?source=rss----77f078b224e3---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 13 Nov 2026 16:13:53 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/computer-programming-languages" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Five Superstar Programmers]]></title>
            <link>https://medium.com/computer-programming-languages/five-superstar-programmers-a117c608b184?source=rss----77f078b224e3---4</link>
            <guid isPermaLink="false">https://medium.com/p/a117c608b184</guid>
            <category><![CDATA[software-developer]]></category>
            <category><![CDATA[recognized-programmers]]></category>
            <category><![CDATA[superstar-programmer]]></category>
            <category><![CDATA[top-programmers]]></category>
            <category><![CDATA[programmer]]></category>
            <dc:creator><![CDATA[Seattle Web Design]]></dc:creator>
            <pubDate>Mon, 04 Mar 2024 20:17:05 GMT</pubDate>
            <atom:updated>2024-03-04T20:17:05.568Z</atom:updated>
            <content:encoded><![CDATA[<p>1883, the first programming language is developed. Working on a primitive mechanical computer, the Analytical Engine, Ada Lovelace could distinguish the importance of numbers. Lovelace recognized that numbers could be regarded as more than just a numerical value. Ada Lovelace wrote an algorithm to be used on the Analytical Engine with the power to compute <a href="https://en.wikipedia.org/wiki/Bernoulli_number">Bernoulli numbers</a>. This was deemed the first computer program.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jvESAC-o-QXKOy5vZJGuXg.jpeg" /></figure><h3>What is programming?</h3><p>So, what is programming? Programming is the technological process of telling a computer what tasks it needs to execute to solve problems. Programming is a partnership between humans and computers; in this partnership, humans will develop a set of instructions for the computer. The instructions the human develops are written in a language meant for the computer, a language the computer can understand.</p><h3>What is programming capable of?</h3><p>Currently, programming is all around us and can do so many things. Programming provides us with interactive websites, computer games, mobile apps, statistical analysis of analytical or research assignments, and building and maintaining large databases. Furthermore, programming can also turn repetitive tasks into automated tasks. For example, sending timed emails, posting on social media, and controlling lights or <a href="https://www.nobledesktop.com/learn/programming/what-is-programming">thermostats</a>. Programming also gives us video games and creates a more accessible world with digital assistants, voice commands, and public accessibility for those with mental or physical <a href="https://www.byjusfutureschool.com/blog/what-is-the-impact-of-coding-on-our-world/#:~:text=Undoubtedly%2C%20today&#39;s%20programming%20languages%20affect,space%20organizations%20are%20receiving%20assistance">disabilities</a>. Space travel and exploration have also been greatly supported by computer programming. NASA has begun to use Python to learn more about our universe and the planet by processing data they have collected. Also, NASA has used Python to detect compounds, collect data, and estimate surrounding radiation levels.</p><h3>Overview of programming languages.</h3><p>There are two programming languages: high-level and low-level programming. High-level programming is defined as being object-oriented and procedural. High-level programming languages are easier for humans to understand because they contain many symbols, phrases, and letters. Low-level programming languages are written in assembly and machine language; machine languages are written in binary code; assembly language is documented in a human-readable machine language representation. Programming high-level languages are Python, JavaScript, BASIC, Delphi, Perl, <a href="https://visualwebz.com/php/">PHP</a>, C#, and Java. C, C++, assembly, and FORTRAN are programming languages considered low-level.</p><h3>Advantages and disadvantages</h3><p>What are some advantages of high-level programming? High-level languages often feature a syntax written in English, which helps beginners take to those languages <a href="https://codegym.cc/groups/posts/18436-low-medium-high-level-what-are-the-types-of-programming-languages-and-how-it-affects-the-compl">quickly</a>. A high-level programming language will also enhance the user’s productivity with a more efficient and readable language. Another advantage would be portability. Low-level languages are not usually portable across different platforms like high-level ones. Some disadvantages of programming with a high-level language would be the user needs more control over the hardware, the computer’s resources, and intense resource consumption. When an application has been written in a high-level programming language, it can consume several system resources, such as memory and processing <a href="https://codegym.cc/groups/posts/18436-low-medium-high-level-what-are-the-types-of-programming-languages-and-how-it-affects-the-compl">power</a>.</p><p>The advantages of low-level programming are the high efficiency, direct hardware interaction, and smaller <a href="https://seattlewebsitedesign.medium.com/future-of-web-coding-a744f9a74bcc">code</a> size. High efficiency is an advantage of low-level programming because they are more efficient in speed and memory usage. Programming with a smaller code size can be highly beneficial in circumstances with limited <a href="https://www.linkedin.com/advice/1/how-can-you-choose-between-high-level-low-level#:~:text=They%20use%20binary%2C%20hexadecimal%2C%20or,%2B%2B%2C%20Assembly%2C%20and%20Fortran">storage</a> space. Some disadvantages of programming with low-level languages are difficulty in comprehension, time consumption, little flexibility, and increased chance of error. Low-level languages require an extensive understanding of the hardware design, making code comprehension difficult. Writing a program in low-level languages will need more time and labor. Also, low-level programs are written with a particular architecture and often cannot be transferred to different platforms. Low-level languages have direct access to memory and hardware, making errors a higher risk as they can lead to system <a href="https://www.linkedin.com/advice/1/how-can-you-choose-between-high-level-low-level#:~:text=They%20use%20binary%2C%20hexadecimal%2C%20or,%2B%2B%2C%20Assembly%2C%20and%20Fortran">failures</a>.</p><h3>John Backus</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/850/0*gf0WjvLKLH5X1nOs.jpg" /><figcaption><a href="https://www.azquotes.com/quote/765059">https://www.azquotes.com/quote/765059</a></figcaption></figure><p>Jumping to 1957, computer programmer John Backus developed the language FORTRAN (formula translation), marking a significant step in developing computer programming <a href="https://www.britannica.com/technology/FORTRAN">language</a>. The FORTRAN language was used for engineering, scientific, and statistical <a href="https://www.linkedin.com/pulse/evolution-programming-languages-past-present-future-mohindroo-#:~:text=The%20history%20of%20programming%20dates,called%20FORTRAN%20(Formula%20Translation)">equations</a>. FORTRAN shortened the programming process, which made computer programming more approachable. Before the creation of FORTRAN, programming was written in machine or assembly language, requiring the programmer to write code in binary or use hexadecimal arithmetic, a way to count that uses 16 different symbols after numbers <a href="https://www.khanacademy.org/math/algebra-home/alg-intro-to-algebra/algebra-alternate-number-bases/v/hexadecimal-number-system#:~:text=The%20hexadecimal%20number%20system%20is,represent%20the%20numbers%2010%2D15">0–9</a>.</p><h3>Grace Hopper</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/575/0*VjUi3P_DPQNJq2lt" /><figcaption><a href="https://news.yale.edu/2017/02/10/grace-murray-hopper-1906-1992-legacy-innovation-and-service">https://news.yale.edu/2017/02/10/grace-murray-hopper-1906-1992-legacy-innovation-and-service</a></figcaption></figure><p>Grace Hopper proposed the idea of writing programs in words instead of using symbols. With hard work and persistence, she and her team created the first English-language compiler to use word commands, and in 1956, she was running FLOW-MATIC. FLOW-MATIC used everyday English words and was developed for processing <a href="https://president.yale.edu/biography-grace-murray-hopper#:~:text=While%20working%20on%20the%20UNIVAC,toward%20creating%20modern%20programming%20languages">data</a>. Hopper’s dedication to developing word-based programming languages was instrumental in expanding the computer community. Hopper made computers accessible to people without any engineering or math background. This was around when computer companies were marketing their computers to the private sector. With her development of word-based programs, Hopper believed accessibility would help people feel comfortable using computers for business applications, such as <a href="https://president.yale.edu/biography-grace-murray-hopper#:~:text=While%20working%20on%20the%20UNIVAC,toward%20creating%20modern%20programming%20languages">payroll</a>. By 1959, the need for standardized business language was increasing. Hopper took part in developing COBOL, a “common business-oriented language,” by designing the language. By 1970, COBOL was the world’s most extensively used computer language.</p><h3>Margaret Hamilton</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Ngh67OXfXp-zAroV.jpg" /><figcaption><a href="https://www.vox.com/2015/5/30/8689481/margaret-hamilton-apollo-software">https://www.vox.com/2015/5/30/8689481/margaret-hamilton-apollo-software</a></figcaption></figure><p>In 1969, Margaret Hamilton was the head of a team of scientists tasked with developing the software for guidance and control systems of the in-flight command and lunar modules of the Apollo <a href="https://www.britannica.com/biography/Margaret-Hamilton-American-computer-scientist">missions</a>. During this time, only some schools taught software engineering, meaning she and her team members had to work out any problems independently. So, Margaret Hamilton created the term “software engineer.” She did this because she felt her and her team’s work was just as important as just as much as any other engineer on the Apollo <a href="https://www.britannica.com/biography/Margaret-Hamilton-American-computer-scientist">spacecraft</a>. Hamilton took on detecting system errors and information recovery herself. Her work was crucial in taking astronauts Neil Armstrong and Buzz Aldrin to the <a href="https://www.britannica.com/biography/Margaret-Hamilton-American-computer-scientist">Moon</a>. In 2003, Margaret Hamilton earned NASA’s Exceptional Space Act Award, and in <a href="https://www.britannica.com/biography/Margaret-Hamilton-American-computer-scientist">2016</a>, President Barack Obama granted her the Presidential Medal of Freedom.</p><h3>Bill Gates</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/620/0*vWm3F-jBiKBvZaRu.jpg" /><figcaption><a href="https://www.telegraph.co.uk/technology/microsoft/windows/11817065/Twenty-years-ago-Microsoft-launched-Windows-95-changing-the-world.html">https://www.telegraph.co.uk/technology/microsoft/windows/11817065/Twenty-years-ago-Microsoft-launched-Windows-95-changing-the-world.html</a></figcaption></figure><p>At the young age of 13, he wrote his first software program. He and a group of programmers he gathered worked to computerize their high school staff’s payroll system. In 1975, Bill Gates and his friend Paul Allen developed the software for the first <a href="https://www.britannica.com/biography/Bill-Gates">microcomputers</a>. They adapted the popular programming language used on large computers, to be used on microcomputers, that language was BASIC. Together, they founded the company Microsoft. Bill Gates had great control over the young microcomputer industry when he licensed the operating system MS-DOS to IBM for use on the first microcomputer, the IBM PC, released in <a href="https://www.britannica.com/biography/Bill-Gates">1981</a>. MS-DOS dominated the competing operating systems as IBM set the standard for the personal computer industry and became reliant on Bill Gates for his <a href="https://www.britannica.com/biography/Bill-Gates">software</a>.</p><h3>Mark Zuckerberg</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/0*PTsUGul3-qVnfMyf.jpg" /><figcaption><a href="https://www.nytimes.com/2012/02/03/technology/from-earliest-days-zuckerberg-focused-on-controlling-facebook.html">https://www.nytimes.com/2012/02/03/technology/from-earliest-days-zuckerberg-focused-on-controlling-facebook.html</a></figcaption></figure><p>Mark Zuckerberg was the co-founder and CEO of Facebook. Zuckerberg launched thefacebook.com in 2004, which began as a directory for Harvard students to upload photos and information into a template Zuckerberg had <a href="https://www.britannica.com/biography/Mark-Zuckerberg">developed</a>. Just two weeks after the launch, half of the Harvard student body has signed up for thefacebook.com. With the help of his roommates, he added features to make thefacebook.com accessible to other campuses around the country. In 2005 thefacebook.com was renamed to Facebook, and soon after opened its registration to foreign colleges and high-school students, by 2006 anyone who had access to an email account could sign up for <a href="https://www.britannica.com/biography/Mark-Zuckerberg">Facebook</a>. After making strides in the social media world, Facebook changed the name of its parent company in 2021 to Meta Platforms, introducing users’ ability to interact in virtual reality. As of today, Meta Platforms is worth 1.21 trillion USD.</p><h3>Current trends in programming</h3><p>Some new developments in the programming world are low code and no code development, artificial intelligence and machine learning, domain-specific languages, and declarative programming. Low code and no code development allow users to develop software applications without writing code, making software development more accessible and leading to new programming <a href="https://www.flowmatters.com/blog/the-future-of-programming-languages-what-to-expect-in-the-next-10-years/">languages</a>. Artificial intelligence and machine learning are now used to create new programming languages. Furthermore, domain-specific languages (DSLs) were designed to carry out specific tasks or domains, anywhere from web development to machine learning. DSLs are more compact and demonstrative, making them more efficient use for particular tasks. Lastly, declarative programming is a type of development that allows <a href="https://visualwebz.com/">programmers</a> to specify what they need the program to do instead of telling it how to execute. Declarative programming makes development more straightforward, easier to understand, and more efficient.</p><h3>Future of programming</h3><p>A few emerging technologies and their future of programming are blockchain, quantum computing, and the Internet of <a href="https://www.flowmatters.com/blog/the-future-of-programming-languages-what-to-expect-in-the-next-10-years/">Things</a>. Blockchain is a distributed ledger technology developed to create a safe and tamper-proof record of transactions. Programming languages have begun to adjust to support blockchain in applications. Furthermore, quantum computing can use the power of quantum mechanics to solve problems that are too complex for a classic computer, which is still in early <a href="https://www.flowmatters.com/blog/the-future-of-programming-languages-what-to-expect-in-the-next-10-years/">development</a>. Lastly, the Internet of Things is a network of physical objects embedded with software, networks, and <a href="https://www.ibm.com/topics/internet-of-things">sensors</a>. Network connectivity allows physical objects to collect and share data, beginning with smart devices such as thermostats. Technologists are imagining intelligent cities.</p><h3>Final Thoughts</h3><p>Programming has many depths and applications in our world. We learned what programming is, different programming languages and categories, advantages and disadvantages, current programming trends, and what the future of programming may have in store. Programming has real impacts as Grace Hopper with FLOW-MATIC and COBOL, Margaret Hamilton and her work on the Apollo missions and spacecraft, John Backus with the development of FORTRAN, Bill Gates creating Microsoft, Mark Zuckerberg developing Facebook; developments that have changed the world we know today. Being a programmer has unlimited potential, from a worldwide social media impact to landing on the moon. It is exciting to think about what programming will do for us next.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a117c608b184" width="1" height="1" alt=""><hr><p><a href="https://medium.com/computer-programming-languages/five-superstar-programmers-a117c608b184">Five Superstar Programmers</a> was originally published in <a href="https://medium.com/computer-programming-languages">computer programming languages</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What Is Functional Programming]]></title>
            <link>https://medium.com/computer-programming-languages/what-is-functional-programming-9914f2110e81?source=rss----77f078b224e3---4</link>
            <guid isPermaLink="false">https://medium.com/p/9914f2110e81</guid>
            <category><![CDATA[software-developer-skills]]></category>
            <category><![CDATA[function-programming]]></category>
            <category><![CDATA[function-code]]></category>
            <category><![CDATA[programming-tips]]></category>
            <category><![CDATA[programming-paradigms]]></category>
            <dc:creator><![CDATA[Seattle Web Design]]></dc:creator>
            <pubDate>Mon, 04 Mar 2024 01:21:01 GMT</pubDate>
            <atom:updated>2024-03-04T01:21:01.704Z</atom:updated>
            <content:encoded><![CDATA[<h4>Why Should You Care?</h4><p>Functional programming is a programming paradigm and approach to software development that is almost a ‘way of life’ for how we write code. It emphasizes using pure functions — entities that rely strictly on their inputs to produce specific outputs, eliminating side effects. It also highlights utilizing a declarative approach, defining functions as expressions that connect values to other values and describing what the program should accomplish rather than how it should do it, in contrast to the imperative approach, which has a program operate step-by-step like a list.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/783/1*UvM7zFFC-Mjyd_-wMbSTnQ.jpeg" /><figcaption><a href="https://xebia.com/blog/functional-programming-y-fx-where-does-java-stand/">https://xebia.com/blog/functional-programming-y-fx-where-does-java-stand/</a></figcaption></figure><p>It strays away from the traditional ‘imperative’ approaches and instead focuses on building complex programs by composing and applying simple functions.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FcgVVZMfLjEI%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DcgVVZMfLjEI&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FcgVVZMfLjEI%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/844e70c9b7cb2758fdd0be7e66da897d/href">https://medium.com/media/844e70c9b7cb2758fdd0be7e66da897d/href</a></iframe><h3>Functional Programming in the Industry</h3><p>While functional programming is predictable, maintainable, concise, and expressive, all at the same time, it<em> does</em> have its challenges. Transitioning to functional programming has an incredibly steep learning curve for <a href="https://visualwebz.com/seattle-website-developer/">developers</a> who first learned other paradigms, forcing them to rewire their thinking and problem-solving approaches with new concepts like ‘immutability’ and ‘higher-order’ functions. Even so, a programmer’s efforts are rewarded with its ability to produce clean, maintainable, and scalable code, making it an incredible tool for tackling modern software challenges. Functional programming represents a ‘paradigm shift’ in software development, with its significance lying in its fundamental principles of simplicity, clarity, and efficiency. Companies and corporations often seek programmers who are well-versed in utilizing and leveraging a particular paradigm to address complex issues efficiently and ‘future-proof’ code, key principles that functional programming exemplifies.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F8z_bUIl_uPo%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D8z_bUIl_uPo&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F8z_bUIl_uPo%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/3d7ca8111f81e350eb2ecb00a1969a8e/href">https://medium.com/media/3d7ca8111f81e350eb2ecb00a1969a8e/href</a></iframe><h3>What is Functional Programming? Why is it important?</h3><p>Functional programming is a programming paradigm and approach to software development that uses pure functions such as variables, arguments, and return values to create navigable, maintainable software. ‘Programming paradigms’ are essentially different ways or styles in which a programming language can be organized to achieve one common goal: a functional program. The <a href="https://www.freecodecamp.org/news/an-introduction-to-programming-paradigms/#:~:text=Imperative%2C%20procedural%2C%20functional%2C%20declarative,and%20widely%20used%20paradigms%20today.">five main paradigms</a>, imperative, procedural, functional, declarative, and object-oriented, were built by the programming community with a set of ideas or guidelines and consist of specific structures, features, and opinions about how common programming problems should be handled. In functional programming, programmers build complex programs by applying, composing, and maintaining a mass of simple functions for readability, composability, and modularity; it demonstrates what you want to achieve rather than how to reach it through its code. It also structures its code to support, utilize, and apply mainly mathematical functions.</p><h3>Historical Roots</h3><p>Functional programming originates from <a href="https://www.tutorialspoint.com/functional_programming/functional_programming_lambda_calculus.htm">lambda calculus</a>, a formal mathematical logic and computer science foundation system. Alonzo Church developed Lambda calculus in the 1930s as a way for computation and functions. Functional programming languages draw heavily from lambda calculus, and the connection between the two lies in their shared emphasis on functions as fundamental building blocks. Lambda calculus relies on ‘recursion’, a method of solving problems that require computing where the solution depends on solutions to smaller parts of the same problem. It uses variables to represent numbers and defines and manipulates functions to take a particular argument and return an exact result. Functional programming utilizes pure functions and uses lambda calculus’ idea of recursion as a way for iteration in programs to break down big problems into more manageable, smaller ones.</p><h3>First-Class Citizens</h3><p>In functional programming, one key concept is that functions are <a href="https://www.codingdojo.com/blog/what-is-functional-programming">‘first-class citizens’</a>, meaning they can be assigned as variables, passed as an argument to other functions, and returned as a value from other functions. A function acts as an ‘entity’ which <a href="https://medium.com/ryanjang-devnotes/who-is-first-class-citizen-in-programming-world-b92c67b32635">supports all the operations</a> generally available to other ‘entities’. Simply put, first-class citizens are functions that can be assigned as a variable, an argument to other functions, or a way to return functions from other functions. First-class citizens function assigned as a variable, an argument, a function, a string, a way to return functions from other functions or a number, and you can move them around and use them in various ways with how diverse you can utilize them.</p><h3>Pure Functions</h3><p>Another key concept of functional programming is the idea of <a href="https://www.toptal.com/javascript/functional-programming-javascript#:~:text=Share-,Functional%20programming%20is%20a%20paradigm%20of%20building%20computer%20programs%20using,understand%20and%20more%20bug%20resistant.">pure functions</a>. A pure function relies only on its inputs to generate its result. Pure functions always produce the same fixed output for a fixed input, with no side effects. They don’t modify external states, variables, or anything outside the function. Wrapping our iteration within a function ensures it doesn’t change anything outside its environment. It creates a variable to process only the information it needs, and once the command is executed, the variable’s role is over. The function and its variable are strictly for ‘one-time use’.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F4IIWib5MZKg%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D4IIWib5MZKg&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F4IIWib5MZKg%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/4386fdc8e0e96aacff73ebde821f6817/href">https://medium.com/media/4386fdc8e0e96aacff73ebde821f6817/href</a></iframe><h3>Writing Programs with Functions</h3><p>With these concepts in mind, functional programming encourages programs written primarily with functions. It supports the idea of code modularity, a programming concept where developers separate program functions into smaller, individual, and independent pieces to eliminate potential side effects, making it easier to identify and separate specific actions. Doing this improves the code’s maintainability and makes the program less prone to bugs and crashes.</p><h3>The Use of Functions as Building Blocks</h3><p>This can be thought of with fly screen doors. By using bigger functions, you can imagine fly screens that are generally cheaper, have fewer strands, and have bigger holes. It usually gets the job done and keeps flies out, <em>but</em> small, pesky flies still get through; in our case, ‘bugs’ are getting through our fly screen, which is our program. With fly screens with <em>more</em> strands and <em>smaller</em> holes, the bugs have a significantly diminished chance of getting through our fly screens. This is why functional programming can be so valuable in the eyes of many programmers. Using many functions that might be smaller and simpler but build on each other can be just as mighty as more extensive functions that may have more bugs as more complex code is added onto the program later down the road.</p><h3>Examples of Programming Languages that use Functional Programming</h3><p>Some examples of programming languages that utilize functional programming include <a href="https://medium.com/@kodegasm.id/the-rise-of-functional-programming-languages-scala-haskell-and-clojure-4e3dadac22a0">Haskell</a>, Lisp, <a href="https://medium.com/@kodegasm.id/the-rise-of-functional-programming-languages-scala-haskell-and-clojure-4e3dadac22a0">Clojure</a>, and <a href="https://medium.com/@kodegasm.id/the-rise-of-functional-programming-languages-scala-haskell-and-clojure-4e3dadac22a0">Scala</a>, which are mainly functional programming, along with JavaScript, <a href="https://visualwebz.com/python/">Python</a>, and Java, which utilize many elements of functional programming and other paradigms. These all use functional programming to deliver more concise, modular code that is easier to ‘decipher’ in specific scenarios.</p><h3>Pros of Functional Programming</h3><h4>Clean and Maintainable code</h4><p>Functional Programming offers many benefits, including stronger code <a href="https://scalac.io/blog/unleashing-the-power-the-advantages-of-functional-programming-in-the-digital-age/">maintainability and readability</a>. It lets developers focus on the problem-solving aspect of their code and what the program should accomplish instead of how to achieve it. Code is broken down into small, concise functions, allowing for more readable code for users. In addition, when broken into smaller functions, it promotes reusable functions that are easier to debug and test. This ensures code that won’t introduce new bugs that need to be tested and reduces the time used during debugging. Functional programming promotes clean and maintainable code, increases productivity, and fosters improved collaboration among <a href="https://seattlewebsitedeveloper.com/">developers</a> within a team. As functional programming becomes more popular, the readability and maintainability aspect of it will become valuable as it provides a strong foundation of code and long-term success within teams.</p><h4>Reusable Functions and Components</h4><p>Functional code is split into more concise functions, which create reusable functions. Reusable functions are cleaner, allowing developers to construct other software programs from the reusable components. Using functions that have already been tested and debugged in other programs minimizes the risk of more bugs within a code. In addition, the functions created can be written in a “generic manner, &quot; enabling <a href="https://medium.com/@seattlewebsitedesign/superstar-programmers-f4d437033379">other developers</a> to adapt and read it quickly in different contexts. Not only does this save development time, but it enhances the quality of the software and code itself. Functional programming is known for its <a href="https://syndicode.com/blog/pros-and-cons-of-functional-programming/">high-level abstractions</a>, which hide the extended details of the code and allow programs to be shorter and easier to use. Overall, functional programming enables developers to work efficiently because it provides precise and fast code writing and reduces the use of testing and debugging.</p><h3>Cons of Functional Programming</h3><h4>Adjustment and Adaptability</h4><p>Despite all of the advantages of functional programming, there are some cons to it as well. One major issue with functional programming is that it’s complicated to adjust and adapt to once you know other languages. For instance, functional programming differs from other common <a href="https://medium.com/@seattlewebsitedesign/top-programming-languages-to-know-and-why-689acccb24ed">programming languages</a>, so people have to learn a new paradigm if they would like to use functional programming. Most developers are accustomed to other languages that differ entirely from functional programming. Due to a more meticulous workload, this can cause an enormous learning curve for those trying to implement functional programming in their code. Furthermore, as you develop these skills and learn functional programming, you experience more complications because you need to be more thought-out. This causes the process to require more <a href="https://positiwise.com/blog/object-oriented-programming-vs-functional-programming-comparison#:~:text=Disadvantages%20of%20Functional%20Programming&amp;text=Sometimes%20it%20is%20not%20suitable,slower%20as%20compared%20to%20OOP">effort</a> and becomes time-consuming, requiring a newly rewired way of thinking.</p><h4>Limited Resources</h4><p>Another disadvantage to learning functional programming is that more resources must be needed to understand the language. There are few library books and websites on functional programming to learn. Languages like Java and Python are often seen online and in libraries so that people can learn these languages quickly due to their availability. Programs like those have tutorials and videos for beginners, making adapting easier. However, since functional programming is less popular, there are fewer resources worldwide for people to learn and adjust to functional programming. In addition, functional programming is usually used by experienced programmers, making it even harder for beginners to learn. You can find videos like ‘<a href="https://youtu.be/8z_bUIl_uPo?feature=shared">Functional Programming — A </a>General Introduction’ where functional programming is briefly explained but not taught in depth. Overall, the biggest issue of functional programming is the complex learning process.</p><h3>Coding Examples</h3><p><strong><em>Functional Programming in Python</em></strong></p><p>Here are a few examples of codes from different languages that can be used for functional programming that all serve various purposes. Note that languages have their benefits and drawbacks regarding their use in functional programming since these are only considered functional-capable languages. When it comes to functional programming with Python, it is regarded as a multi-paradigm language, and the best way to use functional programming with Python is to keep most of your code at the module level and switch to classes only when you need to. The downside of functional programming with Python is that since Python has classes, it can be difficult to make pure or immutable functions, meaning that they cannot be changed once created.</p><pre># Tuples are useful for immutable functions<br>tuple1 = (0, 1, 2, 3)<br>tuple[0] = 4<br>print(tuple1)</pre><p>The code causes an error because it tries to reassign an immutable tuple object. Functional Python programs should use immutable data structures to achieve pure functions.</p><p>Functions should be used as objects in Python.</p><pre># This shows functions as objects<br>def shout(text):<br>return text.upper()<br># This passes function as parameter<br>def shout(text):<br>return text.upper()<br>def greet(func):<br># This has function being stored into a variable<br># The output should be in all capitalization because of how &#39;shout&#39; is the function<br>greeting = func(&quot;Hi, The World Revolves Around Programming&quot;)<br>print (greeting)<br>greet(shout)</pre><blockquote><strong>Outputs: </strong>Hi, The World Revolves Around Programming</blockquote><h3>Takeaway</h3><p>Functional programming stands out for its capacity to create highly effective programs, offering versatile solutions across various programming languages such as Python, JavaScript, and Java. Its rise in popularity stems from its <a href="https://www.educative.io/blog/what-is-functional-programming-python-js-java#next">efficiency and scalability in tackling modern software challenges</a>, underscoring its value from a programmer’s standpoint. Despite the challenges for first-time developers transitioning to functional programming, its benefits in clean, maintainable, and readable code make it essential. Functional programming is significant because it was created to create pure, immutable functions, drawing from lambda calculus to deal with many complex problems. It allows programmers to have easier and more methodical debugging and testing. As the software industry grows more and more, demanding more complex programs with more efficient coding, so will the relevance of functional programming, making it a cornerstone of both modern software engineering and its future.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9914f2110e81" width="1" height="1" alt=""><hr><p><a href="https://medium.com/computer-programming-languages/what-is-functional-programming-9914f2110e81">What Is Functional Programming</a> was originally published in <a href="https://medium.com/computer-programming-languages">computer programming languages</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Become A Better Programmer!]]></title>
            <link>https://medium.com/computer-programming-languages/become-a-better-programmer-f9906bce221f?source=rss----77f078b224e3---4</link>
            <guid isPermaLink="false">https://medium.com/p/f9906bce221f</guid>
            <category><![CDATA[learn-coding]]></category>
            <category><![CDATA[programming-tips]]></category>
            <category><![CDATA[software-developer]]></category>
            <category><![CDATA[become-a-programmer]]></category>
            <category><![CDATA[become-a-better-coder]]></category>
            <dc:creator><![CDATA[Seattle Web Design]]></dc:creator>
            <pubDate>Sat, 02 Mar 2024 15:19:03 GMT</pubDate>
            <atom:updated>2024-03-02T15:19:03.629Z</atom:updated>
            <content:encoded><![CDATA[<h4>5 Ways To Be More Engaged In Your Programming</h4><p>In the rapidly evolving tech landscape, being a coder is pivotal to society and tends to be highly demanding. Being an engaged coder can be the difference between successful project outcomes and innovation to failed projects and scrapped launches. A programmer involves being flexible with languages, implying you need a learning mindset. A lack of engagement doesn’t just affect an individual’s performance; it can also hurt team dynamics, project timelines, and the overall success of any tech venture.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/0*2B_RL_23-W9wra68" /><figcaption><a href="https://www.cw.no/idg-news-service-utvikling-og-metode/why-developers-hate-low-code/790148">https://www.cw.no/idg-news-service-utvikling-og-metode/why-developers-hate-low-code/790148</a></figcaption></figure><p>The tips that will be discussed will help you learn how to avoid these adverse outcomes and ensure you’ll take steps to become a passionate and engaged programmer through participating in online coding communities and projects, mentorship programs, and passion projects. This engagement will improve your coding skills and enrich your problem-solving and soft skills like <a href="https://visualwebz.com/website-developers/">collaborating with fellow developers</a>. Overall, you’ll be a more accomplished and valuable coder in any team or project because you’re not just avoiding disengagement but setting yourself up for an exciting career in tech.</p><h3>1. Open Source Projects</h3><p>Participating in an open-source project is one great way to become more engaged with programming. Many companies and software products rely on and have been helped by <a href="https://www.linuxfoundation.org/resources/open-source-guides/participating-in-open-source-communities">open-source projects</a>. Open-source projects expose you to different coding styles. How you approach a coding issue will differ from that of another programmer. Other programmers might use a different methodology or perspective. Participating in these communities will give you exposure and knowledge to these styles and approaches you wouldn’t have gained otherwise. Open-source projects have contributors from <a href="https://www.linuxfoundation.org/resources/open-source-guides/participating-in-open-source-communities">all over the world</a> and of all skill levels. They are very welcoming and supportive environments to participate in if you follow the project’s standard guidelines for contributors. The collaborative nature of these projects will also motivate you to strive for the best contributions you can produce, encouraging you to think thoroughly while coding.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FQqnup7Ed7s0%3Fstart%3D415%26feature%3Doembed%26start%3D415&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DQqnup7Ed7s0&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FQqnup7Ed7s0%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/2757994b6f5fa23736e689c19ea73b26/href">https://medium.com/media/2757994b6f5fa23736e689c19ea73b26/href</a></iframe><p>Finding an open-source project you can contribute to is very simple. The short and quick of it is that Github, a popular platform that allows developers to store and share their code, has an explore page. On this page, you can browse communities and topics you may be interested in contributing to. In these open-source projects, specific files detail what work they need from other developers. One essential thing to note before contributing is when you’re joining an open-source project; you must make sure to read the rules that are often in each repo’s readme. If you contribute without following these rules, you may be blacklisted from contributing to the project.</p><h3>2. Participating in Online Communities</h3><p>Contributing to various online open-source projects is one way to make you more engaged, but consider participating in the thriving online programming communities! Stack Overflow is a resource most programmers know and use regularly but rarely contribute to. It’s essentially an ask forum in the same vein as <a href="https://www.quora.com/profile/Rob-Singer-12">Quora</a>, where programmers share their questions and receive answers from other programmers. Deciding to be on the answering end of the forum can help you encounter new coding challenges and scenarios and improve on and strengthen your knowledge of the coding you’re already familiar with. Even <a href="https://kotlinexpertise.com/contribute-to-stackoverflow/">voting on posts</a> is a fun way to contribute to the community and let others know you’ve read their questions or replies and found them helpful.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F4PIM3mH1sCg%3Fstart%3D1%26feature%3Doembed%26start%3D1&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D4PIM3mH1sCg&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F4PIM3mH1sCg%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/f9a6c34ac48992dc299c122d05d44ff9/href">https://medium.com/media/f9a6c34ac48992dc299c122d05d44ff9/href</a></iframe><p>It’s always great to keep a continuous learning mindset regarding programming. More popular online coding communities to consider joining can be found on Reddit and GitHub. Three subreddits with millions of members and comprehensive coding resources are r/LearnProgramming, r/AskProgramming, and r/CodingHelp. On Github, under “GitHub community”, a portion of the site hosts discussion boards where users ask questions to other community members and discuss specific coding languages or platforms such as GitHub itself. Participating in any of these online communities will strengthen your knowledge and interest in programming!</p><h3>3. Coding Competitions</h3><p>Participating in competitive coding can also help you become more engaged. Leetcode is a popular problem-solving platform used by other coders that allows you to practice your coding skills for interviews. A cool feature is that it encourages users to compete with other users in contests. Using some of your coding knowledge competitively incentivizes you to think about these problems in <a href="https://emeritus.org/blog/coding-competitive-programming/">smaller time frames</a>, as it becomes more of a game than an explicit learning venture. Suppose online competitions aren’t your idea of fun. In that case, there are also almost always in-person <a href="https://www.hackerearth.com/challenges/">hackathons</a>, where large groups get together to solve real-world issues quickly and meet new people of all skill levels. Some hackathons even have <a href="https://devpost.com/hackathons">large</a> money prizes, depending on the size!</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FZbnI4E3F_l4%3Fstart%3D1%26feature%3Doembed%26start%3D1&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DZbnI4E3F_l4&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FZbnI4E3F_l4%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/324a6b5ce42dfa3430f71d029abc1ab3/href">https://medium.com/media/324a6b5ce42dfa3430f71d029abc1ab3/href</a></iframe><p>Engaging with online, local, or even national competitions keeps your coding skills sharp, lets you meet new coders, and allows you to win a prize for participating. If you love the competitive aspect and want to shoot to win a prize or grand prize, many tutorials on YouTube, such as this one by Maria Sitkovets, outline strategies for winning hackathons. One of the best ways is to understand what the organization or company hosting the hackathon is looking for in the participants’ entries. Does the company favor efficient code? Do they place a lot of weight on a well-designed solution? It’s essential to research the companies hosting the event and look at past submissions, if possible, from previous hackathons the organization may have hosted.</p><h3>4. Mentorships</h3><p>Whether as a mentor or a mentee, mentoring can enrich your coding engagement. Being a mentee through resources online or at school gives you a chance to ask questions and receive tailored answers for not just coding but coding opportunities that you weren’t aware of, such as any hackathons or career fairs that are happening. Having someone to contact for technical and career-related questions can give you the edge regarding personal and career-related goals. On the flip side, being a mentor gives you supplementary space to provide your expertise to other coders, break down concepts, and provide guidance in coding. Being a mentor would spur you to <a href="https://www.ache.org/blog/2021/5-benefits-of-being-a-mentor#:~:text=Helping%20others%20can%2C%20by%20its,and%20create%20more%20effective%20processes.">stay more in the loop regarding</a> the goings-on of local coding events and the job market.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FAxNyNHYSN60%3Fstart%3D1%26feature%3Doembed%26start%3D1&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DAxNyNHYSN60&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FAxNyNHYSN60%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/648b329cebc3b23697731c39f68e0f54/href">https://medium.com/media/648b329cebc3b23697731c39f68e0f54/href</a></iframe><p>To take steps to become a mentor, it’s excellent first to search for where your knowledge can be utilized locally. If you’re a student, being a TA for a computer science-related class or a tutor is a great place to start. These positions are often paid, allow you to complete school work during lulls while working, and sometimes even offer tuition assistance. On top of the knowledge you’ll strengthen and gain while working in these mentorship positions, you’ll also make valuable connections with faculty members who run these programs. Making industry connections early in your student career will allow you to discover potential research opportunities or events through these contacts you might’ve missed otherwise.</p><p>Many industry professionals also love to help mentor students, and it feels nice to help others, especially budding young professionals! Finding mentor opportunities is relatively straightforward. More prominent colleges and universities often reach out and put together<a href="https://careers.uw.edu/alumni-panels/"> alumni panels</a> to allow professionals to give their insights to many students at once. Some may prefer more personal or one-on-one mentorship opportunities. Many schools support and encourage industries to partner with colleges to <a href="https://www.engr.washington.edu/industry">help fund</a> student research and capstone projects. These experiences allow you to create a genuine connection with students and people just starting in their chosen industry and lead to you helping foster talent and potentially bringing that talent to your workplace. These mentor opportunities don’t need to be limited to in-person or online school opportunities; online resources such as Code Mentor are great places to connect with mentors.</p><h3>5. Passion Projects</h3><p>Lastly, creating a programming passion project is one of the best ways to become a more engaged programmer. When you make a project from a personal desire, coding goes from just writing code to creating something you care deeply about and are excited to see through. It also can help with <a href="https://mehtaplus.medium.com/why-pursuing-a-passion-project-is-essential-for-college-admissions-and-you-6c8706561525">personal growth</a> and give you an exciting piece to add to your <a href="https://visualwebz.com/websites-developed/">portfolio</a>. When you include passion projects in your portfolio, you give whoever is viewing it an insight into who you are and what you care about. This can help you stand out when you’re trying to get your foot in the door or move up in your profession, as it showcases where your passions lie and what type of work you’ll produce when you genuinely care about what you’re working on.</p><p>When you’re creating a personal project there’s much less of a sense of urgency, you can complete it on your terms, without the pressure of deadlines.</p><p>There are many avenues you can take to start developing a great passion project that is both personally enriching and will help your career. The first task is to find out what you’re passionate about — helping food banks. Want to reduce overconsumption? When you identify what excites you about coding, it’s much easier to grit through the challenging and confusing moments while coding.</p><p>Once that’s been decided, an essential part of the process that cannot be overstated is to take it slow and not overburden yourself. Passion projects can range from a few weeks to a few years. Due to them often being completed over on the side, your project shouldn’t be causing <a href="https://www.wellthyboss.com/help-passion-project-causing-stress-relieving/">additional stress</a>. If you find this the case, you might want to reevaluate if this project is a cause you’re interested in and if you have to invest in it correctly on top of your other obligations. It’s alright to change your mind and scrap a project or shelf it for now. If it’s something you care about, you’ll eventually return to finish it!</p><h3>Final Thoughts</h3><p>An engaged coder is more productive and innovative and helps influence these traits in their teams and projects. Their passion for their work and technology is lifelong and involves continuous learning. As languages, platforms, and methodologies continue to improve, engaged coders take the extra effort to interact with and learn from these changes. You will become a more engaged and passionate programmer and learner Through the five strategies discussed –open source projects, coding communities, competitions, mentorships, and personal projects. This type of engagement with coding is what will make not only better coders but also a more innovative technological landscape. Cultivating engagement through the outlined activities is not just a pathway to becoming a proficient coder. By embedding yourself deeply within the fabric of coding culture, you, as a programmer, become ready to lead with innovation and drive the industry forward. This approach to thoughtful engagement when coding ensures that your work’s impact will be larger.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f9906bce221f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/computer-programming-languages/become-a-better-programmer-f9906bce221f">Become A Better Programmer!</a> was originally published in <a href="https://medium.com/computer-programming-languages">computer programming languages</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Dictionaries in Python]]></title>
            <link>https://medium.com/computer-programming-languages/dictionaries-in-python-db728776fed7?source=rss----77f078b224e3---4</link>
            <guid isPermaLink="false">https://medium.com/p/db728776fed7</guid>
            <category><![CDATA[python]]></category>
            <category><![CDATA[programming-languages]]></category>
            <category><![CDATA[dictionaries-in-python]]></category>
            <category><![CDATA[dictionary]]></category>
            <category><![CDATA[data-structures]]></category>
            <dc:creator><![CDATA[Seattle Web Design]]></dc:creator>
            <pubDate>Tue, 17 May 2022 13:40:37 GMT</pubDate>
            <atom:updated>2022-06-10T15:15:53.026Z</atom:updated>
            <content:encoded><![CDATA[<h3>One of Pythons Four Main Data Structures</h3><p><a href="https://www.python.org/">Python</a> is a programming language that is very easy to understand and learn. Without much of the confusing syntax and complex object-oriented code of languages like <a href="https://www.java.com/en/about/whatis_java.jsp">Java</a>, no wonder it’s (debatably) the most popular programming language out there. <a href="https://seattlewebsitedesign.medium.com/python-jobs-55e4eb50d941">Python</a> has all the essential tools other languages have for programmers of all skill levels. One of these tools is the <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a>. The <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> is one of Python’s four built-in Data Structures. It is a tool similar to HashMaps and other order pair tools across different programming languages. This paper will entirely revolve around Dictionaries, what they are, how to use them, and how they came to be.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/602/0*VSqYEyWGMS7An2r2.jpg" /><figcaption><a href="http://www.trytoprogram.com/python-programming/python-dictionary/">http://www.trytoprogram.com/python-programming/python-dictionary/</a></figcaption></figure><h3>What is a Dictionary?</h3><p>To understand what a <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> is, we first need to dive into a few subtopics and look into a few definitions. As I’ve mentioned previously, The <a href="https://www.python.org/">Python</a> <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> is one of four built-in Data Structures or Containers in <a href="https://visualwebz.com/python/">Python</a>. It is similar to other Data Structures in other languages that revolve around mapping Keys to Values. It is often compared to the HashMap in <a href="https://www.java.com/en/about/whatis_java.jsp">Java</a>, and for a good reason. They are practically interchangeable, and both carry out the same jobs using very similar methods. They use a HashTable that maps specific Keys to specified Values to make Key-Value Pairs. To sum it up, a <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> is an Associative Array that has a HashTable running in the background that you can use to make Key-Value Pairs that map specific Keys to their designated Values.</p><h3>Where did they come from?</h3><p>We learned what Dictionaries are, but how did they and their components come to be? Dictionaries themselves came out with the first version of <a href="https://www.python.org/">Python</a> (version 0.9.0) near the end of the second month of the year 1991. They were among all the first basic Data Structures, Functions, and Value Types of early <a href="https://www.python.org/">Python</a>, and they’ve stuck since. Dictionaries are based heavily on the concepts of earlier Data Structures that used HashTables, such as the Stl Map from the C++ language, which came out in 1985. HashTables have been used since (at the very least) 1962, in the language SNOBOL4. Some even say that HashTables, or more specifically, Key-Value Pairs, have been used since the year 1837.</p><h3>The Analytical Engine and Early Computer Languages</h3><p>Now, what does THE Analytical Engine have to do with modern-day HashTables? The answer to this question is Key-Value Pairs. Back then, coding was done through Punch Cards, which used an early form of Binary digits, with holes punched into them. These cards would be used with Assembly Language and later with high-end languages like Fortran, which ran IBM 026 and IMB 056; both computers dealt with Punch Cards. They had Punch Cards since the Analytical Engine, then that means using the ten digits binary Value, they could have had Key-Value Pairs as far back as 1839. Key-Value Pairs have been used since 1962, and they may have been used even earlier.</p><h3>Let’s get back on topic.</h3><p>The last few sections have been a bit off-topic since it was the <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> in Python we are talking about here, not HashTables or Key-Value Pairs in the 19th century. I wanted you to get from this that Key-Value Pairs have been around for a long time, and the <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> is heavily tied in with this origin (so is the HashTable, the Associative Array, and every other similar Data Structure). Next, I want to talk about what makes Dictionaries different from Arrays in <a href="https://www.java.com/en/about/whatis_java.jsp">Java</a> or just Lists in <a href="https://www.python.org/">Python</a>. I am also going to talk about the benefits and downsides of Dictionaries and their uses on specific projects. But before that, I need to talk about other forms of Data Structures.</p><h3>Data Structures</h3><p>In Python, there are three Data Structures besides the <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a>. Those are the List, Tuple, and Set. Examples of Data Structures outside of <a href="https://www.python.org/">Python</a> are Vectors and Slt Maps in C++ and Arrays and HashMaps in <a href="https://www.java.com/en/about/whatis_java.jsp">Java</a>. Let’s quickly summarize what they do. Lists are general-purpose, unoptimized containers that are flexible but lacking efficiency. Tuples are containers that store fixed Values, and they are faster at accessing those Values than Lists (they also work in sequential order). Sets are speedy at accessing Values and great for math operations, but they cannot duplicate and are unordered. Arrays are similar to Lists, but they are faster and less flexible. As you can see, each Data Structure has its use, be it niche or substantial. This does not exclude the <a href="https://www.python.org/">Python</a> <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a>.</p><h3>How Do Dictionaries Compare?</h3><p>I have mentioned this before, but Dictionaries are a type of Data Structure/container that stores Values. I have already said this before too, but it is “unique” because of its Key-Value Pairs. This means it has its Pros and Cons that come with having Name/Key/Field Value Pairs, and because it’s a Linked List. For example, compared to an Array, a <a href="https://www.python.org/">Python</a> <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> takes up much less space to store the same amount of data, but it is noticeably slower at accessing that data.</p><p>Dictionaries (and in general containers that use HashTables and Keys) are slower at accessing store Values. The reason for this is that a <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> is a linked List, meaning every single section of the container is spread out, and their location must be accessed through each container, one by one. So every time you want to access a specific value, the computer will have to go through the entire <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> until it reaches the container you’re looking for.</p><h3>The Coding</h3><p>Before discussing the more complicated stuff you can do with Dictionaries, let’s first figure out the basics. Those are the syntax and commands you need to know to utilize Dictionaries, even on a fundamental level. By typing <strong>a = {}</strong>, you create a <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> that can be filled with Keys and Values that correspond with them. These Keys can be Strings, Integers, Tuples, Functions, Floats, Etc. They cannot be Lists or Dictionaries, and you can’t have the same Key appear twice in the same <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a>. Values, on the other hand, can be just about anything.</p><pre>Example: fruit = {‘name’: ‘apple’, ‘color’: ‘red’, ‘dishes’: [‘apple pie’, ‘apple tart’, ‘caramel apple’]}. The Keys in this case are the Strings “fruit”, “color”, and “dishes”. The Values are the strings “apple”, “red” and The List “[‘apple pie’, ‘apple tart’, ‘caramel apple’]”.</pre><h3>General Commands</h3><p>Now that you can create a <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> and know its contents, the next step would be to add and extract those Values using the corresponding Keys. You can print the entire <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> by typing <strong>print(fruit)</strong> or whatever you named your <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> as. To print specific things from your <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a>, you can use the command <strong>print(fruit[‘color’] </strong>to get the output “red.” With this command, I extracted the color of “apple” by calling the Key “color,” which has the value of “red”. You can also print only the Keys with <strong>print(fruit.Keys())</strong> or just the Values with <strong>print(fruit.Values())</strong>. To add an item to the <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a>, you can use the command <strong>fruit[‘taste’] = ‘sweet’</strong>. Or update the Values of the <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> using the command <strong>fruit.update({‘taste’: ‘sour’})</strong>. You can also delete an item with the command <strong>del fruit[‘taste’]</strong>.</p><h3>Extra Commands</h3><p>You already know the general commands you can use with Dictionaries, so let’s look at some more niche commands. One example of this would be the <strong>.get</strong></p><p>This command can grab certain values without the risk of getting an error if the Key you called does not exist. Example: <strong>print(fruit.get(‘name’))</strong>. You can also edit the end of the .get command to decide what you want to happen if a Key does not exist.</p><pre>Example:<strong>print(fruit.get(‘flavor’, (‘No Key Found’)))</strong>.</pre><p>Another example would be the <strong>.pop</strong> command which deletes a Value from a Dictionary, but that Value can be saved before it’s gone completely.</p><pre>Example: variable = fruit.pop(‘color’).</pre><p>You can also edit the end of the .get command to decide what you want to happen if a Key does not exist.</p><pre>Example:print(fruit.get(‘flavor’, (‘No Key Found’))).</pre><h3>General Implementations</h3><p>Dictionaries are useful when you need to add specific Values from specific categories to keep track of the properties of certain Variables and items. By this, I mean you can assign certain Values to certain Keys in certain Dictionaries. You can also extract those Values to assign them to Variables or add them to a List. An example of this would be multiple Dictionaries for each student in a class. With Keys for their names, heights, hair colors, eye colors, or whatever you need to keep track of each student. You can then use this information with if statements and for loops to compare all the student’s heights or count the number of students with green eyes or brown hair. For loops work great with Dictionaries. You can extract each Value in a <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> using the <strong>i in name.Values():</strong>, each Key with the command for <strong>i in name.Keys()</strong>: , or each item (Key and value) using f<strong>or i in name.items():</strong>. You can combine for loops and if statements to filter Dictionaries, add Values, delete Values, find Values, and combine all of this to make quizzes, tests, fill up files, and make all sorts of applications.</p><h3>Take-Away</h3><p>Dictionaries are one of the many essential tools that Python and many other coding languages out there offer to its users. It is a basic HashMap that can store all sorts of Values and data types. It might seem basic, but you can say the same thing about the rest of the tools. After all, the essence of programming is putting a bunch of simple inputs and outputs together into a fine-tuned machine that uses all the sums of its parts to calculate and complete a task no one person could do on their own. Top-of-the-line programmers use dictionaries to keep track of things that Lists and Arrays can’t keep up with. If you ever need a flexible storage system that is entirely scalable and friendly to on-the-fly editing, then the <a href="https://www.python.org/">Python</a> <a href="https://www.w3schools.com/python/python_dictionaries.asp">Dictionary</a> might be for you.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=db728776fed7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/computer-programming-languages/dictionaries-in-python-db728776fed7">Dictionaries in Python</a> was originally published in <a href="https://medium.com/computer-programming-languages">computer programming languages</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Psychology in Programming:]]></title>
            <link>https://medium.com/computer-programming-languages/psychology-in-programming-bdfab178c974?source=rss----77f078b224e3---4</link>
            <guid isPermaLink="false">https://medium.com/p/bdfab178c974</guid>
            <category><![CDATA[web-developer]]></category>
            <category><![CDATA[the-imposter-syndrome]]></category>
            <category><![CDATA[psychology-in-programming]]></category>
            <category><![CDATA[programmer]]></category>
            <category><![CDATA[developer]]></category>
            <dc:creator><![CDATA[Seattle Web Design]]></dc:creator>
            <pubDate>Fri, 24 Dec 2021 15:21:36 GMT</pubDate>
            <atom:updated>2022-06-07T14:07:19.457Z</atom:updated>
            <content:encoded><![CDATA[<h3>The Worst, The Bad, and the Ugly</h3><p>The long hours of remaining stagnant in a chair while staring at a bright screen heavily influence the condition of the mind and body. Unfortunately, computer programming professionals require individuals to endure such grueling hours of being in front of a computer. Thus, the psychological outcomes of computer programming are worth noting when assessing computer programmers’ mental and physical health. Compared to the average person, it is generally easier for a programmer to fall victim to two psychological conditions: human fallibility and imposter syndrome. Computer science is a large field that can be stressful to navigate as a professional. Understanding the worst parts of <a href="https://seattlewebdesign.substack.com/p/what-is-programming">computer programming</a> — the psychological risks — and combating them will help individuals achieve mentally healthier goals.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SaMXtG7p2bSz4Qh3Vup8bA.jpeg" /></figure><h3>Historical Roots</h3><p>Technology has been an essential part of the ever-evolving society. With so much of our world becoming automated, heavy reliance is placed on the ability of humans — and sometimes even animals — to efficiently interact with machines. In fact, without software engineering, you would not be able to use your cell phone, Xbox, or automatic cat feeder. Computer programmers play an extremely vital role in helping society achieve various evolutionary stages and deserve tremendous recognition for their hard work. Therefore, this section is dedicated to establishing the historical roots of various vital milestones that helped bring modern machines to fruition.</p><p>Due to the development of Charles Babbage’s <a href="https://www.britannica.com/technology/Analytical-Engine">Analytical Engine</a>, the early 1840s marked the creation of the very first mechanical computer. Alongside this came Ada Lovelace, who developed the <a href="https://www.learnacademy.org/blog/first-programming-language-use-microsoft-apple/">Algorithm for the Analytical Engine</a>, also known as the first <a href="https://seattlewebdesign.substack.com/p/future-of-web-development-languages">computer language</a> ever created in 1883. The significance of Lovelace’s fame lives on through <a href="https://findingada.com/">Ada Lovelace Day (ALD)</a>, which is celebrated every second Tuesday of every October. This day allows the world to celebrate the glorious women who continue to impact our world through Science, Technology, Engineering, and Mathematics (STEM). However, this is just one of many contributions to programming.</p><p>Through John Mauchly’s <a href="https://www.britannica.com/technology/computer/UNIVAC">Short Code</a>, the early 1950s marked the first high-level programming language for electrically powered computers, much different from Ada’s language built for mechanical computers. Both the Binary Automatic Computer (BINAC) and the Universal Automatic Computer (UNIVAC) were the first of their kind to utilize ShortCode. Although Short Code was a prolonged and complex process that required manual conversions, UNIVAC and BINAC helped initiate the new age of “<a href="https://www.britannica.com/technology/computer/UNIVAC">Big Iron</a>”.</p><p>The age of Big Iron was the beginning of the technologically competitive scene between various companies and laboratories to build computers. Although these machines were big enough to fill an entire room, many of these computers were restricted in capability; solving challenging math problems was these machines’ specialty. Aside from lack of general use, computers were also costly and complicated. The demand for these machines was relatively low, thus requiring application programs (word processors, database programs, operating systems, etc.) that would allow the broader business and scientific markets to utilize computers better. While these applications would need — yes, you guessed it — programming language to help bring them to life, research was minimal and complex. Thus began the hair-pulling, psychologically stressful aspects of software development that have continually affected programmers until today.</p><h3>Fallibility in Humanity</h3><p>One day my mother asked, “Sweetie, can you go to the store and buy one bottle of juice? If they have eggs, buy 6”. I came back home with six bottles of juice and no eggs. She angrily asked, “why did you buy six juice bottles“? BECAUSE THEY HAD EGGS!</p><p>I think we can all agree that humans possess limited knowledge. Even when we feel we were given adequate information, enough is not enough. Or, as <a href="https://www.nytimes.com/2017/04/18/books/review/knowledge-illusion-steven-sloman-philip-fernbach.html">Yuval Harari</a> puts it, “…we think we know a lot, even though individually we know very little because we treat knowledge in the minds of others as if it were our own”. People are not mindreaders; it is impossible to know what others are thinking without being precisely told. One of the most complex parts of making mistakes is the internal and external frustrations that come with it. Internally, we sometimes feel like our work is not good enough when errors occur. Externally, other people — like my mother — become frustrated with the work we produce. Computer programmers are very familiar with the abundance of mistakes that present themselves, accompanied by varying degrees of frustration. But when is ignorance bliss?</p><p>To be <a href="https://www.dictionary.com/browse/fallibility">fallible</a> means to tend to make mistakes or be wrong. Humans are highly fallible simply because we are far from being perfect. While this is not inherently a bad thing, according to Australian Public Law publisher <a href="https://auspublaw.org/2015/07/human-all-too-human/">Jonathan Crowe</a> “…the limits of our knowledge routinely prevent us from realizing just how much we do not know”<em>. </em>In other words, human nature in psychology is the true enemy of our accustomed faults. Unfortunately for computer programmers, the fallibility issue is exacerbated when it comes to the excruciating hours of developing code. CEO of Alumnify <a href="https://www.inc.com/aj-agrawal/why-the-hardest-part-of-coding-is-getting-unstuck-4-tips.html">AJ Agrawal</a> believes that “…the hardest part of learning to code is less technical and more psychological”. Like Crowe, Agrawal recognizes all humans’ psychological faults: fallibility.</p><p>Through the coding language Python, here is an example of a Loop that develops a multiplication table up to 10. Without going into detail about what everything in this code means, the takeaway here is that some particular symbols and spaces need to be implemented for lines of code to run correctly. It is effortless to make a simple mistake such as spacing or using the wrong symbol:</p><pre>rows=10 # Multiplication table up to 10</pre><pre>columns=10 # column values</pre><pre>for i in range(1,rows+1):</pre><pre>for j in range(1,columns+1):# inner for loop</pre><pre>c=i*j</pre><pre>print(“{:2d} “.format(c),end=’ ‘)</pre><pre>print(“\n”) # line break</pre><p>Therefore, making mistakes is an integral component of instructing the computer — and what it means to be human — which will be crucial to understanding how to combat the effects of fallibility in a later section of this article. While this is just one psychological condition that many individuals within the information technology profession are forced to come to terms with, the next section will cover a psychological condition that may surface concerning human fallibility.</p><h3>Beware of the Imposter Syndrome</h3><p>Imposter syndrome is defined by various feelings of self-doubt and the need to work harder, so others will accept you. An article by the <a href="https://hbr.org/2021/02/stop-telling-women-they-have-imposter-syndrome#:~:text=Imposter%20syndrome%20is%20loosely%20defined,they&#39;re%20deserving%20of%20accolades.">Harvard Business Review</a> found that the imposter syndrome “…disproportionately affects high-achieving people, who find it difficult to accept their accomplishments. Many questions whether they’re deserving of accolades”. Regardless of whether an individual is entry-level or professional, feelings of self-doubt may develop throughout their career. While many studies focused on a cohort of women, a few large-scale studies that included large samples of both men and women will be cited throughout this section.</p><p>According to a <a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7174434/">Prevalence, Predictors, and Treatment of Imposter Syndrome</a> research study conducted in 2019 that reviewed 62 other studies, anywhere from 9–82% of people reported having thoughts of feeling like an imposter — and these percentages were on the higher end for ethnic minority groups. According to the <a href="https://hbr.org/2021/02/stop-telling-women-they-have-imposter-syndrome#:~:text=Imposter%20syndrome%20is%20loosely%20defined,they&#39;re%20deserving%20of%20accolades.">Harvard Business Review</a>, women of color cited feelings of marginalization or disillusionment at much higher rates than their White colleagues. This type of exclusion exacerbated imposter syndrome, a key indicator of psychological distress that led to the affected individuals quitting work. While this research study does not mention which percentage of participants were within the computer science department, a robust literature cited varying associations between the imposter syndrome and job performance/satisfaction.</p><p>Joseph Mania recently wrote an article on <a href="https://techmaniac649449135.wordpress.com/2021/08/30/why-programmers-experience-imposter-syndrome/">Why Programmers Experience Imposter Syndrome</a>. Some of the key reasons behind imposter syndrome are the debugging process, the difficulty level of software programming, and the fear of making mistakes — AKA human fallibility. Programmers generally have difficulty figuring out what went wrong with a project or assignment they are working on. Spending hours in front of a computer screen with no human interaction can also be very stressful.</p><p>Thus, the imposter syndrome has become one of the worst computer programming aspects involving much self-doubt feelings. This psychological condition may push an individual to feel unsuccessful at work — especially within the ethnic and minority groups — causing them to quit their job. While human fallibility and the imposter syndrome have been shown to affect the mental health of professionals within computer science harmfully, this next section will help develop an understanding of how to deal with these mental health issues.</p><h3>Mental Health in Combat</h3><p>Hello fellow <a href="https://seattlewebsitedeveloper.com/">developers</a>, the information in this section is specifically for you but can also be utilized by anyone else in any profession. Your mental health is essential, and you are never alone. No doubt, psychological distress impacts many individuals in computer science. Therefore, it is necessary to establish the different outlets you can utilize to help better yourself — not only for mental health but also for work productivity. Here are a few additional articles that discuss the many ways you can tackle mental health.</p><p>An article published by <a href="https://betterprogramming.pub/we-need-to-talk-about-mental-health-for-software-developers-65bfa00e2356">Better Programming</a> offers four helpful ways for all developers to prevent mental health issues. Whether a <a href="https://visualwebz.com/">web designer</a>, OS developer, or Systems Software Engineer, the first step revolves around self-awareness. Things such as Irritability and stress are harmful symptoms that should be accounted for. The next step is to reach out to a preferred community — this could be your coworkers at your workplace, an online community such as Reddit, or an online tech community such as the <a href="https://www.portuguesewomenintech.com/">Portuguese Women in Tech (PWIT)</a>. Being vocal about your issues in one way or another is highly important to help you manage your mental health. The third step is to develop and maintain healthy habits. This ranges from getting enough sleep and eating healthy meals to partaking in physical activities and reducing unhealthy habits such as smoking. The final step is to reach out to a professional — therapist or personal coach — if the previous efforts are unsuccessful for you.</p><p>Jason Humphry details many outlets for positively impacting mental health within his article <a href="https://www.linkedin.com/pulse/programmers-depression-why-one-talks-8-powerful-ways-jason-humphrey">Programmers and Depression</a>. Humphry emphasizes the four ways mentioned in the previous article but adds a few of his own to keep the information clear and concise. Having confidence is another step to improving your mental health, especially if you want to combat the imposter syndrome. Humphry expresses the idea that if you “…act as if you are the way you want to be”, you will find yourself making it through tough times more often. One other solution Humphry notes is for people to find the power to stop comparing themselves to others. This is because “…comparing ourselves to other people regarding paying, skill, respect — it’s the death of all things good because you’ll <em>never</em> be good enough”. Only compare yourself to yourself.</p><h3>Key Takeaways</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FyEvvPaJWTBQ%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DyEvvPaJWTBQ&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FyEvvPaJWTBQ%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/8f4321fb9378fdc9b6e21dfd7044bd63/href">https://medium.com/media/8f4321fb9378fdc9b6e21dfd7044bd63/href</a></iframe><p>In summary, the worst programming aspects are understood as being psychological. Developers of all ages and genders are prone to fall victim to human fallibility and imposter syndrome. While there is an abundance of posts that offer advice on how to combat these mental health issues, the articles posted by BetterProgramming and Jason Humphry summarize the best advice that should be taken seriously. Have an awareness of your problems, reach out for help, maintain healthy habits, have confidence, stop comparing yourself to others, and reach out to a professional if all else fails. Please remember to take your health and well-being seriously, as this will ultimately help you achieve a healthier and more prosperous career.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bdfab178c974" width="1" height="1" alt=""><hr><p><a href="https://medium.com/computer-programming-languages/psychology-in-programming-bdfab178c974">Psychology in Programming:</a> was originally published in <a href="https://medium.com/computer-programming-languages">computer programming languages</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Computer Programming]]></title>
            <link>https://medium.com/computer-programming-languages/computer-programming-33b738b1c30?source=rss----77f078b224e3---4</link>
            <guid isPermaLink="false">https://medium.com/p/33b738b1c30</guid>
            <category><![CDATA[programming-mistakes]]></category>
            <category><![CDATA[computer-programming]]></category>
            <category><![CDATA[programmers-life]]></category>
            <category><![CDATA[benefits-of-programming]]></category>
            <category><![CDATA[developer]]></category>
            <dc:creator><![CDATA[Seattle Web Design]]></dc:creator>
            <pubDate>Tue, 07 Dec 2021 09:39:20 GMT</pubDate>
            <atom:updated>2021-12-07T09:39:20.205Z</atom:updated>
            <content:encoded><![CDATA[<p>The Beginning</p><p>Computer programming is an art that has been around for decades and is now a massive part of everyday life. First created in <a href="https://www.softschools.com/inventions/history/computer_programming_history/369/">1843</a> by Ada Lovelace and friend Charles Babbage using a computing machine, those were considered the first computer programs. A local paper was published predicting the invention of computer music (digital music), artificial intelligence, and computer software. Ada Lovelace was the daughter of a famous poet named Lord Byron. On December 10, 1815, she was also born and was an English mathematics writer. Married in 1835 to William King-Novel, 1st Earl of Lovelace was an architectural worker and had three children with Ada Lovelace. Byron King-Noel Viscount Ockham, born on May 2, 1836, Anne Blunt 15th Baroness Wentworth, born on September 22, 1837, and Ralph King-Milbanke 2nd Earl of Lovelace, born on July 2, 1839. Ralph King-Milbanke grew up and became a British author of <em>Astarte: A Fragment of Truth concerning George Gordon Byron, Sixth Lord Byron. </em>While Anne Blunt was known as a lady most of her life, she co-owned a Crabbet Stud company in England and with her husband.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4bkhMtJvfCYH0Gok.png" /></figure><h3>Used it</h3><p>At the beginning of programming, technology was not an everyday thing; programming was used to create computer programs back in the day. Plankalkül, known as the first high-level programming language, was invented took <a href="https://www.german-way.com/notable-people/featured-bios/konrad-zuse/">Konrad Zuse</a> four years, which considering the time it is not that much. He created Plankalkül was that he wanted to develop the computer known as Z1, which happened in 1936 in his parent’s living room. By May 1941, the <a href="https://www.computer.org/profiles/konrad-zuse">Z3</a> became operational and functional program-controlled. Also, at the age of 28, he didn’t want to do routine calculations, so the computer was invented to do the math and never be wrong. Born on June 22, 1910, Konrad Zuse, a German man, was a civil engineer, pioneering computer scientist, inventor, and businessman. He was once married to Gisela Brandes with five children, three out of five still alive, the oldest in their mid-seventies and youngest in their early sixties. Programming was mainly used for calculating numbers and making everyday life simpler back in the day.</p><h3>Today’s Uses</h3><p>The act of programming has changed so much in the many years since it was invented back in the day. It was only used for calculating numbers and making the computer. Nowadays, we use programming from many different things and in many other places, from walking down the street to working or school. Also, from the <a href="https://careerkarma.com/blog/what-is-coding-used-for-in-everyday-life/">QR codes</a> people scan nowadays to access employment, school, information, or even a menu at a restaurant. Also, from somebody’s every morning <a href="https://blog.hyperiondev.com/index.php/2021/10/25/10-everyday-iot-enabled-objects-programmed-with-code/">coffee maker</a> to digital camera, programming has evolved and is used nowadays. As well as the way we view <a href="https://medium.com/@joshuaaluya21/how-programming-has-changed-the-world-6eaaddf83048">entertainment</a> from the way we view movies through platforms like Netflix and Hulu. Being able to watch a sport without beginning, they’re in person through the tv, laptop, iPad, phone, and many other ways. It’s also changed the way jobs are needed from fewer factory workers because we have machines and <a href="https://www.weforum.org/agenda/2021/02/world-economic-forum-automation-create-jobs-employment-robots">fewer people</a> who need to check people out at grocery stores. After all, we have to self-check out. We can do it ourselves to robots that serve you food so that you don’t have a waiter. Programming now has made-ups and downs. Many people like the direction we’re going, and many others don’t, with robots going to take humans over and going back to how it was before.</p><h3>Benefits</h3><p>Like many things globally, programming has its ups and downs, benefits, and downfalls. Many great things have come from programming like <a href="https://careerkarma.com/blog/what-is-coding-used-for-in-everyday-life/">cell phones</a>, video games, the web, and much more. It has also supplied more jobs and business and economic benefits. Like how it’s very flexible to work in many different locations. It is a decent paying job with the lowest <a href="https://www.glassdoor.com/Salaries/programmer-salary-SRCH_KO0,10.htm">salary</a> for the United States as a programmer being around 55k, a bit under six figures. It’s also an important skill and knowledge to understand and know because so much of today’s day-to-day activities and the world are <a href="https://www.gcu.edu/blog/engineering-technology/computer-programming-importance">circled</a> being automated. It also helps by creating what does not exist and using the computer and machine’s efficiency and accuracy power to make and develop other things. Those are some, not all, of why programming is beneficial and why we need it today.</p><h3>Downsides</h3><p>Previously mentioned above were some of the benefits and reasons why programming is essential and its downsides. Even though nothing can be black or white, there’s always a grey area to it, but some of the downsides that come with programming are the long hours sitting on a computer, which can cause health conditions and can affect posture because of <a href="https://www.chairoffice.co.uk/blog/deadly-desk-jobs-damaging-health/">sitting</a> in a chair for long hours which can cause back issues. As well as mental health and stress levels from sitting for too long. Sitting at a desk for too long for many years without the proper care and awareness can also come <a href="https://www.quora.com/What-chronic-illnesses-do-software-programmers-tend-to-suffer-from">undernutrition</a>, carpal tunnel, muscle strain, and more. Some of the downsides to programming for the programmers but it also affects the world with the amount of <a href="https://recyclecoach.com/blog/an-intro-to-e-waste-why-its-a-problem/">environmental waste</a> this industry produces, from heavy metal to toxic chemicals related to humans, animals, crops, and many more. That affects the circle of life. It is dumped in <a href="https://sciencing.com/how-do-computers-pollute-the-environment-13660586.html">landfills</a> for years and can contaminate water, etc.</p><h3>Programming Mistakes</h3><p>Programming is the act or process of writing computer programs. It has been around since the late 1840s and will continue to become even more critical as the years go on. But with years of programming came many mistakes and lessons learned from over the years, which has made us advance in programming and as will happen as years go on. Many mistakes are worse than others, but all — from the programming mistakes made from beginners to common mistakes still happening these days to advanced programmers to huge company-wide mistakes that affect many people. But from these programming mistakes, there are many chances to learn from them and have precautions so that those mistakes aren’t commonly made. This is how programming has evolved so much since the 1840s from learning by making those huge and significant or more minor mistakes.</p><h3>Beginner Mistakes</h3><p>Programming is complicated and not simple to learn. Many beginner programmers make some mistakes that are commonly made, and when you discover them, it’ll help you for years to come. Beginners make one common mistake <a href="https://levelup.gitconnected.com/focus-on-these-5-things-when-learning-how-to-code-59c653dbdbb5">focusing</a> on different languages and concepts instead of first learning one language and concept. The reason is that trying to learn and understand multiple things at one time is a waste because it’ll result in you knowing less about the things you were trying to learn. Instead, choose something you want to learn and stay focused until you completely understand it, just like the programming languages <a href="https://visualwebz.com/php/">PHP</a>, Python, or Java. Another common beginner mistake is memorizing codes in programming rather than understanding why the code works. It is helpful to learn valuable bits of code and remember the essential and core functions in the language you use. But <a href="https://www.oliveboard.in/blog/conceptual-understanding-vs-memorizing/">understanding</a> why the code is used is most important. Those who are taught the concepts of understanding rather than memorizing things have had better problem-solving and cognitive skills. The reason is they’ve learned how to evaluate, investigate, analyze, make comparisons, remember, and communicate, which will help you with programming because problem-solving is a huge part of it.</p><h3>Common Mistakes</h3><p><a href="https://seattlewebsitedeveloper.com/what-novice-web-developers-forget/">Novice Developers</a>, advanced experts, and many more programmers have made mistakes when it comes to programming, some they’ve learned from and have not done, but some errors are so commonly made that so many do on a day today. One of those mistakes are programming mistakes commonly made are not naming <a href="https://builtin.com/data-science/variable-names">variables</a> very well, like abcd or abcd_down. The reason is are you going to remember what the variable you named “abcd” means, or what that function called “abcd_down” is supposed to do or dose. Also, if you were trying to modify or remove a bug in the code, you would be at a loss unless you could read the person who wrote the code. Another familiar mistake programmers make creating too large or too small functions. This is important because if you’re working with a group on coding, you want it to be readable and understandable for everyone. Like how if-else statements are shorter but understandable, but how to let a, b, c= 50; is harder to understand than if it was let a ;let b ;let c = 50, and vertical. These are some mistakes that programmers commonly make and have to learn from.</p><h3>Company Mistakes</h3><p>Mistakes are every day and affect fewer people than someone might think, but when large corporations and companies make mistakes, it affects more people. Like when the <a href="http://users.csc.calpoly.edu/~jdalbey/SWE/Papers/att_collapse.html">AT&amp;T</a> network went down on January 15, 1990. This is important because over 50 percent of AT&amp;T’s network crashed in just nine hours; about 60 million calls went not answered. This caused AT&amp;T’s network to crumble, and the several hours it remained down created a financial tumble. Another corporation mistake was in 2003 at <a href="https://www.intertech.com/15-worst-computer-software-blunders/">St. Mary’s Mercy Hospital</a> in Grand Rapids, Michigan. This is important because a software glitch in their system accidentally killed 85 hundred people. On the good side, no one was dead, but the damage was already done. The control of ensuring continued healthcare coverage was messy and a lot of extra work, which are some of the mistakes that companies and big corporations have made and have learned from them and have made precautions so that the errors don’t happen again.</p><p>Coding and programming have many different lounges and concepts. No one person can know everything and be great at it. Beginners, experts, and everyone in between makes mistakes even if they’re common every day, beginner level, or colossal corporation mistakes. It happens, and when it does, people learn from them, like how AT&amp;T didn’t let the company go down after the fall of 1990 and is now one of the top phone carriers still today. Also, how Therefore to be the best, you have to get up and retry even though it might feel like you’re going two steps back every time.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=33b738b1c30" width="1" height="1" alt=""><hr><p><a href="https://medium.com/computer-programming-languages/computer-programming-33b738b1c30">Computer Programming</a> was originally published in <a href="https://medium.com/computer-programming-languages">computer programming languages</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Computer Science Books to Read]]></title>
            <link>https://medium.com/computer-programming-languages/computer-science-books-to-read-287fae1c9dd2?source=rss----77f078b224e3---4</link>
            <guid isPermaLink="false">https://medium.com/p/287fae1c9dd2</guid>
            <category><![CDATA[computer-science-books]]></category>
            <category><![CDATA[cs-reading]]></category>
            <category><![CDATA[computer-book]]></category>
            <category><![CDATA[cs-books-to-read]]></category>
            <category><![CDATA[computer-science]]></category>
            <dc:creator><![CDATA[Seattle Web Design]]></dc:creator>
            <pubDate>Tue, 07 Dec 2021 09:29:08 GMT</pubDate>
            <atom:updated>2022-03-17T16:36:44.067Z</atom:updated>
            <content:encoded><![CDATA[<p>There are many great books about computer science in the world. With so many programming books, you must choose books to read that will benefit your situation the best. After asking around for recommendations and researching, I have discovered some excellent computer science books to read up on, which I will be sharing.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/206/1*WP85LeYalJ6V0PtCNw2mnQ.png" /></figure><p>One book that was recommended to me by many people is<a href="https://www.crackingthecodinginterview.com/"> Cracking the Code Interview by Gayle Laakmann McDowell.</a> This book helps you discover hidden facts, break issues into manageable sections, help solve problems when you are stuck, and have fundamental computer <a href="https://seattlewebsitedesign.medium.com/minimum-qualifications-to-succeed-as-a-developer-97bab6b5d5db">programming skills</a>. Learn or re-learn science concepts, and practice the 189 Interview questions and solutions. Even though this book is one of the many great ways to prepare for an interview, it is<a href="https://www.mvorganizing.org/is-cracking-the-coding-interview-still-relevant-2020/"> not recommended</a> for beginners.</p><p>The author of this book, Gayle L. McDowell, begins the first eight sections with more general features of coding interviews. She gives an overview of the entire interview process, including candidate selection, soft critical skills, and how to behave during the interview. The author also explains how interviews at companies such as Microsoft, Amazon, Apple, and Facebook work. She advises on what to do before the interview and notes to gain the necessary experience and create a resume.</p><p>Gayle L. McDowell shows how to answer behavioral questions and introduces Big O notation. She then describes how to deal with technical questions, the main steps in problem-solving, and what to do in different situations during an interview. The author concludes the non-technical part with tips for dealing with jobs.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/298/1*IT-qMRlqjb9DVXhWNROOqw.png" /></figure><p>Another book to read is<a href="https://mitpress.mit.edu/books/introduction-algorithms-third-edition"> Introduction to Algorithms</a> by<a href="https://mitpress.mit.edu/contributors/thomas-h-cormen"> Thomas H. Cormen</a>, <a href="https://mitpress.mit.edu/contributors/charles-e-leiserson">Charles E. Leiserson</a>, <a href="https://mitpress.mit.edu/contributors/ronald-l-rivest">Ronald L. Rivest</a>, and <a href="https://mitpress.mit.edu/contributors/clifford-stein">Clifford Stein</a>.<a href="https://en.wikipedia.org/wiki/Introduction_to_Algorithms"> This book</a> is used as a textbook for algorithm courses at many universities. It is also often used as a reference guide for algorithms in many articles available to the public, where over 10,000 citations are tracked on CiteSeerX.<a href="https://www.penguinrandomhouse.com/books/654474/introduction-to-algorithms-third-edition-by-thomas-h-cormen-charles-e-leiserson-ronald-l-rivest-and-clifford-stein/"> The book</a> covers a wide range of algorithms in detail, giving readers of all levels access to their creation and analysis. Each chapter is very self-contained and can be used as an independent learning course.</p><p>The algorithm is explained in English and pseudocode and can be understood by anyone who has a basic understanding of programming. The description is kept as straightforward as possible while maintaining the depth and mathematical rigor of the information. The Introduction to Algorithms has<a href="https://mitpress.mit.edu/books/introduction-algorithms-third-edition"> three additions</a>. The first edition has become a standard work of professionals and, at the same time, is widely used by institutions around the world. The second edition has new chapters that deal with linear programming, stochastic analysis, randomization algorithms, and algorithmic functions. The third edition has been thoroughly edited and updated to deliver a higher quality source of knowledge.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/271/1*BO17hDss3rQeG85Gk0Cwig.png" /></figure><p>Another recommended book was<a href="https://www-cs-faculty.stanford.edu/~knuth/taocp.html"> The Art of Computer Programming</a> by Donald E. Knuth.<a href="https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming"> This book</a> is a detailed publication by computer scientist Donald Knuth, describing different programming algorithms and their analysis. In 1962, Knuth started the project. This project was initially conceived as a 12-chapter book, which became a series of books. There are<a href="https://tashian.com/articles/the-art-of-computer-programming-by-donald-knuth/"> a total of 4 volumes</a>. Volumes 4B, 5, 6, and 7 are planned to be published soon.</p><p>The series of books are considered challenging but are excellent sources of information. Bill Gates,<a href="https://en.wikipedia.org/wiki/Bill_Gates"> the co-founder of Microsoft</a>, a software <a href="https://seattlewebsitedeveloper.com/">developer</a>, investor author, etc., has read these books and<a href="https://finance.yahoo.com/news/bill-gates-once-said-definitely-174229791.html?guccounter=1&amp;guce_referrer=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8&amp;guce_referrer_sig=AQAAACb3QI2pifAcdQKwR5U_Hyxxxt0a8sEUUXErHnZI2RSn1yAIHKvLUd-MTMG0w3dBsKs40KmYc6EObOzRGYREEn3hX51OxSkMBehtJGky33530TWEk7eeec7hmOzrOv5a5AIRzzX_NshgHRx6TaXTF6lVeKmqijgE7hH3YpT772ZR"> has </a>stated, “If you think you’re an <a href="https://visualwebz.com/">excellent programmer</a>… read (Knuth’s) <em>Art of Computer Programming</em>… You should send me a résumé if you can read the whole thing.”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/295/1*lRwbLZ9BDy-E0SaNGoSc7g.png" /></figure><p><a href="https://www.charlespetzold.com/code/">Code: The Hidden Language of Computer Hardware and Software by Charles Petzold</a>. Whether you’re a software engineer or want to understand better the technologies that drive</p><p>our world, it’s worth learning how computer architecture functions. Computers are so complex that it can be challenging to figure out where to start. According to Charles Petzold, the gradual shift from 19th-century telegraph equipment to the 80s graphical user interfaces requires us to go back in history to understand the basic concepts.</p><p>In Code: Hidden Language of Computer Hardware and Software, Petzold talks about many things, from Morse code to the early microprocessors used in the ’70s and ’80s, providing a deep and satisfying account of exactly how computers work<a href="https://medium.com/tech-book-reviews/code-the-hidden-language-of-computer-hardware-and-software-bab8de93220e">. The book begins</a> with the notion of “codes” and information encoding/decoding, presenting the Braille alphabet and Morse code, among other things. It gradually lays a solid basis for the reader to go to zeroes and ones. The author explains the binary number system and Boolean algebra to the reader. After applying the groundwork, the book delves into electric circuits and shows how to construct a rudimentary calculator. Many images demonstrating specific circuits in action will be presented to the reader.</p><p><a href="https://medium.com/tech-book-reviews/code-the-hidden-language-of-computer-hardware-and-software-bab8de93220e">You will eventually</a> build a computer using relays from scratch using just your own hands. That is a priceless sensation. The reader will have her next fantastic moment when she understands how memory works after creating logic gates using relays and other components. How is it possible for a gadget to save even a single piece of data? The book describes an assembly language and how it would be run by the book’s “computer” (or CPU). It depicts automating the CPU to execute instructions retrieved from RAM sequentially. The book concludes by detailing a graphical interface and its low-level components, although it does not go into as much detail as it did with the computer. On the other hand, the book may be regarded as a complete work that every programmer should read at least twice.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/343/1*3dolIccym5DXw7B2syspFw.png" /></figure><p>Topic 5.</p><p><a href="https://www.cs.princeton.edu/~bwk/tpop.webpage/">The Practice of Programming by Brian Kernighan and Rob Pike</a> was published in February 1999 with the same insight and authority that made their book, the Unix Programming Environment. Brian Kernighan and Rob Pike wrote Programming Practices to try and help make programmers, individual or not, more effective and productive.<a href="https://www.google.com/search?sa=X&amp;rlz=1C1CHBD_enUS917US917&amp;sxsrf=AOaemvJlZnw3Rz2XBX0oL6eCpdvLOPlLNg:1638780901851&amp;q=Brian+Kernighan&amp;stick=H4sIAAAAAAAAAOPgE-LUz9U3sDDPNTVT4gAxDS3LU7RkspOt9JPy87P1y4syS0pS8-LL84uyrRJLSzLyixax8jsVZSbmKXinFuVlpmck5u1gZQQA6yuxrUoAAAA&amp;ved=2ahUKEwj8nZPM5s70AhVfFTQIHX_GA2kQmxMoAHoECFIQAg"> Brian W. Kernighan</a> works at Bell Labs Computer Research Center, Lucent Technologies. He is the editor and author, along with Dennis Ritchie, that helped write The C Programming Language and many more books.<a href="https://www.google.com/search?sa=X&amp;rlz=1C1CHBD_enUS917US917&amp;sxsrf=AOaemvJlZnw3Rz2XBX0oL6eCpdvLOPlLNg:1638780901851&amp;q=Rob+Pike&amp;stick=H4sIAAAAAAAAAOPgE-LUz9U3sDDPNTVT4gAxzTLMy7VkspOt9JPy87P1y4syS0pS8-LL84uyrRJLSzLyixaxcgTlJykEZGan7mBlBADguisNQwAAAA&amp;ved=2ahUKEwj8nZPM5s70AhVfFTQIHX_GA2kQmxMoAXoECFIQAw"> The other author, Rob Pike</a> of Bell Labs Computer Research Center, Lucent Technologies, is one of the leading architects and developers of the Plan 9 and Inferno operating systems. His research focuses on software that makes it easier to write software.</p><p><a href="https://www.oreilly.com/library/view/the-practice-of/9780133133448/">Programming practice</a> isn’t just about writing code. Programmers also need to make trade-offs, superior design alternatives, debug and test, improve</p><p>performance, and maintain software created by themselves and others. At the same time, compatibility, robustness, and reliability must be addressed while meeting specifications. Programming practice covers all these topics and beyond. This book is packed with hands-on advice and examples in C, C ++, Java, and various special languages. Every programmer should read at least one book like TPOP. Besides learning the language and its environment, it is also helpful to read something about the process (or practice)</p><p>of programming. For this purpose, you should use something short and light like TPOP or The Pragmatic Programmer. Tackling such a complicated thing like Code Complete is a feat reserved for the most die-hard fans of the business.</p><p>The only<a href="https://eli.thegreenplace.net/2009/11/30/book-review-the-practice-of-programming-by-kernighan-pike"> criticism</a> I see when I am looking through reviews about TPOP is that it seems a bit dated, even though it was written ten years ago. I think the jargon used by the authors shows that they have been around since the early days of C and Unix. Sure, they’re mixing up some “C-ish Java” code following modern trends, but the book still looks like something written in the 1970s.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/269/1*zc0ozxsiG7Xa-IIq2Ek78Q.png" /></figure><p><a href="https://www.goodreads.com/book/show/71672.Thinking_in_Java">Thinking in Java by Bruce Eckel</a> is a book written about the Java computing language. The book Thinking in Java language has been praised by multiple programmers worldwide. Its exceptional clarity, diligent organization, and small yet straightforward programming examples were praised. This is a comprehensive introduction to object-oriented programming in the World Wide Web language. Thinking in Java is designed to teach you from the basics of Java syntax to the most complex features. The book was fully updated for J2SE5 with many new examples and chapters.</p><p>Thinking in Java<a href="https://www.codespot.org/review-thinking-in-java/"> covers</a> almost every significant aspect of the Java programming language. If you’re a beginner, it will keep you at a beginner-friendly level, which generally gives you suitable programming components and a deep understanding of Java. Each topic is well documented, with clear coding examples and some problematic exercises at the end of each chapter. Many people say that this book is a must-read, especially if you are programming in the Java programming language or want to learn Object-Oriented Programming (OOP). This book is excellent for beginners and experienced developers who wish to gain a deeper understanding or try out a new programming language like object-oriented programming.</p><h3>Takeaway</h3><p>In conclusion, there are many computer science books to read and source information from, but there are far too many to read. As time goes on, many more Computer Science books will be published and will most likely be better than those published in the past. The internet can help you figure out which ones to read by getting recommendations from people around you. The many books I have written here are excellent computer science books to read, whether for school, self-study, or just for your entertainment. Overall, you, the readers, decide which books are worth your time and would benefit you the most. These books are good picks, but many other books could be better or more beneficial.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=287fae1c9dd2" width="1" height="1" alt=""><hr><p><a href="https://medium.com/computer-programming-languages/computer-science-books-to-read-287fae1c9dd2">Computer Science Books to Read</a> was originally published in <a href="https://medium.com/computer-programming-languages">computer programming languages</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Helpful Programming And Coding Advice]]></title>
            <link>https://medium.com/computer-programming-languages/helpful-programming-and-coding-advice-4ba6df779e13?source=rss----77f078b224e3---4</link>
            <guid isPermaLink="false">https://medium.com/p/4ba6df779e13</guid>
            <category><![CDATA[coding-advice]]></category>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[coding-tips]]></category>
            <category><![CDATA[programming-help]]></category>
            <category><![CDATA[coding-pitfalls]]></category>
            <dc:creator><![CDATA[Seattle Web Design]]></dc:creator>
            <pubDate>Mon, 06 Dec 2021 00:48:03 GMT</pubDate>
            <atom:updated>2021-12-06T01:16:31.266Z</atom:updated>
            <content:encoded><![CDATA[<p>Programming can be frustrating, tedious, and repetitive at times. Topics such as helpful advice, programming tips, and steps to code successfully are what this article is about. It aims to shed light to help novice programmers avoid common mistakes and work through them. Helpful programming advice will benefit programmers, software engineers, <a href="https://visualwebz.com/">web designers</a>, and even self-taught coders.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*VDX-qwG7m4SnzpMd.png" /><figcaption><a href="https://www.geeksforgeeks.org/5-programming-tips-for-beginners/">https://www.geeksforgeeks.org/5-programming-tips-for-beginners/</a></figcaption></figure><h3>Build a strong foundation</h3><p>One of the essential skills of programming is understanding concepts. These concepts work together to form code that will be used for problem-solving. Because of this, each idea needs to be understood before moving on to the next. Trying to learn something new without being comfortable with what you are currently studying sets you up for failure.</p><p>That’s the equivalent of learning how to run when you are having trouble walking. This can even apply to subjects you should know before coding, such as introductory algebra. <a href="https://seattlewebsitedesign.medium.com/programming-language-trends-e4295abe2949">Programming languages</a> often use functions and variables, which might be tricky to apprehend without any experience in algebra. That is an excellent example of being at a disadvantage due to a weak foundation.</p><p>A lot of beginners ask, what are the programming basics I should know? Just like how English is a language made up of verbs, nouns, adjectives, propositions, conjunctions, etc. Programming languages are also made of different components. These elements include data types, programming environment, keywords, variables, logical and arithmetical operators, loops, functions, if-else conditions, characters, arrays, and more.</p><p>“Beginners need to understand the <a href="https://www.freecodecamp.org/news/the-main-pillars-of-learning-programming-and-why-beginners-should-master-them-e04245c17c56/">fundamentals of programming</a> first. They need to be familiar with the basic elements and what it means to write code before they can use somebody else’s.” This quote emphasizes knowing the basics, which directly relates to my point of building a solid foundation.</p><h3>Break down problems</h3><p>It can be intimidating to tackle big problems all at once. Taking a step back and evaluating the issue at hand can reduce the complexity of the problem. Breaking them down into smaller tasks will make the situation more approachable and easier to solve. A good rule for knowing when you should break down a problem is when you don’t know where to start.</p><p>Although that is a good situation to use the breakdown method, it can be used for any problem. A great way to go about this is to start by writing down what you know and what you need to know. Figure out what the problem is telling you to do and then plan how to get the answer.</p><p>A piece of advice on knowing if you understand the problem is to see if you can explain it to someone else. You can even try explaining it to an inanimate object if you have no one around. This works because if you can explain it to someone else, you should have a pretty good understanding of it yourself.</p><p>“ Now, think about the question and <a href="https://www.geeksforgeeks.org/how-to-approach-a-coding-problem/">analyze</a> it carefully. Sometimes we read a few lines and assume the rest of the things on our own, but a slight change in your question can change many items in your code, so be careful about that. Now take a paper and write down everything. What is given (input), and what do you need to find out (output)? “The text demonstrates reading carefully and noticing critical points in the problem are essential to completion just as I stated above.</p><p>For example, write a code that needs user age and print‘ child’ if they are younger than 18.</p><p>What do we know/explain the problem out loud:</p><p>We need to make a code that first asks the user to input their age and then judges if they are a child or not depending on if they are younger than 18</p><p>Breakdown the problem:</p><ul><li>Write a code that asks the user to input their age.</li><li>Now I write a code that judges their age.</li><li>Next, write a code that prints “child” if the condition is met.</li><li>Finally, put it together.</li></ul><h3>Pseudocode</h3><p>Furthermore, In the computer science field, designing is crucial to keep in mind. Planning can impact how long it will take and how difficult it will be. Pseudocode is a beneficial tool that allows programmers to arrange problems more quickly to interpret. Writing steps in plain text before writing in code will help us understand what we are trying to do so we don’t waste time because we misinterpreted the problem.</p><p>The good thing about pseudocode is that it’s entirely up to the programmer how specific or detailed they want their pseudocode to be. You’re essentially writing a guide designed to make the most sense to you before coding. Pseudocode can be used for almost any problem, such as writing a for/while loop, conditional statements, functions, and many more.</p><p><a href="https://www.makeuseof.com/tag/what-is-pseudocode/">“Pseudocode</a> helps you plan out your app before you write it. It helps you create algorithms in a format that is easier to read than code syntax. Once programming languages come into the picture, it can be harder to understand what your code is doing.” Pseudocode comes with a variety of benefits, a couple of which are stated above and in the quote.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/486/0*G_4IN6Jfsb703sZf.jpg" /></figure><p>In the example, notice how the text is in coding format but is written in English. It does an excellent job of simulating what the code should look like but is written easiest for the programmer to understand.</p><h3>Have patience</h3><p>Like anything in life, things don’t always go as planned on the first try. Getting the correct code will usually take programmers multiple attempts and might even make them restart their code. Patience allows us to analyze and examine things and situations deeper than our first initial look.</p><p>But what helps them push through is accepting failure as part of the learning process and having the patience to go through their code again and make edits — struggling when coding only promotes growth and shows that you’re challenged. If it were easy, your knowledge and skills would remain the same.</p><p>“ Things can take a while to learn, and people are not perfect. Making mistakes and failing can be the most important experiences in the learning process, so allow for that instead of creating an environment where it isn’t safe to take risks or grow. Understand that different things click more easily for different people and know that learning can take a <a href="https://welearncode.com/most-important-nonprogramming/#:~:text=The%20first%20person%20that%20you,t%20growing%20as%20a%20programmer.">while</a>.” Although we can become annoyed, being open to failure is crucial to encouraging patience and learning.</p><h3>Write Clear Code</h3><p>Similarly, something that can quickly go over coders’ heads is making sure that they write their code as straightforwardly as possible. A leisurely start is by using relative and descriptive functions and variable names. For example, Instead of X, use something that can tell you more, like Average Revenue. Another thing you can do is leave comments so you can easily understand what you were doing when writing that part of your code or so that someone else can understand what you were doing.</p><p>Separating large functions can also help you write clear code. By doing this, your code will be more precise, easier to understand, and reusable. But before we look to separate large functions, we have to make sure we avoid repetition in our code and use functions instead. Reducing recurrence in our code will make us avoid “dry code,” which is literally the repetition of software patterns in code.</p><p>“When you write code by following them, then no matter who is also working with it, the person will understand everything on their own. <a href="https://betterprogramming.pub/12-conventions-for-writing-clean-code-e16c51e3939a">Clear</a> code is needed for both individuals and teams.” This quote shows the importance of clear code and is vital to both individuals and teams.</p><p>Example of unclear code:</p><pre>x = 5<br>j = 7<br>p = x * j<br>print(p)<br>Example of clear code:<br>NumberOfPeople = 5<br>#NumberOfPeople is the number of people in a group<br>CostPerTicket = 7<br>#CostPerTicket is the admission cost for 1 movie ticket<br>CostForGroup = NumberOfPeople * CostPerTicket<br>print (CostForGroup)</pre><h3>Know Your Learning Style</h3><p>Another important tip is knowing your learning style. Knowing your learning style can completely change the difficulty of what you are trying to understand. The three learning types are visual, auditory, and kinesthetic. Realizing which three resonates most with you can help you learn and study effectively.</p><p>Learning styles can vary from person to person, so what works for someone else might not be the best for you and vice versa.</p><p>“Research has shown that individuals exhibit different approaches in the <a href="https://collegepuzzle.stanford.edu/knowing-your-learning-style-can-help-college-success/">learning</a> process and a single strategy or approach was unable to provide optimal learning conditions for all individuals.” The excerpt shows that research has proven that a single learning approach doesn’t affect everyone. Some learned well with the system used, but some had difficulty learning with said method.</p><h3>Know When to ask for help</h3><p>Of course, struggling is an integral part of being a programmer because learning occurs. Pushing past a challenging problem can lead to realizations and boost confidence. Although it’s good to do this, make sure you know when to ask for help.</p><p>It would help if you asked for help when you can’t figure where to start, what you are being asked, and how to solve the problem (After trying for a reasonable amount of time). When you do, you should share your code, be specific, and state what you already tried so you won’t have to go back and forth discussing things you could have stated in your post rather than the problem.</p><p>Asking someone for help means having them spend their time assisting you. Make sure you don’t have syntax errors or anything simple that you should’ve checked beforehand. Try to narrow your problem as much as possible, so it’s easier for people to understand exactly what you need help with.</p><p>“If you’re asking for <a href="https://codingkilledthecat.wordpress.com/2012/06/26/how-to-ask-for-programming-help/">help</a>, you’re asking for someone else to use their own time working on someone else’s problem. Don’t waste their time for silly reasons: check your question for typos, make sure any links you post-work and try to format things reasonably nicely if you can.” The text supports the idea that when asking for help, you want to make the most of others’ time.</p><h3>Become adept at problem-solving</h3><p>Being a software or <a href="https://seattlewebsitedeveloper.com/">web developer</a> means that a big part of your career will be problem-solving. To do this, we would identify a problem, create a plan to solve the problem, and utilize the goal to develop a computer program. Problems are rarely solved on the first try. As the complexity of the problem increases, so will the amount of trial and error.</p><p>To become a good problem solver, you have to start by making sure you understand problems. Reading it over at least three times (or however much you need) is an excellent way to become comfortable with the situation. Then work through your problem manually with different sets of sample data using pseudocode. Don’t worry too much about the syntax but instead focus on the logic and steps.</p><p>Look for areas where you can reduce code or any repeating patterns you notice. Then simplify and implement your algorithm with the actual variables and values used in the problem.</p><p>“If you wrote it out on paper, type this up as comments in your code editor. Then replace each line in your pseudocode. Then I call the function and give it some sample sets of data we used earlier. I use them to see if my code returns the results I want. You can also write tests to check if the actual output is equal to the <a href="https://codeburst.io/10-steps-to-solving-a-programming-problem-8a32d1e96d74">expected</a> output.”</p><p>The quote shows that when doing this, you’re finding a solution for a simplified version of the problem then inserting that solution back into the original problem.</p><h3>Practice</h3><p>Practice is a core part of becoming better at something. In terms of coding, practice will help you be more efficient and productive. In the programming world, programmers will have to meet harsh deadlines heavily influenced by accuracy constantly. At the start of your career, mistakes are bound to happen, but with practice, you will become more and more fluent and make fewer mistakes reducing the time it takes to complete a problem.</p><p>You will also see an increase in creativity and fluidity. As you become comfortable with a language, you can regularly use all the tools you have utilized to create solutions that show your creativity. Although you might be stuck when learning the syntax side of things, after this stage, you will be able to make your code flow and run smoothly quite easily with practice.</p><p>“As a learner, you should not blame yourself too much when you make a mistake. Instead, it would be best to make mistakes as a learning opportunity. With time, patience, and <a href="https://ledumjg.medium.com/importance-of-practice-in-programming-2019-guide-105ff37e8351#:~:text=Efficiency%20and%20Productivity%20%E2%80%94%20Practice%20can,a%20programmer%20to%20hit%20deadlines.">practice</a>, you will grow beyond your small mistakes and become more efficient and accurate.” This quote supports our statement that only with practice and time can you improve your programming skills.</p><h3>Conclusion</h3><p>In conclusion, programming can be intimidating and not as simple as one might think. But with the aid of the advice provided, it becomes less complex and intimidating. Remembering the importance of having patience, breaking down problems, using pseudocode, learning the basics, and many more will pay off and set you up for success in the programming world.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4ba6df779e13" width="1" height="1" alt=""><hr><p><a href="https://medium.com/computer-programming-languages/helpful-programming-and-coding-advice-4ba6df779e13">Helpful Programming And Coding Advice</a> was originally published in <a href="https://medium.com/computer-programming-languages">computer programming languages</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Intriguing Python Code]]></title>
            <link>https://medium.com/computer-programming-languages/intriguing-python-code-ebb795e0bec9?source=rss----77f078b224e3---4</link>
            <guid isPermaLink="false">https://medium.com/p/ebb795e0bec9</guid>
            <category><![CDATA[python-web-developer]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[python-programming]]></category>
            <category><![CDATA[python-code]]></category>
            <category><![CDATA[python-help]]></category>
            <dc:creator><![CDATA[Seattle Web Design]]></dc:creator>
            <pubDate>Sun, 05 Dec 2021 16:01:22 GMT</pubDate>
            <atom:updated>2022-06-10T15:16:36.331Z</atom:updated>
            <content:encoded><![CDATA[<p>In the late 1980s, Python’s <a href="https://www.geeksforgeeks.org/history-of-python/">history</a> is about to publish. Python has succeeded the ABC Programming Language, which had interfaced with the Amoeba Operating System and had the feature of exception handling. The inventor Guido van Rossum began doing his application-based work in December 1989 in Netherland. First, he started the project as a hobby because he wanted to keep himself occupied during Christmas. He had already helped to create ABC earlier in his career, and he had seen some issues with ABC but liked most of its features. After that, what he did was brilliant. He took the syntax of ABC and some of its components.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/691/1*MC0sn39jU98QxNW_vqfGSQ.jpeg" /><figcaption><a href="https://visualwebz.com/python/">https://visualwebz.com/python/</a></figcaption></figure><p>There were a lot of complaints, too. He fixed those issues thoroughly and had created a good scripting language that had removed all the weaknesses. It released the language in 1991. The inspiration for the name Python came from a British television show named “Monty Python’s Flying Circus” because he idolized the show. He wanted a short, rare, and slightly baffling name for his invention, and hence he named it Python! He was a very benevolent dictator until he stepped down from the position on July 12, 2018. He used to work for Google but currently working at Dropbox.</p><p>It used fewer codes to express the concepts compared to Java, C++ &amp; C. Its design philosophy was quite good. Its primary aim is to provide code readability and <a href="https://seattlewebsitedeveloper.com/">advanced developer </a>productivity. It had more than sufficient proficiency to provide classes inheritance, several data type exception handling, and functions. Python is a language for any developer to grasp with simplicity, ease of use, and versatility. The flexibility of this language allows you to explore any option you want to add, and many excellent resources will assist you in achieving the task with greater ease. It is a fantastic idea to start working on numerous Python projects as you develop more skills in the real world.</p><p>When learning a programming language, for example, <a href="https://seattlewebsitedesign.medium.com/python-jobs-55e4eb50d941">using Python</a>, it does not always have a positive benefit but also a drawback. It is good to know its strengths and weaknesses to use it. First, let’s dive into its <a href="https://techvidvan.com/tutorials/python-advantages-and-disadvantages/">advantage</a>. It is effortless to read, learn, and write. Something highly used is an English-like syntax that does reading and understanding the coding easier. It is easy for people to pick up and learn. That is why its beginner should know it. It has fewer lines of code compared to Java and C/C++. It improved productivity because of its simplicity. The developers can focus on solving the problem that they do not spend too much time on it. You write less code means they completed more things. Python is an interpreted language, which means Python executes the code line by line. In case of an error, it will report the error that occurred. Python shows the one error even with multiple errors that make debugging easier.</p><p>Python does not know the type of variable until running the code. It will naturally assign the data type during execution. The programmer does not need to worry about declaring variables and data types. What is a good thing with Python is the free source it offers. Python comes under OSI approved open-source license. It makes it easier to use and circulate. You can download the source code, change it, and even distribute your version of the code. This is useful for organizations that want to change specific behavior and use their version for development. The standard library of Python is vast.</p><p>All the functions you need can easily find in the library. You do not have to rely on external libraries. Still, even if you do, a Python package manager (pip) makes things easier to import other significant loads from the Python package index. It comprises over 200,000 packages. In many languages like C/C++, you need to change your code to run the program on different platforms. That is not the same with Python. You can write once and run it anywhere but be careful not to depend on the system feature of the code.</p><p>As you heard about advantages, you also should learn about its <a href="https://techvidvan.com/tutorials/python-advantages-and-disadvantages/">disadvantages</a>. Python is an interpreted language and dynamically typed language. Line by line can sometimes lead to slow execution. The dynamic nature handles the slow speed of Python because it must do extra load to execute the code, so using Python when speed is necessary to finish the task at hand. The simplicity is good, but there is a minor tradeoff. Python uses a large amount of memory that can be a disadvantage while building applications when memory is necessary. The Python weakness of mobile computing.</p><p>We use Python in server-side programming. We do not see it as a client-side on the mobile applications because it is not memory efficient and has slow processing power compared to other languages. The database for Python is easy and stress-free access, but when we are interacting with a database, it is lack behind. The data access is primitive compared to popular technologies. Enterprises need a smooth interaction that is not Python. Runtime Errors are an issue in Python. As we know, Python is a dynamically typed language, so the data type of variable can change anytime. A variable containing an integer number may influence the string in the future, which can point to Runtime Errors. Python programmers need to perform complete testing of any applications.</p><p>Today, many financial institutions, technology companies, government agencies, and more look for candidates who mastered Python for roles within the web, software development, data science, and others. Intel, IBM, NASA, Pixar, Netflix, Facebook, JP Morgan Chase, Spotify, and several other massive companies use Python. It’s one of the four major languages at Google, while Google’s YouTube uses Python. Same with Reddit, Pinterest, and Instagram. They also wrote the original BitTorrent client in Python. They used Python as a scripting language to supervise Maya, a standard 3D modeling and animation tool. They use heavy Python in academic research, particularly bioinformatics, biology, and mathematics. It is the standard language that university computer science programs teach beginners.</p><h4>Mad Libs Generator</h4><p>It is the best hands-on experience for a student, just starting with software development. Primarily it focused on strings, variables, and concatenation. It is a project that will teach you how to manipulate user-inputted data. The program asks the user to enter a series of inputs in Mad lib. The information can be anything from adjective, noun, pronoun, or anything the user enters. Once all the inputs are listed, the application will take the data and arrange the information into a story template form.</p><p>Source Code:</p><pre>“”” Mad Libs Generator<br> — — — — — — — — — — — — — — — — — — — — <br> “””<br> //Loop back to this point once code finishes<br> loop = 1<br> <strong>while</strong> (loop &lt; 10):<br> // All the questions that the program asks the user<br> noun = input(“Choose a noun: “)<br> p_noun = input(“Choose a plural noun: “)<br> noun2 = input(“Choose a noun: “)<br> place = input(“Name a place: “)<br> adjective = input(“Choose an adjective (Describing word): “)<br> noun3 = input(“Choose a noun: “)<br> // Displays the story based on the users input<br> <strong>print</strong> (“ — — — — — — — — — — — — — — — — — — — — — “)<br> <strong>print</strong> (“Be kind to your”,noun,”- footed”, p_noun)<br> <strong>print</strong> (“For a duck may be somebody’s”, noun2,”,”)<br> <strong>print</strong> (“Be kind to your”,p_noun,”in”,place)<br> <strong>print</strong> (“Where the weather is always”,adjective,”.”)<br> <strong>print</strong> ()<br> <strong>print</strong> (“You may think that is this the”,noun3,”,”)<br> <strong>print</strong> (“Well it is.”)<br> <strong>print</strong> (“ — — — — — — — — — — — — — — — — — — — — — “)<br> // Loop back to “loop = 1”<br> loop = loop + 1</pre><h4>Number Guessing</h4><p>This project is an exciting game for beginners to make. This program generates a number from 1 to 10, 1 to 100, or any specified range. The user must guess the number after the clue given by the computer. Every time users answer is incorrect. It will provide more clues to make it easier for them to correct the number but at the cost of reducing the score. The hints can be a multiplied number, be divisible, less than or greater than, or a combination.</p><p>The program also requires functions to check if an actual number you entered by the user or not. It compares the input number with a certain number to find the difference between them.</p><p>Source code:</p><pre><strong>import</strong> random</pre><pre><strong>import</strong> math</pre><pre># Taking Inputs</pre><pre>lower <strong>=</strong> int(input(“Enter Lower bound:- “))</pre><pre># Taking Inputs</pre><pre>upper <strong>=</strong> int(input(“Enter Upper bound:- “))</pre><pre># generating random number between</pre><pre># the lower and upper</pre><pre>x <strong>=</strong> random.randint(lower, upper)</pre><pre><strong>print</strong>(“\n\tYou’ve only “,</pre><pre>round(math.log(upper — lower <strong>+</strong> 1, 2)),</pre><pre>“ chances to guess the integer!\n”)</pre><pre># Initializing the number of guesses.</pre><pre>count <strong>=</strong> 0</pre><pre># for calculation of minimum number of</pre><pre># guesses depends upon range</pre><pre><strong>while</strong> count &lt; math.log(upper — lower <strong>+</strong> 1, 2):</pre><pre>count <strong>+=</strong> 1</pre><pre># taking guessing number as input</pre><pre>guess <strong>=</strong> int(input(“Guess a number:- “))</pre><pre># Condition testing</pre><pre><strong>if</strong> x <strong>==</strong> guess:</pre><pre><strong>print</strong>(“Congratulations you did it in “,</pre><pre>count, “ try”)</pre><pre># Once guessed, loop will break</pre><pre><strong>break</strong></pre><pre><strong>elif</strong> x &gt; guess:</pre><pre>print(“You guessed too small!”)</pre><pre><strong>elif</strong> x &lt; guess:</pre><pre>print(“You Guessed too high!”)</pre><pre># If Guessing is more than required guesses,</pre><pre># shows this output.</pre><pre><strong>if</strong> count &gt;<strong>=</strong> math.log(upper — lower <strong>+</strong> 1, 2):</pre><pre><strong>print</strong>(“\nThe number is %d” <strong>%</strong> x)</pre><pre>print(“\tBetter Luck Next time!”)</pre><pre># Better to use This source Code on pycharm!</pre><h4>Python<a href="https://levelup.gitconnected.com/10-interesting-python-programs-with-code-b676181a2d1a"> Fake Information Generator</a></h4><p>You can download the Faker python program that you can install using the pip in the terminal. This program creates fake data like name, email, or profile information about a person. Each time you run this coding, it will generate random data. There is numerous fascinating method that you can use such, as fake text, credit card, and many more to choose from using the Faker syntax.</p><p>Source Code:</p><pre># initialize a generator</pre><pre>fake = Faker()#create some fake data</pre><pre>print(fake.name())</pre><pre>print(fake.date_between(start_date=&#39;-30y&#39;, end_date=&#39;today&#39;))</pre><pre>print(fake.color_name())</pre><h4><a href="https://towardsdatascience.com/5-best-python-projects-with-codes-that-you-can-complete-within-an-hour-fb112e15ef44">Reminder Alert</a></h4><p>It is good to have a reminder to remind us of what we have to do for today or if we forgot what we need to accomplish for that day. With the help of Python, it is easy for us to automate a task that would be complex for human beings. You can accomplish this with the help of appropriate libraries and coding patterns that apply to the assignment. This project will help us notify our task daily accordingly. To complete this task, you will use the library and player that you can install using the pip command, which you used to specify the notification request accordingly.</p><p>Source code:</p><pre>import time</pre><pre>from plyer import notificationif __name__ == &quot;__main__&quot;:</pre><pre>while True:</pre><pre>notification.notify(</pre><pre>title = &quot;ALERT!!!&quot;,</pre><pre>message = &quot;Take a break! It has been an hour!&quot;,</pre><pre>timeout = 10</pre><pre>)</pre><pre>time.sleep(3600)</pre><h4><a href="https://www.upgrad.com/blog/python-projects-ideas-topics-beginners/">Alarm Clock</a></h4><p>The alarm clock has been around for many generations now. Even as technology advances, the clock is essential for many people. People around the world use it. However, this project is not the simple alarm clock that you can make. It is quite a simple Command Line Interface (CLI) Python application. You can put the YouTube links in a text file and design the application to read the file.</p><p>Source code:</p><pre># Import Required Library</pre><pre><strong>from</strong> tkinter <strong>import</strong> <strong>*</strong></pre><pre><strong>import</strong> datetime</pre><pre><strong>import</strong> time</pre><pre><strong>import</strong> winsound</pre><pre><strong>from</strong> threading <strong>import</strong> <strong>*</strong></pre><pre># Create Object</pre><pre>root <strong>=</strong> Tk()</pre><pre># Set geometry</pre><pre>root.geometry(“400x200”)</pre><pre># Use Threading</pre><pre><strong>def</strong> Threading():</pre><pre>t1<strong>=</strong>Thread(target<strong>=</strong>alarm)</pre><pre>t1.start()</pre><pre><strong>def</strong> alarm():</pre><pre># Infinite Loop</pre><pre><strong>while</strong> True:</pre><pre># Set Alarm</pre><pre>set_alarm_time <strong>=</strong> f”{hour.get()}:{minute.get()}:{second.get()}”</pre><pre># Wait for one seconds</pre><pre>time.sleep(1)</pre><pre># Get current time</pre><pre>current_time <strong>=</strong> datetime.datetime.now().strftime(“%H:%M:%S”)</pre><pre>print(current_time,set_alarm_time)</pre><pre># Check whether set alarm is equal to current time or not</pre><pre><strong>if</strong> current_time <strong>==</strong> set_alarm_time:</pre><pre>print(“Time to Wake up”)</pre><pre># Playing sound</pre><pre>winsound.PlaySound(“sound.wav”,winsound.SND_ASYNC)</pre><pre># Add Labels, Frame, Button, Optionmenus</pre><pre>Label(root,text<strong>=</strong>”Alarm Clock”,font<strong>=</strong>(“Helvetica 20 bold”),fg<strong>=</strong>”red”).pack(pady<strong>=</strong>10)</pre><pre>Label(root,text<strong>=</strong>”Set Time”,font<strong>=</strong>(“Helvetica 15 bold”)).pack()</pre><pre>frame <strong>=</strong> Frame(root)</pre><pre>frame.pack()</pre><pre>hour <strong>=</strong> StringVar(root)</pre><pre>hours <strong>=</strong> (‘00’, ‘01’, ‘02’, ‘03’, ‘04’, ‘05’, ‘06’, ‘07’,</pre><pre>‘08’, ‘09’, ‘10’, ‘11’, ‘12’, ‘13’, ‘14’, ‘15’,</pre><pre>‘16’, ‘17’, ‘18’, ‘19’, ‘20’, ‘21’, ‘22’, ‘23’, ‘24’</pre><pre>)</pre><pre>hour.set(hours[0])</pre><pre>hrs <strong>=</strong> OptionMenu(frame, hour, <strong>*</strong>hours)</pre><pre>hrs.pack(side<strong>=</strong>LEFT)</pre><pre>minute <strong>=</strong> StringVar(root)</pre><pre>minutes <strong>=</strong> (‘00’, ‘01’, ‘02’, ‘03’, ‘04’, ‘05’, ‘06’, ‘07’,</pre><pre>‘08’, ‘09’, ‘10’, ‘11’, ‘12’, ‘13’, ‘14’, ‘15’,</pre><pre>‘16’, ‘17’, ‘18’, ‘19’, ‘20’, ‘21’, ‘22’, ‘23’,</pre><pre>‘24’, ‘25’, ‘26’, ‘27’, ‘28’, ‘29’, ‘30’, ‘31’,</pre><pre>‘32’, ‘33’, ‘34’, ‘35’, ‘36’, ‘37’, ‘38’, ‘39’,</pre><pre>‘40’, ‘41’, ‘42’, ‘43’, ‘44’, ‘45’, ‘46’, ‘47’,</pre><pre>‘48’, ‘49’, ‘50’, ‘51’, ‘52’, ‘53’, ‘54’, ‘55’,</pre><pre>‘56’, ‘57’, ‘58’, ‘59’, ‘60’)</pre><pre>minute.set(minutes[0])</pre><pre>mins <strong>=</strong> OptionMenu(frame, minute, <strong>*</strong>minutes)</pre><pre>mins.pack(side<strong>=</strong>LEFT)</pre><pre>second <strong>=</strong> StringVar(root)</pre><pre>seconds <strong>=</strong> (‘00’, ‘01’, ‘02’, ‘03’, ‘04’, ‘05’, ‘06’, ‘07’,</pre><pre>‘08’, ‘09’, ‘10’, ‘11’, ‘12’, ‘13’, ‘14’, ‘15’,</pre><pre>‘16’, ‘17’, ‘18’, ‘19’, ‘20’, ‘21’, ‘22’, ‘23’,</pre><pre>‘24’, ‘25’, ‘26’, ‘27’, ‘28’, ‘29’, ‘30’, ‘31’,</pre><pre>‘32’, ‘33’, ‘34’, ‘35’, ‘36’, ‘37’, ‘38’, ‘39’,</pre><pre>‘40’, ‘41’, ‘42’, ‘43’, ‘44’, ‘45’, ‘46’, ‘47’,</pre><pre>‘48’, ‘49’, ‘50’, ‘51’, ‘52’, ‘53’, ‘54’, ‘55’,</pre><pre>‘56’, ‘57’, ‘58’, ‘59’, ‘60’)</pre><pre>second.set(seconds[0])</pre><pre>secs <strong>=</strong> OptionMenu(frame, second, <strong>*</strong>seconds)</pre><pre>secs.pack(side<strong>=</strong>LEFT)</pre><pre>Button(root,text<strong>=</strong>”Set Alarm”,font<strong>=</strong>(“Helvetica 15”),command<strong>=</strong>Threading).pack(pady<strong>=</strong>20)</pre><pre># Execute Tkinter</pre><pre>root.mainloop()</pre><h4>Python<a href="https://www.upgrad.com/blog/python-projects-ideas-topics-beginners/"> Website Blocker</a></h4><p>. We like surfing on the internet, by t sometimes so many unwanted websites keep showing up. Everyone experiences a pop-up on a <a href="https://visualwebz.com/">website they visit</a>. It is one of the python projects where you can build a program that blocks certain websites from opening. This program is valuable for students who want to study without online distractions. Creating Python projects can boost your resume and much fascinating for others to see.</p><p>Source code:</p><pre># Run this script as root</pre><pre><strong>import</strong> time</pre><pre><strong>from</strong> datetime <strong>import</strong> datetime as dt</pre><pre># change hosts path according to your OS</pre><pre>hosts_path <strong>=</strong> &quot;/etc/hosts&quot;</pre><pre># localhost&#39;s IP</pre><pre>redirect <strong>=</strong> &quot;127.0.0.1&quot;</pre><pre># websites That you want to block</pre><pre>website_list <strong>=</strong></pre><pre>[&quot;www.facebook.com&quot;,&quot;facebook.com&quot;,</pre><pre>&quot;dub119.mail.live.com&quot;,&quot;www.dub119.mail.live.com&quot;,</pre><pre>&quot;www.gmail.com&quot;,&quot;gmail.com&quot;]</pre><pre><strong>while</strong> True:</pre><pre># time of your work</pre><pre><strong>if</strong> dt(dt.now().year, dt.now().month, dt.now().day,8)</pre><pre>&lt; dt.now() &lt; dt(dt.now().year, dt.now().month, dt.now().day,16):</pre><pre>print(&quot;Working hours...&quot;)</pre><pre>with open(hosts_path, &#39;r+&#39;) as file:</pre><pre>content <strong>=</strong> file.read()</pre><pre><strong>for</strong> website <strong>in</strong> website_list:</pre><pre><strong>if</strong> website <strong>in</strong> content:</pre><pre><strong>pass</strong></pre><pre><strong>else</strong>:</pre><pre># mapping hostnames to your localhost IP address</pre><pre>file.write(redirect <strong>+</strong> &quot; &quot; <strong>+</strong> website <strong>+</strong> &quot;\n&quot;)</pre><pre><strong>else</strong>:</pre><pre>with open(hosts_path, &#39;r+&#39;) as file:</pre><pre>content<strong>=</strong>file.readlines()</pre><pre>file.seek(0)</pre><pre><strong>for</strong> line <strong>in</strong> content:</pre><pre><strong>if</strong> <strong>not</strong> any(website <strong>in</strong> line <strong>for</strong> website <strong>in</strong> website_list):</pre><pre>file.write(line)</pre><pre># removing hostnmes from host file</pre><pre>file.truncate()</pre><pre>print(&quot;Fun hours...&quot;)</pre><pre>time.sleep(5)</pre><p>The simplicity of Python allows the developer to create a spectacular project. The tools are helpful in Python. Anyone can build almost any project. You can construct any AI, Data science, computer vision, or natural language that you want to thank for the versatility of this programming language.</p><p>In this article, we discussed amusing codes to learn. It includes Mad Lib Generator, number guessing, fake information generator, reminder alert, alarm clock, and website blocker. With the code, various references, and other resources, you can build these projects without too much difficulty.</p><p>Creating many projects can help you learn more about Python. After working on these projects, take up some of your own choices and start exploring and experimenting with other options as well. It would be best to stop learning because there is always something new to discover every day.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ebb795e0bec9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/computer-programming-languages/intriguing-python-code-ebb795e0bec9">Intriguing Python Code</a> was originally published in <a href="https://medium.com/computer-programming-languages">computer programming languages</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Babbage Coding Language]]></title>
            <link>https://medium.com/computer-programming-languages/the-babbage-coding-language-4f2e9464371b?source=rss----77f078b224e3---4</link>
            <guid isPermaLink="false">https://medium.com/p/4f2e9464371b</guid>
            <category><![CDATA[babbage]]></category>
            <category><![CDATA[programming-languages]]></category>
            <category><![CDATA[notational-language]]></category>
            <category><![CDATA[charles-babbage]]></category>
            <category><![CDATA[computer-science]]></category>
            <dc:creator><![CDATA[Seattle Web Design]]></dc:creator>
            <pubDate>Wed, 10 Mar 2021 15:00:40 GMT</pubDate>
            <atom:updated>2024-02-06T12:36:50.314Z</atom:updated>
            <content:encoded><![CDATA[<p>Programming is writing an algorithm that tells a computer what to do, and the computer executes it. Programmers use a <a href="https://runestone.academy/runestone/books/published/pythonds/Introduction/WhatIsProgramming.html">programming language</a>, a form of notational language that allows communication between the programmer and the computer. There are different types of programming languages: low-level, high-level, and middle-level. Low-level language is machine-dependent and is written in direct binary code. Some examples include <a href="https://www.computerscience.gcse.guru/theory/high-low-level-languages">assembly and machine code</a>. The high-level programming language is made to be user-friendly and easy to read by humans. It is like human language and needs a compiler to convert it into machine language. Python and Java are two examples of this type. The middle-level programming language is in between low-level and high-level language. It is user-friendly and close to both machine and human language.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/0*E7aepWRB9D3BPjAo.gif" /><figcaption><a href="https://en.wikipedia.org/wiki/GEC_4000_series#/media/File:GEC4080FrontPanel.gif">https://en.wikipedia.org/wiki/GEC_4000_series#/media/File:GEC4080FrontPanel.gif</a></figcaption></figure><h3>Babbage</h3><p><a href="https://en.wikipedia.org/wiki/Babbage_(programming_language)#:~:text=Babbage%20is%20the%20high%20level,Babbage%2C%20an%20English%20computing%20pioneer.">Babbage</a> is a high-level coding language explicitly made for minicomputers (the GEC4000 series) created in the 1970s. Many computers today run using modern languages such as Java, Python, C++, etc. Those languages have continuously been developed and built on top of older programming languages. Like the Pascal and <a href="https://seattlewebsitedesign.medium.com/successful-programmers-113887739f15">Ada programming</a> languages, the Babbage programming language is one of the pioneer bases for many functions and objects in modern programming today. The Babbage programming language played a critical role in developing the GEC4000 series minicomputers, and I will further explain what these computers are.</p><h3>History</h3><h3>The GEC4000 Series Minicomputers</h3><p>The <a href="http://www.computinghistory.org.uk/det/2071/GEC-4000-Computer/">GEC4000 Series</a> was a line of computer series created by an English company called GEC Computers Limited in 1973. It was based in the United Kingdom. The <a href="http://www.computinghistory.org.uk/det/8262/GEC-Computers/">company</a> was previously called Elliot Automation and then Marconi Elliot Computer Systems until it was renamed GEC Computers Limited when it was bought by the <a href="https://www.gracesguide.co.uk/GEC">General Electric Company (GEC)</a>. The General Electric Company is already well known in the UK for its industrial automation efforts and production in World War 1 and World War II.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/799/0*PrGdudwLFdaFz3SR.png" /><figcaption><a href="https://en.wikipedia.org/wiki/GEC_4000_series">https://en.wikipedia.org/wiki/GEC_4000_series</a></figcaption></figure><p>The <a href="http://www.computinghistory.org.uk/userdata/images/large/33/98/product-73398.jpg">minicomputer</a> itself is more complex than it sounds. It is relatively large and bulky, almost as tall as a refrigerator. The main focus of the GEC4000 series was to appeal, garner more attention, and sell to the public market since portable home-use computers were common in regular households during the time. Thus, GEC Computers Limited would bountifully profit and be more well known. The extensivity of its hardware and reparations for this computer allowed for the improvement of new computers in the future.</p><p>The Babbage <a href="https://visualwebz.com/seattle-website-developer/">programming</a> language was one of the main high-level languages used to make its software programs and operating system for that series of computers alongside other languages. The GEC4000 series uses an operating system called <a href="https://en.wikipedia.org/wiki/OS4000">OS4000</a>, which was proprietary to GEC Computers Limited company in 1977; the OS was written in Babbage and the operating systems before it. Before the OS4000 operating system, the GEC4000 series computers primarily used operating systems called <a href="http://www.chilton-computing.org.uk/acd/icf/mums/gec/p002.htm">COS and GEC DOS</a> in 1974. The computers were used mainly in universities. The GEC Computers Limited company was very reputable in England and is well known for good maintenance on its computers. The Babbage language was also respectable, making the GEC4000 series minicomputers quite well-known in history.</p><h3>Why is it called Babbage?</h3><p>The language was named after <a href="https://www.britannica.com/biography/Charles-Babbage">Charles Babbage</a>, born in 1791 and died in 1871 in London, England. He was a graduate of Cambridge University who graduated with a specialization in mathematics. He is also a renowned computer pioneer and famous inventor, and he is most notable for creating the first automatic computer called the <a href="https://www.computerhistory.org/babbage/">‘Babbage Engine</a>,’ more well known as the Difference Engine.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/497/0*lsV6AtyWIssv_gyW.jpg" /><figcaption><a href="https://www.pinterest.com/pin/324892560622736140/">https://www.pinterest.com/pin/324892560622736140/</a></figcaption></figure><p>This computer was far from the modern, modular designs available today. The ‘Babbage Engine’ — like many computers back then was <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/4/45/Difference_engine.JPG/320px-Difference_engine.JPG">e</a>normous. It consisted of 8,000 parts, weighed 5 tons, and was around 11 feet long. During that time, steam power and industrial manufacturing were prominent, hence the <a href="https://www.jeremymeyers.com/comp">steampunk-like</a> design of his analytical machine. The Difference engine is a rudimentary physical design of how programming software looks and operates today. It was fully <a href="https://www.jeremymeyers.com/comp">programmable and automatic</a>. Charles Babbage did not necessarily create the programming language; it was named after him for his considerable feats in computer history.</p><p>According to Tony Karp’s article in 1981, designers who created the Babbage programming language were funded by the Department of Sanitation to replace the Ada programming language, which was beginning to become obsolete. Babbage — in comparison to Ada — was highly extensive, and many users were able to customize the size of it.</p><h3>What Does Babbage Code Look Like?</h3><p><a href="http://www.tlc-systems.com/babbage.htm">Babbage</a> uses many familiar, simple structures and statements that people often see today in many other modern languages, such as Python, Java, <a href="https://seattlewebsitedesign.medium.com/top-programming-languages-to-know-and-why-689acccb24ed">C++</a>, etc. During that time, simple structures were novel. Some examples of statements that are common today are WHAT IF, OR ELSE, etc. Some statements and loops in the Babbage programming language are uncommonly seen today, which, at first glance, maybe a bit <a href="https://textfiles.habd.as/humor/COMPUTER/babbage.hum.html">silly</a>. Some such as “DIDN’T DO, CAN’T DO, JUST-IN-CASE, HOPELESS CASE, BASKET CASE, etc.” to name a few.</p><h3>Comparing Babbage Code to Modern Code</h3><p>The block-like structure of code in Babbage is also prominent in modern coding. Here is an <a href="http://www.mit.edu/afs.new/sipb/user/marthag/text/humor/babbage">example statement structure in Babbage</a> by Tim McDonough:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/588/1*hgAawfJ5AtuoNIISOiQcLQ.png" /></figure><p>The alignment and nested structure of this code are very similar to many high-level languages such as Python. An example of a simple Python if-else statement would look like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/412/1*TFkR6M9b_09x_bbCruAuNQ.png" /></figure><p>This code’s indentation, alignment, and structure are like the Babbage code above.</p><h3>Is this Language Still Used?</h3><h3>Babbage’s Obsoletion</h3><p>Unfortunately, like the GEC4000 minicomputers and its obsoletion due to the development of modern technology, Babbage is not used as frequently today as it once was. However, many handbooks and manuals are <a href="http://www.computinghistory.org.uk/det/2071/GEC-4000-Computer/">online</a> to reference with ongoing support for people who still want to maintain a GEC4000 series minicomputer. <a href="https://seattlewebsitedesign.medium.com/which-programming-language-550a97c16e74">Modern languages</a> such as <a href="https://seattlewebsitedevelopers.medium.com/java-programming-language-c355f06ac12a">Java</a>, Python, and C++ are similar to Babbage’s statement structures and functions. Babbage’s legacy continues to live on through these newer platforms.</p><h3>High-Level Languages</h3><p>Referring back to modern high-level languages. Unlike Babbage, which was explicitly limited to the GEC4000 series minicomputers due to its propriety, a variety of modern languages can be used almost anywhere. People are constantly creating new programs used expressly for different things, such as programming video games, <a href="https://visualwebz.com/">developing websites</a>, software, databases, etc. Many of these languages are very similar in structure, as is Babbage. In turn, many programmers learn a variety of high-level languages because of the diversity of these applications of languages in their programs.</p><h3>The Importance of Babbage</h3><p>Though unused now, the use of the Babbage programming language and the other several predeceasing languages before it could pioneer the modern coding languages of today. It is essential to appreciate the building blocks of what code is now. Programming is used everywhere and in today’s society, with everyone using the internet and the widespread availability of job openings related to technology. Coding languages are constantly being greatly improved upon. Who knows what awaits in the future?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4f2e9464371b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/computer-programming-languages/the-babbage-coding-language-4f2e9464371b">The Babbage Coding Language</a> was originally published in <a href="https://medium.com/computer-programming-languages">computer programming languages</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>