β€4π2π₯1
Interesting idea π€
I always thought that front-end development is much harder then backend, but I was having trouble to explain that idea to developers. Today I wanted to check the opinion of the LLM, so called the general expert's opinion.
Agreed that front-end is harder for humans, because backend scales mathematically, rule based, and it's not that hard to understand. It's just math...
Then I asked, to find a similar analogy for front-end. It nailed. BIOLOGY!
____
Backend scaling: like mathematics: you add more nodes, shard databases, optimize queries - the system grows by formulas and predictable rules.
Frontend change: like biology: small mutations (new device, new browser feature, new UX demand) create emergent, often chaotic behavior that must be adapted to case by case.
____
Biology is more difficult then mathematics β mathematics is rule-bound and deterministic, while biology is emergent, full of exceptions, context-dependent, and constantly changing.
Thatβs why front-end (biology-like) feels messier and harder for humans, even if backend (math-like) can be more abstractly deep.
Edgar Marukyan
I always thought that front-end development is much harder then backend, but I was having trouble to explain that idea to developers. Today I wanted to check the opinion of the LLM, so called the general expert's opinion.
Agreed that front-end is harder for humans, because backend scales mathematically, rule based, and it's not that hard to understand. It's just math...
Then I asked, to find a similar analogy for front-end. It nailed. BIOLOGY!
____
Backend scaling: like mathematics: you add more nodes, shard databases, optimize queries - the system grows by formulas and predictable rules.
Frontend change: like biology: small mutations (new device, new browser feature, new UX demand) create emergent, often chaotic behavior that must be adapted to case by case.
____
Biology is more difficult then mathematics β mathematics is rule-bound and deterministic, while biology is emergent, full of exceptions, context-dependent, and constantly changing.
Thatβs why front-end (biology-like) feels messier and harder for humans, even if backend (math-like) can be more abstractly deep.
Edgar Marukyan
π€11π10β€3
CHALLENGE
const values = [null, undefined, '', 0, false, NaN];
const results = [];
for (let val of values) {
results.push({
value: val,
boolean: !!val,
string: String(val),
number: Number(val)
});
}
console.log(results[2].boolean);
console.log(results[3].string);
console.log(results[1].number);
β€4π2
What is the output?
Anonymous Quiz
22%
false 0 undefined
42%
false 0 NaN
18%
true 0 NaN
18%
false '0' undefined
β€3π2π₯1
Please open Telegram to view this post
VIEW IN TELEGRAM
π€£23π₯3β€2π€©2
CHALLENGE
class StateMachine {
constructor() {
this.state = 'idle';
this.transitions = {
idle: { start: 'running' },
running: { pause: 'paused', stop: 'stopped' },
paused: { resume: 'running', stop: 'stopped' },
stopped: { reset: 'idle' }
};
}
transition(action) {
const next = this.transitions[this.state]?.[action];
if (next) this.state = next;
return this.state;
}
}
const sm = new StateMachine();
console.log(sm.transition('start'));
console.log(sm.transition('invalid'));
console.log(sm.transition('pause'));
console.log(sm.transition('resume'));
console.log(sm.transition('stop'));
console.log(sm.transition('reset'));
β€6π1
What is the output?
Anonymous Quiz
24%
start invalid pause resume stop reset
34%
running running running running stopped stopped
18%
running idle paused running stopped idle
24%
running running paused running stopped idle
β€2π2π₯2
Prototype pollution π₯
Exposing the default prototype by calling unsafe recursive functions with untrusted data as input
Read ~20mins estimated
learn.snyk.io
Exposing the default prototype by calling unsafe recursive functions with untrusted data as input
Read ~20mins estimated
learn.snyk.io
Please open Telegram to view this post
VIEW IN TELEGRAM
β€7π3π₯2
CHALLENGE
console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
setTimeout(() => console.log('4'), 0);
Promise.resolve().then(() => {
console.log('5');
return Promise.resolve();
}).then(() => console.log('6'));
console.log('7');
What is the output?
Anonymous Quiz
38%
1 7 3 5 6 2 4
26%
1 7 3 5 2 4 6
22%
1 7 2 4 3 5 6
14%
1 3 5 6 7 2 4
β€5π3π€1
Speed up solving programming tasks in any language β Python, JavaScript, Java, and more. Powered by ChatGPT Plus, but 3Γ cheaper! Donβt overpay $20 for ChatGPT Plus β pay just $7.25 and get faster, more accurate answers. Try DevHelperAI now!
@devhelperai_bot
Please open Telegram to view this post
VIEW IN TELEGRAM
β€3π2π₯1
CHALLENGE
const nums = [1, 2, 3];
const obj = { a: 1, b: 2, c: 3 };
function process(...args) {
const [first, ...rest] = args;
const { a, ...others } = obj;
return { first, rest, a, others };
}
const result = process(...nums);
console.log(result.first);
console.log(result.rest.length);
console.log(result.others.b);
console.log(Object.keys(result.others).join(''));
console.log(result.a === nums[0]);
β€2π1
What is the output?
Anonymous Quiz
24%
1 3 2 bc true
32%
3 2 2 bc true
16%
1 2 2 bc false
29%
1 2 2 bc true
β€5π€3π2
CHALLENGE
let obj = { name: 'Sarah', age: 25 };
let weakMap = new WeakMap();
let map = new Map();
weakMap.set(obj, 'weak reference');
map.set(obj, 'strong reference');
console.log(weakMap.has(obj));
console.log(map.has(obj));
obj = null;
console.log(weakMap.has(null));
console.log(map.has(null));
console.log(map.size);
β€1
What is the output?
Anonymous Quiz
31%
true true true true 1
39%
true true false false 1
21%
true true false false 0
8%
false false false false 0
2β€2π1π₯1
CHALLENGE
function* fibonacci() {
let [a, b] = [0, 1];
while (true) {
yield a;
[a, b] = [b, a + b];
}
}
function* takeWhile(generator, predicate) {
for (const value of generator) {
if (!predicate(value)) break;
yield value;
}
}
const fib = fibonacci();
const smallFibs = takeWhile(fib, x => x < 20);
console.log([...smallFibs].join(','));
β€1π1
What is the output?
Anonymous Quiz
30%
1,1,2,3,5,8,13,21
37%
0,1,1,2,3,5,8,13,21
29%
0,1,1,2,3,5,8,13
4%
0,1,2,3,5,8,13
π₯3β€2π1
Porffor is a rapidly developing ahead-of-time JavaScript compiler with a major benefit being extremely quick process launch times (think sub-millisecond). This is certainly more a taste of the future, and something to experiment with, rather than something you want to imminently deploy into production.
Oliver Medhurst
Please open Telegram to view this post
VIEW IN TELEGRAM
π5β€3π₯1
CHALLENGE
const user = {
name: 'Sarah',
age: 25,
getName() { return this.name; },
getAge: () => this.age
};
const methods = {
regular: user.getName,
arrow: user.getAge
};
console.log(methods.regular());
console.log(methods.arrow());
console.log(user.getName());
console.log(user.getAge());
What is the output?
Anonymous Quiz
24%
Sarah undefined Sarah 25
31%
undefined undefined Sarah undefined
34%
Sarah 25 Sarah 25
10%
undefined 25 Sarah undefined
β€4π₯4π€1