What is the essence of learning how to code then? Flashback. A few weeks ago, I was working on a personal project, FlagOps. I paused it for a while because I got busy with something I can’t share yet. Two days ago, I was solving a challenge on HackerRank, a code review feedback task. I needed to implement an increment function across five different sections. Writing the same function five times didn’t make sense. I tried to be smart about it. I created a single function that accepted the state and setState. That backfired. It introduced unnecessary re-renders and React started throwing errors. The issue wasn’t obvious at first, but it came down to how I was handling state and how the function kept changing on every render. I removed the direct state dependency and switched to using prev instead. Then I wrapped the function with useCallback to stabilize it. That fixed it. One function, no duplication, no unnecessary re-renders. This is where learning comes in. That thing you read, that course you took, that random doc you went through, it might not click immediately. But when you hit a real problem, your brain pulls from what you already know. Even with something like the React Compiler handling optimizations, if your fundamentals are off, it won’t save you. That’s the point. Keep learning. #frontendengineer #softwareengineer #learningtocode #scalablecode
Learning to Code Fundamentals for Scalable Code
More Relevant Posts
-
Claude Code offers a comprehensive toolkit with 16 sections that cover everything developers need. Many of us utilize only about 10% of Claude Code's capabilities. They are familiar with commands like /help and @file, but often overlook features such as Plan Mode, subagents, hooks, and the /rewind command, which can undo a half-broken refactor without resorting to git reset. To assist, I created a one-page cheatsheet that highlights the essential elements for production: - Install instructions, CLI flags, and all built-in slash commands - Keyboard shortcuts and the three modes: Normal, Auto-Accept, and Plan - Extended Thinking: managing think and ultrathink budgets - Checkpointing and /rewind, including the bash caveat that often confuses users - CLAUDE.md memory and .claude/settings.json permissions - Custom slash commands, Skills, Subagents, and Hooks - MCP servers, cost tracking, and model routing - Eight pro recipes that would have been beneficial from day one Save this cheatsheet and keep it handy next to your terminal. Share it with any developers on your team who are still typing prompts into the chat box. What’s your most-used Claude Code command? Feel free to share in the comments. #ClaudeCode #Anthropic #AICoding #DeveloperTools #DevTools #GenerativeAI #AgenticAI #LLM #AIEngineering #SoftwareEngineering #Coding #Productivity #MCP #ModelContextProtocol #BuildInPublic #Terminal #CLI #VSCode #GitHub #OpenSource #TechCommunity #AIAgents #PromptEngineering #ContextEngineering #FutureOfWork #CareerInTech #OnYourRank #LinkedInLearning #100DaysOfCode #CodingLife
To view or add a comment, sign in
-
-
Day 19 of My Learning Journey Revisiting the Basics 🔁 Today I found myself going back to something we all use, but rarely think deeply about — Error Handling with try...catch. As developers, it’s easy to write try...catch and move on… But revisiting it reminded me — it’s not just syntax, it’s control over failure. try...catch isn’t there to hide errors. It’s there to make sure our application behaves predictably, even when things go wrong. 💭 A few things that stood out (again): Catch only what you can actually handle — don’t swallow errors blindly Overusing try...catch can make debugging harder Sometimes letting the error bubble up is the better design Pairing it with finally is underrated for cleanup logic And the most important reminder: Robust systems aren’t built by avoiding errors… They’re built by handling them intentionally. Funny how revisiting basics always brings deeper clarity than learning something new. #Day19 #JavaScript #FrontendDeveloper #ErrorHandling #CleanCode #CodingJourney #100DaysOfCode #LearnInPublic #WebDevelopment #ContinueousLearner #LearningNeverStops #SoftwareEngineering
To view or add a comment, sign in
-
We’ve been seeing similar speedups across multiple repos. Tested across different tech stacks with may open source repos. But the bigger shift is behavior. Faster CI → faster feedback → fewer shortcuts. What’s your build time these days?
Cofounder & CEO @Monk CI | Ex-Head Of Engineering at EZAIX | Graduated at IIT R | Ex-SDE @DeutscheBank
We ran the same build. Same code. Same steps. GitHub Actions: 2h 14m 44s | Monk CI: 1h 2m 38s Monk CI was 2.1x faster than Github on Real Rust + Clang + Python build. With just one line changed in workflow.yml. But the speed isn't the point. When CI is slow, teams skip it. Skip tests. Skip lint. Skip security. Ship fast - until Month 6 hits. That's when the auth bug surfaces quietly. That's when the 2am , 500s start. That's when nobody knows which commit broke it. Fast CI isn't a luxury. It's the only thing keeping velocity from becoming liability. Early access is open - DM for access. What's your current build time? Drop it below. #DevOps #CICD #GitHubActions #DeveloperTools #BuildInPublic
To view or add a comment, sign in
-
-
There's always something new in tech: frameworks updating, tools launching, languages shifting 🔄. Keeping up is hard, and filtering the signal from noise takes time ⚡. Every week we pick a few things that caught our attention this week nothing long, just short notes on what has interested us in tools, libraries, and trends 🗂️. 🟡 Anthropic has introduced “Routines” for Claude Code a research preview feature hosted on Anthropic’s cloud infrastructure. A routine combines a saved prompt, one or more repositories, and a set of connectors, and can run automatically on a schedule, via API calls, or in response to GitHub events. Since it is still in research preview, its behavior, limits, and API may change before reaching stability. 🔗 https://shorturl.at/lCMc5 🟡 A concise retrospective explores the evolution of the C/C++ language family. It traces C’s origins in B and BCPL, the introduction of generics in C++, Java, and C#, and how languages such as JavaScript and Python adopted C-style curly-brace syntax. It serves as a reminder that modern programming languages are the result of decades of incremental design decisions. 🔗 https://shorturl.at/ea5mI 🟡 The TIOBE Index recently ranked Rust at its highest-ever position of #13 in early 2026, although it has since declined from that peak. While some critics argue that Rust has not broken into the top 10 as predicted, others note that TIOBE measures search engine interest rather than production usage, which may underestimate Rust’s real-world adoption, particularly in systems programming where it remains widely used. 🔗 https://shorturl.at/GfYR2 Stay tuned for the next update 🔄. We share new notes every week 📅 to keep you connected with what’s happening in the tech world 💻✨. #DigitalWorld #TechInsights #FutureTech #CuttingEdge #TechUpdates #GlobalTech #TechCommunity #BreakingNews #ITInsights #StayUpdated #DigitalTransformation #EmergingTech #InnovativeIdeas #DevTactics #CodingLife #DevCommunity #SoftwareEngineering #ProgrammingTips #OpenSource #WebDevelopment #AIInTech #DevTools #SecureCoding #Developer #Programmer #TechStack #DevLife
To view or add a comment, sign in
-
-
Let’s talk about the "It works on my machine" curse. 🖥️🙄 We’ve all been there. You spend hours perfecting your code, push it to staging, and… boom. It crashes because of a missing dependency or a slight version mismatch in the environment. That’s where Docker changed the game for me. 🐳 If you’re still on the fence about containerization, here’s why it’s a total sanity-saver: • Consistency is King: Docker packages your code with everything it needs to run. If it works in your container, it’ll work in production. Period. • No More Dependency Hell: Need Python 3.11 for one project but 3.9 for another? Run them in separate containers and stop messing with your system PATH every twenty minutes. • Onboarding in Seconds: Instead of a 10-page "How to Set Up Your Dev Environment" PDF, new teammates just run docker-compose up and get to work. It’s not just a buzzword; it’s about reclaiming your time so you can actually focus on building cool stuff instead of debugging infrastructure. How has Docker (or containerization in general) changed your workflow? Or are you still a "bare metal" purist? Let’s chat in the comments! 👇 #SoftwareEngineering #Docker #DevOps #CodingLife #WebDevelopment #TechCommunity
To view or add a comment, sign in
-
-
🧪 Learning Lab — Week 7 I spent more time debugging than coding this week. Authentication was behaving in a really inconsistent way. Some requests failed with 401/403… others worked… and then suddenly stopped working again. Even refreshing the page sometimes broke the session for a moment. At first, I kept looking for “the bug”. But there wasn’t one. It was a mix of small things that only became a problem together — - session not fully ready, - security rules blocking specific requests, - missing tokens in certain flows. None of these were that hard on their own. But together… it was messy. What helped was stepping back and trying to understand the flow: 👉 what actually needs to exist before a request is valid 👉 when the session is really ready 👉 how frontend and backend are syncing After that, the fixes became much clearer. The main takeaway for me: 👉 frontend and backend can both be correct and still not work together 💬 Have you run into bugs where everything looked right but still failed? #SoftwareEngineering #FullStack #LearningInPublic #BackendDevelopment
To view or add a comment, sign in
-
Stop counting lines of code. Start counting the ones you deleted 🗑️ There’s a common misconception that more code = more work. In reality, more code usually = more bugs, more technical debt, and more headaches. I’ve been mentoring my team on a simple standard: If you can do it in fewer lines without losing clarity, do it. It doesn’t matter if you’re working in React, Python, or Node.js—reducing the "noise" in your codebase is a game-changer. Here’s why: 1. Reviewing is faster: A 20-line PR gets a much deeper, more effective review than a 200-line one. 2. Debugging is easier: It’s hard for a bug to hide in a clean, concise function. 3. Onboarding is seamless: New team members should be able to read your code like a book, not a puzzle. We’ve implemented standards like guard clauses, utilizing modern syntax, and strict functional purity. The result? Our codebase is leaner, our team is faster, and our "WTFs per minute" during code reviews has hit an all-time low. My challenge to you: 🫵 Next time you finish a feature, take 10 minutes to see if you can achieve the same result with 20% less code. Your future self (and your team) will thank you. #CleanCode #SoftwareEngineering #ProgrammingTips #TechLeadership #DeveloperExperience #CodingStandards #Jayabal #Minimalism #PR #MergeRequest
To view or add a comment, sign in
-
1,400 problems later. When I first opened LeetCode, I stared at "Easy" questions with a completely blank mind. Brute force was my only strategy, and most days, I felt entirely out of my depth. But I made myself a simple promise. Solve just one problem every single day. No exceptions. Some days it took five minutes. Other days, it took hours of reading through discussions just to grasp the basic concept. But slowly, the friction faded. It stopped being about memorizing tricks or just trying to get the green checkmark. I started seeing the underlying patterns. The logic finally began to click. Looking back, the greatest takeaway from this milestone wasn't mastering dynamic programming or graph theory. It was learning the quiet power of showing up. Consistency compounds. A daily habit, no matter how small it feels in the moment, eventually builds a deep, unshakable understanding over time. If you are struggling with a concept right now, don't worry about the big picture. Just focus on today's problem. The rest will build itself. What is one daily habit that has paid off the most in your career? #LeetCode #SoftwareEngineering #ProblemSolving #Consistency #TechCareers
To view or add a comment, sign in
-
-
🚀 Day 7 of LeetCode Problem Solving Solved today’s problem — LeetCode #414: Third Maximum Number 💻🔥 ✅ Approach: Tracking Top 3 Maximums ⚡ Time Complexity: O(n) 📊 Space Complexity: O(1) The challenge was to find the third distinct maximum number in an array. If it doesn’t exist, return the maximum number. 👉 Instead of sorting (which takes extra time), I tracked the top 3 distinct maximum values in a single pass. 💡 Key Idea: Maintain three variables (max, smax, tmax) to store the first, second, and third maximum values while traversing the array. 👉 Core Logic: Skip duplicates Update max, second max, third max accordingly If third max doesn’t exist → return max 💡 Key Learning: Optimizing from sorting to a single-pass solution can significantly improve efficiency. Grateful to my mentor Pulkit Aggarwal — your guidance is helping me think more optimally 🙌 Consistency is the key — improving step by step 🚀 #Day7 #LeetCode #DSA #Java #CodingJourney #ProblemSolving #100DaysOfCode
To view or add a comment, sign in
-
-
🚀 Day 14 of 180 — Container With Most Water ✅ The first time i got TLE. Then i thought again to solve this. LeetCode 11 — Container With Most Water Given an array where each element is a vertical line's height. Find two lines that together with the x-axis forms a container that holds the most water. My thought process: First attempt — O(n²): I took two pointers i and j = i+1, calculated area for every possible pair and stored the maximum. Simple but slow — got TLE on large inputs. So I took a hint and thought about it differently. Better approach — Two Pointers O(n): Place one pointer at the very start and one at the very end: i = 0 (left) j = n-1 (right) Calculate area at each step: width = j - i height = min(height[i], height[j]) area = width * height Now the key question — which pointer to move? The amount of water stored depends on the smaller height. The larger one doesn't matter because water will spill from the smaller side anyway. So — always move the pointer with the smaller height inward. Why? Because maybe ahead there's a taller line that can store more water. Moving the larger one inward makes no sense — it can only make things worse. Keep doing this until i < j — meaning until only a single length container remains. Example: height = [1, 8, 6, 2, 5, 4, 8, 3, 7] i=0 (h=1), j=8 (h=7) area = min(1,7) * 8 = 8 move i (smaller) → i=1 (h=8), j=8 (h=7) area = min(8,7) * 7 = 49 move j (smaller) → ... keep going max area = 49 ✅ Day 14 done. 166 to go. 🔥 #180DaysDSA #Day14 #LeetCode #Java #DSA #TwoPointers #Arrays #DSAJourney #CodingJourney #Programming #DataStructures #Algorithms #ProblemSolving #BuildInPublic #CodeNewbie #LearnToCode #100DaysOfCode #SoftwareDevelopment #Developer #StudentDeveloper #TechCommunity #LinkedInTech #CompetitiveProgramming
To view or add a comment, sign in
-
More from this author
Explore related topics
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development
Spot on! Samson Ameh That is why learning and practicing work hand in hand.