<?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: Felipe Zuluaga</title>
    <description>The latest articles on DEV Community by Felipe Zuluaga (@zuludev).</description>
    <link>https://dev.to/zuludev</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2820616%2F86f764d4-c446-4148-b87b-bd1759e436a8.jpg</url>
      <title>DEV Community: Felipe Zuluaga</title>
      <link>https://dev.to/zuludev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zuludev"/>
    <language>en</language>
    <item>
      <title>Publicar en la App Store desde Windows con Expo y EAS (y el error de los saltos de línea)</title>
      <dc:creator>Felipe Zuluaga</dc:creator>
      <pubDate>Mon, 19 Oct 2026 18:55:03 +0000</pubDate>
      <link>https://dev.to/zuludev/publicar-en-la-app-store-desde-windows-con-expo-y-eas-y-el-error-de-los-saltos-de-linea-3cni</link>
      <guid>https://dev.to/zuludev/publicar-en-la-app-store-desde-windows-con-expo-y-eas-y-el-error-de-los-saltos-de-linea-3cni</guid>
      <description>&lt;p&gt;Programo en Windows y quería llevar mi app de &lt;strong&gt;React Native + Expo&lt;/strong&gt; a la App Store. ¿Se puede sin un Mac? &lt;strong&gt;Sí, pero con trampas.&lt;/strong&gt; Este es el resumen del proceso y de los errores reales que me aparecieron.&lt;/p&gt;

&lt;p&gt;Si prefieres verlo en pantalla, aquí está el video completo (con capítulos):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/7aK1r9mw7Fs" rel="noopener noreferrer"&gt;https://youtu.be/7aK1r9mw7Fs&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Qué puedes (y qué no) hacer desde Windows
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Sí:&lt;/strong&gt; escribir el código, configurar &lt;code&gt;app.config.js&lt;/code&gt;, compilar en la nube con &lt;strong&gt;EAS Build&lt;/strong&gt;, subir con &lt;strong&gt;EAS Submit&lt;/strong&gt; y probar en un iPhone real con &lt;strong&gt;TestFlight&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No:&lt;/strong&gt; usar el simulador de iOS (solo existe en macOS) ni ejecutar &lt;code&gt;npx expo prebuild -p ios&lt;/code&gt; (en Windows borra tu carpeta &lt;code&gt;ios/&lt;/code&gt;). Alternativas: Appetize.io o un Mac en la nube. Yo usé un Mac prestado solo para el simulador.&lt;/p&gt;

&lt;h2&gt;
  
  
  Antes de compilar
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Necesitas el &lt;strong&gt;Apple Developer Program&lt;/strong&gt;: unos &lt;strong&gt;99 USD al año&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;En &lt;strong&gt;App Store Connect&lt;/strong&gt; creas la app con nombre, idioma, &lt;strong&gt;bundle ID&lt;/strong&gt; y &lt;strong&gt;SKU&lt;/strong&gt; (un código interno que no se puede cambiar). El nombre que quería ya estaba ocupado, así que ten alternativas.&lt;/li&gt;
&lt;li&gt;En &lt;code&gt;app.config.js&lt;/code&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;ios&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;bundleIdentifier&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;com.tuempresa.tuapp&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;buildNumber&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;36&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;       &lt;span class="c1"&gt;// un entero que SIEMPRE sube&lt;/span&gt;
  &lt;span class="nx"&gt;supportsTablet&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;   &lt;span class="c1"&gt;// solo iPhone: sin capturas de iPad&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Los errores del Mac (para probar en el simulador)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Node incompatible&lt;/strong&gt; (&lt;code&gt;expected &amp;gt;= 20.19.4&lt;/code&gt;): &lt;code&gt;nvm install 20.19.4 &amp;amp;&amp;amp; nvm use 20.19.4&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Can't determine id of Simulator app"&lt;/strong&gt;: &lt;code&gt;xcode-select&lt;/code&gt; apuntaba a un Xcode sin &lt;code&gt;Simulator.app&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;IPHONEOS_DEPLOYMENT_TARGET is set to 12.0&lt;/code&gt;&lt;/strong&gt;: un &lt;em&gt;config plugin&lt;/em&gt; que sube todos los pods a iOS 15.1 en el &lt;code&gt;post_install&lt;/code&gt; (sobrevive a &lt;code&gt;prebuild&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Compilar y subir
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; eas-cli
eas login
eas build &lt;span class="nt"&gt;-p&lt;/span&gt; ios &lt;span class="nt"&gt;--profile&lt;/span&gt; production
eas submit &lt;span class="nt"&gt;-p&lt;/span&gt; ios &lt;span class="nt"&gt;--latest&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En la primera build, EAS te pide el Apple ID (con doble factor) y genera por ti los &lt;strong&gt;certificados&lt;/strong&gt; y los &lt;strong&gt;provisioning profiles&lt;/strong&gt;: responde &lt;strong&gt;Sí&lt;/strong&gt;. Con &lt;code&gt;eas submit&lt;/code&gt;, elige &lt;strong&gt;App Manager&lt;/strong&gt; para la API Key (suficiente para publicar). Luego Apple procesa el binario, normalmente en 5–10 minutos, y la build aparece en &lt;strong&gt;TestFlight&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  El error que no esperaba: &lt;code&gt;\r: command not found&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Mi build de iOS falló con un mensaje genérico:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The "Run fastlane" step failed with an unknown error.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;El error real estaba en los &lt;strong&gt;Xcode logs&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Script '[Expo] Configure project' failed
.../ios/Pods/../.xcode.env: line 5: \r: command not found
** ARCHIVE FAILED **
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;La causa:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;ios/.xcode.env&lt;/code&gt; es un script de bash que Xcode ejecuta al compilar.&lt;/li&gt;
&lt;li&gt;En Windows, git tiene &lt;code&gt;core.autocrlf=true&lt;/code&gt;: el repo guarda &lt;strong&gt;LF&lt;/strong&gt;, pero al hacer &lt;em&gt;checkout&lt;/em&gt; los convierte a &lt;strong&gt;CRLF&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;eas build&lt;/code&gt; sube los archivos &lt;strong&gt;tal como están en tu disco&lt;/strong&gt;, no como están en git.&lt;/li&gt;
&lt;li&gt;Bash no entiende el &lt;code&gt;\r&lt;/code&gt; y la build falla.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Cómo detectarlo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git ls-files &lt;span class="nt"&gt;--eol&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="s2"&gt;"w/crlf"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;La solución:&lt;/strong&gt; un &lt;code&gt;.gitattributes&lt;/code&gt; en la raíz que fuerce LF.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;* &lt;span class="n"&gt;text&lt;/span&gt;=&lt;span class="n"&gt;auto&lt;/span&gt; &lt;span class="n"&gt;eol&lt;/span&gt;=&lt;span class="n"&gt;lf&lt;/span&gt;
*.&lt;span class="n"&gt;bat&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="n"&gt;eol&lt;/span&gt;=&lt;span class="n"&gt;crlf&lt;/span&gt;
*.&lt;span class="n"&gt;cmd&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="n"&gt;eol&lt;/span&gt;=&lt;span class="n"&gt;crlf&lt;/span&gt;
*.&lt;span class="n"&gt;png&lt;/span&gt; &lt;span class="n"&gt;binary&lt;/span&gt;
*.&lt;span class="n"&gt;ttf&lt;/span&gt; &lt;span class="n"&gt;binary&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Después borra y restaura con &lt;code&gt;git checkout&lt;/code&gt; los archivos que estaban en CRLF, ejecuta &lt;code&gt;git add --renormalize .&lt;/code&gt;, haz commit y lanza la build de nuevo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lecciones:&lt;/strong&gt; el error útil siempre está en los Xcode logs, &lt;code&gt;eas build&lt;/code&gt; usa tu copia &lt;strong&gt;local&lt;/strong&gt;, y si compilas iOS desde Windows, pon &lt;code&gt;eol=lf&lt;/code&gt; &lt;strong&gt;desde el día 1&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Antes de enviar a revisión
&lt;/h2&gt;

&lt;p&gt;Completa la ficha (capturas, descripción, textos), comprueba que las páginas que enlazas funcionen, elige la compilación que ya probaste en TestFlight y configura la &lt;strong&gt;clasificación por edades&lt;/strong&gt; con lo que de verdad contiene tu app: Apple lo valida y puede rechazarte si no coincide.&lt;/p&gt;

&lt;p&gt;La primera revisión puede tardar hasta una semana. Todavía estoy esperando el resultado, y lo contaré.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resumen de comandos
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nvm &lt;span class="nb"&gt;install &lt;/span&gt;20.19.4 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; nvm use 20.19.4
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; eas-cli
eas login
eas build &lt;span class="nt"&gt;-p&lt;/span&gt; ios &lt;span class="nt"&gt;--profile&lt;/span&gt; production
eas submit &lt;span class="nt"&gt;-p&lt;/span&gt; ios &lt;span class="nt"&gt;--latest&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;¿Te topaste con algún error distinto? Cuéntamelo en los comentarios. Y si te sirvió, sígueme para ver cómo termina la revisión de Apple.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>expo</category>
      <category>ios</category>
      <category>mobile</category>
    </item>
    <item>
      <title>App Video: react-native-video VS expo-video</title>
      <dc:creator>Felipe Zuluaga</dc:creator>
      <pubDate>Tue, 11 Mar 2025 14:49:01 +0000</pubDate>
      <link>https://dev.to/zuludev/app-video-react-native-video-vs-expo-video-2jo</link>
      <guid>https://dev.to/zuludev/app-video-react-native-video-vs-expo-video-2jo</guid>
      <description>&lt;p&gt;Are you building an app with React Native and wondering which library to use for video integration?&lt;/p&gt;

&lt;p&gt;As of today, you'll find several libraries or dependencies to handle videos in React Native. In this case, I bring you two of the most used and arguably the best options available.&lt;/p&gt;

&lt;p&gt;Why do I say they are among the best? Besides their functionality, they have active maintenance and well-documented guides that make integration smoother. But which one should you choose? Here are some pros and cons of each, along with some conclusions.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔹 react-native-video
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.thewidlarzgroup.com/react-native-video/" rel="noopener noreferrer"&gt;https://docs.thewidlarzgroup.com/react-native-video/&lt;/a&gt;&lt;br&gt;
This is a widely used external library for playing videos in native React Native apps.&lt;/p&gt;

&lt;p&gt;✅ Pros:&lt;/p&gt;

&lt;p&gt;Supports multiple video formats (MP4, MOV, etc.).&lt;br&gt;
Provides advanced video control (playback, buffering, speed, subtitles, etc.).&lt;br&gt;
Integrates well with react-native-video-controls for custom playback buttons.&lt;br&gt;
Supports HLS and DASH streaming.&lt;br&gt;
Better performance on native devices since it uses Android’s ExoPlayer and iOS’s AVPlayer.&lt;/p&gt;

&lt;p&gt;❌ Cons:&lt;/p&gt;

&lt;p&gt;Requires manual installation and linking in non-autolinked projects (if using react-native-cli).&lt;br&gt;
Needs additional configuration for fullscreen on iOS.&lt;br&gt;
Not compatible with Expo Go unless you use expo-dev-client or eject to a bare workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔹 expo-video
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.expo.dev/versions/latest/sdk/video/" rel="noopener noreferrer"&gt;https://docs.expo.dev/versions/latest/sdk/video/&lt;/a&gt;&lt;br&gt;
This is an Expo component based on expo-av that simplifies video playback in Expo Managed projects.&lt;/p&gt;

&lt;p&gt;✅ Pros:&lt;/p&gt;

&lt;p&gt;Easy to use in Expo, with no additional installation required.&lt;br&gt;
Simple handling of playback, controls, and video state.&lt;br&gt;
Natively integrated with Expo, requiring no extra configuration for iOS or Android.&lt;/p&gt;

&lt;p&gt;❌ Cons:&lt;/p&gt;

&lt;p&gt;Less customizable than react-native-video.&lt;br&gt;
Limited format support compared to react-native-video.&lt;br&gt;
Does not support subtitles natively.&lt;br&gt;
May have performance issues with long videos or streaming.&lt;br&gt;
The reason for researching which of these two libraries to use was to determine which one performs better in fullscreen mode and autoplay. So, based on that, here’s my conclusion:&lt;/p&gt;

&lt;p&gt;🎥 Which works better for fullscreen and autoplay?&lt;/p&gt;

&lt;h2&gt;
  
  
  🔹 For fullscreen:
&lt;/h2&gt;

&lt;p&gt;react-native-video is more powerful and customizable but requires extra setup on iOS.&lt;br&gt;
expo-video works well in fullscreen but is less flexible.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔹 For autoplay:
&lt;/h2&gt;

&lt;p&gt;Both support autoplay, but react-native-video offers better control over buffering and video loading.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Conclusion:
&lt;/h2&gt;

&lt;p&gt;If you're using Expo Managed, expo-video is the easiest and fastest to set up.&lt;br&gt;
If you need more control, better performance, and fullscreen compatibility, react-native-video is the best option. 🚀&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>mobile</category>
      <category>development</category>
    </item>
    <item>
      <title>8 tips that will help you stop being a junior programmer.</title>
      <dc:creator>Felipe Zuluaga</dc:creator>
      <pubDate>Tue, 04 Mar 2025 21:12:29 +0000</pubDate>
      <link>https://dev.to/zuludev/8-tips-that-will-help-you-stop-being-a-junior-programmer-454f</link>
      <guid>https://dev.to/zuludev/8-tips-that-will-help-you-stop-being-a-junior-programmer-454f</guid>
      <description>&lt;p&gt;Do you want to stop being a junior, I leave you these 8 tips to start improving your seniority level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Use extensions in the editor:&lt;/strong&gt;&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%2Fy5lz4kxt0cxxfkunld8v.png" 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%2Fy5lz4kxt0cxxfkunld8v.png" alt="Use extensions in the editor" width="700" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Modern text editors or development environments (IDEs) allow the installation and configuration of multiple extensions that can help you improve your development time and help you have cleaner code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Look in the right places:&lt;/strong&gt;&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%2F3qnux3zdkdsd71lydv90.png" 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%2F3qnux3zdkdsd71lydv90.png" alt="Look in the right places" width="700" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are forum platforms or blogs focused on development issues where doubts, errors or solutions are published, some of these are Stack Overflow and Medium.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Develop in English:&lt;/strong&gt;&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%2Fdmzav3gtyoy5ovy6b14c.png" 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%2Fdmzav3gtyoy5ovy6b14c.png" alt="Develop in English" width="700" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Currently, most companies dedicated to software development manage all their projects in English, so it is ideal that you get used to doing your personal projects in this language, so you could also share your project with other people.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. A good statement says more than a thousand comments:&lt;/strong&gt;&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%2Fspdoutf09pemtjm66lqw.png" 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%2Fspdoutf09pemtjm66lqw.png" alt="A good statement says more than a thousand comments" width="571" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use clear and specific names in your variables and functions so you don’t have to use comments explaining what the function does or what the variable stores example, userName, getUserData among others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Join communities and participate:&lt;/strong&gt;&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%2F3ycl7fmwoxibxr5q6l6s.png" 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%2F3ycl7fmwoxibxr5q6l6s.png" alt="Join communities and participate" width="309" height="727"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On Facebook there are groups focused on programming in general or on specific languages, joining them will help you learn more, answer questions and make yourself known. Giving you the possibility of finding job offers focused on your knowledge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. If you have problems with a library, look for the answer directly in the documentation:&lt;/strong&gt;&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%2Fvr5ucx8ysmj9qbhlqgy9.png" 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%2Fvr5ucx8ysmj9qbhlqgy9.png" alt="If you have problems with a library, look for the answer directly in the documentation" width="700" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have an error in an installed library, go directly to its documentation and make sure you have followed the installation steps correctly, or in some cases the documentation itself indicates possible errors and how to fix them. In addition, in some cases the library has a public repository on Github and here the users of this library share the errors they have found and in some cases answer how to fix it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Practice:&lt;/strong&gt;&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%2Fermea37khsis3eaqqkrh.png" 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%2Fermea37khsis3eaqqkrh.png" alt="Practice" width="700" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Start your own projects, they don’t have to be complex applications, the ideal is that you program and start implementing good practices.&lt;br&gt;
It is also ideal that you publish your projects on GitHub, so you can start showing your knowledge to other people.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Avoid repeating code:&lt;/strong&gt;&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%2Fyho7snz23sli544gwjax.png" 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%2Fyho7snz23sli544gwjax.png" alt="Avoid repeating code" width="700" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Subscribe to my networks.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Do not forget to subscribe and follow me on my social networks where I share content of interest to developers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=KnAx0Qeykyw" rel="noopener noreferrer"&gt;Youtube&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.instagram.com/zuludev" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
