How to be a newbie (without others realize it)
Tags: think, resolve, javascript, logic
Published: 2021-06-22 17:02:12

---
title: How to be a newbie (without others realize it)
published: true
description: Introduction to programmatic thinking
tags: think, resolve, javascript, logic
cover_image: https://i.kym-cdn.com/entries/icons/original/000/037/158/thinkmarkthumbnail.PNG
---

Hello everyone, I am @sauloco Senior Fullstack Developer, JavaScript/TypeScript specialist, who loves VueJS and Jamstack.

I have been many times in both sides of the following situation:

> Project Manager (aka PM): - I need you to create a responsive view to show all stats of a single Pokémon based in the Pokedex API.
> Junior Dev: - Ok. Perfect. (internally: 😱 * overwhelmedly blocked, don't know where to start *)

If you also would feel a bit anxious in this scenario, don't worry, I will give you some tips and tools:

## 1. Do ask questions!

Giving enough time some questions will become unnecessary, but *always*, I mean **always** you will have some doubts when starting a new task, this is not just normal but also a good thing.

As experienced as you become you may even ask some questions you already know the answer "just to be sure". Knowing the right answer is better than guessing.

## 2. Think "programmatically"

A PM may throw several buzzwords in a sentence without realize they imply several steps, or even, many tasks: "responsive view" and "API" consumption in the previous example could be easily different tasks with different team members working on it.

In order to organize this thoughts you could create an internal `script`. A series of pseudocode instructions for your brain, sequentially ordered so you can focus on analyze every step's complexity.

Let's use the previous example again to apply this strategies:

```js
const result = fetch("pokemon api");
// Question: do I need credentials for this API?
// Question: what API version will we be using?
if (result.error) {
  // Question: how should it react in case of error?
  return false;
}

const { data } = result;

const renderResult = render(data);
const responsiveRender = addResponsiveness(renderResult);

const finalResult = display(responsiveRender);

return finalResult;
```

> What other questions can you ask to the PM for the steps `render`, `addResponsiveness` and `display`? Comment below as if it would be your task.

## 3. Set clear expectations and keep communication open

Many teams already have this sorted out, in that case you will need to learn how to use this channel properly, otherwise you can propose a way to give and receive feedback.

When will the task evaluation be ready? In 2 hours? 4 hours? tomorrow morning?
To be honest, unless your PM explicitly asked for that, it doesn't matter if do it at light speed, but it's more important to be accountable.

Again, with enough experience you will be able to make this almost in real time, but you do remember: you must be clear about next steps and technical recommendations.

## Summary

1. **Do ask questions!**, probably when you think you don't need any clarification it's because you don't completely understand the problem. That is a good starting point.
1. **Think "programatically"**, ok, you are not a robot, but you can think like one of them. Structure your ideas as a mental script.
1. **Set clear expectations and keep communication open**, they must know when and what will you bring back to the table. Keep the PM (and/or client) up-to-date and in-the-loop as much as possible.

Comment below if you've been involved in this kind of situation when somebody ask for something and you kinda overwhelmed yourself. Let's make therapy together.

Thanks for reading.