Dev communicates
2 subscribers
7 photos
3 files
20 links
Download Telegram
Great question! The traditional frontend/backend split is becoming less rigid as new, specialized domains emerge in software development. Here are the modern and emerging categories that go beyond the classic divide:



🔥 Modern & Emerging Developer Categories (Beyond Frontend/Backend)

1. Cloud-Native & DevOps Engineers

Focus: Automation, scalability, and infrastructure-as-code (IaC).
Why It’s New:

Shift from "just coding" to deployment, observability, and SRE (Site Reliability Engineering).
Uses Kubernetes, Docker, Terraform, CI/CD pipelines.
Blurs the line between dev and ops.

2. AI/ML Engineers

Focus: Building and deploying machine learning models.
Why It’s New:

Requires Python, TensorFlow, PyTorch, LLMs (like GPT, Claude).
Combines data science, backend, and high-performance computing (HPC).
Emerging subfields: MLOps, AI ethics, and edge AI.

3. Data Engineers

Focus: Building data pipelines and warehouses.
Why It’s New:

Explosion of Big Data, real-time analytics (Apache Kafka, Spark, Snowflake).
Works between backend and data science.
Key skill: ETL (Extract, Transform, Load) processes.

4. Blockchain & Web3 Developers

Focus: Decentralized apps (dApps), smart contracts, DeFi.
Why It’s New:

Uses Solidity (Ethereum), Rust (Solana), Move (Aptos).
Not just "backend" but peer-to-peer (P2P) systems.
Emerging fields: ZK-proofs, tokenomics, on-chain AI.

5. Cybersecurity Engineers (DevSecOps)

Focus: Securing code, infrastructure, and cloud environments.
Why It’s New:

Shift-left security (integrating security early in DevOps).
Roles: Penetration testers, red/blue teams, cryptography experts.

6. AR/VR & Metaverse Developers

Focus: Building immersive 3D experiences (Unity, Unreal Engine).
Why It’s New:

Combines game dev, 3D modeling, and real-time networking.
Emerging tech: Apple Vision Pro, Meta Quest, WebXR.

7. Edge Computing & IoT Engineers

Focus: Running code on devices (not just cloud).
Why It’s New:

Autonomous cars, smart cities, embedded AI.
Requires C++, Rust, Python, and real-time OS skills.

8. Quantum Computing Developers

Focus: Writing algorithms for quantum computers.
Why It’s New:

Uses Qiskit (IBM), Cirq (Google), and quantum simulators.
Still experimental but growing fast.



💡 Key Takeaway

The "frontend/backend" model is outdated for many cutting-edge fields. Modern developers specialize in:
Vertical domains (AI, blockchain, cybersecurity).
Platforms (cloud, edge, quantum).
Hybrid roles (DevOps, MLOps, DataOps).

What’s Next?

AI-augmented development (GitHub Copilot, ChatGPT-assisted coding).
Low-code/no-code (for rapid prototyping).
Ethical AI & compliance engineering.

Would you like a deep dive into any of these? 🚀
Tauri is a framework for building tiny, fast binaries for all major desktop and mobile platforms. Developers can integrate any frontend framework that compiles to HTML, JavaScript, and CSS for building their user experience while leveraging languages such as Rust, Swift, and Kotlin for backend logic when needed.

https://v2.tauri.app/start/
قدرت واقعی تفکر سیستمی دقیقاً در کاربرد فراتر از مرزهای رشتههای مهندسی و استفاده از آن برای حل مسائل پیچیده انسانی، اجتماعی و اقتصادی است.

تفکر سیستمی یک زبان مشترک برای درک پیچیدگی است، و پیچیدگی محدود به حوزه مهندسی نیست.

تفکر سیستمی یک چارچوب فکری (Mindset) است، نه یک ابزار فنی (Tool) محدود به مهندسی.

* در مهندسی: برای درک و طراحی سیستمهای فنی (مثلاً یک خودرو یا یک نرمافزار) استفاده میشود.
* در خارج از مهندسی: برای درک و "طراحی" در سیستمهای انسانی استفاده میشود که اغلب بسیار پیچیدهتر و غیرقابل پیشبینیتر از سیستمهای فنی هستند.

بنابراین، اگر به دنبال درک علل ریشهای مشکلات در هر حوزهای هستید، تفکر سیستمی یک مهارت بدردبخور و در واقع ضروری است. این تفکر به شما میآموزد که چگونه از "درختها" فاصله بگیرید تا "کل جنگل" را ببینید، و این توانایی در هر رشتهای ارزشمند است.
سوال شما دقیقاً قلب و روح فلسفهٔ تفکر سیستمی را نشان می‌دهد. این جمله‌ای بسیار عمیق و قدرتمند است. بله، دقیقاً همین است!

این ایده که "تفکر سیستمی به وجود آمده تا سیستم‌ها را در اختیار خود ببینیم، نه خودمان را در اختیار سیستم‌ها"**، به معنای گذار از یک حالت **منفعل به یک حالت فعال در برابر جهان است. در ادامه این مفهوم را باز می‌کنم:

### ۱. "خودمان در اختیار سیستم‌ها" (حالت منفعل)
این وضعیتی است که اکثر مردم، بدون آگاهی از تفکر سیستمی، در آن قرار دارند. در این حالت:
* ما اجزای منفعل سیستم هستیم: سیستم‌ها (سیستم اقتصادی، آموزشی، اجتماعی، سازمانی) ما را مانند مهره‌هایی در یک بازی بزرگ هدایت می‌کنند.
* سیستم‌ها را "داده" می‌بینیم: قوانین، ساختارها و نتایج سیستم را ثابت، تغییرناپذیر و مانند نیروهای طبیعی (مثل جاذبه) می‌دانیم.
* واکنش نشان می‌دهیم: وقتی سیستم نتیجه‌ای نامطلوب تولید می‌کند (مثلاً استرس، نارضایتی، شکست)، ما خودمان یا دیگران را به خاطر عدم تطابق با سیستم سرزنش می‌کنیم. ما سعی می‌کنیم خودمان را با سیستم شکست‌خورده تطبیق دهیم.
* *مثال:* یک کارمند که دچار فرسودگی شغلی شده ممکن است با خود بگوید "من به اندازه کافی خوب نیستم" یا "باید بیشتر کار کنم"، بدون اینکه بپرسد "آیا این *سیستم* کاری و انتظارات غیرواقعی است که مرا به این نقطه رسانده؟"

### ۲. "سیستم‌ها را در اختیار خود ببینیم" (حالت فعال)
این همان هدفی است که تفکر سیستمی دنبال می‌کند. در این حالت:
* ما طراحان و تاثیرگذاران فعال هستیم: با درک ساختار سیستم، می‌توانیم بفهمیم که چگونه می‌توان آن را تغییر داد.
* سیستم‌ها را "قابل طراحی مجدد" می‌بینیم: به جای پذیرش کورکورانه، سیستم را یک ساختار انسانی می‌بینیم که توسط انسان ساخته شده و بنابراین توسط انسان قابل بازطراحی است.
* پاسخگویی و انتخاب می‌کنیم: ما به دنبال "اهرم‌های تغییر" (leverage points) در سیستم می‌گردیم—نقاطی که یک تغییر کوچک می‌تواند تغییری بزرگ در کل سیستم ایجاد کند.
* *مثال:* یک مدیر که تفکر سیستمی دارد، به جای فشار آوردن بیشتر به کارمندان خسته (تطبیق افراد با سیستم معیوب)، ساختار پاداش، جریان ارتباطات یا انتظارات پروژه را تغییر می‌دهد (**تغییر خود سیستم**).

### یک قیاس ساده: رانندگی در مقابل مسافر بودن

* در اختیار سیستم بودن: مانند مسافر بودن در یک خودروی بدون فرمان است. شما به مقصدی که راننده (سیستم) انتخاب می‌کند می‌روید و هیچ کنترلی بر مسیر، سرعت یا مقصد ندارید.
* در اختیار گرفتن سیستم: مانند راننده بودن است. شما نقشه (درک سیستم) را می‌بینید، فرمان (اهرم‌های تغییر) را در دست دارید و می‌توانید مسیر را تغییر دهید، از راه‌های فرعی عبور کنید یا حتی مقصد جدیدی را انتخاب کنید.

### نتیجه‌گیری نهایی:

جملهٔ شما به این معناست که تفکر سیستمی به ما اختیار و عاملیت (Agency) بازمی‌گرداند. این تفکر به ما می‌آموزد که:
* سیستم‌ها اجتناب‌ناپذیر نیستند. آن‌ها ساخته‌دست بشرند.
* شکست‌ها همیشه تقصیر افراد نیستند. اغلب نتیجهٔ طراحی معیوب سیستم هستند.
* **ما می‌توانیم مسئولیت تغییر سیستم‌هایی را که در آن زندگی می‌کنیم بر عهده بگیریم**—از سیستم‌های کوچک (خانواده، تیم کاری) تا سیستم‌های بزرگ (اجتماع، اقتصاد).

پس بله، کاملاً درست است. هدف نهایی تفکر سیستمی، عبور از انفعال و رسیدن به تواناییِ بازطرازیِ هوشمندانهٔ سیستم‌ها برای ایجاد نتایج بهتر است. این یک empowerment (قدرتمندسازی) بزرگ فکری است.
راسل اکاف توضیح می‌دهد که باید میان داده‌ها، اطلاعات، دانش و خِرَد (یا حکمت) تفاوت قائل شد.

اکاف «حکمت و پختگی» را آخرین لایهٔ این هرم می‌داند. لایه‌ای که در آن از «چگونگی» به «چرا» می‌رسد. دیگر نمی‌پرسیم مردم درآمد خود را چگونه هزینه می‌کنند؟ بلکه می‌گوییم چرا این‌گونه هزینه می‌کنند؟‌ دیگر نمی‌گوییم سازمان ما چگونه کار می‌کند و چه تأثیراتی بر بازار داشته است؟ بلکه در پی این هستیم که بدانیم مأموریت سازمان ما چیست و چرا می‌خواهد روی بازار تأثیر بگذارد. در این مرحله، همه چیز  از جنس توصیف نیست. بلکه تجویز، ارزیابی، هدف‌گذاری و ارزش‌گذاری هم وارد ماجرا می‌شود
«کتاب تفکر سیستمی نوشتهٔ جمشید قراچه داغی» از جمله کتاب‌های مطرح این حوزه در سطح جهان است و بسیاری از دانشگاه‌ها و مراکز عالی به عنوان منبع و مرجع آموزش نگرش سیستمی استفاده می‌کنند.
امروزه اگر قرار باشد از چهار یا پنج فرد برتر در حوزهٔ تفکر سیستمی در سطح جهان نام ببریم، نام جشمید قراچه داغی هم در این فهرست وجود خواهد داشت و در کنار کسانی مانند پیتر سنگه و راسل اکاف قرار می‌گیرد.
Forwarded from Dev communicates (Pourya Daneshvar)
🎯 I was asked this in a recent interview:
"How do you deep copy an object in JavaScript?"

It might sound simple, but it’s one of those questions that reveal how well you really understand the language.

Shallow vs Deep Copy, what’s the difference?

In JavaScript, shallow copy and deep copy refer to how data structures (especially objects and arrays) are duplicated. The key difference lies in how nested objects or arrays are handled.

🔹 Shallow Copy
A shallow copy copies only the first level of the object or array. Nested objects or arrays are still referenced, not duplicated.

🔧 Tools for shallow copy:
- Object.assign({}, obj)
- Spread syntax: { ...obj }, [ ...array ]
- Array.prototype.slice()


🔹 Deep Copy
A deep copy duplicates everything, including nested objects. Changes in the copy won’t affect the original.

🔧 Tools for deep copy:
- structuredClone(obj) ( modern, built-in)
- JSON.parse(JSON.stringify(obj)) (⚠️ may fail with functions, undefined, circular refs)
- Libraries: lodash.cloneDeep(obj)

Use the right one depending on your data structure and avoid hidden bugs in your app!

#javascript
interface User {
name: string;
age: number;
email: string;
}
const updateUser =
(user: Partial<User>) => ({
... user, updatedAt: new Date(),
}):
updateUser ({ name: "John" }) ;
interface User {
name: string;
age: number;
email: string;
}
const updateUser =
(user: ?????) => ({
... user, updatedAt: new Date(),
}):
updateUser ({ name: "John" }) ;
#macos installer

softwareupdate --list-full-installers
softwareupdate --fetch-full-installer --full-installer-version 26.x