<?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: Abdelrahman Al allaqi</title>
    <description>The latest articles on DEV Community by Abdelrahman Al allaqi (@alallaqi).</description>
    <link>https://dev.to/alallaqi</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%2F324900%2F49502375-cc89-4ed2-8905-2f3b2c57f988.jpg</url>
      <title>DEV Community: Abdelrahman Al allaqi</title>
      <link>https://dev.to/alallaqi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alallaqi"/>
    <language>en</language>
    <item>
      <title>I Built a Gold Trading Bot from Scratch — Here's What Actually Works (And What Destroyed My Account First)</title>
      <dc:creator>Abdelrahman Al allaqi</dc:creator>
      <pubDate>Tue, 21 Apr 2026 11:05:20 +0000</pubDate>
      <link>https://dev.to/alallaqi/i-built-a-gold-trading-bot-from-scratch-heres-what-actually-works-and-what-destroyed-my-account-3pij</link>
      <guid>https://dev.to/alallaqi/i-built-a-gold-trading-bot-from-scratch-heres-what-actually-works-and-what-destroyed-my-account-3pij</guid>
      <description>&lt;p&gt;I didn't set out to build a trading bot.&lt;/p&gt;

&lt;p&gt;I set out to answer a simple question: &lt;em&gt;can a small algorithm, running on a $100 account, consistently beat gold?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;After two sessions, one brutal backtest, and a complete strategy overhaul — here's exactly what we built, what failed, and what's now running live. No fluff, no paid course upsell. Just the raw journey.&lt;/p&gt;




&lt;h2&gt;
  
  
  🟡 The Asset: XAU/USD (Gold Spot)
&lt;/h2&gt;

&lt;p&gt;Gold is one of the most-traded instruments in the world. It moves on inflation data, Fed decisions, geopolitical fear, and sometimes just pure momentum. For a bot, that's both exciting and terrifying.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why gold?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trades nearly 24/5 — no gaps like individual stocks&lt;/li&gt;
&lt;li&gt;High volatility = bigger moves per signal&lt;/li&gt;
&lt;li&gt;Free price data available (no expensive data subscriptions)&lt;/li&gt;
&lt;li&gt;Retail-accessible via brokers like OANDA, FXCM, and IG&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Starting capital: &lt;strong&gt;$100&lt;/strong&gt;. Real-world risk. No pretend money.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 The Architecture: What We Actually Built
&lt;/h2&gt;

&lt;p&gt;The system has three layers:&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 1 — The Data Collector
&lt;/h3&gt;

&lt;p&gt;A Python script (&lt;code&gt;xauusd_scalper_scrape.py&lt;/code&gt;) runs every hour, fetching the live XAU/USD spot price from &lt;code&gt;gold-api.com&lt;/code&gt; (completely free, no API key). It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Appends every tick to a local &lt;code&gt;price_history.jsonl&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;Buckets spot ticks into &lt;strong&gt;hourly OHLC bars&lt;/strong&gt; (open/high/low/close)&lt;/li&gt;
&lt;li&gt;Computes EMA50 and ATR14 on the rolling bar set&lt;/li&gt;
&lt;li&gt;Evaluates the trading rules and writes the signal decision to disk&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Layer 2 — The Rule Engine
&lt;/h3&gt;

&lt;p&gt;This is the brain — and crucially, it's &lt;strong&gt;100% deterministic&lt;/strong&gt;. No AI decides whether to buy or sell. A Python function checks three conditions at 16:00 UTC every weekday:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IF close &amp;gt; 3-hour NY range high
AND close &amp;gt; EMA50 (trend filter)
→ BUY  |  Stop: 1.5×ATR below entry  |  Target: 5R above entry

IF close &amp;lt; 3-hour NY range low
AND close &amp;lt; EMA50
→ SELL  |  Stop: 1.5×ATR above entry  |  Target: 5R below entry

OTHERWISE → HOLD
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No discretion. No "feelings". The rule either fires or it doesn't.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 3 — The Telegram Relay
&lt;/h3&gt;

&lt;p&gt;An AI model (running free via OpenRouter) reads the brief and fires a formatted message to &lt;strong&gt;@HermesGoldBot&lt;/strong&gt; on Telegram. This is the &lt;em&gt;only&lt;/em&gt; thing the AI does — format text. It has no authority over the trade decision.&lt;/p&gt;

&lt;p&gt;The whole thing runs as a &lt;strong&gt;Hermes cron job&lt;/strong&gt;, scheduled at the top of every hour.&lt;/p&gt;




&lt;h2&gt;
  
  
  💀 The Strategy That Failed First
&lt;/h2&gt;

&lt;p&gt;Before we found the winner, we tried the "obvious" approach: a multi-indicator confluence system using EMA crossovers, MACD histogram, RSI zones, and Bollinger Band touches.&lt;/p&gt;

&lt;p&gt;It sounded sophisticated. The backtest results were sobering:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Starting Capital&lt;/td&gt;
&lt;td&gt;$100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Final Capital&lt;/td&gt;
&lt;td&gt;$39.04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total Return&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-61%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CAGR&lt;/td&gt;
&lt;td&gt;-37.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Profit Factor&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.72&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Max Drawdown&lt;/td&gt;
&lt;td&gt;61.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Win Rate&lt;/td&gt;
&lt;td&gt;46.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total Trades&lt;/td&gt;
&lt;td&gt;1,274&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A &lt;strong&gt;profit factor below 1.0&lt;/strong&gt; means the strategy loses money structurally. We ran 1,274 trades and came out with $39 from $100.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why did it fail?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The killer was the partial take-profit setup. The strategy took half the position off at 1R and let the rest run. On paper, "locking in profit" sounds prudent. In reality, it &lt;strong&gt;caps your winners&lt;/strong&gt; while your losers still run to full stop. That destroys your reward-to-risk ratio and makes profitability almost impossible.&lt;/p&gt;

&lt;p&gt;Secondary killer: the EMA/MACD/BB confluence on 15-minute gold bars generates a &lt;em&gt;lot&lt;/em&gt; of noise signals. The more conditions you add, the more you feel like you're being selective — but you're just adding correlated filters that all react to the same underlying price action.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔬 The Search for a Real Edge
&lt;/h2&gt;

&lt;p&gt;We ran a systematic grid search across &lt;strong&gt;15 strategy archetypes&lt;/strong&gt; on 2+ years of hourly GC=F data (13,735 bars, November 2023 → April 2026). Every strategy was tested with realistic friction ($1.20 round-trip per ounce for spread + slippage).&lt;/p&gt;

&lt;p&gt;The data was split &lt;strong&gt;70/30 in-sample / out-of-sample&lt;/strong&gt; — strategy parameters were tuned on the first 70%, then validated cold on the final 30% that was never touched during optimization. This prevents curve-fitting.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Graveyard
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Strategy&lt;/th&gt;
&lt;th&gt;Profit Factor&lt;/th&gt;
&lt;th&gt;Verdict&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Multi-indicator confluence (original)&lt;/td&gt;
&lt;td&gt;0.72&lt;/td&gt;
&lt;td&gt;Dead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pullback to EMA21&lt;/td&gt;
&lt;td&gt;0.72&lt;/td&gt;
&lt;td&gt;Dead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MACD zero-cross + trend filter&lt;/td&gt;
&lt;td&gt;0.93&lt;/td&gt;
&lt;td&gt;Dead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Donchian 20 breakout&lt;/td&gt;
&lt;td&gt;0.89&lt;/td&gt;
&lt;td&gt;Dead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RSI 20/80 mean reversion&lt;/td&gt;
&lt;td&gt;~1.0&lt;/td&gt;
&lt;td&gt;Flat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long-only trend follow 4R&lt;/td&gt;
&lt;td&gt;1.09&lt;/td&gt;
&lt;td&gt;Marginal&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  The Survivor
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Strategy&lt;/th&gt;
&lt;th&gt;Full PF&lt;/th&gt;
&lt;th&gt;OOS PF&lt;/th&gt;
&lt;th&gt;CAGR&lt;/th&gt;
&lt;th&gt;Max DD&lt;/th&gt;
&lt;th&gt;Trades&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ORB NY 3h + EMA50 + 5R&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1.91&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;2.71&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+41%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;17.5%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;99&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The &lt;strong&gt;3-Hour NY Opening Range Breakout&lt;/strong&gt; wasn't just the best strategy. It was the only one that actually &lt;em&gt;improved&lt;/em&gt; on out-of-sample data — PF went from 1.34 in-sample to 2.71 out-of-sample. That's the opposite of overfitting. It suggests the strategy has a genuine edge, not just lucky parameters.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏆 The Winning Strategy: How It Actually Works
&lt;/h2&gt;

&lt;p&gt;Every weekday, the New York trading session opens at 13:00 UTC. For the first three hours (13:00, 14:00, 15:00 UTC bars), the bot silently observes — recording the highest high and lowest low of that window.&lt;/p&gt;

&lt;p&gt;At &lt;strong&gt;16:00 UTC&lt;/strong&gt;, it makes its one decision for the day:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Long setup:&lt;/strong&gt; If the current hourly close pushes &lt;em&gt;above&lt;/em&gt; the 3-hour range high, and price is above EMA50 (confirming the broader uptrend), it enters a BUY.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Short setup:&lt;/strong&gt; If the close drops &lt;em&gt;below&lt;/em&gt; the 3-hour range low, and price is below EMA50, it enters a SELL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The sizing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Risk exactly 2% of account per trade&lt;/li&gt;
&lt;li&gt;Stop = 1.5 × ATR(14) from entry (volatility-adjusted, not arbitrary)&lt;/li&gt;
&lt;li&gt;Target = 5R (five times the stop distance)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The math over 2 years:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;44 wins, 55 losses (44.4% win rate)&lt;/li&gt;
&lt;li&gt;Average winner: +$4.74 | Average loser: -$1.99&lt;/li&gt;
&lt;li&gt;That's a 2.38 reward-to-risk ratio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You only need to be right 30% of the time to break even at 5R targets. Hitting 44% is a genuine edge.&lt;/p&gt;




&lt;h2&gt;
  
  
  📊 Full Backtest Results
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Dataset:     13,735 hourly bars | Nov 2023 → Apr 2026 | 2.01 years
Universe:    GC=F (Gold Futures, proxy for XAU/USD spot)
Friction:    $1.20 per oz round-trip (spread + slippage)
Risk:        2% per trade | One position at a time

$100  →  $199.40   (+99.4% total | +41.0% CAGR)

Profit Factor:   1.91  (full) | 2.71 (out-of-sample)
Win Rate:        44.4%
Avg R:R:         2.38
Max Drawdown:    17.5%
Trades:          99  (~1 every 8 days)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For context: buy-and-hold gold over the same period returned +142% (gold went from $2,003 → $4,841). The strategy returned +99% — but with &lt;em&gt;controlled&lt;/em&gt; drawdowns and defined risk per trade. A real edge, not a bull market narrative.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Going Live: The Stack
&lt;/h2&gt;

&lt;p&gt;Everything runs on a Linux server with Hermes Agent (open-source AI agent framework) as the orchestration layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Files on disk:&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;~/.hermes/trading-agent/
  config.json          ← strategy parameters
  state.json           ← capital, positions, drawdown
  price_history.jsonl  ← every price tick
  signals_v2.jsonl     ← every signal with full reasoning
  best_strategy.json   ← deployed strategy config

~/.hermes/scripts/
  xauusd_scalper_scrape.py  ← the rule engine (v2, deterministic)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The cron job:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Runs at the top of every hour (&lt;code&gt;0 * * * *&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Script runs first: fetches price, builds bars, evaluates rules, writes signal&lt;/li&gt;
&lt;li&gt;AI model (free tier) runs second: reads the brief, sends Telegram message&lt;/li&gt;
&lt;li&gt;Model used: &lt;code&gt;openai/gpt-oss-20b:free&lt;/code&gt; via OpenRouter — completely free&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Telegram commands you can send to @HermesGoldBot:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/status&lt;/code&gt; — current capital, P&amp;amp;L, drawdown&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/signals&lt;/code&gt; — last 5 trade signals&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/now&lt;/code&gt; — force an immediate scan&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/pause&lt;/code&gt; / &lt;code&gt;/resume&lt;/code&gt; — pause or resume the bot&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/risk&lt;/code&gt; — current risk level and lot sizing&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔴 What We Learned the Hard Way
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Partial TPs are profit killers.&lt;/strong&gt;&lt;br&gt;
Taking half off at 1R feels safe. It's not. It caps your winners and the math works against you unless your win rate is above 60% (rare in systematic trading).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. More indicators ≠ more edge.&lt;/strong&gt;&lt;br&gt;
The original system had 6 indicators. The winning system has 3 (price, EMA50, ATR). Simplicity won.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Out-of-sample validation is non-negotiable.&lt;/strong&gt;&lt;br&gt;
Any strategy can be curve-fitted to look good on historical data. If it doesn't hold up on data it's never seen, it's not a strategy — it's a memory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. The LLM shouldn't be the decision-maker.&lt;/strong&gt;&lt;br&gt;
We started with an LLM making the buy/sell calls. It failed spectacularly (PF 0.72). Moving the LLM to "Telegram messenger" and making a deterministic Python function the decision-maker fixed everything. AI for formatting, rules for trading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Free ≠ unreliable (if you pick right).&lt;/strong&gt;&lt;br&gt;
We tested 7 free-tier models. Most were heavily rate-limited and failed. &lt;code&gt;gpt-oss-20b:free&lt;/code&gt; on OpenRouter worked reliably. The entire system costs $0/month to run.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔭 What's Next
&lt;/h2&gt;

&lt;p&gt;The bot is live and collecting data. The first real signal will fire at 16:00 UTC on the next clean breakout day. Meanwhile, there are several improvements queued:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;News filter&lt;/strong&gt; — skip signals when high-impact USD/Gold events fall within ±2h of the trigger (FOMC, NFP, CPI). This is probably the single highest-value improvement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;London session ORB&lt;/strong&gt; — run the same logic on the 7:00 UTC London open. Doubles trade frequency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OANDA paper trading integration&lt;/strong&gt; — close the loop with actual order placement so P&amp;amp;L is real fills, not simulated.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live vs backtest tracking&lt;/strong&gt; — after 30 live trades, compare live PF vs backtest PF. If they diverge by &amp;gt;30%, pause and investigate.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💬 Final Thought
&lt;/h2&gt;

&lt;p&gt;The market doesn't care how clever your strategy sounds. It only cares whether you're right more often than you're wrong — &lt;em&gt;when it counts&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The ORB strategy isn't glamorous. It doesn't use machine learning. It doesn't read news sentiment. It just watches where price consolidates in the first three hours of New York trading, waits for a decisive break in one direction, confirms the trend, and takes the trade.&lt;/p&gt;

&lt;p&gt;Simple. Systematic. Backtested. Live.&lt;/p&gt;

&lt;p&gt;We'll post updates as the live signals come in. Follow along on&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with: Python · Hermes Agent · OpenRouter (free tier) · gold-api.com · Telegram Bot API&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Strategy validated on 13,735 hourly bars, Nov 2023 – Apr 2026&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Past performance does not guarantee future results. This is not financial advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>trading</category>
      <category>python</category>
      <category>automation</category>
      <category>algotrading</category>
    </item>
    <item>
      <title>My freeCodeCamp journey</title>
      <dc:creator>Abdelrahman Al allaqi</dc:creator>
      <pubDate>Tue, 26 May 2020 10:08:24 +0000</pubDate>
      <link>https://dev.to/alallaqi/my-freecodecamp-journey-1i39</link>
      <guid>https://dev.to/alallaqi/my-freecodecamp-journey-1i39</guid>
      <description>&lt;p&gt;by Abdelrahman Al Allaqi&lt;/p&gt;

&lt;p&gt;It all started as a passion for IT a hobby I would go to once in a while , then decided to pursue my dream and do what I actually liked. I started the journey off in Powercoders and found the freeCodeCamp curriculum very useful. When I was advised by my internship mentor to finish the curriculum that was it I put all my effort into finishing it and understanding IT more. I made various Websites, logos, and SVG`s. I developed an interest in websites and how they’re built.&lt;/p&gt;

&lt;p&gt;I’ve been amazed at the progress I have made in the past few months. So I want to tell my story (so far) to help anyone who is unsure about whether to dive into coding with two feet.&lt;/p&gt;

&lt;p&gt;I will tell you about some of the things that I wish I had known when I was starting out. I will also leave links to some of the resources that helped me the most.&lt;/p&gt;

&lt;p&gt;How I got motivated to start the freeCodeCamp journey&lt;/p&gt;

&lt;p&gt;• Got interested in programming &lt;br&gt;
Made sure that it keeps being fun so that I will be willing to put in more effort and time.&lt;/p&gt;

&lt;p&gt;• Talked with other programmers&lt;br&gt;
Always asking other programmers how their journey was in the world of IT,&lt;br&gt;
Asking for advice on what I should learn.&lt;/p&gt;

&lt;p&gt;• Worked on projects (my personal favourite)&lt;br&gt;
I loved working on projects, they exited me seeing the finished product always made me smile, and motivated me to start a new project. In my experience you learn most from practical work. &lt;/p&gt;

&lt;p&gt;• Worked on projects after other programmers&lt;br&gt;
Always looked at how other programmers solved their problems and tried to understand how they did what they did.&lt;/p&gt;

&lt;p&gt;“Optimism is the faith that leads to achievement. Nothing can be done without hope and confidence.”&lt;br&gt;
-Helen Keller&lt;br&gt;
So, when I first started, I just wanted to know everything and learn everything later on I found out that was a mistake I set unreasonable goals for myself. The problem with doing this is that nobody can expect to understand coding overnight.&lt;/p&gt;

&lt;p&gt;then decided I wanted to take my time learning to program. I didn’t want to rush myself like before and get disappointed by my natural, human limitations.&lt;/p&gt;

&lt;p&gt;I learned to accept that learning needs time. In a few weeks you look back at what you’ve learned and be surprised of how far you’ve come.&lt;/p&gt;

&lt;p&gt;-Photo by Icons8 Team on Unsplash&lt;/p&gt;

&lt;p&gt;My Learning Process&lt;/p&gt;

&lt;p&gt;I used the kickstart I got from Powercoders as motivation to do some research, and decided that I would carry on learning HTML and CSS and concentrate a lot of my time into JavaScript. Both of these seemed pretty easy for beginners, But I struggled a lot with JavaScript.&lt;br&gt;
Powercoders was really helpful, to kickstart my IT knowledge. The resources on FreeCodeCamp are really detailed, and are comprehensive. They also won’t cost you anything except the time you invest in learning your new skills. FreeCodeCamp’s program allows you to learn by doing exercises for each new concept. I found this really useful when I used it to learn JavaScript.&lt;/p&gt;

&lt;p&gt;After building a few static web pages using HTML and CSS the class moved on to l learning JavaScript. At this point, though, I started to struggle more.&lt;/p&gt;

&lt;p&gt;There were definitely days where I wanted to bang my head into the Keyboard (algorithms  )Luckily, though FreeCodeCamp has forums to ask other programmers to explain the problem to you. I used FreeCodeCamp’s JavaScript Algorithms and data structures certification. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Basic JavaScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ES6&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Regular Expressions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Debugging&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Basic Data Structures&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Basic Algorithm Scripting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Object oriented programming&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Functional programming&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Intermediate algorithm scripting&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;JavaScript algorithms and data structures curriculum that I completed and received the certification, my HTML and CSS (Responsive Web design) certification.&lt;/p&gt;

&lt;p&gt;This gave me a basic understanding of programming. Having knowledge of methods and objects made it a lot easier to work with and understand JavaScript.&lt;/p&gt;

&lt;p&gt;The feeling I had after finishing the JavaScript curriculum was indescribable, I think I let out a loud “YESSssssss” and was so happy of my achievement now to put those skills to the test.&lt;/p&gt;

&lt;p&gt;-Photo by brucemars on Unsplash&lt;/p&gt;

&lt;p&gt;Where I am now&lt;/p&gt;

&lt;p&gt;This brings us to my next article on the Slack-bot: basically implementing everything I learned into a real project. My goal is to get better at building apps that are useful.&lt;/p&gt;

&lt;p&gt;The problem with a lot of coding tutorials is that most teach in different ways and it could get really confusing for a beginner. FreeCodeCamp on the other hand forces you to understand the code by having you write it yourself. And practice makes perfect.&lt;/p&gt;

&lt;p&gt;Lessons learned&lt;/p&gt;

&lt;p&gt;It takes time to really understand  all of this stuff. When working on it daily, you don’t realize how much progress you are making. I didn’t really think I was making much progress until I thought about where I was a few months ago.&lt;/p&gt;

&lt;p&gt;By looking back, I was able to appreciate the journey. The world of programming is so vast, and there will always be stuff you don’t know. It is easy to feel like you’re not smart enough, but even professional developers use Google and Stack Overflow when they don’t know what to do. These tools exist for a reason, so consult them when necessary.&lt;/p&gt;

&lt;p&gt;I learned mostly from doing the final projects in FFC and learned a lot when building websites on my own. Doing this makes you use everything you learned and try solve problems on your own.&lt;/p&gt;

&lt;p&gt;I learned to take challenges and break them down into smaller pieces. &lt;br&gt;
Now I use this in my everyday life not just coding.&lt;/p&gt;

&lt;p&gt;Don’t skip the small stuff like I did. I thought the basic syntax were not that important, and just was lazy to go through everything and found that I really needed them in the future so I had to go back to learn it again.&lt;/p&gt;

&lt;p&gt;Some other resources I found useful:&lt;/p&gt;

&lt;p&gt;• &lt;a href="https://dev.to/"&gt;https://dev.to/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• &lt;a href="https://www.freecodecamp.org/"&gt;https://www.freecodecamp.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• &lt;a href="https://codepen.io/"&gt;https://codepen.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to contact me on my website if you have any questions!&lt;/p&gt;

&lt;p&gt;• &lt;a href="https://alallaqi.github.io/"&gt;https://alallaqi.github.io/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
