<?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: raquelhn</title>
    <description>The latest articles on DEV Community by raquelhn (@raquelhn).</description>
    <link>https://dev.to/raquelhn</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%2F444096%2Fa7c10e8a-ba5a-4769-8941-82ff8b1ba9f3.jpg</url>
      <title>DEV Community: raquelhn</title>
      <link>https://dev.to/raquelhn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/raquelhn"/>
    <language>en</language>
    <item>
      <title>Understanding Sorting Algorithms -  Javascript</title>
      <dc:creator>raquelhn</dc:creator>
      <pubDate>Tue, 02 Nov 2021 22:34:27 +0000</pubDate>
      <link>https://dev.to/raquelhn/understanding-sorting-algorithms-javascript-1oh6</link>
      <guid>https://dev.to/raquelhn/understanding-sorting-algorithms-javascript-1oh6</guid>
      <description>&lt;p&gt;QUICKSORT&lt;br&gt;
The first step is to find a pivot, and once this is picked, the array is divided in 2 sub arrays, one of them with the values less than the pivot value and the other other with values more than the pivot value, and this would be sorted by using the quicksort algorithm recursively&lt;br&gt;
It has a complexity of O(n log(n)) so it's more efficient than the others&lt;/p&gt;

&lt;p&gt;function quickSort(arr){&lt;br&gt;
//its important to have a base case when it's a recursion&lt;br&gt;
if(arr&amp;lt;=1){&lt;br&gt;
  return arr&lt;br&gt;
}&lt;br&gt;
  let pivot = arr[arr.length-1]&lt;br&gt;
  left=[]&lt;br&gt;
  right=[]&lt;br&gt;
  for(let i=0;i&amp;lt;arr.length-1;i++){&lt;br&gt;
    if(arr[i]&amp;lt;pivot){&lt;br&gt;
      left.push(arr[i])&lt;br&gt;
    }else{&lt;br&gt;
      right.push(arr[i])&lt;br&gt;
    }&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;return [...quickSort(left),pivot,...quickSort(right)]&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;SELECTION SORT&lt;br&gt;
Selects the minimum value in the list and swaps it with the first element of the list, it continues to do this until the list is sorted.&lt;br&gt;
The idea to implement this algorithm is to sort through the whole list, and in an inner loop sort to find the index of the min number, so once we have this we can swap this number with the first one of that inner loop.&lt;/p&gt;

&lt;p&gt;It's important to mention that this is not the most efficient algorithm, since it has an O complexity of O(n^2)&lt;/p&gt;

&lt;p&gt;function sortSel(arr){&lt;br&gt;
 for(let i=0;i&amp;lt;arr.length-1;i++){&lt;br&gt;
   let minIndex=i&lt;br&gt;
   for(let j=i+1;j&amp;lt;arr.length;j++){&lt;br&gt;
      //if the min num changes then the index updates&lt;br&gt;
     if(arr[j]&amp;lt;arr[minIndex]){&lt;br&gt;
         minIndex=j&lt;br&gt;
     }&lt;br&gt;
   }&lt;/p&gt;

&lt;p&gt;temp=arr[i]&lt;br&gt;
   arr[i]=arr[minIndex]&lt;br&gt;
   arr[minIndex]=arr[i]&lt;br&gt;
 }&lt;/p&gt;

&lt;p&gt;return arr&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>selectionsort</category>
    </item>
    <item>
      <title>What is REST?</title>
      <dc:creator>raquelhn</dc:creator>
      <pubDate>Wed, 18 Aug 2021 07:10:13 +0000</pubDate>
      <link>https://dev.to/raquelhn/what-is-rest-1e09</link>
      <guid>https://dev.to/raquelhn/what-is-rest-1e09</guid>
      <description>&lt;p&gt;First of all, let's explained what REST stands for:&lt;/p&gt;

&lt;p&gt;REpresentation&lt;br&gt;
State&lt;br&gt;
Transfer&lt;/p&gt;

&lt;p&gt;Which is a fancy way of saying that a server responds to Create, Read, Update, Delete in a standard way. &lt;br&gt;
It uses the following actions GET, POST, PUT and DELETE to decide which URL to use:&lt;br&gt;
&lt;a href="http://example.com/users"&gt;http://example.com/users&lt;/a&gt;&lt;br&gt;
&lt;a href="http://example.com/users/1"&gt;http://example.com/users/1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[GET] &lt;a href="http://example.com/users"&gt;http://example.com/users&lt;/a&gt;&lt;br&gt;
It acts on the entire resource, and get a list of resources&lt;br&gt;
[POST] &lt;a href="http://example.com/users"&gt;http://example.com/users&lt;/a&gt;&lt;br&gt;
It acts on the entire resource, is used to create a new resource&lt;br&gt;
[GET] &lt;a href="http://example.com/users/1"&gt;http://example.com/users/1&lt;/a&gt;&lt;br&gt;
Acts on a single resource, gets the resource with the single ID&lt;br&gt;
[PUT] &lt;a href="http://example.com/users/1"&gt;http://example.com/users/1&lt;/a&gt;&lt;br&gt;
Acts on a single resource, updates the resource with the given ID&lt;br&gt;
[DELETE] &lt;a href="http://example.com/users/1"&gt;http://example.com/users/1&lt;/a&gt;&lt;br&gt;
Finally the most straighfoward. It acts on a single resource, deletes the resource with the given ID.&lt;/p&gt;

&lt;p&gt;While the URLs mentioned are the most common, there can be sligth different details like using users/details/1 or users/update/1 instead.&lt;/p&gt;

&lt;p&gt;I hope you find this explanation helpful!&lt;/p&gt;

</description>
      <category>rest</category>
    </item>
    <item>
      <title>Objected Oriented Programming - the 4 Pillars! A-PIE </title>
      <dc:creator>raquelhn</dc:creator>
      <pubDate>Mon, 09 Aug 2021 09:16:48 +0000</pubDate>
      <link>https://dev.to/raquelhn/objected-oriented-programming-the-4-pillars-a-pie-2pof</link>
      <guid>https://dev.to/raquelhn/objected-oriented-programming-the-4-pillars-a-pie-2pof</guid>
      <description>&lt;p&gt;The first thing to understand about OOP is that we are taking real objects and we are representing them in code. For a simple example let's imagine we are talking about a PC monitor, and changing the brightness, turning it on and off would be considered as methods. To understand this post is important that you are already familiar with a programming language that allows you to create classes.&lt;/p&gt;

&lt;p&gt;The fist pillar we are going to talk about is ABSTRACTION, it means to only show the necessary details to the user of the object. In the case of the monitor, if the user wants to turn on the monitor, he/she does not care about how it works they just want to push the button and turn on the monitor. In a coding context....this would mean we only care about calling the method and not about the method implementation.&lt;/p&gt;

&lt;p&gt;The next pillar is INHERITANCE, this basically allow us to have code reusability. For this case let's remenber there are super classes and the classes the derived from them are called subclass/extended class/child class. These classes can inherite the methods from the parent, but they can also modify them to their specific needs in their respective child classes.&lt;/p&gt;

&lt;p&gt;And the next pillar, which is probably the most challenging to understand is...POLYMORPHISM, it comes from POLY (means many) and MORPH (means more)...it allows us to decide what function to run once the program is running, this means once a method is called it follows a hierachy, first it would check with the parent class and then it would follow into the child classes (that are being called), and run the method and its respective modifications in the child class/classes.&lt;/p&gt;

&lt;p&gt;The final pillar we are going to talk about is ENCAPSULATION, it involves to restric access of certain properties of our object, for instance is bad practice to allow the main that is calling your object to directly change/assign variables values, to avoid this we can modify the variable declaration as private in its child class. If we want to modify or get the variable the correct way would be to use a getter and setter functions to give the user the control to this (a future post would look more into this). In this way we are encapsulating our properties within the object.  &lt;/p&gt;

&lt;p&gt;I hope this helps clarify things! &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Install a Haskell compiler on Macbook with chip M1</title>
      <dc:creator>raquelhn</dc:creator>
      <pubDate>Tue, 16 Feb 2021 19:13:25 +0000</pubDate>
      <link>https://dev.to/raquelhn/install-a-haskell-compiler-on-macbook-with-chip-m1-50k1</link>
      <guid>https://dev.to/raquelhn/install-a-haskell-compiler-on-macbook-with-chip-m1-50k1</guid>
      <description>&lt;p&gt;Hi everyone!&lt;/p&gt;

&lt;p&gt;I struggled with this after getting my new macbook (Apple Silicon (arm64) based macs),  the instructions can be very confusing for a newbie so I thought a post would be useful. I followed the instructions of Moritz Angerman @angerman_io &lt;/p&gt;

&lt;p&gt;The first step is to open terminal and install rossetta 2:&lt;/p&gt;

&lt;p&gt;/usr/sbin/softwareupdate --install-rosetta --agree-to-license&lt;/p&gt;

&lt;p&gt;after this, lets install nix&lt;/p&gt;

&lt;p&gt;sudo curl -L &lt;a href="https://nixos.org/nix/install"&gt;https://nixos.org/nix/install&lt;/a&gt; | sh&lt;/p&gt;

&lt;p&gt;then just follow the instructions (you just have to copy a path), and once its installed you can set up a nix compiler, as explained in Moritz tweet, typing this:&lt;/p&gt;

&lt;p&gt;nix-shell -p haskell.compiler.ghc882&lt;/p&gt;

&lt;p&gt;finally type: &lt;/p&gt;

&lt;p&gt;ghci and you should get Prelude&amp;gt; &lt;/p&gt;

&lt;p&gt;That is it!! You have haskell, hope it works and helps  &lt;/p&gt;

&lt;p&gt;Raquel&lt;/p&gt;

</description>
      <category>haskell</category>
      <category>programming</category>
    </item>
    <item>
      <title>Estudiar en el extranjero</title>
      <dc:creator>raquelhn</dc:creator>
      <pubDate>Fri, 06 Nov 2020 03:43:00 +0000</pubDate>
      <link>https://dev.to/raquelhn/estudiar-en-el-extranjero-4ma3</link>
      <guid>https://dev.to/raquelhn/estudiar-en-el-extranjero-4ma3</guid>
      <description>&lt;p&gt;Hola!&lt;/p&gt;

&lt;p&gt;Mi nombre es Raquel, y empecé a escribir este blog más orientado a ideas de productividad y technology, pero me di cuenta que tengo conocimiento adicional a compartir! Relacionado a mi experiencia postulando a distintas universidades, he tenido la dicha de ser aceptada en varias de las mejores universidades del mundo, y de haber obtenido distintas becas, además de haber vivido en tres continentes…que creo que ayuda mucho a ver las cosas con una perspectiva un poco distinta.&lt;/p&gt;

&lt;p&gt;Al ser esta mi primer entrada relacionada, les voy a comentar el proceso general de la postulación a universidades extranjeras desde Perú, desde mi punto de vista. Lo primero es decidir el tema de la maestría que quieren hacer, luego averiguar sobre el Pais o Países donde quieren estudiar, y empezar a buscar las universidades y programas, creo que es importante mencionar que dependiendo del sitio donde decidan estudiar la perspectiva de una maestria es distinta, por ejemplo en Europa es muy común hacer un master, no es algo extraño realizar la maestria después del pregrado sin haber tenido experiencia profesional, mientras que en países como Canadá o Australia, el estudiar una maestría no es tan ¨necesario¨ para el mercado laboral y se ve como algo más de prestigio o especialización, tal vez esta perspectiva sea mas parecida a Perú. &lt;br&gt;
Ya sé que cuando uno empieza en este proceso hay muchas dudas, pero no se preocupen iré posteando poco a poco, igualmente un tip respecto a los documentos, estos van a depender mucho de cada país y universidad, pero fijo van a pedir:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;El bachiller o titulo legalizado por el ministerio de RREE y traducido (de estudiar la maestría en otro idioma)&lt;/li&gt;
&lt;li&gt;El certificado de notas legalizado por el ministerio de RREE y traducido.&lt;/li&gt;
&lt;li&gt;Examen internacional de inglés - IELTS Académico o TOEFL  (En mi caso he realizado ambos exámenes, y los han aceptado en las universidades a las que he postulado)&lt;/li&gt;
&lt;li&gt;Motivation letter, básicamente uno explica porque quiere ir a estudiar a esa universidad y que lo motiva a elegir ese tema de maestria.&lt;/li&gt;
&lt;li&gt;Cartas de recomendación, estas pueden ser de profesores o profesionales.&lt;/li&gt;
&lt;li&gt;Tercio superior, esto suma mucho en caso lo tengan.&lt;/li&gt;
&lt;li&gt;Pasaporte&lt;/li&gt;
&lt;li&gt;CV (opcional - depende de la maestria)&lt;/li&gt;
&lt;li&gt;Tesis (he visto muy pocas veces este requisito, y esta más relacionado a maestrías de investigación)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Espero que esta información les sea útil, y ya iré compartiendo más recomendaciones acerca de como hacer una carta de motivación, pedir las cartas de recomendación, el examen de inglés, buscar becas, etc, etc&lt;/p&gt;

&lt;p&gt;Que estén bien!&lt;/p&gt;

&lt;p&gt;Raquel&lt;/p&gt;

</description>
      <category>studentlife</category>
    </item>
    <item>
      <title>3 técnicas a evitar al estudiar</title>
      <dc:creator>raquelhn</dc:creator>
      <pubDate>Fri, 31 Jul 2020 01:35:10 +0000</pubDate>
      <link>https://dev.to/raquelhn/3-tecnicas-a-evitar-al-estudiar-4pde</link>
      <guid>https://dev.to/raquelhn/3-tecnicas-a-evitar-al-estudiar-4pde</guid>
      <description>&lt;p&gt;Las formas de estudio pueden ser diferentes para cada persona, sin embargo las técnicas más usadas casi siempre se relacionan con la sensación de ser ¨productivo¨, es así que las estrategias populares más usadas son el releer, subrayar y hacer resumenes. No obstante, existen estudios que concluyen que esas técnicas no mejoran nuestro rendimiento o ¨performance¨. En este estudio  &lt;a href="https://pubmed.ncbi.nlm.nih.gov/26173288/"&gt;https://pubmed.ncbi.nlm.nih.gov/26173288/&lt;/a&gt;, el profesor Dulonsky analiza cientos de estudios relacionados a técnicas de estudio y menciona las tres técnicas populares a evitar, como resultado de su baja utilidad frente a otras.&lt;/p&gt;

&lt;p&gt;1-Releer&lt;br&gt;
Esta técnica brinda una sensación de seguridad de que se esta realizando trabajo productivo, sin embargo, el estudio sugiere que es una forma pasiva de estudiar, mientras que el cerebro es más efectivo al retener información cuando se encuentra en un estado activo.&lt;/p&gt;

&lt;p&gt;Por lo tanto, Dulonsky concluye que el releer libros y apuntes es de baja utilidad, ya que si bien puede mejorar retención de corto plazo, existen otras técnicas mejores y más efectivas.&lt;/p&gt;

&lt;p&gt;2-Subrayar&lt;br&gt;
La segunda técnica comúnmente usada es la de subrayar, se cree que esta técnica es productiva y permite a nuestras mentes creativas hacer notas coloridas.&lt;/p&gt;

&lt;p&gt;No obstante, en el estudio de Dulonsky se menciona que tampoco esta técnica tiene mucha utilidad y la llaman una ¨safety blanket¨, peor aún, mencionan que puede perjudicar el rendimiento en temas donde se necesite mucha inferencia por parte del alumno. Este punto es especialmente importante para estudios superiores donde es común que las materias requieran  deducción por parte del alumno.&lt;/p&gt;

&lt;p&gt;3-Resúmenes&lt;br&gt;
Hacer resúmenes y tomar notas también son muy usados y va en linea con la sensación de productividad. En este caso el profesor Dulonky concluye que esta técnica podría ser efectiva para personas con buenas habilidades para hacer resúmenes, sin embargo muchos estudiantes necesitan mucha practica y training para lograr esto. Por lo tanto, no es recomendado para todos.&lt;/p&gt;

&lt;p&gt;En resumen, si es que sabes hacer resúmenes de manera efectiva, estos pueden ser útiles, pero aun así hay técnicas con mayor utilidad que podrías utilizar.&lt;/p&gt;

&lt;p&gt;Por lo tanto, la popularidad de estas técnicas no se correlaciona con su efectividad, no obstante exploraré otras técnicas más efectivas en los siguientes posts que espero sean de tu utilidad.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Diferencia entre método y objeto! JS</title>
      <dc:creator>raquelhn</dc:creator>
      <pubDate>Fri, 31 Jul 2020 00:59:40 +0000</pubDate>
      <link>https://dev.to/raquelhn/diferencia-entre-metodo-y-objeto-5fh5</link>
      <guid>https://dev.to/raquelhn/diferencia-entre-metodo-y-objeto-5fh5</guid>
      <description>&lt;p&gt;Muchas veces utilizamos method y function, como si fueran lo mismo, pero hay una sutil diferencia entre ambos.&lt;/p&gt;

&lt;p&gt;La function se usa cuando queremos usar código que vamos a volver utilizar, es independiente de cualquier objeto, y tiene su propio scope, permitiéndonos que la llamemos desde cualquier parte del programa. Por ejemplo:&lt;/p&gt;

&lt;p&gt;let resultado;&lt;/p&gt;

&lt;p&gt;let numero1 = 10;&lt;br&gt;
let numero2 = 2;&lt;/p&gt;

&lt;p&gt;resultado = numero1 - numero2;&lt;br&gt;
alert(&lt;code&gt;El resultado es ${resultado}&lt;/code&gt;);&lt;/p&gt;

&lt;p&gt;Por otra parte, el método o 'Method' esta asociado con un objeto, es decir, para llamar al método tenemos que llamarlo desde un objeto. Dicho de otra manera, el método opera la información del objeto, como podemos ver en el siguiente ejemplo&lt;/p&gt;

&lt;p&gt;var bar = {&lt;br&gt;
  item0 : function (){return 0;},&lt;br&gt;
  item1(){return 1;},&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;console.log(bar.item0()); // 0&lt;br&gt;
console.log(bar.item1()); // 1&lt;/p&gt;

&lt;p&gt;Espero que después de esta explicación la diferencia sea más clara y te sea útil, solo recuerda que una función es un código reusable y se puede usar desde cualquier parte del programa, mientras que los métodos son funciones que llamamos dentro de un objeto y opera la información del objeto.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>spanish</category>
    </item>
  </channel>
</rss>
