<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>fjp.es - Programming Tutorials</title><description>Tutorials about JavaScript, Git, web development and more</description><link>https://fjp.es/</link><language>en</language><item><title>Advanced Dockerfile instructions: ARG, ENV, ENTRYPOINT and more</title><link>https://fjp.es/en/tutorials/advanced-dockerfile-instructions/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/advanced-dockerfile-instructions/</guid><description>Understand once and for all the difference between ARG and ENV, ENTRYPOINT and CMD, and what HEALTHCHECK, VOLUME and EXPOSE actually do in your Dockerfiles.</description><pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Pull Requests and code review: how to make your code easy to review</title><link>https://fjp.es/en/tutorials/pull-requests-and-code-review-git/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/pull-requests-and-code-review-git/</guid><description>A Pull Request is not just the mechanism to merge code — it&apos;s a conversation. Learn to write PRs that people actually want to review and give feedback that builds instead of blocks.</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>GitHub Flow: the workflow for teams that ship continuously</title><link>https://fjp.es/en/tutorials/github-flow-workflow/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/github-flow-workflow/</guid><description>GitHub Flow strips branching down to the essentials: one stable branch, short-lived feature branches, Pull Requests for review, and deploy after every merge.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>The art of the prompt: core principles</title><link>https://fjp.es/en/tutorials/the-art-of-the-prompt-core-principles/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/the-art-of-the-prompt-core-principles/</guid><description>Same model, same day, thirty seconds apart — two completely different answers depending on how you frame the question. Here&apos;s the RCTF framework and why it changes everything.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>List methods in Python: append, remove, and list comprehensions</title><link>https://fjp.es/en/tutorials/list-methods-python/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/list-methods-python/</guid><description>A list you can&apos;t modify is just a tuple with extra steps. Learn to add, remove, and transform elements with the most important list methods — and write your first list comprehensions.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Multi-stage builds in Docker: smaller, cleaner images</title><link>https://fjp.es/en/tutorials/docker-multi-stage-builds/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/docker-multi-stage-builds/</guid><description>Learn to use multi-stage builds in Docker to separate the build environment from the runtime environment, with real Go and Node.js examples that shrink images from hundreds of megabytes down to a handful.</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Dockerfile Best Practices: Security</title><link>https://fjp.es/en/tutorials/dockerfile-best-practices-security/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/dockerfile-best-practices-security/</guid><description>Build secure Docker images: avoid running as root, scan for vulnerabilities with Trivy, pin versions the right way, and manage secrets without baking them into your image.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Git Flow: a workflow for managing releases</title><link>https://fjp.es/en/tutorials/git-flow-workflow/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/git-flow-workflow/</guid><description>Git Flow formalizes the branch prefixes you already know into a structured process: permanent main and develop branches, plus temporary branches for features, releases, and hotfixes.</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Branch naming conventions in Git</title><link>https://fjp.es/en/tutorials/branch-naming-conventions-git/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/branch-naming-conventions-git/</guid><description>How to name branches so your team understands at a glance what they contain, which ticket they map to, and when it&apos;s safe to delete them.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Visual mode in Vim: select, operate, own it</title><link>https://fjp.es/en/tutorials/visual-mode-vim/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/visual-mode-vim/</guid><description>Visual mode isn&apos;t &apos;using the keyboard like a mouse&apos;. It&apos;s a three-variant tool with direct operations and a block mode that simulates multiple cursors with zero plugins.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Lists in Python: your first data structure</title><link>https://fjp.es/en/tutorials/lists-basics-python/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/lists-basics-python/</guid><description>A single variable can only hold one value. Lists hold as many as you need — and let you access, slice, and iterate over them with almost no ceremony.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Dockerfile Best Practices: Layer Caching and Efficiency</title><link>https://fjp.es/en/tutorials/dockerfile-best-practices-efficiency/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/dockerfile-best-practices-efficiency/</guid><description>Learn how Docker&apos;s layer caching system works, how to order Dockerfile instructions for fast builds, and which base image to choose for lean, efficient images.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Git commit best practices</title><link>https://fjp.es/en/tutorials/git-commit-best-practices/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/git-commit-best-practices/</guid><description>Atomic commits, messages that explain the why, and the Conventional Commits standard: the difference between a history that documents and one that just takes up space.</description><pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>How to resolve merge conflicts in Git</title><link>https://fjp.es/en/tutorials/resolving-git-merge-conflicts/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/resolving-git-merge-conflicts/</guid><description>Conflict markers make sense once you understand the three-way merge: what HEAD means, what the separator does, and how to resolve conflicts cleanly with or without visual tools.</description><pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Investigating Code Changes Line by Line with git blame</title><link>https://fjp.es/en/tutorials/investigating-commits-git-blame/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/investigating-commits-git-blame/</guid><description>Who broke everything? git blame tells you line by line, and when history gets messy, git log has options you probably did not know to trace code even after it changed names.</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Your First Code Conversation with AI</title><link>https://fjp.es/en/tutorials/your-first-code-conversation-with-ai/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/your-first-code-conversation-with-ai/</guid><description>The first time you use AI for real coding: how to structure the conversation, what to expect from responses, and the evaluation loop that separates code that works from code that just looks like it works.</description><pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>The AI Model Landscape in 2026: who&apos;s who and where to start</title><link>https://fjp.es/en/tutorials/the-ai-model-landscape-2026/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/the-ai-model-landscape-2026/</guid><description>Claude, GPT, Gemini, Copilot, Cursor, OpenCode — too many names to choose from. Here&apos;s the map: what each one does, how API and subscription differ, and where to actually start.</description><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>for loops and range() in Python: iterate without the busywork</title><link>https://fjp.es/en/tutorials/for-loops-range-python/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/for-loops-range-python/</guid><description>while gives you control. for gives you clarity. Learn to iterate over sequences, generate number ranges with range(), and write nested loops — without managing a counter by hand.</description><pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Introduction to Dockerfiles: build your own images</title><link>https://fjp.es/en/tutorials/introduction-dockerfiles-docker/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/introduction-dockerfiles-docker/</guid><description>Learn what a Dockerfile is, how the layered build process works, the basic instructions FROM, RUN, COPY, CMD and EXPOSE, and build your first custom image.</description><pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Docker port mapping: connect your containers to the outside world</title><link>https://fjp.es/en/tutorials/port-mapping-docker/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/port-mapping-docker/</guid><description>Learn how Docker network isolation works, how to publish ports with -p, inspect network configuration, and run multiple containers on the same host without conflicts.</description><pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Finding bugs with git bisect</title><link>https://fjp.es/en/tutorials/finding-bugs-git-bisect/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/finding-bugs-git-bisect/</guid><description>Learn to use git bisect to find the exact commit that introduced a bug using binary search — and how to automate it so Git does all the work while you grab a coffee.</description><pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Recovering lost work with git reflog</title><link>https://fjp.es/en/tutorials/recovering-lost-work-git-reflog/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/recovering-lost-work-git-reflog/</guid><description>Learn to use git reflog to recover deleted commits, lost branches, and any change that seemed gone forever after a reset or a Git mistake.</description><pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>AI Limitations and How to Detect Hallucinations</title><link>https://fjp.es/en/tutorials/ai-limitations-detecting-hallucinations/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/ai-limitations-detecting-hallucinations/</guid><description>AI lies with total conviction. Learn to detect hallucinations, understand context blindness, and apply the verification checklist that separates code that works from code that looks like it works.</description><pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Insert Mode in depth: more than you think</title><link>https://fjp.es/en/tutorials/insert-mode-vim/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/insert-mode-vim/</guid><description>Insert mode isn&apos;t just &apos;press i and type&apos;. Learn the nine ways to enter it, the keyboard shortcuts inside it, and the golden rule that separates Vim beginners from people who actually know what they&apos;re doing.</description><pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>while loops in Python: repetition with a condition</title><link>https://fjp.es/en/tutorials/while-loops-python/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/while-loops-python/</guid><description>You already know how to make decisions with if. Now learn how to repeat them. while loops execute code over and over as long as a condition holds — and yes, infinite loops are very real.</description><pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Interactive containers and exec: get inside, run commands, get out</title><link>https://fjp.es/en/tutorials/interactive-containers-exec-docker/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/interactive-containers-exec-docker/</guid><description>Learn to open shells inside containers, run commands in live containers with docker exec, copy files with docker cp, and know when to use interactive vs. detached mode.</description><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Cherry-picking commits in Git</title><link>https://fjp.es/en/tutorials/cherry-picking-commits-git/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/cherry-picking-commits-git/</guid><description>Learn how to use git cherry-pick to apply specific commits from one branch to another—perfect for backporting hotfixes, rescuing buried work, and surgical history management.</description><pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Interactive Rebase in Git: Edit Your History Like a Pro</title><link>https://fjp.es/en/tutorials/interactive-rebase-git/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/interactive-rebase-git/</guid><description>Learn how to use git rebase -i to reorder, combine, rename, and delete commits before integrating your work. Take full control of your history, commit by commit.</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>AI for Programming: The Paradigm Shift</title><link>https://fjp.es/en/tutorials/ai-for-programming-paradigm-shift/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/ai-for-programming-paradigm-shift/</guid><description>From writing code to directing AI: understand the new mental model, which tasks are worth delegating and which aren&apos;t, and why clarity of thought is now your most valuable skill.</description><pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>How LLMs Work (Without the Math)</title><link>https://fjp.es/en/tutorials/how-llms-work-without-the-math/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/how-llms-work-without-the-math/</guid><description>Understand how Large Language Models work under the hood — no equations, just the mental models that explain why they hallucinate so confidently and how to use that to your advantage.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Normal Mode: The Power of Vim</title><link>https://fjp.es/en/tutorials/normal-mode-power-of-vim/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/normal-mode-power-of-vim/</guid><description>Normal mode isn&apos;t just where you land between keystrokes — it&apos;s where Vim lives. Learn word movements, the operator+motion grammar, and how a handful of keys gives you near-infinite editing power.</description><pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Conditional statements in Python: if, elif, and else</title><link>https://fjp.es/en/tutorials/conditional-statements-python/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/conditional-statements-python/</guid><description>Your code has always executed the same instructions in the same order. With if, elif, and else, it can finally make decisions. Learn to write programs that react to data.</description><pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Docker images and containers: understanding the relationship</title><link>https://fjp.es/en/tutorials/docker-images-containers-relationship/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/docker-images-containers-relationship/</guid><description>What exactly is a Docker image, how are layers stacked, and what happens to a container when it stops? The image-container relationship is the mental model everything else depends on.</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Installing Docker and running your first container</title><link>https://fjp.es/en/tutorials/installing-docker-first-container/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/installing-docker-first-container/</guid><description>Install Docker on Linux, macOS, or Windows and run your first container. Docker&apos;s architecture, the image vs container distinction, and the essential commands to get started.</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Common beginner mistakes in Python (and how to fix them)</title><link>https://fjp.es/en/tutorials/common-beginner-mistakes-python/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/common-beginner-mistakes-python/</guid><description>Python&apos;s error messages are your best ally — if you know how to read them. Learn to decode tracebacks, understand the most common beginner mistakes, and build a debugging mindset from day one.</description><pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Rewriting History with git rebase</title><link>https://fjp.es/en/tutorials/rewriting-history-git-rebase/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/rewriting-history-git-rebase/</guid><description>Learn what rebase is in Git, when to use it instead of merge, how to resolve conflicts during the process, and the golden rule you must never break.</description><pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>What Is Generative AI? Beyond ChatGPT</title><link>https://fjp.es/en/tutorials/what-is-generative-ai-beyond-chatgpt/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/what-is-generative-ai-beyond-chatgpt/</guid><description>Understand what generative AI is, the difference between assistants and agents, and why developers who use AI are replacing those who don&apos;t.</description><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Surviving Vim: The Absolute Basics</title><link>https://fjp.es/en/tutorials/surviving-vim-the-basics/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/surviving-vim-the-basics/</guid><description>You&apos;ve installed Neovim and LazyVim. Now what? Learn the essential commands to open files, edit text, save your work, and — yes — quit Vim without Googling it.</description><pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Strings and string methods in Python</title><link>https://fjp.es/en/tutorials/strings-and-string-methods-python/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/strings-and-string-methods-python/</guid><description>Strings are the data you&apos;ll work with most in Python. In this tutorial you&apos;ll learn how to create them, manipulate them, and get the most out of Python&apos;s string methods.</description><pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Why containers exist: from physical servers to Docker</title><link>https://fjp.es/en/tutorials/why-containers-docker/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/why-containers-docker/</guid><description>Understand the problem containers solve before touching a single command. The evolution of software deployment: from physical servers to virtual machines to containers.</description><pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Push and fetch in Git: syncing with the remote</title><link>https://fjp.es/en/tutorials/pushing-and-fetching-git/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/pushing-and-fetching-git/</guid><description>Learn to send and receive changes in Git with git push and git fetch. Understand the difference between fetch and pull, how to use --force-with-lease, and why git push --force is a bad idea.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Working with Git Remotes</title><link>https://fjp.es/en/tutorials/working-with-git-remotes/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/working-with-git-remotes/</guid><description>Learn to manage Git remotes: add, remove, rename, and inspect them with git remote. Understand tracking branches and how to work with multiple remotes.</description><pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Operators and expressions in Python</title><link>https://fjp.es/en/tutorials/operators-and-expressions-python/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/operators-and-expressions-python/</guid><description>With variables under control, it&apos;s time to do something useful with them. In this tutorial you&apos;ll learn how to operate on data in Python: math, comparisons, logic... and how not to mix up = with ==.</description><pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Installing Neovim and LazyVim</title><link>https://fjp.es/en/tutorials/installing-neovim-lazyvim/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/installing-neovim-lazyvim/</guid><description>You already know why Vim is awesome. Now it&apos;s time to actually install it. Learn how to set up Neovim with LazyVim, the modern distribution that gives you superpowers from day one.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Stashing Changes with git stash</title><link>https://fjp.es/en/tutorials/stashing-changes-git-stash/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/stashing-changes-git-stash/</guid><description>Need to switch branches urgently but have unfinished changes? Git stash is your lifesaver. Learn how to temporarily save your work and recover it whenever you need it.</description><pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Why Vim? The Modal Editing Philosophy</title><link>https://fjp.es/en/tutorials/why-vim-modal-editing-philosophy/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/why-vim-modal-editing-philosophy/</guid><description>Discover what makes Vim special, why modal editing is revolutionary, and how this 30-year-old editor remains more relevant than ever in 2026.</description><pubDate>Mon, 02 Mar 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Advanced branching in Git</title><link>https://fjp.es/en/tutorials/advanced-branching-git/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/advanced-branching-git/</guid><description>Master Git branches: fast-forward merges, merge strategies, branch management with git branch and git switch, and how to recover from a detached HEAD state.</description><pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Variables and data types in Python</title><link>https://fjp.es/en/tutorials/variables-data-types-python/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/variables-data-types-python/</guid><description>Learn how to create variables, understand Python&apos;s basic data types (numbers, strings, booleans), and how to use them to build your first programs.</description><pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Understanding file changes with git diff</title><link>https://fjp.es/en/tutorials/understanding-file-changes-git-diff/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/understanding-file-changes-git-diff/</guid><description>Before making a commit, do you know exactly what you&apos;ve changed? git diff shows you line by line what was modified, what is staged, and what differs between branches.</description><pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Tracking and ignoring files in Git</title><link>https://fjp.es/en/tutorials/tracking-and-ignoring-files-gitignore/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/tracking-and-ignoring-files-gitignore/</guid><description>Not every file in your project should be in Git. Learn how to use .gitignore to exclude what shouldn&apos;t be versioned and how to configure a global .gitignore for your machine.</description><pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Understanding git status and git log</title><link>https://fjp.es/en/tutorials/understanding-git-status-and-log/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/understanding-git-status-and-log/</guid><description>Two commands you&apos;ll use every single day with Git: git status tells you the current state of your repository and git log shows you its history. In this tutorial we study both in depth.</description><pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Python REPL: Your Interactive Python Playground</title><link>https://fjp.es/en/tutorials/python-repl-interactive-shell/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/python-repl-interactive-shell/</guid><description>Discover the Python REPL (Read-Eval-Print Loop), a powerful tool for testing code, learning Python interactively, and experimenting with ideas instantly.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Setting Up Python Environment</title><link>https://fjp.es/en/tutorials/setting-up-python-environment/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/setting-up-python-environment/</guid><description>Learn how to install Python with asdf, configure VS Code, and run your first program. Everything you need to start programming from scratch.</description><pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>Introduction to Programming</title><link>https://fjp.es/en/tutorials/introduction-to-programming/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/introduction-to-programming/</guid><description>What is programming? In this first lesson, we&apos;ll discover what it means to code, how programming languages work, and why Python is the ideal language to start with.</description><pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate><language>en</language></item><item><title>The most useful Oh My ZSH! aliases to increase our productivity with Git</title><link>https://fjp.es/en/tutorials/the-most-useful-oh-my-zsh-aliases-to-increase-our-productivity-with-git/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/the-most-useful-oh-my-zsh-aliases-to-increase-our-productivity-with-git/</guid><description>Discover the most useful Oh My ZSH! aliases for working with Git. Learn how to speed up your commands and increase your productivity.</description><pubDate>Wed, 02 May 2018 00:00:00 GMT</pubDate><language>en</language></item><item><title>How to install ZSH and Oh My ZSH! in Linux subsystem Windows 10</title><link>https://fjp.es/en/tutorials/how-to-install-zsh-oh-my-zsh-linux-subsystem-windows-10/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/how-to-install-zsh-oh-my-zsh-linux-subsystem-windows-10/</guid><description>Learn how to install ZSH and Oh My ZSH! on the Windows 10 Linux subsystem (WSL). Improve your terminal experience on Windows.</description><pubDate>Mon, 05 Mar 2018 00:00:00 GMT</pubDate><language>en</language></item><item><title>How to install ZSH and Oh My ZSH! in GNU/Linux</title><link>https://fjp.es/en/tutorials/how-to-install-zsh-oh-my-zsh-gnu-linux/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/how-to-install-zsh-oh-my-zsh-gnu-linux/</guid><description>Learn how to install and configure ZSH and Oh My ZSH! on GNU/Linux. Guide for Debian, Ubuntu, OpenSUSE, Arch Linux, and Gentoo.</description><pubDate>Sat, 24 Feb 2018 00:00:00 GMT</pubDate><language>en</language></item><item><title>How to install ZSH and Oh My ZSH! in macOS</title><link>https://fjp.es/en/tutorials/how-to-install-zsh-oh-my-zsh-macos/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/how-to-install-zsh-oh-my-zsh-macos/</guid><description>Learn how to install and configure ZSH and Oh My ZSH! on macOS. Discover how to customize your terminal with themes and plugins.</description><pubDate>Sat, 17 Feb 2018 00:00:00 GMT</pubDate><language>en</language></item><item><title>How to install Linux subsystem Windows 10</title><link>https://fjp.es/en/tutorials/how-to-install-linux-subsystem-windows-10/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/how-to-install-linux-subsystem-windows-10/</guid><description>Learn how to install the Linux subsystem on Windows 10 (WSL). Discover how to set up Ubuntu, Suse, or OpenSUSE on your Windows system.</description><pubDate>Sat, 10 Feb 2018 00:00:00 GMT</pubDate><language>en</language></item><item><title>Releasing new versions of our projects using Git tags</title><link>https://fjp.es/en/tutorials/releasing-new-versions-of-our-projects-using-git-tags/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/releasing-new-versions-of-our-projects-using-git-tags/</guid><description>Discover how to use Git tags to version your code. Learn how to create, list, and delete annotated and lightweight tags.</description><pubDate>Thu, 11 Jan 2018 00:00:00 GMT</pubDate><language>en</language></item><item><title>Using Git aliases to increase our productivity</title><link>https://fjp.es/en/tutorials/using-git-aliases-to-increase-our-productivity/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/using-git-aliases-to-increase-our-productivity/</guid><description>Learn how to create Git aliases to execute commands faster. Discover how to customize your workflow and be more productive.</description><pubDate>Sun, 07 Jan 2018 00:00:00 GMT</pubDate><language>en</language></item><item><title>How to undo commits in Git</title><link>https://fjp.es/en/tutorials/how-to-undo-commits-in-git/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/how-to-undo-commits-in-git/</guid><description>Learn how to undo commits in Git using reset and revert. Discover when to use each command and how to avoid conflicts in remote repositories.</description><pubDate>Thu, 04 Jan 2018 00:00:00 GMT</pubDate><language>en</language></item><item><title>Obtaining and cloning new commits from a Git repository</title><link>https://fjp.es/en/tutorials/obtaining-and-cloning-new-commits-from-a-git-repository/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/obtaining-and-cloning-new-commits-from-a-git-repository/</guid><description>Discover how to clone remote repositories and keep them synchronized with git pull. Learn to work as a team from different machines.</description><pubDate>Tue, 26 Dec 2017 00:00:00 GMT</pubDate><language>en</language></item><item><title>Creating our first repository on GitHub</title><link>https://fjp.es/en/tutorials/creating-our-first-repository-on-github/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/creating-our-first-repository-on-github/</guid><description>Learn how to create your first repository on GitHub step by step. Discover how to set up a new project, add files, and make your first commit.</description><pubDate>Sat, 16 Dec 2017 00:00:00 GMT</pubDate><language>en</language></item><item><title>Getting started with Git remotes</title><link>https://fjp.es/en/tutorials/getting-started-with-git-remotes/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/getting-started-with-git-remotes/</guid><description>Git is a decentralized service, so you won&apos;t find the typical client-server architecture. Today you will learn how Git works with its remote nodes.</description><pubDate>Sun, 10 Dec 2017 00:00:00 GMT</pubDate><language>en</language></item><item><title>Getting started with Git branches (II)</title><link>https://fjp.es/en/tutorials/getting-started-with-git-branches-2/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/getting-started-with-git-branches-2/</guid><description>Do you want to know how to increase your productivity by making multiple simultaneous tasks using Git? Then you need to learn more about the Git branches.</description><pubDate>Tue, 05 Dec 2017 00:00:00 GMT</pubDate><language>en</language></item><item><title>Getting started with Git branches (I)</title><link>https://fjp.es/en/tutorials/getting-started-with-git-branches-1/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/getting-started-with-git-branches-1/</guid><description>Do you want to know how to increase your productivity by making multiple simultaneous tasks using Git? Then you need to learn more about the Git branches.</description><pubDate>Sat, 02 Dec 2017 00:00:00 GMT</pubDate><language>en</language></item><item><title>How to recover files after modifying them thanks to Git</title><link>https://fjp.es/en/tutorials/how-to-recover-files-after-modifying-them-thanks-to-git/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/how-to-recover-files-after-modifying-them-thanks-to-git/</guid><description>Do you hate to modify a file with incorrect changes and then go crazy because you don&apos;t know what to do? Git is here to help us with that.</description><pubDate>Wed, 29 Nov 2017 00:00:00 GMT</pubDate><language>en</language></item><item><title>The three States of Git</title><link>https://fjp.es/en/tutorials/the-three-states-of-git/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/the-three-states-of-git/</guid><description>Mastering Git requires us to understand the three States of Git. In this tutorial we teach you everything you need to know about them.</description><pubDate>Wed, 08 Nov 2017 00:00:00 GMT</pubDate><language>en</language></item><item><title>Getting started with Git</title><link>https://fjp.es/en/tutorials/getting-started-with-git/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/getting-started-with-git/</guid><description>Would you like to do your first commit in Git? In this part of the course we will teach you how easy is to make your first commit.</description><pubDate>Sun, 05 Nov 2017 00:00:00 GMT</pubDate><language>en</language></item><item><title>How to install Git on Linux, macOS and Windows</title><link>https://fjp.es/en/tutorials/how-to-install-git-on-linux-macos-and-windows/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/how-to-install-git-on-linux-macos-and-windows/</guid><description>Do you want to learn how to install Git on Linux, macOS and Windows? In addition, you will also learn the first basic Git commands and Initial Setup.</description><pubDate>Tue, 31 Oct 2017 00:00:00 GMT</pubDate><language>en</language></item><item><title>What is Git?</title><link>https://fjp.es/en/tutorials/what-is-git/</link><guid isPermaLink="true">https://fjp.es/en/tutorials/what-is-git/</guid><description>Git is the talk of the town: GitHub, GitLab, Version Control Systems, working in free software projects… In this article we will try to clarify all the questions you may have.</description><pubDate>Fri, 27 Oct 2017 00:00:00 GMT</pubDate><language>en</language></item></channel></rss>