<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anna Eliz</title>
    <description>The latest articles on DEV Community by Anna Eliz (@annaelizleal).</description>
    <link>https://dev.to/annaelizleal</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F182473%2Fd36963f6-5926-4722-8cfb-8510e7160062.jpeg</url>
      <title>DEV Community: Anna Eliz</title>
      <link>https://dev.to/annaelizleal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/annaelizleal"/>
    <language>en</language>
    <item>
      <title>How to teach kids to code from my experience</title>
      <dc:creator>Anna Eliz</dc:creator>
      <pubDate>Mon, 03 Feb 2020 02:00:44 +0000</pubDate>
      <link>https://dev.to/annaelizleal/how-to-teach-kids-to-code-from-my-experience-11k7</link>
      <guid>https://dev.to/annaelizleal/how-to-teach-kids-to-code-from-my-experience-11k7</guid>
      <description>&lt;p&gt;My journey teaching kids has been full of amazing experiences, laughs and smiles. Today I´ll share with you how I have given &lt;strong&gt;coding classes to kids&lt;/strong&gt; and how it has helped me to take the decision to change my career path to IT world since I felt passion about what I was doing. If this case sounds familiar to you or someone you know, you can find this really helpful.&lt;/p&gt;

&lt;p&gt;I started giving classes to kids without knowing much more than &lt;em&gt;pretty basic programming&lt;/em&gt;. At the very beginning what I needed was the simple desire to do it even when I was &lt;strong&gt;intimidated&lt;/strong&gt; by the little experience in programming I had.&lt;/p&gt;

&lt;p&gt;Some people helped me, but also, I spent some time studying, reading and making projects by my own; designing step by step how could I teach others on the functionality of computers and how can kids code.&lt;/p&gt;

&lt;p&gt;Then I saw on YouTube a video about &lt;a href="https://www.youtube.com/watch?v=cDA3_5982h8"&gt;how to make a peanut butter jelly sandwich&lt;/a&gt;, it is about a parent that ask his kids to give him the instructions to make a peanut butter jelly sandwich. I truly believe that this is pure &lt;strong&gt;algorithmic thinking...&lt;/strong&gt; a hard skill to build. &lt;/p&gt;

&lt;p&gt;So, since I love algorithms, I brought bread and jelly to make this exercise with the kids and they loved it! There I was, with novice experience but loads of spirit teaching kids. I told them that computers are not intelligent, they thought I was lying, but then I explained them that we need to give specific instructions to the computer in order to make it do what we want, and with this exercise they understood the idea.&lt;/p&gt;

&lt;p&gt;But not everything was theory, I found some valuable web pages that make the learning interactive:&lt;br&gt;
&lt;a href="https://scratch.mit.edu/"&gt;Scratch&lt;/a&gt; &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RY_FhOCu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rvnfjd9v8l02wd3c2n3k.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RY_FhOCu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rvnfjd9v8l02wd3c2n3k.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="http://appinventor.mit.edu/"&gt;AppInverntor&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5ubBelrc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/es5s12alvg13ifepd3yq.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5ubBelrc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/es5s12alvg13ifepd3yq.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://code.org/"&gt;Code.org&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3JoLaQ6a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wnecenypaxx79ifehoap.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3JoLaQ6a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wnecenypaxx79ifehoap.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.epam.com/?gclid=Cj0KCQiAvc_xBRCYARIsAC5QT9nnThLFxsT_JUJ2-HjUI7oK5yhZ3GuJjd5qheStkEpmeDdoNRAwkQ0aAr7AEALw_wcB"&gt;EPAM&lt;/a&gt; -the company I am working for- had Scratch sessions on the year so I joined them, and I realize that is something I love to do. And there I was, teaching software engineers how to make a &lt;strong&gt;Scratch&lt;/strong&gt; project.&lt;/p&gt;

&lt;p&gt;Many people ask me if kids are keen into programming, if kids pay attention to programming classes, if they don´t get bored easily. The answer is simple, they like to have your attention, they like to see they are achieving goals, so it is just about finding a way to do it.&lt;/p&gt;

&lt;p&gt;Kids are curious and some of them are eager to learn new things but take this into consideration:&lt;br&gt;
• They can get distracted easily if you are not clear with your instructions, I have found that they put a lot of effort to perform a clear task than in a task they don´t understand. They enjoy the feeling of doing something good. &lt;br&gt;
• They prefer activities than theory, like the peanut butter and jelly sandwich instructions (I have done that even with teenagers and they love it too) When I gave a data structure class I used a line of people to represent an array and ways to sort it, finding that examples as easy as those can be very helpful.&lt;br&gt;
• They like to play games, for this I schedule breaks every 30-60 mins to play, so they can rest a bit from a bunch of information and hard work.&lt;br&gt;
• They can get frustrated if they don´t understand, sometimes it is a good idea to bring different project to them with different difficult levels.&lt;/p&gt;

&lt;p&gt;If opening their minds to analytical thinking is something you would like to accomplish I suggest board games,  I have found some on amazon that you can use:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com.mx/Learning-Resources-Robot-Coding-Activity/dp/B01A5YMCH4/ref=sr_1_1?__mk_es_MX=%C3%85M%C3%85%C5%BD%C3%95%C3%91&amp;amp;keywords=programming+games+for+kids&amp;amp;qid=1580431810&amp;amp;sr=8-1"&gt;Learning Resources Stem Robot Mouse Coding Activity Set&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com.mx/Think-Fun-Master-Programming-Logic/dp/B014993TCI/ref=sr_1_3?__mk_es_MX=%C3%85M%C3%85%C5%BD%C3%95%C3%91&amp;amp;keywords=programming+games+for+kids&amp;amp;qid=1580431810&amp;amp;sr=8-3"&gt;Think Fun Code Master Programming Logic Game&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com.mx/Kano-1000K-02-computadora-Kit-2017/dp/B073VTCS66/ref=sr_1_6?__mk_es_MX=%C3%85M%C3%85%C5%BD%C3%95%C3%91&amp;amp;keywords=programming+games+for+kids&amp;amp;qid=1580431810&amp;amp;sr=8-6"&gt;Kano computadora Kit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com.mx/Sphero-M001BRW-Toy-Mini-Azul/dp/B072B6QVVW/ref=pd_sbs_21_9?_encoding=UTF8&amp;amp;pd_rd_i=B072B6QVVW&amp;amp;pd_rd_r=36ac7a44-477f-4b7f-ad4c-bf4fdcd1ad81&amp;amp;pd_rd_w=A5L3k&amp;amp;pd_rd_wg=74D3E&amp;amp;pf_rd_p=5e402d96-8f32-415c-b77b-06edd0da5e12&amp;amp;pf_rd_r=FMHFM2KNTMMSY0PAB1H0&amp;amp;psc=1&amp;amp;refRID=FMHFM2KNTMMSY0PAB1H0"&gt;Sphero Toy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition to all the above, we designed our own board game and we played it on one session. We make paths and print arrows in ordernto set a path to get from start point to end point.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y0fHyfPL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ul28dpgqkfkwplw3ncfi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y0fHyfPL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ul28dpgqkfkwplw3ncfi.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9hkxQ9BN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/arv9w5reezg766smjxrn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9hkxQ9BN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/arv9w5reezg766smjxrn.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But the more important thing, you need to invest your time on them, I can assure you will have a good experience. Just remember this &lt;strong&gt;"If a kid can do it, why can´t we?"&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
    </item>
    <item>
      <title>Book review: "Bad choices, how algorithms can help you think smarter and live happier" by Ali Almssawi</title>
      <dc:creator>Anna Eliz</dc:creator>
      <pubDate>Mon, 06 Jan 2020 16:34:20 +0000</pubDate>
      <link>https://dev.to/annaelizleal/book-review-bad-choices-how-algorithms-can-help-you-think-smarter-and-live-happier-by-ali-almssawi-3omb</link>
      <guid>https://dev.to/annaelizleal/book-review-bad-choices-how-algorithms-can-help-you-think-smarter-and-live-happier-by-ali-almssawi-3omb</guid>
      <description>&lt;p&gt;It's time for &lt;em&gt;"Bad choices, How algorithms can help you think smarter and live happier" by Ali Almossawi.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fu4pzp0ao2dgk24ycwhrs.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fu4pzp0ao2dgk24ycwhrs.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In my opinion, this is a book for non-developers who want to understand algorithms. Sometimes people ask me --since they know I have read some basic algorithms books-- which book is better to get started with algorithms, and the answer depends on the knowledge the person has. I believe this book is for those who don't have any relevant experience with code. In my first post I mentioned, I joined an algorithm club full of talented developers and algorithmic engineers, without knowing &lt;strong&gt;anything&lt;/strong&gt; about algorithms. I consider this book may have been the best start for me at that moment.&lt;/p&gt;

&lt;p&gt;Ali Almossaw, is the author of one of the most complicated books I have ever read; full of lovely pictures, but also full of tough concepts, its name is &lt;em&gt;"An Illustrated Book of Bad Arguments."&lt;/em&gt;. By getting to know more about this author, we are able to assume that every of his books have lots of pictures. Pictures make the learning process easier, and I think this is what the author wants to pursuit.&lt;/p&gt;

&lt;p&gt;I personally believe that when you are just learning algorithms in general, there are 2 paths to follow:. The one that starts just understanding general ideas and the other one that actually push you to go deeper.&lt;br&gt;
This book will walk you through the first path —the one that will give you just an idea of algorithms. If you are willing to code with this book, you are in the wrong place, but if you are a curious non-developer,  or a Jr. programmer eager to understand a general idea, this will be a good choice -which is funny because of the name of the book.-&lt;/p&gt;

&lt;p&gt;Remember when I told you about pictures? Actually the table itself has a character.&lt;/p&gt;

&lt;p&gt;One of the things that I like the most about this book, is that it encourages the reader to have &lt;strong&gt;"an algorithmic thinking"&lt;/strong&gt; (This is exiting, Do you get what I feel? (Are we having the same feeling? no? uh...?) it motivates you to analyse how our lives are full of problems and we are constantly designing algorithms to solve them, but sometimes we make &lt;strong&gt;bad choices&lt;/strong&gt;. By taking a moment and analyzing the methods/algorithms to solve a problem, we can find out effective ways to get  better solutions, this is part of what is called &lt;em&gt;Big O notation.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fz6r3tqy0skf22j3cebsa.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fz6r3tqy0skf22j3cebsa.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do you see it? A general notion of &lt;em&gt;Big O notation&lt;/em&gt; is given smoothly. I don´t know if the same happened to you, but I got frustrated many times by not understanding &lt;em&gt;Big O&lt;/em&gt;, stunningly you will find Big O on the whole book, without even noticing it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkfweaqpnnw835xiif8te.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkfweaqpnnw835xiif8te.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It shows us some scenarios of people with common problems, and methods to solve, because there always are many ways to solve a problem. Normal people, with normal problems, like matching socks, sorting books, picking a t-shirt on a store, buying grocery or choosing a record. At the very beginning, we may think that sorting is not a big deal. The general idea of sorting or searching can be easy, but what if I tell you that there are different methods of sorting and searching. If you are related with code you may think about some sorting/searching methods like &lt;em&gt;binary search, linear search, bubble sort, insertion sort or merge sort,&lt;/em&gt; but if you are not related with code, this may seem confusing.&lt;/p&gt;

&lt;p&gt;One of the scenarios is about a lady purchasing clothes in black Friday. In order to be quick and be able to pick as many clothes in a minimum amount of time, she needs to be fast. The problem is:, &lt;em&gt;"how to search".&lt;/em&gt; Think about this, if she goes one rack by one at a time through every item in the rack, she will have linear time complexity of her searching algorithm. Maybe, if the store is small, this should not be a problem, but remember that it  is black Friday. She is medium size, if she starts at the middle of the sorted rack, and then she checks for  the size of the item, she can go left or right depending on the size, so, she will save valuable time, to buy more.&lt;/p&gt;

&lt;p&gt;The first method used is called &lt;em&gt;linear search&lt;/em&gt; and the second one is called &lt;em&gt;binary search&lt;/em&gt;, those are commonly used.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fqqq6p1szk6zu91kdbp76.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fqqq6p1szk6zu91kdbp76.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Imagine you have to sort a bunch of something. If you have 10 items and you go one by one, it may not seem hard,. but what if you have 100 items, the work gets complicated, right? There is a technique called &lt;em&gt;Divide and conquer&lt;/em&gt; that aim you to break a collection of items into smaller collections and sort them, like we did before with the searching. This, logically, will take half of the time than the first approach that was going one by one.&lt;/p&gt;

&lt;p&gt;The first approach has a &lt;em&gt;quadratic&lt;/em&gt; run time complexity, since in order to sort every part of the collection, you have to compare each item with the whole data collection, this is called &lt;em&gt;bubble sort&lt;/em&gt; and the second one will be the inverse, witch is &lt;em&gt;logarithmic&lt;/em&gt; and is commonly known as &lt;em&gt;merge sort&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fp8phifaxtwf6pwil0095.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fp8phifaxtwf6pwil0095.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The book does not give a deep explanation of rates of growth, it keep everything on a general idea but it leaves a description of &lt;em&gt;constant, logarithmic, linear, linearithmic, quadratic, and exponential&lt;/em&gt; time complexities.&lt;/p&gt;

&lt;p&gt;Recently, someone asked me the difference between a queue and a stack (data structures) and it may sound ridiculous, but I thought about a stack of dishes and a queue of shopping carts, that's how I learned about them, and even now I remember that. &lt;/p&gt;

&lt;p&gt;You will find the same on this book, it gives you a walk through data structures like &lt;em&gt;arrays, linked lists, trees, maps and hash tables&lt;/em&gt; with daily common examples that can be easily remembered if you are eager to keep learning.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fx3kolwfh9sklh8dz61ri.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fx3kolwfh9sklh8dz61ri.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quoting:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;this book won´t teach you how to organize socks, but crating a critical thinking, algorithmic thinking is a highly capable tool that has the potential to impact behavior for the better.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6hh5lanor5xndbj9gqcn.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6hh5lanor5xndbj9gqcn.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So prepare yourself padawan, in order to join a world full of interesting knowledge, because what this book can give you is a generic view of an algorithmic word. Now you know a basic, BASIC, &lt;strong&gt;BASIC&lt;/strong&gt; way to recommend or start with algorithms. I hope you get fun reading this book and enjoy it as I did.&lt;/p&gt;

&lt;p&gt;Special thanks to my best friend who is always supporting me and helped editing this post.&lt;/p&gt;

</description>
      <category>books</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>Book review: "Grokking algorithms, An illustrated guide for programmers and other curious people" By Aditya Y. Bhargava</title>
      <dc:creator>Anna Eliz</dc:creator>
      <pubDate>Tue, 01 Oct 2019 03:34:54 +0000</pubDate>
      <link>https://dev.to/annaelizleal/book-review-grooking-algorithms-an-illustrated-guide-for-programmers-and-other-curious-people-by-aditya-y-bhargava-58a0</link>
      <guid>https://dev.to/annaelizleal/book-review-grooking-algorithms-an-illustrated-guide-for-programmers-and-other-curious-people-by-aditya-y-bhargava-58a0</guid>
      <description>&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My story started when I joined an Algorithms group, it seemed interesting, by that moment I haven't really been involved in computer science topics —I still suck, but not that much; that day I joined a huge room with around 10 Sr/Leads Software Engineers yelling "That's not O(n), that does is O(n^)" I still remember my face, I was not understanding &lt;strong&gt;ANYTHING&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;A friend of mine told me &lt;em&gt;"There's a book which is brain friendly for beginners and it explains all of this algorithms stuff"&lt;/em&gt;, that book was &lt;a href="https://www.amazon.com.mx/Grokking-Algorithms-Illustrated-Programmers-Curious/dp/1617292230/ref=sr_1_1?__mk_es_MX=%C3%85M%C3%85%C5%BD%C3%95%C3%91&amp;amp;crid=V9L63M62O5ZW&amp;amp;keywords=grokking+algorithms&amp;amp;qid=1569476960&amp;amp;s=gateway&amp;amp;sprefix=grooking%2Caps%2C309&amp;amp;sr=8-1" rel="noopener noreferrer"&gt;&lt;em&gt;Grooking algorithms, An illustrated guide for programmers and other curious people&lt;/em&gt;&lt;/a&gt; &lt;em&gt;By Aditya Y. Bhargava.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I belonged to "other curious people" group —since I wasn't a programmer at all— &lt;br&gt;
when I gave a quick look to the book then, I thought &lt;em&gt;"There are pictures on it! yei!"&lt;/em&gt; by that moment I was not aware of more complex algorithms books and I haven't had realized the amazing book I was holding.&lt;/p&gt;

&lt;p&gt;I can not say that book taught me algorithms, on the other hand, I would say that book opened my mind to understand some technical topics such as: data structures, recursion, Big O, sorting and search algorithms, just enough to comprehend the basis before read some more complex algorithms books —that I have not read yet.&lt;/p&gt;

&lt;p&gt;This book will not, not, NOT, NOT, &lt;strong&gt;NAT&lt;/strong&gt;, teach you deeply anything, this book will give you a general idea of various computer science topics. This is definitely a book for &lt;strong&gt;beginners/starters&lt;/strong&gt;, actually the book says that is for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hobbyist coders &lt;/li&gt;
&lt;li&gt;Students&lt;/li&gt;
&lt;li&gt;Computer science grads&lt;/li&gt;
&lt;li&gt;Physics/math/other grads interested in programming (And look at me, I am a psychologist and I have learnt a lot form that book)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After meeting so many talented Software Engineers I would conclude that &lt;strong&gt;if you are looking for formal learning, this is not your option, but if you are pursuing to start learning, this is the less painful way, you'll get hurt but not brutally&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's assume you are a beginner, if you have ever studied a degree related to software,  you should probably have coursed some data structure assignment. Have you ever thought about the insertion complexity on an array or a list? You can find it here, as well as stacks —push and pop— and queues. But wait! Graphs and hash tables too? For a beginner book? Are you serious? Yes! those are also covered in the book too, but please keep in mind that you won't become an expert (for now).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F3dzpzkeh84ctclv38vk5.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F3dzpzkeh84ctclv38vk5.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In order to rate complexity, a bit of Big O notation topic is explained, I remember how worried I was since I did not know what a Logarithm was, but this was explained so simple, i.e. the exponential reverse operation, I was one step closer to understand &lt;em&gt;"Log (n)"&lt;/em&gt; complexity! well not... But at least I knew what a logarithm was, later in the future (I mean now) that helped me to figure out merge sort complexity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fejwacf0gntvfjhydc3oi.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fejwacf0gntvfjhydc3oi.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the end of each chapter you will find a quick recap, just 4-6 points to not forget. What I did was write those on "post its" and put them in my desk so I was able to remember the topics easier.&lt;/p&gt;

&lt;p&gt;Whether you are willing to apply to a company like Google, Facebook or Amazon, keep in mind that they consider algorithms a very serious business on their DNA. By reading this book, I believe you will not be able to succeed an interview with them for now, but it might be a nice way to start your algorithmish professional  trail.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkzfzytslqg8vgdpzhreu.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkzfzytslqg8vgdpzhreu.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are as stubborn as me, you would like to insert a for loop into a recursive function, did you remember how did you understand recursive functions? Does it was as painful as it was for me? Maybe not, this book teaches recursive function with boxes, the approach is smooth.&lt;/p&gt;

&lt;p&gt;At the very beginning you touch base on how to implement binary/simple search and of course sorting algorithms (Quick sort, merge sort, selection sort) with +400 didactic pictures. &lt;/p&gt;

&lt;p&gt;But not everything is so simple, now let's put it harder, the last chapters get complicated, by that time I did not ever heard about NP-complete problems, and when I make interviews there are many people that does not understand or ever heard about it like me. The book brings some examples of NP-complete problems, such as the traveling salesperson and scheduling problems. I have met people that  think these problems can be solved easily, but turns out that they are not, there's actually many strategies to choose a solution for those problems and finding an algorithm to find the best way to do it is not quiet easy. &lt;/p&gt;

&lt;p&gt;Also, &lt;em&gt;dynamic programming&lt;/em&gt; is difficult to understand too, but as the NP-complete problems, this book only explains you the general idea and invite you to keep learning about those topics once you have conquered the basics.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fvclurh8mgv37mm6jbov8.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fvclurh8mgv37mm6jbov8.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The more you learn, the less you know. At the time I finished the book, that was all what I was able to think, since I realized there are tons of information to know but for now I could see that algorithms are &lt;em&gt;fun and amazing &amp;lt;3.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Special thanks to Sinuje Valencia a.k.a. &lt;a href="https://dev.to/sierisimo"&gt;"Sier"&lt;/a&gt; great friend, kotlin lover, and code force of nature. He lend me this book several times and have been one of the best teachers I have ever imagine I could learn form.&lt;/p&gt;

&lt;p&gt;Also, Mario Morales, a passionate master on CS for helping me with edition, your continuous eagerness to learn have motivated me so much. The best teachers always teach form their heart, both of them have left a mark my in my professional trail.&lt;/p&gt;

</description>
      <category>algorithms</category>
      <category>beginners</category>
      <category>books</category>
    </item>
    <item>
      <title>Math/Algorithms casual books</title>
      <dc:creator>Anna Eliz</dc:creator>
      <pubDate>Wed, 11 Sep 2019 13:53:28 +0000</pubDate>
      <link>https://dev.to/annaelizleal/math-algorithms-casual-books-1kkd</link>
      <guid>https://dev.to/annaelizleal/math-algorithms-casual-books-1kkd</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KJoMKrZj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/mep04t1mqgxk5ht4c9v4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KJoMKrZj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/mep04t1mqgxk5ht4c9v4.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I started reading Math/Algorithms casual books (not strictly technical) 2 years ago -actually when I joined EPAM- and there are some things that have changed since then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First of all, since I'm Spanish native speaker and all the books I read were in English I raised my English level. So if you struggle with your English as I did I highly recommend you to read in English.&lt;/li&gt;
&lt;li&gt;I excelled my interviews as technical recruiter.&lt;/li&gt;
&lt;li&gt;My logic changed, this was funny since even taking an elevator made me thought about the sorting algorithm behind it.&lt;/li&gt;
&lt;li&gt;Found math is everywhere and even when I make a decision.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My first book was &lt;a href="https://www.amazon.com.mx/Grokking-Algorithms-Illustrated-Programmers-Curious/dp/1617292230/ref=sr_1_1?__mk_es_MX=%C3%85M%C3%85%C5%BD%C3%95%C3%91&amp;amp;crid=1P8O9ZL1YROI3&amp;amp;keywords=grooking+algorithms&amp;amp;qid=1568090596&amp;amp;s=gateway&amp;amp;sprefix=grooking+algorithms%2Cstripbooks%2C179&amp;amp;sr=8-1"&gt;&lt;em&gt;"Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People"&lt;/em&gt;&lt;/a&gt; &lt;em&gt;by Aidtya Bhargava&lt;/em&gt;, I was not a programmer but definitely I was "other curious people", this book is technical, yes, but it is not really complicated, actually it explains recursion with boxes and coding is in python kind of easy to understand. It also gives a first approach sorting algorithms and then it gets scary -at least for me greedy algorithms are complicated, something that can be seen as complicated and messy was explained with drawings. As a first approach is easy before reading &lt;a href="https://www.amazon.com.mx/Introduction-Algorithms-Thomas-H-Cormen/dp/0262033844"&gt;&lt;em&gt;"Introduction to algorithms"&lt;/em&gt;&lt;/a&gt; &lt;em&gt;by Thomas H Cormen, Charles E Leiserson, Ronald L Rivest and Clifford Stein&lt;/em&gt; or  or &lt;a href="https://www.amazon.com.mx/Algorithms-Robert-Sedgewick/dp/032157351X/ref=pd_lpo_sbs_14_img_1?_encoding=UTF8&amp;amp;psc=1&amp;amp;refRID=E62M8XKK9AMAXC9G3FQN"&gt;&lt;em&gt;"Algorithms"&lt;/em&gt;&lt;/a&gt; &lt;em&gt;by Robert Sedgewick and Kevin Wayne&lt;/em&gt;, for me is just the red Algorithms book.&lt;/p&gt;

&lt;p&gt;I was running the success trail when another friend recommended me to read &lt;a href="https://www.amazon.com.mx/Algorithms-Live-Computer-Science-Decisions/dp/1627790365/ref=sr_1_1?__mk_es_MX=%C3%85M%C3%85%C5%BD%C3%95%C3%91&amp;amp;crid=VHVE9ZSBY0SQ&amp;amp;keywords=algorithms+to+live+by&amp;amp;qid=1568090832&amp;amp;s=books&amp;amp;sprefix=algorithms+t%2Cstripbooks%2C175&amp;amp;sr=1-1"&gt;&lt;em&gt;"Algorithms to Live by: The Computer Science of Human Decisions"&lt;/em&gt;&lt;/a&gt; &lt;em&gt;by Brian Christian and Tom Griffiths&lt;/em&gt;, since I'm a recruiter it was fun to realize that such book started with a something called "The secretary problem" that teaches you about a mathematical rule -named leap-then-leap- to make decisions, you can have many options, but, what's the best? Turns out that there's a 37% rule that explains -with tons of formulas- that no matter what, you will have 37% success rate. This book got me thinking about Google is not famous as a searching engine, is famous because of his sorting methods.&lt;/p&gt;

&lt;p&gt;I was curious and I was eager to read more and more, and I found a book from a Microsoft lover guy named &lt;a href="https://www.amazon.com.mx/Code-Charles-Petzold/dp/0735611319/ref=sr_1_1?__mk_es_MX=%C3%85M%C3%85%C5%BD%C3%95%C3%91&amp;amp;keywords=code&amp;amp;qid=1568090892&amp;amp;s=books&amp;amp;sr=1-1"&gt;&lt;em&gt;"Code"&lt;/em&gt;&lt;/a&gt; &lt;em&gt;by Charles Petzold&lt;/em&gt; were I understood more about computing. I had no expectations about that book but it helped me understand better computers. It caught my attention immediately, because it explains code, not programming languages, not algorithms... CODE!&lt;/p&gt;

&lt;p&gt;So every time I interview a software engineer, it’s important for me to see if they recognize some books, either technical or non-technical. Why? First of all, to measure their passion about IT world and second of all because even when we have automated many aspects of our lives reading books is still a great way to learn.&lt;/p&gt;

&lt;p&gt;Thanks for reading! This is my first post I hope you can join me on my next book reviews.&lt;/p&gt;

&lt;p&gt;Regards,&lt;/p&gt;

&lt;p&gt;Special thanks to Sandra Rivera who helped me editing this post.&lt;/p&gt;

</description>
      <category>books</category>
      <category>math</category>
      <category>algorithms</category>
    </item>
  </channel>
</rss>
