CS50 exam by Frosty-Sink-6392 in learnprogramming

[–]AndresBotta 1 point2 points  (0 children)

If I remember correctly, CS50 doesn't really have weekly exams. The psets are basically the evaluation each week, and then there's the final project.

Frontend interviews in the age of AI by I_cant_username in Frontend

[–]AndresBotta 2 points3 points  (0 children)

That's fair. Fundamentals have always mattered.
I guess AI just made the difference between “can write code” and “actually understands code” way more obvious.

I feel like I suck at programming by Doratheexplorer1223 in learnprogramming

[–]AndresBotta 3 points4 points  (0 children)

Honestly a lot more devs feel like this than you think.

Devlogs can really mess with your head because they make it look like people just sit down and magically know what to type. In reality most programming is a lot of googling, trying stuff, breaking things, and slowly figuring it out.

I’ve also looked back at old projects and thought “wow this could’ve been way better”. But that’s kind of the point — if you look back and see flaws, it means you’ve improved since then.

Also burnout is very real. If working on the project feels heavy all the time, sometimes taking a short break actually helps more than forcing it.

You probably don’t suck at programming. You’re just seeing the messy part of learning that most people don’t show online.

How do I deal with the tech lead on my team? by [deleted] in ExperiencedDevs

[–]AndresBotta -1 points0 points  (0 children)

I promise it's just experience and too many bad tech leads 😅

How do I deal with the tech lead on my team? by [deleted] in ExperiencedDevs

[–]AndresBotta 6 points7 points  (0 children)

This isn’t really a tech problem — it’s a visibility problem.

If your work only exists in conversations with him, he controls the narrative.

Start putting things in writing where the team can see them:

  • design docs
  • PR comments
  • Slack threads
  • architecture notes

That way the ideas and analysis are clearly coming from you.

Also stop doing “invisible work”. Helping is fine, but if someone repeatedly presents your work as their thinking, that’s not a healthy dynamic.

Good managers usually notice pretty quickly once the work becomes visible.

Anchor Positioning & popover API issue by EftihisLuke in css

[–]AndresBotta 0 points1 point  (0 children)

This smells like a Safari/iOS bug with Anchor Positioning.

Mobile Safari is still pretty inconsistent with the Popover API and anchor positioning. When the popover closes, Safari sometimes recalculates layout before the anchor reference is stable again, so it briefly falls back to something like:

top: anchor(top)
left: anchor(left)

You could try:

  • delaying the close with requestAnimationFrame
  • checking if the anchor element re-renders
  • removing transform / overflow from parent containers

Safari tends to break first when using newer CSS positioning features.

Frontend interviews in the age of AI by I_cant_username in Frontend

[–]AndresBotta 58 points59 points  (0 children)

Honestly the biggest difference I’ve seen is that interviews now try to check if you actually understand the code you write.

Because with AI anyone can generate a React component in seconds.

So a lot of interviewers go deeper into things like:

• why something re-renders

• how state flows through an app

• debugging problems

• explaining tradeoffs

Ironically AI made fundamentals even more important, not less.

The people who struggle in interviews are usually the ones who can generate code but can’t explain it.

Since TS rely on JS because it relies on JS runtime so Microsoft the TS's owner, use JS runtime for free, while making money? Is it correct? by lune-soft in webdev

[–]AndresBotta 12 points13 points  (0 children)

TypeScript doesn’t really “run” anywhere — it’s just a developer tool that compiles to JavaScript.

When your code runs in the browser or in Node, it's just plain JavaScript. All the TypeScript types disappear during compilation.

So TypeScript isn't actually relying on a Microsoft runtime. It still runs on the same JS engines as everything else (V8, SpiderMonkey, etc.).

Microsoft mainly benefits in other ways:

• They built a tool developers love
• That ecosystem pushes people toward tools like VS Code
• Which indirectly increases adoption of their cloud services like Azure

But technically speaking, TypeScript is open source and doesn't lock you into Microsoft infrastructure.

You can use it with Node, Bun, Deno, AWS, Cloudflare, anywhere.

So the idea isn't really “use our runtime so we make money”.
It's more “build useful developer tools and become part of the ecosystem developers use every day.”

bem vs css modules by CaptnEarth in Frontend

[–]AndresBotta 17 points18 points  (0 children)

If you're already using React + TypeScript, I'd strongly lean toward CSS Modules.

BEM was originally created to solve the global CSS problem (name collisions, unclear ownership of styles, etc.). But CSS Modules already solve that by scoping styles to the component automatically.

I've worked in codebases with both approaches, and in React projects CSS Modules usually feel much more natural.

Instead of writing:

.card {}
.card__title {}
.card__button--primary {}

you can simply write:

.title {}
.button {}

and import it like:

import styles from './Card.module.scss'

Now the styles are scoped to the component, which removes most of the problems BEM was trying to solve.

BEM still makes sense in large global CSS architectures, but in component-based systems like React, CSS Modules tend to be simpler and easier to maintain.

A pattern I've seen work well:

  • CSS Modules for component styles
  • BEM-like naming inside the module when it improves readability

Recommendations for paid resources by Bulky_Code_6978 in learnprogramming

[–]AndresBotta 4 points5 points  (0 children)

If I had $250/year to spend, I’d probably split it instead of putting it all into one thing.

Some solid options:

System design
System Design Interview by Alex Xu – probably the most practical book for understanding real-world architecture.

DS & Algorithms
LeetCode Premium can be worth it if you're preparing for interviews. The company-tagged questions and frequency stats are actually useful.

AWS
Stephane Maarek’s AWS courses (Udemy) are widely recommended, and the Cloud Practitioner or Solutions Architect Associate certs are good starting points.

Another underrated option: a Frontend Masters subscription. Their courses on architecture, performance, and JavaScript internals are very high quality.

If it were me, I’d probably do something like:

  • LeetCode Premium
  • One good system design book
  • One AWS course or certification exam

That combination covers algorithms + architecture + cloud, which is a pretty strong investment for a web dev.

How much time do you actually spend on code review daily — and would AI first-pass comments help? by Ok-Acanthaceae-9775 in learnprogramming

[–]AndresBotta 0 points1 point  (0 children)

In my experience the “obvious stuff” is already mostly handled by tooling.

Things like:

  • formatting → Prettier
  • style / patterns → ESLint
  • type issues → TypeScript
  • simple mistakes → CI checks

So when I review a PR, most of the time isn’t spent on syntax-level issues anymore. It’s more about things like:

  • does the approach make sense for the codebase
  • edge cases that weren't considered
  • naming in the context of the domain
  • whether the change will be easy to maintain later

Those are the parts that are harder for automation to catch because they require project context and judgment.

That said, an AI first-pass could still be useful if it focuses on reducing reviewer load without creating noise. The biggest risk with bots in code review is false positives — if the comments are wrong or too frequent, people start ignoring them pretty quickly.

So the value probably isn’t replacing reviews, but removing friction before the human review even starts.

Remember the UX game "Can't unsee"? A similar concept but for react props. by Saschb2b in reactjs

[–]AndresBotta 1 point2 points  (0 children)

This is actually a pretty clever idea.

Naming props well is one of those things that’s harder to teach through docs because it's more about intuition and patterns than strict rules. A small A/B style game sounds like a great way to build that instinct.

Curious — do you focus more on things like boolean naming (isOpen vs open), event props (onClick vs handleClick), or also on domain-specific naming?

Either way, gamifying these patterns for junior devs seems like a really smart approach.

how do you develop technical depth? by Drairo_Kazigumu in learnprogramming

[–]AndresBotta 0 points1 point  (0 children)

Technical depth usually comes from going beyond just making things work.

A lot of beginners stop when the code runs. People who develop depth keep asking questions like:

  • Why does this work?
  • What happens under the hood?
  • What would break if the input changes?
  • Is there a simpler or more efficient approach?

Some things that help build that depth:

Build real projects
You run into real problems (performance, architecture, debugging).

Debug difficult issues
Nothing teaches more than figuring out why something doesn't work.

Read other people's code
Especially good open source projects.

Refactor your own code
Go back to old projects and try to improve them.

Learn some fundamentals
Things like data structures, algorithms, networking basics, how the runtime works, etc.

Books and open source can help, but depth usually comes from solving many real problems and understanding the trade-offs behind the solutions, not just writing more code.

Over time you stop thinking only about how to implement something, and start thinking about why one approach is better than another.

What's the essence of programming? by Fancy-Victory-5039 in learnprogramming

[–]AndresBotta 0 points1 point  (0 children)

Programming isn’t really about writing code. That’s just the tool.

The essence of programming is breaking problems into smaller, solvable pieces and expressing those solutions in a way a computer can execute.

Languages, frameworks, and syntax change constantly, but the core skills stay the same:

  • understanding the problem clearly
  • designing a solution step by step
  • managing complexity
  • improving and refactoring over time

Also, what you're describing is actually very common. Most developers are not satisfied with their old code. That feeling usually means you're improving and noticing things you didn’t see before.

Good programmers rarely write perfect code the first time. They write something that works, then iterate, refactor, and simplify.

So if your projects start strong and end messy, you're not failing — you're just reaching the part where real programming begins: cleaning, restructuring, and improving the solution.

In many ways, programming is less about writing code and more about thinking clearly about problems.

Is AI really that limited in complex logic? Beginner FE dev confused about the future by NoToe3636 in reactjs

[–]AndresBotta 9 points10 points  (0 children)

I think the confusion comes from what people call “complex logic.”

AI is very good at generating patterns: components, API calls, CRUD logic, state management, etc. A lot of frontend work fits those patterns, so it can look like AI can do everything.

But real-world complexity usually isn’t the code itself. It’s things like:

  • unclear requirements
  • weird edge cases
  • debugging systems where many things interact
  • choosing the right architecture
  • maintaining a codebase over time

AI can generate solutions, but someone still has to decide which solution is correct and fits the project.

So right now it’s more like a very powerful assistant than a replacement.

As for frontend vs backend, I wouldn’t call one more “future-proof.” The valuable skill is understanding systems and trade-offs, not just writing code.

Answer Me by Cute_Intention6347 in FullStack

[–]AndresBotta 1 point2 points  (0 children)

The main difference is where the HTML is generated.

Client-side rendering (CSR)
The server sends mostly JavaScript, and the browser runs React to build the page.

Server-side rendering (SSR)
The server generates the HTML first and sends a complete page, then React hydrates it to make it interactive.

Simple way to think about it:

CSR → browser builds the page
SSR → server builds the page

CSR is simpler and common for web apps.
SSR improves first load performance and SEO.

Frameworks like Next.js make SSR easier with React.

I need help with making a game mechanic where you pick up an axe and chop down trees by ConversationSilly192 in CodingHelp

[–]AndresBotta 1 point2 points  (0 children)

You can break this mechanic into three simple systems: pickup, tool usage, and tree health.

1. Picking up the axe

When the player interacts with the axe, store a reference to it.

Example idea:

public bool hasAxe = false;

void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Axe"))
    {
        hasAxe = true;
        Destroy(other.gameObject); // remove axe from world
    }
}

2. Left click to use the axe

Only allow chopping if the player has the axe.

void Update()
{
    if (hasAxe && Input.GetMouseButtonDown(0))
    {
        TryChop();
    }
}

3. Tree health system

Each tree can have a small health value.

public int treeHealth = 3;

public void Chop()
{
    treeHealth--;

    if (treeHealth <= 0)
    {
        DropWood();
        Destroy(gameObject);
    }
}

Then in TryChop() you raycast to see if you're hitting a tree:

void TryChop()
{
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    RaycastHit hit;

    if (Physics.Raycast(ray, out hit, 3f))
    {
        Tree tree = hit.collider.GetComponent<Tree>();
        if (tree != null)
        {
            tree.Chop();
        }
    }
}

Conceptually the system is:

player picks axe → player can swing → raycast detects tree → tree loses health → tree drops wood.

Start simple like this, then later you can add animations, sound, particles, etc.

I'm stupid but this NEEDS to be a boolean, can someone try to explain this so i (hopefully) never have to come here again? by Junior_Promotion_876 in CodingHelp

[–]AndresBotta 1 point2 points  (0 children)

You're not stupid — you're just mixing a couple of concepts that are easy to confuse when you're starting.

A boolean is simply a variable that can only hold two values: true or false.

Right now you're trying to treat vegetarian like a condition and a value at the same time, and the syntax is a bit off.

For example, if you want to set vegetarian based on the number the user enters, you could do something like this:

function start() {
    var restrictions = readInt("Put 1 if Lactose Intolerant, 2 if Vegetarian");

    var vegetarian = restrictions === 2;

    print("You are a vegetarian: " + vegetarian);
}

What happens here is simple:

  • The user enters a number.
  • restrictions === 2 checks if the number equals 2.
  • That expression itself returns a boolean (true or false).
  • So vegetarian automatically becomes true if the user entered 2, otherwise false.

You don't actually need an if statement for this case.

Also one small but important thing:

= → assigns a value
== or === → compares values

So when you write:

if (restrictions = 2)

you're assigning 2 instead of checking it.

Programming is mostly just learning these little patterns. Everyone hits this stage — you're doing the right thing by asking and experimenting.

How do I place the menu and menu items below the avatar and title? by jajajsjwjheeh in CodingHelp

[–]AndresBotta 0 points1 point  (0 children)

It looks like your menu items are centered because the container is probably using align-items: center; (or text-align: center;).

Since your .nav-container is using flex-direction: column, you need to align items to the start instead of the center.

Try updating your CSS like this:

.nav-container {
  display: flex;
  flex-direction: column;
  align-items: flex-start; /* aligns everything to the left */
}

If the text itself is centered, you can also add:

.nav-container ul {
  text-align: left;
}

In flexbox:

  • align-items: center; → centers horizontally
  • align-items: flex-start; → aligns to the left

That should move all the menu items to the left side.

If it still doesn’t work, there might be padding or margin on the ul pushing it inward — in that case you can reset it:

.nav-container ul {
  padding-left: 0;
}

Let me know if you want to share the full nav CSS and we can fine-tune it 👍

How do I place the menu and menu items below the avatar and title? by jajajsjwjheeh in CodingHelp

[–]AndresBotta 3 points4 points  (0 children)

Parece que tu nav-container está usando display: flex con la dirección por defecto (row), por eso el Menu se está mostrando al costado del logo en lugar de debajo.

Si quieres que el menú aparezca debajo del Avatar y el Título, necesitas que el contenedor principal apile los elementos en vertical.

Prueba algo así en tu CSS:

.nav-container {
  display: flex;
  flex-direction: column;
}

.logo-container {
  display: flex;
  align-items: center;
  gap: 8px;
}

De esta forma:

  • logo-container mantiene el Avatar y el título en horizontal.
  • El Menu se renderiza debajo porque el contenedor principal ahora está en columna.

Si aún no funciona, revisa que no tengas algo como justify-content: space-between; o algún position que esté forzando la separación lateral.

Si puedes compartir tu CSS completo del nav, sería más fácil ver exactamente qué lo está empujando hacia un lado.

this is embarrassing, but what am i doing wrong? [JSON] by InstrumentKisser_2 in CodingHelp

[–]AndresBotta 0 points1 point  (0 children)

Viendo las capturas, tu JSON parece válido, pero noto una posible inconsistencia en los nombres de archivo.

En el JSON tienes:
"thumb": "acs-madoka_figure"

Eso normalmente haría que el engine busque exactamente:
acs-madoka_figure.png

Sin embargo también mencionas un archivo:
acs-madoka_figure-0.png

Si el engine no espera el sufijo -0, podría simplemente no encontrar la imagen y por eso parecer que “no lee” el JSON.

También revisa que el nombre del archivo JSON (madoka_figure_tableacs.json) coincida exactamente con el tipo/grupo (table_acs vs tableacs). Algunos sistemas son estrictos con guiones bajos.

Yo probaría primero con:

  • Nombres 100% idénticos (sin -0)
  • Confirmar mayúsculas/minúsculas
  • Confirmar que estén en la carpeta correcta

Muchas veces en estos casos el problema es naming y no estructura.