<?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: Nezir Zahirovic</title>
    <description>The latest articles on DEV Community by Nezir Zahirovic (@nezirzahirovic).</description>
    <link>https://dev.to/nezirzahirovic</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%2F2512%2F0118448c-8414-450f-9f56-61a7e2ec580c.jpg</url>
      <title>DEV Community: Nezir Zahirovic</title>
      <link>https://dev.to/nezirzahirovic</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nezirzahirovic"/>
    <language>en</language>
    <item>
      <title>Hey I Am Alive – The Easiest Way to Stay in Touch With People You Care</title>
      <dc:creator>Nezir Zahirovic</dc:creator>
      <pubDate>Sat, 07 Mar 2026 11:45:04 +0000</pubDate>
      <link>https://dev.to/nezirzahirovic/hey-i-am-alive-the-easiest-way-to-stay-in-touch-with-people-you-care-3l05</link>
      <guid>https://dev.to/nezirzahirovic/hey-i-am-alive-the-easiest-way-to-stay-in-touch-with-people-you-care-3l05</guid>
      <description>&lt;p&gt;In today’s busy world, it’s easy to lose touch with people we care about. Work, travel, different time zones, and daily responsibilities often make it hard to stay connected with friends, parents, children, and loved ones.&lt;/p&gt;

&lt;p&gt;Sometimes you just want to ask one simple question:&lt;/p&gt;

&lt;p&gt;“&lt;strong&gt;Hey, are you alive?&lt;/strong&gt;”&lt;/p&gt;

&lt;p&gt;That’s exactly why we created Hey I Am Alive — a simple mobile app that helps you stay connected with the people you care about with just a single tap.&lt;/p&gt;

&lt;p&gt;Visit &lt;a href="https://heyiamalive.com" rel="noopener noreferrer"&gt;https://heyiamalive.com&lt;/a&gt; to learn more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Is Hey I Am Alive?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://heyiamalive.com" rel="noopener noreferrer"&gt;Hey I Am Alive&lt;/a&gt; is a mobile app designed to make it incredibly easy to check in with friends, family, and loved ones.&lt;/p&gt;

&lt;p&gt;Instead of sending long messages or forgetting to reach out, you can simply tap a button and send a quick message asking how someone is doing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It’s perfect for:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Staying in touch with parents&lt;/p&gt;

&lt;p&gt;Checking on friends you haven’t talked to in a while&lt;/p&gt;

&lt;p&gt;Making sure your kids are doing well&lt;/p&gt;

&lt;p&gt;Connecting with family members who live far away&lt;/p&gt;

&lt;p&gt;Reaching out to people you miss&lt;/p&gt;

&lt;p&gt;Sometimes a small message can make a big difference.&lt;/p&gt;

&lt;p&gt;Why People Use &lt;a href="https://heyiamalive.com" rel="noopener noreferrer"&gt;Hey I Am Alive&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Life gets busy. Weeks or even months can pass without talking to someone important in your life.&lt;/p&gt;

&lt;p&gt;Hey I Am Alive helps you maintain those connections.&lt;/p&gt;

&lt;p&gt;Instead of forgetting to message someone, the app makes it effortless to reach out and ask how they are doing.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Many users use the app to:&lt;/li&gt;
&lt;li&gt;Stay connected with family living abroad&lt;/li&gt;
&lt;li&gt;Keep in touch with friends from school or work&lt;/li&gt;
&lt;li&gt;Check on parents or grandparents&lt;/li&gt;
&lt;li&gt;Maintain relationships despite distance&lt;/li&gt;
&lt;li&gt;Remind people that you are thinking about them&lt;/li&gt;
&lt;li&gt;A simple message can strengthen relationships.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One-Tap Check-In&lt;/li&gt;
&lt;li&gt;Send a quick message to someone and ask how they are doing.&lt;/li&gt;
&lt;li&gt;Stay Connected With Loved Ones&lt;/li&gt;
&lt;li&gt;Perfect for families, friends, parents, and children.&lt;/li&gt;
&lt;li&gt;Simple and Easy to Use&lt;/li&gt;
&lt;li&gt;No complicated setup. Just open the app and connect.&lt;/li&gt;
&lt;li&gt;Works Anywhere&lt;/li&gt;
&lt;li&gt;Stay connected with people anywhere in the world.&lt;/li&gt;
&lt;li&gt;Designed for Real Life&lt;/li&gt;
&lt;li&gt;Life gets busy — the app helps you keep relationships alive.&lt;/li&gt;
&lt;li&gt;Available on Web, Android, and iOS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can start using Hey I Am Alive today:&lt;/p&gt;

&lt;p&gt;🌐 &lt;strong&gt;Website:&lt;/strong&gt;&lt;br&gt;
 &lt;a href="https://heyiamalive.com" rel="noopener noreferrer"&gt;https://heyiamalive.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📱 Download the app:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.heyiamalive.heyiamalive" rel="noopener noreferrer"&gt;Google Play Store&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apps.apple.com/us/app/hey-i-am-alive/id6758689516" rel="noopener noreferrer"&gt;Apple App Store&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stay Connected With the People Who Matter&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Relationships need attention. Sometimes all it takes is a small message to remind someone that they matter.&lt;/p&gt;

&lt;p&gt;Hey I Am Alive makes it easy to reach out, reconnect, and stay in touch.&lt;/p&gt;

&lt;p&gt;Because sometimes the most important message is the simplest one:&lt;/p&gt;

&lt;p&gt;“&lt;a href="https://heyiamalive.com" rel="noopener noreferrer"&gt;Hey… are you alive?&lt;/a&gt;”&lt;/p&gt;

&lt;p&gt;Tags: parenting, parents, kids, childrens, father, mother, care, stayincontact, weareok,iamok&lt;/p&gt;

</description>
      <category>parenting</category>
      <category>flutter</category>
      <category>ios</category>
      <category>mobile</category>
    </item>
    <item>
      <title>⚛️ Top 20 React JS Interview Questions and Answers for 2025</title>
      <dc:creator>Nezir Zahirovic</dc:creator>
      <pubDate>Sun, 20 Jul 2025 11:20:09 +0000</pubDate>
      <link>https://dev.to/nezirzahirovic/top-20-react-js-interview-questions-and-answers-for-2025-53n5</link>
      <guid>https://dev.to/nezirzahirovic/top-20-react-js-interview-questions-and-answers-for-2025-53n5</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. What is the Virtual DOM?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A lightweight copy of the real DOM. React uses it to detect changes and update only what's needed, improving performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. What are components in React?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Building blocks of a UI.&lt;/p&gt;

&lt;p&gt;Functional components (recommended)&lt;/p&gt;

&lt;p&gt;Class components (legacy)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. What are props and state?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Props: immutable inputs passed from parent&lt;/p&gt;

&lt;p&gt;State: mutable data managed inside a component&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. What is JSX?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;JavaScript syntax extension that allows writing HTML-like code in React components.&lt;br&gt;
 Example: &lt;/p&gt;Hello {name}

&lt;p&gt;&lt;strong&gt;5. What are Hooks in React?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Special functions that let you use state and lifecycle features in functional components.&lt;br&gt;
 Examples: useState, useEffect, useContext, useRef&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. What does useEffect do?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Performs side effects (e.g., data fetching, subscriptions).&lt;br&gt;
 It runs after render, and can clean up if you return a function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. What is the difference between controlled and uncontrolled components?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Controlled: React handles input state&lt;/p&gt;

&lt;p&gt;Uncontrolled: DOM handles state via refs&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. How do you lift state up in React?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Move shared state to the nearest common ancestor and pass it via props.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. What is context in React?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A way to pass data through the component tree without using props manually at every level.&lt;/p&gt;

&lt;p&gt;const MyContext = React.createContext()&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. What is the purpose of keys in React lists?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Helps React identify which items have changed.&lt;br&gt;
 Keys should be stable and unique (e.g., id).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11. What is reconciliation in React?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The process React uses to update the DOM by comparing the virtual DOM trees.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12. What are higher-order components (HOC)?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Functions that take a component and return a new enhanced component.&lt;br&gt;
 Used for code reuse.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13. What is a custom hook?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your own function that uses built-in hooks to encapsulate logic across components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;14. How does useMemo() differ from useCallback()?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;useMemo: memoizes a value&lt;/p&gt;

&lt;p&gt;useCallback: memoizes a function&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;15. What is React Strict Mode?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A development tool that detects potential problems like unsafe lifecycle usage or legacy API usage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;16. What is lazy loading in React?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Load components or routes only when needed using React.lazy() and Suspense.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;17. What is the difference between useEffect() and useLayoutEffect()?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;useEffect: runs after paint&lt;/p&gt;

&lt;p&gt;useLayoutEffect: runs before paint — can block visual updates&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;18. What is React Fiber?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;React's reconciliation engine that enables incremental rendering and better scheduling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;19. What is useReducer() and when to use it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hook for complex state logic. Alternative to useState when state depends on previous state or has many transitions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;20. How does React handle forms?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Through controlled components using value and onChange or uncontrolled components with refs.&lt;/p&gt;

&lt;p&gt;📘 Want to Master React Interviews?&lt;/p&gt;

&lt;p&gt;These 20 questions are just the beginning.&lt;/p&gt;

&lt;p&gt;🎁 &lt;a href="https://nezirzahirovic.gumroad.com/" rel="noopener noreferrer"&gt;Download Free Sample – React Interview Handbook&lt;/a&gt;&lt;br&gt;
📚 &lt;a href="https://nezirzahirovic.gumroad.com/" rel="noopener noreferrer"&gt;Get Full eBook – The JavaScript Interview Bible&lt;/a&gt; &lt;/p&gt;

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

&lt;p&gt;100+ real interview questions&lt;/p&gt;

&lt;p&gt;Behavioral prep + whiteboard challenges&lt;/p&gt;

&lt;p&gt;Updated for Hooks, Context, Router, and modern React&lt;/p&gt;

&lt;p&gt;Find more interviewing ebooks on &lt;a href="//interviewbible.com"&gt;interviewbible.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactjobs</category>
      <category>reactjsbook</category>
    </item>
    <item>
      <title>🔴 Top 20 Ruby on Rails Interview Questions and Answers for 2025</title>
      <dc:creator>Nezir Zahirovic</dc:creator>
      <pubDate>Sun, 20 Jul 2025 10:56:27 +0000</pubDate>
      <link>https://dev.to/nezirzahirovic/top-20-ruby-on-rails-interview-questions-and-answers-for-2025-3jl2</link>
      <guid>https://dev.to/nezirzahirovic/top-20-ruby-on-rails-interview-questions-and-answers-for-2025-3jl2</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. What is Ruby on Rails?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A web application framework written in Ruby that follows MVC architecture and convention over configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Explain MVC in Rails.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Model: manages data and logic&lt;/p&gt;

&lt;p&gt;View: presentation layer&lt;/p&gt;

&lt;p&gt;Controller: handles requests and responses&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. What are migrations in Rails?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ruby files that alter the database schema.&lt;br&gt;
 Rails uses ActiveRecord::Migration to version changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. What is the difference between has_one, has_many, and belongs_to?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;has_one: one-to-one&lt;/p&gt;

&lt;p&gt;has_many: one-to-many&lt;/p&gt;

&lt;p&gt;belongs_to: foreign key ownership&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. What are strong parameters?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Rails mechanism to prevent mass assignment vulnerabilities. Used with params.require(...).permit(...)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. What is the asset pipeline?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;System for managing and compiling CSS, JS, and images in Rails.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. What are callbacks in ActiveRecord?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hooks triggered at certain moments in object lifecycle (before_save, after_create, etc.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. What is the difference between render and redirect_to?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;render: returns a view&lt;/p&gt;

&lt;p&gt;redirect_to: sends an HTTP redirect to another action or URL&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. What are scopes in Rails?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reusable query logic defined in the model using scope :name, -&amp;gt; { ... }&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. How does Rails handle validations?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Via built-in validates methods in models (presence, uniqueness, length, etc.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11. What is a concern in Rails?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A way to modularize and reuse code in models or controllers.&lt;/p&gt;

&lt;p&gt;module Trackable&lt;br&gt;
  extend ActiveSupport::Concern&lt;br&gt;
end&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12. What is polymorphic association?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Allows a model to belong to more than one other model using a single association.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13. What is ActiveStorage?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Rails system for handling file uploads. Supports multiple backends (local, S3, etc.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;14. What are background jobs in Rails?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Used for async tasks. Implemented with ActiveJob and a backend (Sidekiq, DelayedJob, etc.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;15. What’s the difference between development, test, and production environments?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each has its own config and database for safe separation of concerns and behavior.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;16. What is eager loading in Rails?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Loading associated records in advance to avoid N+1 queries.&lt;/p&gt;

&lt;p&gt;Post.includes(:comments)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;17. What is rake and how is it used?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Rake is Ruby’s task runner. Rails adds tasks for db, testing, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;18. How do you secure a Rails app?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use strong params&lt;/p&gt;

&lt;p&gt;CSRF protection&lt;/p&gt;

&lt;p&gt;SQL injection prevention&lt;/p&gt;

&lt;p&gt;Secure headers&lt;/p&gt;

&lt;p&gt;Devise for authentication&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;19. How do you deploy a Rails app?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Common methods include:&lt;/p&gt;

&lt;p&gt;Capistrano&lt;/p&gt;

&lt;p&gt;Heroku&lt;/p&gt;

&lt;p&gt;Docker + Nginx + Puma&lt;/p&gt;

&lt;p&gt;Passenger + Apache/Nginx&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;20. What are partials in Rails views?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reusable view snippets prefixed with _ and rendered using render 'partial_name'.&lt;/p&gt;

&lt;p&gt;📘 Want the Full Rails Interview Bible?&lt;/p&gt;

&lt;p&gt;🎁 &lt;a href="https://nezirzahirovic.gumroad.com/" rel="noopener noreferrer"&gt;Download Free Sample – Ruby on Rails 8 Interview Handbook&lt;/a&gt;&lt;br&gt;
📚 &lt;a href="https://nezirzahirovic.gumroad.com/" rel="noopener noreferrer"&gt;Get the Full Book – The Ruby On Rails Interview Bible 500+&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;80+ technical questions&lt;/p&gt;

&lt;p&gt;Real-world Rails architecture&lt;/p&gt;

&lt;p&gt;Hot topics: Turbo, Hotwire, ActiveStorage, Sidekiq, deployment tips&lt;/p&gt;

&lt;p&gt;Find more interviewing ebooks on &lt;a href="//interviewbible.com"&gt;interviewbible.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rails</category>
      <category>ruby</category>
      <category>rubybook</category>
      <category>rubyinterview</category>
    </item>
    <item>
      <title>🐍 Top 20 Python Interview Questions and Answers for 2025</title>
      <dc:creator>Nezir Zahirovic</dc:creator>
      <pubDate>Sun, 20 Jul 2025 10:41:21 +0000</pubDate>
      <link>https://dev.to/nezirzahirovic/top-20-python-interview-questions-and-answers-for-2025-2032</link>
      <guid>https://dev.to/nezirzahirovic/top-20-python-interview-questions-and-answers-for-2025-2032</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. What are Python’s key features?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Interpreted&lt;/p&gt;

&lt;p&gt;High-level&lt;/p&gt;

&lt;p&gt;Dynamically typed&lt;/p&gt;

&lt;p&gt;Object-oriented&lt;/p&gt;

&lt;p&gt;Extensive standard library&lt;/p&gt;

&lt;p&gt;Platform independent&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. What is the difference between a list and a tuple?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;list is mutable, tuple is immutable&lt;/p&gt;

&lt;p&gt;list has more methods, slightly slower due to mutability&lt;/p&gt;

&lt;p&gt;Use tuple when data should not change&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. What is a dictionary in Python?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An unordered, mutable collection of key-value pairs.&lt;br&gt;
 Defined with {}, keys must be immutable (e.g., strings, numbers, tuples).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. What is list comprehension?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A concise way to create lists:&lt;/p&gt;

&lt;p&gt;squares = [x**2 for x in range(10)]&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. What is the difference between is and ==?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;== checks value equality&lt;/p&gt;

&lt;p&gt;is checks object identity&lt;/p&gt;

&lt;p&gt;a = [1,2]; b = [1,2]&lt;br&gt;&lt;br&gt;
a == b → True&lt;br&gt;&lt;br&gt;
a is b → False&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. **What are *args and kwargs?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;*args collects positional arguments into a tuple&lt;/p&gt;

&lt;p&gt;**kwargs collects keyword arguments into a dictionary&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. What is a Python generator?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A function that yields values one at a time using yield, saving state between calls.&lt;br&gt;
 Efficient for large datasets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. What is the difference between @staticmethod and @classmethod?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;@staticmethod: no access to class or instance (self or cls)&lt;/p&gt;

&lt;p&gt;@classmethod: receives class (cls) as first argument&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. What is the Global Interpreter Lock (GIL)?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A mutex in CPython that allows only one thread to execute Python bytecode at a time.&lt;br&gt;
 Limits multi-threaded performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. What is the difference between deep copy and shallow copy?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Shallow copy copies object references&lt;/p&gt;

&lt;p&gt;Deep copy copies everything recursively&lt;/p&gt;

&lt;p&gt;Use copy.copy() and copy.deepcopy()&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11. What is Pythonic code?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Code that follows idiomatic Python conventions:&lt;br&gt;
 Readable, clean, uses list comprehensions, unpacking, EAFP, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12. What is the difference between range() and xrange()?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Python 3: xrange() is removed&lt;/p&gt;

&lt;p&gt;range() returns an iterable (like xrange() did in Python 2)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13. What is the difference between a module and a package?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Module: a single .py file&lt;/p&gt;

&lt;p&gt;Package: a folder with &lt;strong&gt;init&lt;/strong&gt;.py and other modules&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;14. Explain duck typing in Python.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“If it walks like a duck and quacks like a duck, it’s a duck.”&lt;br&gt;
 Python cares about behavior (methods), not type.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;15. What are Python decorators?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Functions that modify behavior of another function or method.&lt;br&gt;
 Example:&lt;/p&gt;

&lt;p&gt;@my_decorator&lt;br&gt;
def hello(): pass&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;16. What is the difference between del, remove(), and pop()?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;del deletes by index or variable&lt;/p&gt;

&lt;p&gt;remove() deletes by value&lt;/p&gt;

&lt;p&gt;pop() removes and returns item by index&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;17. What are Python’s data types?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Numeric: int, float, complex&lt;/p&gt;

&lt;p&gt;Sequence: list, tuple, range&lt;/p&gt;

&lt;p&gt;Mapping: dict&lt;/p&gt;

&lt;p&gt;Set: set, frozenset&lt;/p&gt;

&lt;p&gt;Boolean: bool&lt;/p&gt;

&lt;p&gt;Text: str&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;18. What is the difference between None and False?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;None is the absence of a value (null)&lt;/p&gt;

&lt;p&gt;False is a Boolean&lt;/p&gt;

&lt;p&gt;None != False, but both are falsy in conditionals&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;19. What is the with statement used for?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Context manager. Automatically handles setup and teardown (e.g., closing files):&lt;/p&gt;

&lt;p&gt;with open('file.txt') as f:&lt;br&gt;
    data = f.read()&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;20. What is the difference between &lt;strong&gt;str&lt;/strong&gt;() and &lt;strong&gt;repr&lt;/strong&gt;()?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;str&lt;/strong&gt;() → user-friendly string&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;repr&lt;/strong&gt;() → unambiguous developer-focused string (can recreate object if possible)&lt;/p&gt;

&lt;p&gt;📘 Want to Ace Your Python Interviews?&lt;/p&gt;

&lt;p&gt;These 20 questions are just the beginning.&lt;br&gt;
We created a full guide with 500+ Python questions, complete with code examples, explanations, and bonus behavioral prep.&lt;/p&gt;

&lt;p&gt;🎁 &lt;a href="https://nezirzahirovic.gumroad.com/" rel="noopener noreferrer"&gt;Download Free Sample – Python Interview Handbook&lt;/a&gt; &lt;br&gt;
📚 &lt;a href="https://nezirzahirovic.gumroad.com/" rel="noopener noreferrer"&gt;Get the Full Book Now – Python Interview Handbook&lt;/a&gt; &lt;/p&gt;

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

&lt;p&gt;Beginner to advanced questions&lt;/p&gt;

&lt;p&gt;Real company interview patterns&lt;/p&gt;

&lt;p&gt;Practice tasks + solutions&lt;/p&gt;

&lt;p&gt;Find more interviewing ebooks on &lt;a href="//interviewbible.com"&gt;interviewbible.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>pythonbook</category>
      <category>pythonjobs</category>
      <category>programming</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Nezir Zahirovic</dc:creator>
      <pubDate>Sun, 20 Jul 2025 10:20:06 +0000</pubDate>
      <link>https://dev.to/nezirzahirovic/-47ok</link>
      <guid>https://dev.to/nezirzahirovic/-47ok</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/nezirzahirovic" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F2512%2F0118448c-8414-450f-9f56-61a7e2ec580c.jpg" alt="nezirzahirovic"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/nezirzahirovic/top-20-javascript-interview-questions-and-answers-for-2025-448f" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🧠 Top 20 JavaScript Interview Questions and Answers for 2025&lt;/h2&gt;
      &lt;h3&gt;Nezir Zahirovic ・ Jul 20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#career&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#interview&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#books&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>javascript</category>
      <category>career</category>
      <category>interview</category>
      <category>books</category>
    </item>
    <item>
      <title>🧠 Top 20 JavaScript Interview Questions and Answers for 2025</title>
      <dc:creator>Nezir Zahirovic</dc:creator>
      <pubDate>Sun, 20 Jul 2025 10:17:45 +0000</pubDate>
      <link>https://dev.to/nezirzahirovic/top-20-javascript-interview-questions-and-answers-for-2025-448f</link>
      <guid>https://dev.to/nezirzahirovic/top-20-javascript-interview-questions-and-answers-for-2025-448f</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. What is the difference between var, let, and const?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;var is function-scoped, while let and const are block-scoped.&lt;br&gt;
 const cannot be reassigned after declaration, while let can.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. What is a closure in JavaScript?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A closure is a function that remembers its outer variables even after the outer function has finished executing.&lt;br&gt;
 Used for data privacy and currying.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. What is the difference between == and ===?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;== checks for value equality (with type coercion),&lt;br&gt;
 === checks for both value and type.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Explain the event loop in JavaScript.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The event loop handles asynchronous tasks in JavaScript.&lt;br&gt;
 It processes the call stack, and once it’s empty, it pushes callback functions from the task queue into the call stack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. What is hoisting?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;JavaScript moves declarations (not initializations) to the top of their scope.&lt;br&gt;
 var declarations are hoisted, but let and const are hoisted without initialization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. What is the difference between null and undefined?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;undefined: a variable declared but not assigned.&lt;/p&gt;

&lt;p&gt;null: explicitly assigned value representing no value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. What is the difference between call(), apply(), and bind()?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;call: invokes a function with a given this and arguments.&lt;/p&gt;

&lt;p&gt;apply: same as call but arguments are in an array.&lt;/p&gt;

&lt;p&gt;bind: returns a new function with bound this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. What are arrow functions and their limitations?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Arrow functions provide shorter syntax and do not bind their own this, arguments, or super.&lt;br&gt;
They can't be used as constructors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. What is the this keyword in JavaScript?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;this refers to the object from which a function is called.&lt;br&gt;
 Its value depends on how a function is invoked (global, object, constructor, etc.).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. What is the purpose of async and await?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Used to write asynchronous code that looks synchronous.&lt;br&gt;
 await pauses execution until the Promise resolves.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11. What is a Promise and how does it work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Promise represents a value that may be available now, or in the future, or never.&lt;br&gt;
 It has 3 states: pending, fulfilled, rejected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12. What is event delegation?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A pattern where a parent element handles events from its child elements, using event bubbling.&lt;br&gt;
 Improves performance and simplifies event handling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13. What is the difference between deep copy and shallow copy?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Shallow copy copies only references to nested objects.&lt;/p&gt;

&lt;p&gt;Deep copy duplicates every nested object fully (e.g., structuredClone, JSON.parse(JSON.stringify(...))).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;14. What is destructuring in JavaScript?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A shorthand for extracting values from arrays or objects.&lt;br&gt;
 Example: const {name, age} = user;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;15. What is optional chaining (?.) in JavaScript?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It allows safe access to deeply nested properties.&lt;br&gt;
 Example: user?.profile?.email avoids runtime errors if profile is undefined.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;16. What is a pure function?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A function that always returns the same output for the same input and causes no side effects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;17. How does setTimeout work under the hood?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;setTimeout pushes the callback into the task queue after the delay, but not exactly on time, since execution depends on the event loop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;18. What is the difference between map() and forEach()?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;map() returns a new array.&lt;/p&gt;

&lt;p&gt;forEach() executes a function for each item but does not return anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;19. What is a higher-order function?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A function that takes another function as argument or returns a function.&lt;br&gt;
 Examples: map, filter, reduce.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;20. What is the difference between synchronous and asynchronous code?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Synchronous: tasks run one after another.&lt;/p&gt;

&lt;p&gt;Asynchronous: tasks may run independently (e.g., timers, AJAX calls, Promises).&lt;/p&gt;

&lt;p&gt;📘 Want the Full Guide with 1000+ Questions?&lt;/p&gt;

&lt;p&gt;This is just a taste of what real tech interviews in 2025 look like.&lt;/p&gt;

&lt;p&gt;🎁 &lt;a href="https://nezirzahirovic.gumroad.com/" rel="noopener noreferrer"&gt;Download the Free Sample PDF – React JS Handbook&lt;/a&gt;&lt;br&gt;
📚 &lt;a href="https://nezirzahirovic.gumroad.com/" rel="noopener noreferrer"&gt;Get the Full eBook – 1000 Questions and Answers JavaScript Interview Bible&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🛠 Bonus Included in Full eBook:&lt;/p&gt;

&lt;p&gt;Behavioral interview questions&lt;/p&gt;

&lt;p&gt;Coding challenges with solutions&lt;/p&gt;

&lt;p&gt;Real-world system design tasks&lt;/p&gt;

&lt;p&gt;Find more interviewing ebooks on &lt;a href="https://interviewbible.com" rel="noopener noreferrer"&gt;interviewbible.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>career</category>
      <category>interview</category>
      <category>books</category>
    </item>
    <item>
      <title>Code, Lies &amp; Termination</title>
      <dc:creator>Nezir Zahirovic</dc:creator>
      <pubDate>Wed, 28 May 2025 10:11:59 +0000</pubDate>
      <link>https://dev.to/nezirzahirovic/code-lies-termination-2n3b</link>
      <guid>https://dev.to/nezirzahirovic/code-lies-termination-2n3b</guid>
      <description>&lt;p&gt;Let me tell you my story about the scum company &lt;a href="https://www.linkedin.com/company/bluethumb/" rel="noopener noreferrer"&gt;Bluethumb.com.au&lt;/a&gt; and its thieves gang: &lt;a href="https://www.linkedin.com/in/query-string/" rel="noopener noreferrer"&gt;CTO Alex Timofeev&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/edward-hartley-40a362b9/" rel="noopener noreferrer"&gt;CEO Edward Hartley&lt;/a&gt;, and &lt;a href="https://www.linkedin.com/in/lesley-anne-schwab-63351793/" rel="noopener noreferrer"&gt;CFO Lesley-Anne Schwab&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;From &lt;strong&gt;May 31, 2023, to May 31, 2024&lt;/strong&gt;, I was employed as a Remote Ruby on Rails Developer for an Australian company named Bluethumb.com.au. It's one of the largest online art shops in Australia. I signed a full-time remote employment contract, with a verbal agreement to discuss a salary raise after one year.&lt;/p&gt;

&lt;p&gt;Working there wasn’t entirely bad. The project was messy, using a lot of different technologies. The CTO, a Russian guy named Alex Timofeev (which highest technical reference for ruby on rails was that he was door man on one of ruby conferences), was clearly unqualified for his role. He didn’t know how to manage the job properly, but thanks to his personal relationship with CEO Edward Hartley, he remained in position. What's notable is that Alex brought in a few people he had worked with at previous companies. Given the current state of the IT job market, those people were loyal to him—not because of his leadership, but because they were grateful for the job. They followed his lead, even though they knew he wasn’t doing a good job.&lt;/p&gt;

&lt;p&gt;Continuing on &lt;a href="https://blog.rubyonrails.ba/articles/code-lies-termination" rel="noopener noreferrer"&gt;https://blog.rubyonrails.ba/articles/code-lies-termination&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>workplace</category>
      <category>thieveves</category>
      <category>bluethumb</category>
    </item>
    <item>
      <title>Machine Learning Interview Handbook</title>
      <dc:creator>Nezir Zahirovic</dc:creator>
      <pubDate>Tue, 11 Mar 2025 11:40:06 +0000</pubDate>
      <link>https://dev.to/nezirzahirovic/machine-learning-interview-handbook-ef6</link>
      <guid>https://dev.to/nezirzahirovic/machine-learning-interview-handbook-ef6</guid>
      <description>&lt;p&gt;Machine Learning Engineer Interview Handbook&lt;/p&gt;

&lt;p&gt;This comprehensive guide offers 100 curated questions and answers designed to help aspiring machine learning engineers master the fundamentals, deep learning concepts, and productionization strategies.&lt;/p&gt;

&lt;p&gt;Created by industry experts, this handbook is an essential resource for anyone preparing for machine learning interviews, providing clear explanations and insights into key topics such as supervised and unsupervised learning, neural networks, and advanced techniques like transfer learning and ensemble methods.&lt;/p&gt;

&lt;p&gt;Whether you're a beginner or an experienced professional, this book equips you with the knowledge needed to excel in your career.&lt;/p&gt;

&lt;p&gt;More details on [Machine Learning Engineer Interview Handbook&lt;/p&gt;

&lt;p&gt;This comprehensive guide offers 100 curated questions and answers designed to help aspiring machine learning engineers master the fundamentals, deep learning concepts, and productionization strategies.&lt;/p&gt;

&lt;p&gt;Created by industry experts, this handbook is an essential resource for anyone preparing for machine learning interviews, providing clear explanations and insights into key topics such as supervised and unsupervised learning, neural networks, and advanced techniques like transfer learning and ensemble methods.&lt;/p&gt;

&lt;p&gt;Whether you're a beginner or an experienced professional, this book equips you with the knowledge needed to excel in your career.&lt;/p&gt;

&lt;p&gt;More details on &lt;a href="https://interviewbible.com%5D(https://interviewbible.com)" rel="noopener noreferrer"&gt;https://interviewbible.com](https://interviewbible.com)&lt;/a&gt; or &lt;a href="https://nezirzahirovic.gumroad.com/l/machine-learning-interview-handbook" rel="noopener noreferrer"&gt;https://nezirzahirovic.gumroad.com/l/machine-learning-interview-handbook?layout=profile&lt;/a&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>interview</category>
      <category>handbook</category>
    </item>
    <item>
      <title>Free Ruby on Rails 8 Interview Handbook</title>
      <dc:creator>Nezir Zahirovic</dc:creator>
      <pubDate>Mon, 10 Mar 2025 09:27:27 +0000</pubDate>
      <link>https://dev.to/nezirzahirovic/free-ruby-on-rails-8-interview-handbook-3a67</link>
      <guid>https://dev.to/nezirzahirovic/free-ruby-on-rails-8-interview-handbook-3a67</guid>
      <description>&lt;p&gt;The Free Ruby on Rails 8 Interview Handbook is your small guide about Rails 8 for job interviews. This collection features 100 questions and detailed answers covering Rails 8's latest features and best practices.&lt;/p&gt;

&lt;p&gt;Key topics include:&lt;/p&gt;

&lt;p&gt;Solid Queue and Solid Cache as new defaults&lt;br&gt;
PWA support with Action Notifier&lt;br&gt;
Authentication generator and security improvements&lt;br&gt;
Propshaft asset pipeline&lt;br&gt;
Performance optimizations and deployment strategies with Kamal&lt;/p&gt;

&lt;p&gt;Whether you're preparing for your first Rails position or updating your expertise, this handbook provides clear, practical insights for interviews. Created by the RubyOnRails.BA team, it reflects the latest Rails 8 developments as of March 2025.&lt;/p&gt;

&lt;p&gt;Get this and more interview resources at:&lt;br&gt;
&lt;a href="https://nezirzahirovic.gumroad.com/l/rails8-handbook" rel="noopener noreferrer"&gt;https://nezirzahirovic.gumroad.com/l/rails8-handbook&lt;/a&gt; or &lt;a href="https://InterviewBible.com" rel="noopener noreferrer"&gt;InterviewBible.com&lt;/a&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%2F9imf39e8f6au6prfqad6.jpg" 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%2F9imf39e8f6au6prfqad6.jpg" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>rails</category>
      <category>interview</category>
      <category>books</category>
    </item>
    <item>
      <title>What's the Fucking Clean Code???</title>
      <dc:creator>Nezir Zahirovic</dc:creator>
      <pubDate>Thu, 10 Oct 2024 22:59:50 +0000</pubDate>
      <link>https://dev.to/nezirzahirovic/whats-the-fucking-clean-code-2nj0</link>
      <guid>https://dev.to/nezirzahirovic/whats-the-fucking-clean-code-2nj0</guid>
      <description>&lt;p&gt;In the world of software development, "clean code" has become a buzzword, often thrown around in discussions, debates, and even job interviews. But, despite its frequent usage, it remains an elusive concept. Developers, teams, and organizations each seem to have their own interpretations, making it challenging to nail down a universal definition. Some developers argue about best practices, others focus on readability or simplicity, and many just want to know: What exactly is clean code?&lt;/p&gt;

&lt;p&gt;In this post, we'll break down various definitions of clean code, analyze key ideas from well-known programming books and articles, and ultimately propose a clear and actionable definition that you can use as a reference for writing better software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. What Is Clean Code, Really?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before we dive into specific definitions, let's address the frustration that often surrounds clean code discussions. Many developers find themselves stuck in endless debates about whether a particular method or pattern qualifies as "clean." These debates are often subjective, lacking a common framework.&lt;/p&gt;

&lt;p&gt;For instance, while some consider code "clean" if it passes all tests, others emphasize aesthetics—elegant, DRY (Don't Repeat Yourself), and self-documenting. While these perspectives are valid, they're incomplete on their own. The result? Confusion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Clean Code Defined by Thought Leaders&lt;/strong&gt;&lt;br&gt;
To cut through the noise, let's look at what some of the most respected figures in software development have to say about clean code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Robert C. Martin (Uncle Bob): In his famous book &lt;em&gt;Clean Code: A Handbook of Agile Software Craftsmanship&lt;/em&gt;, Martin emphasizes that clean code is &lt;em&gt;"simple and direct."&lt;/em&gt; He advocates for readability and the idea that clean code should do &lt;em&gt;one thing well&lt;/em&gt; and be easy to understand and modify. His focus is on reducing complexity and making code that is easily maintained over time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kent Beck: In &lt;em&gt;Extreme Programming Explained&lt;/em&gt;, Beck stresses that clean code should be &lt;em&gt;"simple, with no unnecessary complexity."&lt;/em&gt; His definition aligns with the principle of YAGNI (You Aren’t Gonna Need It), where code should be optimized for the present and not over-engineered for the future.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Michael Feathers: In &lt;em&gt;Working Effectively with Legacy Code&lt;/em&gt;, Feathers provides a more pragmatic angle, suggesting that clean code is &lt;em&gt;code that’s easy to change.&lt;/em&gt; His focus is on maintainability, especially in legacy codebases where the key goal is to make changes safely and efficiently.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. The Core Attributes of Clean Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;From these definitions and others, we can extract several core principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Readability: Clean code should be easy to read and understand. A developer unfamiliar with the project should be able to grasp the logic without extensive documentation. Code that explains itself reduces onboarding time and minimizes misunderstandings during maintenance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simplicity: Simplicity is a hallmark of clean code. This doesn’t mean the code should be overly simplistic or underdeveloped, but it should avoid unnecessary complexity. Each line should have a clear purpose, and the code should be free of redundant patterns or overly convoluted solutions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maintainability: As Michael Feathers points out, clean code is code that’s easy to change. Whether adding features, fixing bugs, or refactoring, clean code should allow for changes without a high risk of introducing new problems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testability: Code that is hard to test is inherently not clean. Clean code should be modular and isolated, allowing for clear, easy-to-run unit tests. The faster you can test and validate your code, the cleaner and more reliable it becomes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consistency: The structure and style of the code should be consistent across the project. This ensures that a codebase feels unified and follows common patterns, reducing cognitive load when moving from one part of the system to another.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Why Clean Code Matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Clean code isn’t just a vanity metric or something to impress peers. The real-world benefits of clean code are tangible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Reduced Bugs: Code that is simple, readable, and well-tested is far less likely to contain defects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Faster Development: With clean code, you can build features faster because you’re not fighting against the codebase’s inherent complexity or technical debt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Easier Onboarding: Developers new to a project can get up to speed faster when the code is intuitive and follows consistent patterns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Long-term Maintainability: Projects evolve, and so does the code. Clean code ensures that changes, whether minor tweaks or large refactors, are manageable and less likely to break other parts of the system.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. A Universal Definition of Clean Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After analyzing multiple perspectives and distilling their insights, here’s a universal definition of clean code that you can apply in any project:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Clean code is code that is readable, simple, maintainable, testable, and consistent. It does what it is supposed to do efficiently and effectively, while remaining easy to modify and extend over time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This definition unifies key aspects from the leading thinkers in the field while remaining actionable. It emphasizes not only the technical attributes of clean code but also its practical importance in the context of a dynamic software project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Common Misconceptions About Clean Code&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;“Clean code is perfect code.”: No code is perfect. Clean code isn’t about perfection; it’s about minimizing confusion, complexity, and defects. Striving for absolute perfection can lead to over-engineering, which is the opposite of clean.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“Clean code is the most optimized code.”: While clean code should be efficient, premature optimization often leads to complexity. Focus on readability and maintainability first; performance tweaks can come later when necessary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“Clean code never changes.”: Clean code is adaptable. As requirements change, code should evolve too. Clean code makes this process smoother and less risky.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;7. Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Clean code is not a one-size-fits-all formula, but a set of principles that guide developers towards writing better, more maintainable software. While the term might feel overused, its significance in the long-term success of a project cannot be understated. By focusing on readability, simplicity, maintainability, and testability, you can write code that stands the test of time.&lt;/p&gt;

&lt;p&gt;So next time you find yourself in a heated discussion about what makes code "clean," reference this guide, and help steer the conversation toward a clear and universally understood definition.&lt;/p&gt;

&lt;p&gt;Further Reading:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin&lt;/li&gt;
&lt;li&gt;Working Effectively with Legacy Code by Michael Feathers&lt;/li&gt;
&lt;li&gt;Extreme Programming Explained by Kent Beck&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With these core resources and principles in mind, you’re well on your way to mastering the art of clean code.&lt;/p&gt;

&lt;p&gt;By focusing on these essential traits of clean code, you'll not only write better software but also save countless hours in the long run. Remember, clean code isn’t about showing off—it’s about delivering efficient, maintainable, and adaptable solutions.&lt;/p&gt;

&lt;p&gt;Tags: clean code, clean code definition, clean code principles, how to write clean code, Robert C. Martin clean code, Kent Beck clean code, testable code, readable code, software craftsmanship, clean code examples, software development best practices.&lt;/p&gt;

</description>
      <category>code</category>
      <category>cleancode</category>
      <category>ruby</category>
      <category>programming</category>
    </item>
    <item>
      <title>Navigating Today’s Tough IT Job Market: How My Interview Books Can Help You Stand Out</title>
      <dc:creator>Nezir Zahirovic</dc:creator>
      <pubDate>Mon, 16 Sep 2024 07:25:09 +0000</pubDate>
      <link>https://dev.to/nezirzahirovic/navigating-todays-tough-it-job-market-how-my-interview-books-can-help-you-stand-out-59h1</link>
      <guid>https://dev.to/nezirzahirovic/navigating-todays-tough-it-job-market-how-my-interview-books-can-help-you-stand-out-59h1</guid>
      <description>&lt;p&gt;In today’s competitive IT landscape, finding a good job has become more challenging than ever. With the rapid decline in remote work opportunities, the job market has become saturated with applicants, making it harder for even experienced professionals to stand out. For junior developers, the situation is even tougher—they often don’t even get a chance to land an interview, as companies seek candidates with years of experience.&lt;/p&gt;

&lt;p&gt;As someone who has navigated this space, I know how overwhelming it can be. That’s why I’ve created a series of comprehensive interview preparation books designed to help developers at every stage of their career, from junior to senior. These books are packed with the essential questions and answers you need to not only ace your interviews but also gain the confidence to tackle today’s competitive job market.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;DEV50&lt;/strong&gt; a 50% off on all my eBooks, I want to make sure you have access to the resources you need to succeed. Let's tackle this job market together!&lt;/p&gt;

&lt;p&gt;Today, I’m feeling great, and I want to share that happiness with you! For the Dev.to community, I’m offering an exclusive 50% discount on all of my eBooks. Just use the code DEV50 at checkout. Enjoy and happy learning!&lt;/p&gt;

&lt;p&gt;Are you preparing for your next big tech interview? Whether you're aiming to land your dream JavaScript, Python, React, or Ruby on Rails role, having the right resources can make all the difference. That's why I'm offering an &lt;strong&gt;exclusive 50% discount&lt;/strong&gt; on my comprehensive interview eBooks to help you ace your interviews!&lt;/p&gt;

&lt;p&gt;These guides are packed with &lt;strong&gt;1000+ essential questions and answers&lt;/strong&gt; that will sharpen your knowledge and boost your confidence. Here's what you’ll find in the collection:&lt;/p&gt;

&lt;h3&gt;
  
  
  📚 &lt;strong&gt;Ultimate Job Interview Preparation eBook Bundle&lt;/strong&gt; (6 books worth €109.87)**
&lt;/h3&gt;

&lt;p&gt;This bundle is the ultimate resource for preparing for multiple tech interviews at once. Whether you’re interviewing for JavaScript, Python, Ruby on Rails, or React roles, this bundle has you covered!&lt;br&gt;
&lt;a href="https://nezirzahirovic.gumroad.com/l/bundle" rel="noopener noreferrer"&gt;Get it here!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  💻 &lt;strong&gt;The JavaScript Interview Bible&lt;/strong&gt; - A Comprehensive Guide with 1000+ Essential Questions and Answers!
&lt;/h3&gt;

&lt;p&gt;This book is perfect for anyone looking to master &lt;strong&gt;JavaScript&lt;/strong&gt; interview challenges, with in-depth explanations of the core concepts, frameworks, and tricky interview questions.&lt;br&gt;
&lt;a href="https://nezirzahirovic.gumroad.com/l/javascript-bible" rel="noopener noreferrer"&gt;Get it here!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐍 &lt;strong&gt;The Python Interview Handbook 2023&lt;/strong&gt; - Your Ultimate Guide to Crack Any Python Interview!
&lt;/h3&gt;

&lt;p&gt;Prepare for your next &lt;strong&gt;Python&lt;/strong&gt; interview with this extensive guide covering everything from beginner to advanced questions.&lt;br&gt;
&lt;a href="https://nezirzahirovic.gumroad.com/l/python" rel="noopener noreferrer"&gt;Get it here!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 &lt;strong&gt;The Ruby on Rails Interview Bible&lt;/strong&gt; - A Comprehensive Guide with 500+ Essential Questions and Answers!
&lt;/h3&gt;

&lt;p&gt;Looking for a job as a &lt;strong&gt;Ruby on Rails&lt;/strong&gt; developer? This guide covers the essential knowledge you need to succeed.&lt;br&gt;
&lt;a href="https://nezirzahirovic.gumroad.com/l/bible" rel="noopener noreferrer"&gt;Get it here!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚛️ &lt;strong&gt;The React JS Interview Handbook&lt;/strong&gt; - Your Ultimate Guide to Interview Success!
&lt;/h3&gt;

&lt;p&gt;Master &lt;strong&gt;React JS&lt;/strong&gt; interview questions and showcase your skills with confidence during your next frontend developer interview.&lt;br&gt;
&lt;a href="https://nezirzahirovic.gumroad.com/l/reactjs-handbook" rel="noopener noreferrer"&gt;Get it here!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎁 &lt;strong&gt;The Python Interview Handbook 2023&lt;/strong&gt; (FREE eBook)
&lt;/h3&gt;

&lt;p&gt;Grab this &lt;strong&gt;free&lt;/strong&gt; eBook with over 112+ Q&amp;amp;A covering Python interview essentials.&lt;br&gt;
&lt;a href="https://nezirzahirovic.gumroad.com/l/python-free" rel="noopener noreferrer"&gt;Get it here!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 &lt;strong&gt;Explain Me AI Like I’m 8&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Curious about &lt;strong&gt;AI&lt;/strong&gt;? This fun and simple guide breaks down complex concepts into easy-to-understand explanations. Perfect for beginners or anyone who wants to grasp the basics quickly.&lt;br&gt;
&lt;a href="https://nezirzahirovic.gumroad.com/l/explain-ai-8" rel="noopener noreferrer"&gt;Get it here!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  💥 &lt;strong&gt;Claim Your 50% Discount Now!&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;For a limited time, I’m offering a &lt;strong&gt;50% discount&lt;/strong&gt; on all these eBooks! Just use the code &lt;strong&gt;DEV50&lt;/strong&gt; at checkout on Gumroad to claim your discount.&lt;/p&gt;

&lt;p&gt;Whether you're a junior dev or an experienced coder looking to refresh your skills, these books are packed with insights, coding challenges, and real-world examples to help you stand out in interviews.&lt;/p&gt;

&lt;p&gt;Get ready to &lt;strong&gt;crush your next interview&lt;/strong&gt;—grab these eBooks now and save 50%!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Key Takeaways&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Comprehensive resources for mastering tech interviews in JavaScript, Python, Ruby on Rails, and React JS.&lt;/li&gt;
&lt;li&gt;Free Python interview guide available.&lt;/li&gt;
&lt;li&gt;50% discount on all eBooks with code &lt;strong&gt;DEV50&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy coding, and good luck with your next interview! 😊&lt;br&gt;
&lt;a href="https://interviewbible.com" rel="noopener noreferrer"&gt;interviewbible.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>python</category>
      <category>ruby</category>
      <category>react</category>
    </item>
    <item>
      <title>The Hidden Costs of 'Cheap' Software Agencies: When Low Hourly Rates Lead to Sky-High Bills</title>
      <dc:creator>Nezir Zahirovic</dc:creator>
      <pubDate>Fri, 09 Aug 2024 08:36:56 +0000</pubDate>
      <link>https://dev.to/nezirzahirovic/the-hidden-costs-of-cheap-software-agencies-when-low-hourly-rates-lead-to-sky-high-bills-711</link>
      <guid>https://dev.to/nezirzahirovic/the-hidden-costs-of-cheap-software-agencies-when-low-hourly-rates-lead-to-sky-high-bills-711</guid>
      <description>&lt;p&gt;In the world of software development, the allure of low hourly rates can be hard to resist. But as many businesses have learned the hard way, those attractive rates often come with a hefty hidden price tag. Today, we're diving into a real-world example that exposes the shocking disparity between advertised rates and actual costs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Promise of Affordability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Picture this: You're a US company with a simple task - updating the UX and styling of a few pages on your website. You hire an external agency that boasts competitive rates ranging from $30 to $50 per hour. Sounds like a bargain, right? But hold onto your wallets, because this is where things take an unexpected turn.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Reality Check&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's break down what happened:&lt;/p&gt;

&lt;p&gt;The Task: Modify a signup page by removing two fields, changing two others, and updating some CSS.&lt;br&gt;
The Estimate: Over 90 working hours.&lt;br&gt;
The Reality: With modern tools and AI capabilities, this task should take no more than 3 hours for a competent developer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Math That Doesn't Add Up&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's where it gets interesting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Advertised Rate: $38/hour&lt;/li&gt;
&lt;li&gt;Estimated Hours: 90+&lt;/li&gt;
&lt;li&gt;Realistic Time: 3 hours&lt;/li&gt;
&lt;li&gt;Actual Cost Per Hour of Work: $1000+&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yes, you read that right. What started as a seemingly affordable $38 per hour ballooned to over $1000 per hour of actual work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Hidden Costs You're Really Paying For&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you hire an agency with inflated hours, you're not just paying for the work. You might inadvertently be covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Commute time for developers&lt;/li&gt;
&lt;li&gt;Coffee breaks and social hours&lt;/li&gt;
&lt;li&gt;General overhead costs&lt;/li&gt;
&lt;li&gt;Inefficient processes and outdated methodologies&lt;/li&gt;
&lt;li&gt;Lies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In today's fast-paced tech world, efficiency isn't just a buzzword - it's a necessity. With AI tools, streamlined workflows, and experienced developers, simple UI changes shouldn't break the bank or take weeks to implement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to Protect Yourself&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Question the Estimates: If something seems off, it probably is. Don't be afraid to ask for a breakdown of hours.&lt;br&gt;
Know the Market: Familiarize yourself with standard timeframes for common tasks.&lt;/p&gt;

&lt;p&gt;Consider Fixed-Price Projects: For well-defined tasks, this can protect you from hour inflation.&lt;br&gt;
Vet Your Agencies: Look beyond the hourly rate. Consider their efficiency, tools, and methodologies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Bottom Line&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The software agency you choose can make or break your project - and your budget. While low hourly rates might seem attractive at first glance, it's crucial to look at the bigger picture. Remember, in the world of software development, time truly is money. Make sure you're spending it wisely.&lt;/p&gt;

&lt;p&gt;Don't let a "bargain" turn into a budget disaster. Stay informed, ask questions, and prioritize value over seemingly low rates. Your project - and your wallet - will thank you.&lt;/p&gt;

&lt;p&gt;Hire freelancers you will get more for your money! Need Ruby On Rails/JavaScript full-stack dev?&lt;/p&gt;

&lt;p&gt;Have you had similar experiences with software agencies? We'd love to hear your stories in the comments below!&lt;/p&gt;

&lt;p&gt;Drawing from my 20 years of experience in the tech industry, I regularly share opinionated takes on the latest IT trends, challenges, and innovations. Want to dive deeper into the world of IT through a seasoned professional's eyes?&lt;/p&gt;

&lt;p&gt;Head over to my dedicated opinion blog at &lt;a href="https://blog.rubyonrails.ba" rel="noopener noreferrer"&gt;blog.rubyonrails.ba&lt;/a&gt;. There, you'll find candid thoughts on everything from legacy system modernization to the impact of AI on IT operations.&lt;/p&gt;

&lt;p&gt;And don't forget to check out my other tech-focused sites:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://rubyonrails.ba" rel="noopener noreferrer"&gt;rubyonrails.ba&lt;/a&gt; - For in-depth tutorials and resources, or visit some of my other sites like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://interviewbible.com" rel="noopener noreferrer"&gt;interviewbible.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://quiz.rubyonrails.ba" rel="noopener noreferrer"&gt;quiz.rubyonrails.ba&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://javascript.ba" rel="noopener noreferrer"&gt;javascript.ba&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your thoughts and experiences matter too. Join the conversation and let's shape the future of IT together!&lt;/p&gt;

&lt;p&gt;Tags: #softwareagencypricing #hiddencosts #hourlyrates #projectestimation #webdevelopment&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>rails</category>
      <category>agencies</category>
      <category>costs</category>
    </item>
  </channel>
</rss>
