<?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: alesbe</title>
    <description>The latest articles on DEV Community by alesbe (@alesbe).</description>
    <link>https://dev.to/alesbe</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%2F862373%2F8b641e35-0a1b-4bd5-a8fc-6bf623a4cde0.jpeg</url>
      <title>DEV Community: alesbe</title>
      <link>https://dev.to/alesbe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alesbe"/>
    <language>en</language>
    <item>
      <title>Please, don't give up on programming!</title>
      <dc:creator>alesbe</dc:creator>
      <pubDate>Sun, 29 May 2022 11:49:12 +0000</pubDate>
      <link>https://dev.to/alesbe/please-dont-give-up-on-programming-4pop</link>
      <guid>https://dev.to/alesbe/please-dont-give-up-on-programming-4pop</guid>
      <description>&lt;p&gt;This message it's specially for anyone that just started programming and thinks "Maybe programming it's not my field", "This does not make any sense, I don't understand anything", or something similar.&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%2Fdatademia.es%2Fwp-content%2Fuploads%2F2019%2F06%2Fhello_world-1024x512.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%2Fdatademia.es%2Fwp-content%2Fuploads%2F2019%2F06%2Fhello_world-1024x512.png" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I want to share some ideas if you're thinking about quitting programming:&lt;/p&gt;

&lt;h2&gt;
  
  
  1.- You're not the only one!
&lt;/h2&gt;

&lt;p&gt;A common thought when this types of ideas come into your mind is thinking that everyone it's so good at programming except you. Seeing those open source projects and people talking about &lt;em&gt;how easy Python is&lt;/em&gt;, and then you struggle to understand some &lt;em&gt;supposedly&lt;/em&gt; easy concepts, let me tell you one thing, everyone struggles with "easy" concepts when they're starting in any field, outside of programming too!&lt;/p&gt;

&lt;p&gt;It's the same as seeing an athlete doing some things that seem impossible to you without struggling even a little bit. You can't think that you're not made for athletics because you can't do the same as that athlete without any training! That athlete has probably been in the same situation as you a few years ago but kept practicing from zero. The same happens with programming and proficient developers.&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%2Fmedia.istockphoto.com%2Fphotos%2Ffemale-gymnast-in-sports-hall-picture-id519265984%3Fk%3D20%26m%3D519265984%26s%3D612x612%26w%3D0%26h%3DUfrYIUiuiIBW5qSE2ptFUmANSFgLf1ZS9942JUtZLZ0%3D" 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%2Fmedia.istockphoto.com%2Fphotos%2Ffemale-gymnast-in-sports-hall-picture-id519265984%3Fk%3D20%26m%3D519265984%26s%3D612x612%26w%3D0%26h%3DUfrYIUiuiIBW5qSE2ptFUmANSFgLf1ZS9942JUtZLZ0%3D" alt="athlete"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2.- Programming is abstract
&lt;/h2&gt;

&lt;p&gt;After some years, I realized that the programming learning curve it's really step at first, but then it flattens after learning a language and doing your first real projects.&lt;/p&gt;

&lt;p&gt;The thing about programming it's that the concept of programming itself it's complex to understand. Programming it's not about memorizing words or learning how the syntax of the language that you're using works, it's about learning how to translate ideas into code. The languages are just tools to create a project, that's why the questions about "What programming language it's the best?" doesn't have real answers.&lt;/p&gt;

&lt;p&gt;It's completely normal to start with programming and not understanding in which situations you could use certain "programming things", my advice it's to start doing projects at the same instant that you start learning!&lt;/p&gt;

&lt;p&gt;The theory is useful to be applied to the practice, trying to memorize or learn things without knowing the purpose of it it's so much difficult.&lt;/p&gt;

&lt;p&gt;If you only know how to print things on a terminal make a little program to print your name, if you also know about user input do a program that asks for your name and prints it, if you also know about if statements you could do a simple calculator! That will help you a lot to understand in which situations you could use the things that you learn, and everything will seem less abstract and start making more sense.&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%2Fwww.artmajeur.com%2Fmedias%2Fstandard%2Ft%2Fi%2Ftibisoos%2Fartwork%2F11587544_1.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%2Fwww.artmajeur.com%2Fmedias%2Fstandard%2Ft%2Fi%2Ftibisoos%2Fartwork%2F11587544_1.jpg" alt="abstract"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3.- I learned the basics... Now what?
&lt;/h2&gt;

&lt;p&gt;Great, I just finished the CS50 course! I've learned the basics of programming languages (if statements, loops, variables, functions, classes...) also did some small scripts to put into practice the things that I learned, but now... How can I create something like Dev.to? Or even complex software like Adobe Photoshop? How can those things be made using the same concepts that I used for my calculator app? That's impossible!&lt;/p&gt;

&lt;p&gt;If the major barrier was starting with programming, this is the second major barrier that a lot of people experience. If you're at this point, again, it's completely normal!&lt;/p&gt;

&lt;p&gt;You know how to use the tools, but you don't know how to use them to build something! My advice is to progress doing projects escalating in difficulty and trying new things, programming or learning shouldn't be boring! If you want to build something big, instead of trying to approach it directly, try to divide the big problem into smaller tasks.&lt;/p&gt;

&lt;p&gt;Also, don't fall into &lt;a href="https://dev.to/davidmm1707/how-to-escape-from-tutorial-hell-and-never-come-back-bb6"&gt;tutorial hell&lt;/a&gt;! Programming "tutorials" about building an Spotify clone aren't bad to take a general concept on how to approach things, but copying the code gives a false sense of productivity!&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%2Fimages.pexels.com%2Fphotos%2F4385547%2Fpexels-photo-4385547.jpeg%3Fauto%3Dcompress%26cs%3Dtinysrgb%26w%3D1260%26h%3D750%26dpr%3D1" 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%2Fimages.pexels.com%2Fphotos%2F4385547%2Fpexels-photo-4385547.jpeg%3Fauto%3Dcompress%26cs%3Dtinysrgb%26w%3D1260%26h%3D750%26dpr%3D1" alt="dev"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ideas and resources
&lt;/h2&gt;

&lt;p&gt;As you can see, everyone struggles at first. If you really like programming go for it! The difficult part is knowing how to approach the problem, the code itself it's just pure practice and reading documentation.&lt;/p&gt;

&lt;p&gt;To improve your problem solving, the best way is to solve problems! Have fun and start building projects slightly above your current capacity (not too much), that way you'll be motivated and constantly learning new things!&lt;/p&gt;

&lt;p&gt;Here are some resources that may help:&lt;/p&gt;

&lt;h3&gt;
  
  
  Problem solving
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.codewars.com/" rel="noopener noreferrer"&gt;Codewars&lt;/a&gt;: Practice programming problems in any language!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://leetcode.com/" rel="noopener noreferrer"&gt;LeetCode&lt;/a&gt;: Similar to Codewars but more focused in programming interviews.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.hackerrank.com/" rel="noopener noreferrer"&gt;HackerRank&lt;/a&gt;: Similar to Codewars.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cssbattle.dev/" rel="noopener noreferrer"&gt;CSSBattle&lt;/a&gt;: CSS design problems (If you like frontend, I recommend this a lot).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Ask programming questions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://stackoverflow.com/" rel="noopener noreferrer"&gt;StackOverflow&lt;/a&gt;: If you're a beginner I don't really recommend asking questions here, but you probably find the same question already answered.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.reddit.com/r/learnprogramming/" rel="noopener noreferrer"&gt;r/learnprogramming&lt;/a&gt;: Subreddit about programming questions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Programming resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.w3schools.com/" rel="noopener noreferrer"&gt;W3Schools&lt;/a&gt;: You can find basic examples  of code, I used it a lot for HTML and JS and helped me so much!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.theodinproject.com/" rel="noopener noreferrer"&gt;The Odin Project&lt;/a&gt;: This is only for web development, for me, one of the best free courses, and you'll learn a lot!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.google.com/" rel="noopener noreferrer"&gt;Google&lt;/a&gt;: Of course, the best resource it's google! Learning how to search it's so important and will save you so much time.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.rust-lang.org/learn" rel="noopener noreferrer"&gt;Language Docs&lt;/a&gt;: &lt;em&gt;Almost&lt;/em&gt; every language has a website with documentation about the language, just search "[language] documentation"!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have more interesting resources to share, want to share you experience, or provide some more advice, please add them in the comment section!&lt;/p&gt;

&lt;p&gt;So that's it. Don't give up please. Programming it's an incredible world and you can do an infinity of things with it, if you can't progress try different approaches, rest a little bit or try new things! Programming includes a lot of different fields, do something that makes you feel good, and have fun!&lt;/p&gt;

&lt;p&gt;Good luck! 🖤🙌&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>motivation</category>
      <category>discuss</category>
    </item>
    <item>
      <title>React should change the documentation to React Hooks</title>
      <dc:creator>alesbe</dc:creator>
      <pubDate>Wed, 25 May 2022 16:41:20 +0000</pubDate>
      <link>https://dev.to/alesbe/react-should-change-the-documentation-to-react-hooks-3pon</link>
      <guid>https://dev.to/alesbe/react-should-change-the-documentation-to-react-hooks-3pon</guid>
      <description>&lt;p&gt;React Hooks came out around 4 years ago, and almost any React project made today uses functional components and hooks instead of the class-component model.&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%2Fmiro.medium.com%2Fmax%2F1102%2F1%2AHOuxJqyY4_6kXohawnUdxA.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%2Fmiro.medium.com%2Fmax%2F1102%2F1%2AHOuxJqyY4_6kXohawnUdxA.png" alt="functional component"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If we go to &lt;a href="https://reactjs.org/docs/handling-events.html" rel="noopener noreferrer"&gt;React's documentation&lt;/a&gt; a lot of explanation is done using class components, and they don't introduce hooks in the &lt;strong&gt;Main Concepts&lt;/strong&gt; section, don't even mention it in the &lt;a href="https://reactjs.org/docs/handling-events.html" rel="noopener noreferrer"&gt;handling events&lt;/a&gt; page.&lt;/p&gt;

&lt;p&gt;I think that mixing functional and class components can be misleading and confusing to anyone that wants to learn React as a first JS framework, also frameworks like &lt;a href="https://nextjs.org/learn/basics/navigate-between-pages/link-component" rel="noopener noreferrer"&gt;NextJS&lt;/a&gt; made all the documentation using Functional Components.&lt;/p&gt;

&lt;p&gt;I'm not saying that people shouldn't learn how to use class components, all the react projects that came out more than 4 years ago use them, but when I learned React some years ago I encounter this issue.&lt;/p&gt;

&lt;p&gt;Would you change something about the documentation?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>I made a Sorting Visualizer!</title>
      <dc:creator>alesbe</dc:creator>
      <pubDate>Tue, 24 May 2022 10:56:11 +0000</pubDate>
      <link>https://dev.to/alesbe/i-made-a-sorting-visualizer-id0</link>
      <guid>https://dev.to/alesbe/i-made-a-sorting-visualizer-id0</guid>
      <description>&lt;p&gt;I always liked the Sorting Visualizer videos that YouTube recommended me like this one:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/kPRA0W1kECg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;So, I decided to create my own Sorting Visualizer from scratch! I always liked this type of projects, so after thinking a little bit I decided to use C++ and SFML, and after a bit of tinkering and learning SFML, I did this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://camo.githubusercontent.com/a467a20bd0489640d65cd1d1cfb256083bffc79f3f5e8b275d90bf6e7d80b8ae/68747470733a2f2f692e696d6775722e636f6d2f54735777756d672e676966" class="article-body-image-wrapper"&gt;&lt;img src="https://camo.githubusercontent.com/a467a20bd0489640d65cd1d1cfb256083bffc79f3f5e8b275d90bf6e7d80b8ae/68747470733a2f2f692e696d6775722e636f6d2f54735777756d672e676966" alt="visualizer" width="1112" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few days ago I received my first two contributions, so I put more effort into the compatibility and improved everything about the project!&lt;/p&gt;

&lt;p&gt;Here is the repository with all the info, I documented everything well and made a small wiki: &lt;a href="https://github.com/alesbe/sorting-visualizer"&gt;https://github.com/alesbe/sorting-visualizer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any suggestions are appreciated!&lt;/p&gt;

&lt;p&gt;Thanks for reading! 🙌&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>programming</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Does functional programming have any advantage in real environments?</title>
      <dc:creator>alesbe</dc:creator>
      <pubDate>Wed, 18 May 2022 21:36:55 +0000</pubDate>
      <link>https://dev.to/alesbe/does-functional-programming-have-any-advantage-in-real-environments-3dek</link>
      <guid>https://dev.to/alesbe/does-functional-programming-have-any-advantage-in-real-environments-3dek</guid>
      <description>&lt;p&gt;I've been thinking about learning something new, so I went to &lt;a href="https://insights.stackoverflow.com/survey/2021" rel="noopener noreferrer"&gt;Stack Overflow Surveys&lt;/a&gt; to see what technologies are people actually working on right now, and I saw this:&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc2dv62fnju36ldyv8ki1.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc2dv62fnju36ldyv8ki1.png" alt="Survey"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The top paying programming language is Clojure? Followed by F#, Elixir and Erlang, and a few positions below Scala and LISP, I'm impressed.&lt;/p&gt;

&lt;p&gt;I don't have almost any knowledge in functional programming, I've heard that has better performance in certain situations (like managing big data), is more predictable, and more readable, but I don't see real use cases for functional programming instead of a traditional approach.&lt;/p&gt;

&lt;p&gt;What are the advantages of the functional paradigm? In what situations are this languages used? For someone that wants to learn something new, what language do you recommend to learn first? I thought about Haskell or Clojure.&lt;/p&gt;

&lt;p&gt;Thanks! 🙌&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>programming</category>
      <category>javascript</category>
      <category>career</category>
    </item>
    <item>
      <title>What is your favorite programming font?</title>
      <dc:creator>alesbe</dc:creator>
      <pubDate>Sat, 14 May 2022 20:36:53 +0000</pubDate>
      <link>https://dev.to/alesbe/what-is-your-favorite-programming-font-3ja9</link>
      <guid>https://dev.to/alesbe/what-is-your-favorite-programming-font-3ja9</guid>
      <description>&lt;p&gt;There are tons of options! I used &lt;a href="https://fonts.google.com/specimen/Source+Code+Pro" rel="noopener noreferrer"&gt;Source Code Pro&lt;/a&gt; for a long time, but some time ago I decided to try &lt;a href="https://github.com/be5invis/Iosevka" rel="noopener noreferrer"&gt;Iosevka&lt;/a&gt;, what font are you using right now for programming?&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%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F6%2F6e%2FIosevka_sample.svg%2F1200px-Iosevka_sample.svg.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%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F6%2F6e%2FIosevka_sample.svg%2F1200px-Iosevka_sample.svg.png" alt="Iosevka Font"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>discuss</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
