<?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: Marco Suárez</title>
    <description>The latest articles on DEV Community by Marco Suárez (@marksasp95).</description>
    <link>https://dev.to/marksasp95</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%2F38113%2F7bd3d388-dd31-49a6-bade-3ee7abc3eaeb.png</url>
      <title>DEV Community: Marco Suárez</title>
      <link>https://dev.to/marksasp95</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marksasp95"/>
    <language>en</language>
    <item>
      <title>So no one's gonna ask? Ok... Should I learn Vue.js before Vue.js 2?</title>
      <dc:creator>Marco Suárez</dc:creator>
      <pubDate>Thu, 25 Jan 2018 02:28:02 +0000</pubDate>
      <link>https://dev.to/marksasp95/so-no-ones-gonna-ask-ok-should-i-learn-vuejs-before-vuejs-2-53j</link>
      <guid>https://dev.to/marksasp95/so-no-ones-gonna-ask-ok-should-i-learn-vuejs-before-vuejs-2-53j</guid>
      <description></description>
      <category>discuss</category>
      <category>javascript</category>
      <category>vue</category>
      <category>framework</category>
    </item>
    <item>
      <title>Introducing Maze Generator [Java]</title>
      <dc:creator>Marco Suárez</dc:creator>
      <pubDate>Thu, 04 Jan 2018 02:03:24 +0000</pubDate>
      <link>https://dev.to/marksasp95/introducing-maze-generator-java-320g</link>
      <guid>https://dev.to/marksasp95/introducing-maze-generator-java-320g</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a project I made for the subject Data Structures at my university.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Its name describes it pretty much, it generates random labyrinths, and its main logical resource is the &lt;a href="http://weblog.jamisbuck.org/2011/1/17/maze-generation-aldous-broder-algorithm" rel="noopener noreferrer"&gt;Aldous-Broder algorithm&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This algorithm is known for making decisions randomly, thus the time it takes to create a labyrinth (depending on its dimensions) can be unpredictable (100x100 labyrinths can take up to 45 seconds).&lt;/p&gt;

&lt;h2&gt;
  
  
  Aldous-Broder algorithm
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="http://weblog.jamisbuck.org/2011/1/17/maze-generation-aldous-broder-algorithm" rel="noopener noreferrer"&gt;Aldous-Broder algorithm&lt;/a&gt; works exclusively for maze generation, it uses a matrix to create the paths. Made simple, this is the algorithm:&lt;/p&gt;

&lt;p&gt;1.- Take any cell randomly and check it.&lt;br&gt;
2.- Take any neighbor cell (not diagonal), if that cell hasn't been checked, check it.&lt;br&gt;
3.- Repeat step 2 until all the cells are checked.&lt;/p&gt;

&lt;p&gt;You can see a full explanation and real-time demonstration &lt;a href="http://weblog.jamisbuck.org/2011/1/17/maze-generation-aldous-broder-algorithm" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  Checking cells
&lt;/h3&gt;

&lt;p&gt;We check every cell by establishing a point with its coordinates, we connect each point to create a route. To trace this route we must have a record of where we've been, so we create two 2D arrays (&lt;em&gt;starts&lt;/em&gt; and &lt;em&gt;ends&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Let's see a quick example:&lt;/p&gt;

&lt;p&gt;Step 1 (randomly selecting a starting cell)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi532afsmqbqihh8juuq2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi532afsmqbqihh8juuq2.jpg" alt="step-one" width="354" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Save that position to &lt;em&gt;starts&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Step 2 (randomly selecting a neighbor cell)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi01yxknkowhv9h6d3568.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi01yxknkowhv9h6d3568.jpg" alt="step-two" width="354" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For it was unchecked, check it and save that position to &lt;em&gt;ends&lt;/em&gt;. See that for every end we must have a new start, which is the previously visited cell.&lt;/p&gt;

&lt;p&gt;Step 3 (repeat step 2 until every cell is checked)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm12uynhd3bk99qjr51zu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm12uynhd3bk99qjr51zu.jpg" alt="step-three" width="374" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We also got rid of the grid (it was just for you to see the matrix).&lt;/p&gt;

&lt;p&gt;We now have all the necessary data to draw the maze, we just have to connect every start and end point with a straight line.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhlxx8v0u8yceexxhgs6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhlxx8v0u8yceexxhgs6.jpg" alt="four" width="374" height="210"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Our maze is ready, but it doesn't look quite good, so I increase the stroke of the lines.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F25h84kidpcx65lk8ot4i.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F25h84kidpcx65lk8ot4i.jpg" alt="five" width="211" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's more like it.&lt;/p&gt;

&lt;p&gt;This is the code that draws the maze, I'll just give you the JPanel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;package&lt;/span&gt; &lt;span class="nn"&gt;interfazgrafica&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;javax.swing.*&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;java.awt.*&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MazeIterfacePanel&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;JComponent&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="c1"&gt;// JPANEL&lt;/span&gt;

    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;dims&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;thickness&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;margin&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;MazeInterfacePanel&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;dims&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;thickness&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;margin&lt;/span&gt;&lt;span class="o"&gt;){&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;dims&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dims&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;thickness&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;thickness&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;margin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;margin&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;paintComponent&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Graphics&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="o"&gt;){&lt;/span&gt;

        &lt;span class="kd"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;paintComponent&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

        &lt;span class="nc"&gt;Graphics2D&lt;/span&gt; &lt;span class="n"&gt;g2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Graphics2D&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nc"&gt;BasicStroke&lt;/span&gt; &lt;span class="n"&gt;stroke&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BasicStroke&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;thickness&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;g2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setStroke&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stroke&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;dims&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;dims&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; 
            &lt;span class="n"&gt;g2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;drawLine&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Labyrinth&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;starts&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dims&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;margin&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
                        &lt;span class="nc"&gt;Labyrinth&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;starts&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dims&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;margin&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
                        &lt;span class="nc"&gt;Labyrinth&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ends&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dims&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;margin&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; 
                        &lt;span class="nc"&gt;Labyrinth&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ends&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;][&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dims&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;margin&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;     
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The drawing is made by the &lt;em&gt;drawLine&lt;/em&gt; function from the &lt;em&gt;java.awt.Graphics&lt;/em&gt; class, it takes four parameters: the first two are the starting point of the line, the others are the ending point. I position these points using pixels as unit, I use &lt;em&gt;dims&lt;/em&gt; to reduce the 500 pixels translation factor: say the maze dimensions are 50x50, then &lt;em&gt;dims&lt;/em&gt; = 50. Plus, the JPanel is created with a especial stroke and margin depending on the dimensions. All this is what makes our mazes occupy the same space, and remember our &lt;em&gt;starts&lt;/em&gt; and &lt;em&gt;ends&lt;/em&gt; arrays? This is where we use them. &lt;/p&gt;

&lt;p&gt;The coordinates on the window are: the indexes of our arrays multiplied by a translation factor reduced according to the dimensions, with an added margin.&lt;/p&gt;

&lt;p&gt;This is what some actual random mazes look like:&lt;/p&gt;

&lt;h3&gt;
  
  
  10x10
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkryai9kwbzsuwjcg22oc.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkryai9kwbzsuwjcg22oc.JPG" alt="10x10" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  20x20
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw6nv2n3zw4cxipre8dh7.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw6nv2n3zw4cxipre8dh7.JPG" alt="20x20" width="800" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  50x50
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5rgsiukf2jkq1ukiocae.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5rgsiukf2jkq1ukiocae.JPG" alt="50x50" width="800" height="539"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  100x100
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmrtzi0ftxa8s7nan79kv.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmrtzi0ftxa8s7nan79kv.JPG" alt="100x100" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Maze Generator also saves every generated maze in text files, these contain the time they took to generate as well, their directory is specified at the start of the program.&lt;/p&gt;

&lt;h3&gt;
  
  
  Epilogue
&lt;/h3&gt;

&lt;p&gt;When I was given this project I had no idea how to do it, just basic OOP knowledge and almost no Java experience, and it was by doing it that I learned so much, this is an advice for every beginner out there.&lt;/p&gt;

&lt;p&gt;This is my first &lt;em&gt;actual&lt;/em&gt; post, and all your observations are welcome in the comments.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cover image from Dreamlandia&lt;/em&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>java</category>
      <category>maze</category>
    </item>
    <item>
      <title>How do I put a header image in a post?</title>
      <dc:creator>Marco Suárez</dc:creator>
      <pubDate>Wed, 03 Jan 2018 20:57:30 +0000</pubDate>
      <link>https://dev.to/marksasp95/how-do-i-put-a-header-image-in-a-post-413o</link>
      <guid>https://dev.to/marksasp95/how-do-i-put-a-header-image-in-a-post-413o</guid>
      <description></description>
      <category>help</category>
    </item>
    <item>
      <title>What was your first big step in this never ending journey?</title>
      <dc:creator>Marco Suárez</dc:creator>
      <pubDate>Sat, 18 Nov 2017 16:22:26 +0000</pubDate>
      <link>https://dev.to/marksasp95/what-was-your-first-big-step-in-this-never-ending-journey-af4</link>
      <guid>https://dev.to/marksasp95/what-was-your-first-big-step-in-this-never-ending-journey-af4</guid>
      <description>&lt;p&gt;If you're a constant reader of dev.to, you may have noticed that all I've ever posted are discussions, and that's because I find more questions than answers in my head, for I've never actually thrown myself to get a Junior Developer position (lack of time), but I've made cool stuff during my Systems Engineering studies at the university and I know HTML, CSS, JS, jQuery, PHP, Java, and I'm learning React right now.&lt;/p&gt;

&lt;p&gt;What I want to know from you guys, regardless of your position (i.e. Junior, Senior, ...), is what was your first big step and the story of it. &lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
    </item>
    <item>
      <title>How do you learn a new programming language?</title>
      <dc:creator>Marco Suárez</dc:creator>
      <pubDate>Fri, 17 Nov 2017 02:31:50 +0000</pubDate>
      <link>https://dev.to/marksasp95/how-do-you-learn-a-new-programming-language-cp3</link>
      <guid>https://dev.to/marksasp95/how-do-you-learn-a-new-programming-language-cp3</guid>
      <description>&lt;p&gt;Sign for a course maybe? Look for video tutorials on YouTube? Head-first into a book? Which one do you think is the best way?&lt;/p&gt;

&lt;p&gt;I want to know your methodology, I'd be great if you pointed out your level of experience so we can maybe see if learning habits change with it.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>learning</category>
      <category>languages</category>
    </item>
    <item>
      <title>Should you learn more than one language at the same time?</title>
      <dc:creator>Marco Suárez</dc:creator>
      <pubDate>Mon, 06 Nov 2017 01:51:42 +0000</pubDate>
      <link>https://dev.to/marksasp95/should-you-learn-more-than-one-language-at-the-same-time-9jk</link>
      <guid>https://dev.to/marksasp95/should-you-learn-more-than-one-language-at-the-same-time-9jk</guid>
      <description>&lt;p&gt;After a period of inactive code learning or practicing, I achieved to spare some time of my day to get back on track. &lt;/p&gt;

&lt;p&gt;The thing is that I've always learned one programming language at a time but, would you find it bad or inefficient to learn more than one simultaneously? And by "simultaneously" I mean, for example, one day for JavaScript, next day is for PHP, next day for Python, and so on... &lt;/p&gt;

</description>
      <category>learning</category>
      <category>career</category>
      <category>begginers</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
