<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/sources/medium_js/best-of/2024/12" -->

---
title: Best Medium posts — December 2024 | daily.dev
description: The most upvoted Medium posts from December 2024, curated by the daily.dev community.
canonical: https://daily.dev/sources/medium_js/best-of/2024/12
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/medium_js/best-of/2024/12
og:type: website
og:site_name: daily.dev
og:title: Best Medium posts — December 2024 | daily.dev
og:description: The most upvoted Medium posts from December 2024, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of Medium — December 2024

1. 1  
[](https://daily.dev/posts/5-brilliant-prompts-i-wish-every-single-chatgpt-user-knew-omwowi1oe "5 Brilliant Prompts I Wish Every Single ChatGPT User Knew")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
5 Brilliant Prompts I Wish Every Single ChatGPT User Knew  
Discover five versatile ChatGPT prompts designed to enhance your productivity, ranging from becoming comfortable in new roles, proofreading and editing text, analyzing and planning for future goals, improving understanding of ChatGPT replies, to conducting customer research. Learn how these prompts can address various use cases and help users achieve specific outcomes.  
303  
11
2. 2  
[](https://daily.dev/posts/deep-dive-into-multithreading-multiprocessing-and-asyncio-i4mrilwdl "Deep Dive into Multithreading, Multiprocessing, and Asyncio")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
Deep Dive into Multithreading, Multiprocessing, and Asyncio  
Python provides three main approaches for handling multiple tasks simultaneously: multithreading, multiprocessing, and asyncio. Each model has its strengths and weaknesses, depending on whether tasks are I/O-bound or CPU-bound. Multithreading is limited by Python's Global Interpreter Lock (GIL) but is effective for I/O-bound tasks. Multiprocessing bypasses the GIL and is suitable for CPU-bound tasks by running processes in parallel. Asyncio uses a single thread to manage tasks and is ideal for many small I/O-bound tasks by utilizing cooperative multitasking.  
234  
5
3. 3  
[](https://daily.dev/posts/my-dos-and-don-ts-of-software-architecture-jarsl8c8v "My DOs and DON’Ts of Software Architecture")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
My DOs and DON’Ts of Software Architecture  
A software architect shares personal dos and don'ts based on their experience. Key advice includes treating everyone as equals, ensuring clarity, documenting decisions, defining ownership, using architectural contracts, and avoiding over-architecture. The don'ts emphasize challenging directives, proposing solutions with problems, and avoiding 'WaterGile' by implementing true Agile methodologies. This guidance aims to help navigate workplace dynamics and drive successful projects.  
112  
2
4. 4  
[](https://daily.dev/posts/beyond-if-else-advanced-python-control-flow-hqwni5pwl "Beyond If/Else: Advanced Python Control Flow")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
Beyond If/Else: Advanced Python Control Flow  
Explore advanced methods for control flow in Python without using traditional if/else statements. Learn how to build a dynamic calculator using modules like operator, eval(), and the new match statement from Python 3.10, along with other techniques such as dictionary dispatch and lambda functions.  
49  
2
5. 5  
[](https://daily.dev/posts/how-i-d-learn-ai-in-2025-if-i-knew-nothing--r6tz2ibll "How I’d Learn AI in 2025 (If I Knew Nothing)")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
How I’d Learn AI in 2025 (If I Knew Nothing)  
Providing a 5-step roadmap, this guide is tailored to help different groups such as technical professionals, business leaders, entrepreneurs, and students learn AI in 2025\. The steps involve using modern AI tools like ChatGPT, installing Python, building a basic automation, developing a machine learning project, and applying these skills to real-world problems. Follow a hands-on approach to learning by doing, supplemented with resources and practical projects.  
40
6. 6  
[](https://daily.dev/posts/the-death-of-the-stubborn-developer-zv05nbjnx "The Death of the Stubborn Developer")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
The Death of the Stubborn Developer  
The post discusses the significant changes in software development due to the rise of large language models (LLMs) and chat-oriented programming (CHOP). It argues that these AI tools can handle many routine tasks, leaving developers with more complex planning and coordination roles. This shift affects junior developers' growth and requires all developers to adapt to new programming modalities. The post also debates the possible future emergence of autonomous agents and emphasizes the importance of embracing CHOP to stay relevant.  
38  
15
7. 7  
[](https://daily.dev/posts/announcing-dart-3-6-pbiyeigcn "Announcing Dart 3.6")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
Announcing Dart 3.6  
Dart 3.6 introduces new features including digit separators for better number readability, pub download counts replacing popularity scores on pub.dev, and pub workspaces for shared resolutions in monorepos. The release aims to improve developer experience and IDE performance. For detailed updates, consult the Dart 3.6.0 changelog.  
37  
3
8. 8  
[](https://daily.dev/posts/the-best-flutter-app-architecture-exists-does-it--cpr1wndhb "The Best Flutter App Architecture Exists (Does it?🤔)")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
The Best Flutter App Architecture Exists (Does it?🤔)  
Choosing the right architecture for your Flutter app is crucial for maintainability and scalability. Key concepts include separation of concerns, layered architecture, single source of truth, unidirectional data flow, and extensibility. Popular state management solutions like Provider, BLoC, and Riverpod offer diverse approaches, though native tools can also suffice. For navigation, GoRouter provides a user-friendly alternative to Navigator 2.0, while AutoRoute excels in code generation. Solid data management and dependency injection strategies, like using the get\_it package, help keep your app flexible and testable. Ultimately, there is no one-size-fits-all solution; focus on what suits your project and team best.  
35
9. 9  
[](https://daily.dev/posts/aws-s3-deep-dive-jvlib9lus "AWS S3 Deep Dive")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
AWS S3 Deep Dive  
Amazon S3 (Simple Storage Service) is a scalable object storage service offering high availability, security, and performance for various use cases like data lakes, backups, and big data analytics. It distinguishes itself from block storage and file storage, providing a flat storage structure through objects and buckets. Key features include data encryption, access control via IAM policies, and different bucket types optimized for various tasks such as general purpose, directory-specific, or table-based analytics. S3 also enhances data integrity and upload management via multipart uploads, versioning, and checksum validation. Additional services include S3 Object Lambda for real-time data transformation and S3 Batch Operations for large-scale data management tasks.  
33
10. 10  
[](https://daily.dev/posts/the-next-era-of-design-is-intent-driven-rpfgbamnx "The next era of design is intent-driven")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
The next era of design is intent-driven  
Adaptive user interfaces are transforming design by reacting dynamically to user intent. From static digital filing systems to Google's Knowledge Graph, and now contextual UIs, the evolution has focused on providing immediate, context-aware information. Modern products like Amplitude, Arc, Gong, and Cursor.so exemplify how intelligent interfaces enhance usability across sectors by minimizing cognitive load and predicting user needs. This shift towards fluid, adaptive interfaces promises a more intuitive and connected digital experience.  
32  
2
11. 11  
[](https://daily.dev/posts/2024-survival-guide-for-machine-learning-engineer-interviews-ytflfpaja "2024 Survival Guide for Machine Learning Engineer Interviews")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
2024 Survival Guide for Machine Learning Engineer Interviews  
Job-seeking for machine learning engineers is increasingly challenging, with disparities based on geography, domain, and seniority level. This guide offers strategies and materials for junior-level MLE interview preparation, covering topics like interview timelines, roles, company types, and locations. It emphasizes planning, networking, and utilizing resources from coding to system design to succeed in the interview process.  
23
12. 12  
[](https://daily.dev/posts/stop-wireframing-but-still-start-low-fidelity--b55umcysd "Stop wireframing (but still start low-fidelity)")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
Stop wireframing (but still start low-fidelity)  
Wireframing, once essential in UX design due to limited tools, is now seen as unnecessary with modern design systems and tools. The author argues that wireframes are just low-fidelity visual designs, doubling work without saving time. Alternatives like grey blocking, design systems, and OOUX offer faster, more effective ways to achieve the same goals.  
23  
1
13. 13  
[](https://daily.dev/posts/software-engineers-are-not-fungible-folhikvqg "Software Engineers Are Not Fungible")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
Software Engineers Are Not Fungible  
Software engineers are not interchangeable, each bringing different skills, levels of expertise, and ways of working that are crucial for effective team performance. Understanding and leveraging these differences is key to building productive teams and achieving successful project outcomes. Managers should focus on creating balanced, complementary teams and tailoring tasks to engineers' strengths rather than treating them as generic resources.  
20  
3
14. 14  
[](https://daily.dev/posts/who-is-mr-devops--wanlhnsqs "Who is Mr. DevOps?")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
Who is Mr. DevOps?  
DevOps is a methodology that merges development and operations teams to improve communication and efficiency in software development and delivery. A DevOps engineer requires a blend of technical and interpersonal skills, focusing on automation, continuous integration and deployment, and systems management. The role offers high earning potential, career growth opportunities, and a large community for support and collaboration.  
20
15. 15  
[](https://daily.dev/posts/how-neural-networks-learn-a-probabilistic-viewpoint-md2kjsb8o "How Neural Networks Learn: A Probabilistic Viewpoint")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
How Neural Networks Learn: A Probabilistic Viewpoint  
Understanding concepts like entropy, cross-entropy, and KL-Divergence is crucial for training neural networks. These measures help in quantifying similarities or divergences between probability distributions. By interpreting models probabilistically, practitioners can define objective functions — commonly known as loss functions — that need to be minimized during model training, often using gradient descent methods facilitated by frameworks like PyTorch.  
15
16. 16  
[](https://daily.dev/posts/lasso-and-elastic-net-regressions-explained-a-visual-guide-with-code-examples-0ijuvovho "Lasso and Elastic Net Regressions, Explained: A Visual Guide with Code Examples")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium·2y  
Lasso and Elastic Net Regressions, Explained: A Visual Guide with Code Examples  
Lasso and Elastic Net regressions are advanced variations of linear regression. Lasso automatically selects significant features by applying a penalty that can reduce some coefficients to zero, making it useful for feature selection. Elastic Net combines the traits of both Lasso and Ridge regressions, utilizing penalties to manage feature selection and correlation. Both use the coordinate descent algorithm for optimization, which updates coefficients iteratively. Practical code examples using Python's scikit-learn library demonstrate the implementation and training of these models.  
14

[See all Medium archives](/sources/medium%5Fjs/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/sources/medium_js/best-of/2024/12#page","url":"https://daily.dev/sources/medium_js/best-of/2024/12","name":"Best Medium Posts — December 2024","description":"The most upvoted Medium posts from December 2024, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/medium_js/best-of/2024/12#items","numberOfItems":16,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/5-brilliant-prompts-i-wish-every-single-chatgpt-user-knew-omwowi1oe","name":"5 Brilliant Prompts I Wish Every Single ChatGPT User Knew"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/deep-dive-into-multithreading-multiprocessing-and-asyncio-i4mrilwdl","name":"Deep Dive into Multithreading, Multiprocessing, and Asyncio"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/my-dos-and-don-ts-of-software-architecture-jarsl8c8v","name":"My DOs and DON’Ts of Software Architecture"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/beyond-if-else-advanced-python-control-flow-hqwni5pwl","name":"Beyond If/Else: Advanced Python Control Flow"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/how-i-d-learn-ai-in-2025-if-i-knew-nothing--r6tz2ibll","name":"How I’d Learn AI in 2025 (If I Knew Nothing)"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/the-death-of-the-stubborn-developer-zv05nbjnx","name":"The Death of the Stubborn Developer"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/announcing-dart-3-6-pbiyeigcn","name":"Announcing Dart 3.6"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/the-best-flutter-app-architecture-exists-does-it--cpr1wndhb","name":"The Best Flutter App Architecture Exists (Does it?🤔)"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/aws-s3-deep-dive-jvlib9lus","name":"AWS S3 Deep Dive"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/the-next-era-of-design-is-intent-driven-rpfgbamnx","name":"The next era of design is intent-driven"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/2024-survival-guide-for-machine-learning-engineer-interviews-ytflfpaja","name":"2024 Survival Guide for Machine Learning Engineer Interviews"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/stop-wireframing-but-still-start-low-fidelity--b55umcysd","name":"Stop wireframing (but still start low-fidelity)"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/software-engineers-are-not-fungible-folhikvqg","name":"Software Engineers Are Not Fungible"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/who-is-mr-devops--wanlhnsqs","name":"Who is Mr. DevOps?"},{"@type":"ListItem","position":15,"url":"https://daily.dev/posts/how-neural-networks-learn-a-probabilistic-viewpoint-md2kjsb8o","name":"How Neural Networks Learn: A Probabilistic Viewpoint"},{"@type":"ListItem","position":16,"url":"https://daily.dev/posts/lasso-and-elastic-net-regressions-explained-a-visual-guide-with-code-examples-0ijuvovho","name":"Lasso and Elastic Net Regressions, Explained: A Visual Guide with Code Examples"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Sources","item":"https://daily.dev/sources"},{"@type":"ListItem","position":3,"name":"Medium","item":"https://daily.dev/sources/medium_js"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/medium_js/best-of"},{"@type":"ListItem","position":5,"name":"December 2024"}]}]}
```

