Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 54 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
## Pro / Contro, Skills necessarie e Mindset.
Ovvero: tutto quello che vorresti sapere PRIMA di iniziare una carriera nel mondo dello sviluppo Software e capire se è fatta per te.

> [English version](./docs/english.md)

[Skills](#skills-1)
-----------------

Expand Down Expand Up @@ -29,11 +31,15 @@ Ovvero: tutto quello che vorresti sapere PRIMA di iniziare una carriera nel mond
- [Non è per forza necessaria una laurea (ma fa comodo)](#non-è-per-forza-necessaria-una-laurea-ma-fa-comodo)
- [Non sono necessarie grandi competenze matematiche (solo in determinati ambiti)](#non-sono-necessarie-grandi-competenze-matematiche-solo-in-determinati-ambiti)
- [Si può lavorare agevolmente da remoto](#si-può-lavorare-agevolmente-da-remoto)
- E' una crescita continua
- Si sperimentano tecnologie nuove
- Si può crescere professionalmente ed ambire a posizioni importanti
- C'è sempre richiesta
- Non serve una certificazione
- [E' una crescita continua](#è-una-crescita-continua)
- [Si sperimentano tecnologie sempre nuove](#si-sperimentano-tecnologie-sempre-nuove)
- [Si può crescere professionalmente ed ambire a posizioni importanti](#si-può-crescere-professionalmente-ed-ambire-a-posizioni-importanti)
- [C'è sempre richiesta di developer nel mercato del lavoro](#C'è-sempre-richiesta-di-developer-nel-mercato-del-lavoro)
- [Non serve una certificazione specifica](#non-serve-una-certificazione-specifica)

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

## Contro

Expand All @@ -53,6 +59,10 @@ Ovvero: tutto quello che vorresti sapere PRIMA di iniziare una carriera nel mond
- Non si lavora tendenzialmente mai sulle cose per cui abbiamo studiato all'inizio
- Senza cambi di ambiente, potrebbe risultare noioso

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

## Tools Must-Have

- Git
Expand All @@ -79,6 +89,10 @@ Da qui, attraverso la logica, si potrà arrivare più facilmente alla soluzione
Sia che lo sviluppatore lavori in team, remoti o on-site, o che lavori in modo indipendente, lo sviluppatore deve avere un buon grado di lavorare in modo autonomo, senza richiedere continuamente l'intervento di terze persone per proseguire nel proprio lavoro.
Persone che devono essere seguite, che hanno bisogno di costante supporto e sostegno, e che non progrediscono senza interventi esterni, a tendere risultano diventare un problema per gli ambienti in cui lavorano.

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

### Capacità relazionali

Uno dei luoghi comuni riguardo i developer è che siano persone solitarie e chiuse.
Expand All @@ -91,6 +105,9 @@ Non è richiesto che uno sviluppatore conosca tutto a memoria: Google, Github e
Ma attenzione, è molto facile cadere nel tranello di applicare soluzioni sbagliate, o peggio ancora a caso senza capirne bene il funzionamento.
Questo vuol dire sapere padroneggiare il nostro lavoro, sapere esattamente di cosa abbiamo bisogno, e di conseguenza fare le ricerche giuste.

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

# Mindset

Expand All @@ -111,6 +128,10 @@ I migliori sviluppatori sono coloro che hanno sperimentato tanto, e sbagliato ta
Dagli errori, e dal confronto, nascono le competenze in questo settore.
Non è solo conoscenza, ma è moltissimo esperienza.

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

### Non sentirsi mai "arrivati"

Il momento in cui un developer pensa di conoscere bene una cosa, è il momento in cui deve rimettersi a studiare.
Expand All @@ -124,6 +145,9 @@ La tecnologia avanza ad una velocità tale per cui ogni giorno esistono soluzion
Evitare di provare qualcosa solo per la paura dell'ignoto equivale a non voler migliorare se stessi.
Questo non vuol dire correre dietro a qualsiasi novità o moda, ma vuol dire agire consapevolmente nell'ottica di un miglioramento continuo.

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

# Pro

Expand All @@ -144,6 +168,10 @@ Questo aspetto sconvolge molte persone. Tantissimi hanno paura di sbagliare, di
In realtà, sbagliando si migliora, perchè permette di imparare da ciò che abbiamo fatto male in precedenza, apportando i giusti correttivi.
Abbracciando l'errore riusciamo ad imparare più velocemente.

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

### Non è per forza necessaria una laurea (ma fa comodo)

Uno dei più grossi luoghi comuni di questo ambito.
Expand All @@ -160,6 +188,10 @@ Gli ambiti in cui è sicuramente utile (ma non necessaria) avere una Laurea sono
- Game Development
- Gestione Server / Reti

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

### Non sono necessarie grandi competenze matematiche (solo in determinati ambiti)

Un altro enorme luogo comune.
Expand All @@ -177,8 +209,20 @@ Durante la pandemia del 2020, il mestiere del Developer è stato quello che meno
Coloro che già facevano questo mestiere erano già abituate a comunicare e lavorare online. Per loro non è stato un problema farlo da un altro luogo.
Questo apre possibilità per tutti, anche per chi vive al di fuori delle grandi città o metropoli, di lavorare agevolmente.

- E' una crescita continua
- Si sperimentano tecnologie nuove
- Si può crescere professionalmente ed ambire a posizioni importanti
- C'è sempre richiesta
- Non serve una certificazione
### E' una crescita continua


### Si sperimentano tecnologie nuove


### Si può crescere professionalmente ed ambire a posizioni lavorative importanti


### C'è sempre richiesta di developer nel mercato del lavoro


### Non serve una certificazione

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>
221 changes: 221 additions & 0 deletions docs/english.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@

# Galactic Guide for Future Developers.
## Pros/Cons, Skills Needed, and Mindset.
That is: everything you'd want to know BEFORE you start a career in Software Development and figure out if it's right for you.

[Skills](#skills-1)
-----------------

- [Logical Thinking](#logical-thinking)
- [Ability to work independently](#ability-to-work-independently)
- [Analytical and problem solving skills](#analytical-and-problem-solving-skills)
- [Interpersonal skills](#interpersonal-skills)
- [Solution-finding skills](#solution-finding-skills)

[Mindset](#mindset-1)
-----------------

- [Spirit of adaptation](#spirit-of-adaptation)
- [Habit of "navigating by sight"](#habit-of-navigating-by-sight)
- [Not being afraid to make mistakes](#not-being-afraid-to-make-mistakes)
- [Curiosity and hunger for learning](#curiosity-and-hunger-for-learning)
- [Open-mindedness](#open-mindedness)

[Pro](#pro-1)
-----------------

- [Extremely creative](#extremely-creative)
- [You learn everyday](#you-learn-everyday)
- [Every situation is training](#every-situation-is-training)
- [You don't necessarily need a college degree (but it comes in handy)](#you-don't-necessarily-need-a-college-degree-(but-it-comes-in-handy))
- [Great math skills are not necessary (only in certain areas)](#great-math-skills-are-not-necessary-(only-in-certain-areas))
- [You can easily work remotely](#you-can-easily-work-remotely)
- [It's continuous growth](#its-continuous-growth)
- [You can experiment with new technologies](#you-can-experiment-with-new-technologies)
- [You can grow professionally and aspire to important positions](#you-can-grow-professionally-and-aspire-to-important-positions)
- [There is always demand of developers in the work market](#there-is-always-demand-of-developers-in-the-work-market)
- [You don't need a certification](#you-don't-need-a-certification)

## Cons

- You will constantly live with imposter syndrome
- Requires continuous training
- Never mentally break away
- You will never be happy with yourself and the code you wrote yesterday
- You are constantly measuring yourself against unknown problems
- You lead a predominantly sedentary life
- It can be alienating
- Not training yourself is equivalent to doing a normal office job
- Without guidance you get lost very easily
- At day 0 one is unclear of how vast this world is
- There is a lack of time to learn in depth
- One realizes late that there is so much to learn
- You never do just one thing
- One never tends to work on the things we studied for in the beginning
- Without changes of environment, it could be boring

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

## Must-Have Tools

- Git
- Kanban Boards
- Text Editors or IDE
- Bash

# Skills

### Logical thinking.

Undoubtedly the queen feature.
Through logical thinking the developer solves all problems that come before him.
Approaching a problem by applying logic, solving it first through reasoning, helping with diagrams or pseudo-code, without even writing a line of code, is the characteristic that enables developers to succeed in solving very complex situations, and to be clear about how to start from point A and reach point B.

### Analysis and problem solving skills.

Connected to the previous point is the ability to analyze and solve problems.
Rarely is the developer faced with simple, immediately solvable situations. More often than not, it is necessary to start with a problem, break it down into small pieces, then carry out a thorough analysis of it down to the smallest detail.
From there, through logic, it will be easier to arrive at a solution to each individual task.

### Ability to work independently.

Whether the developer works in teams, remote or on-site, or works independently, the developer must have a good degree of ability to work autonomously, without continually requiring the intervention of third parties to continue in their work.
People who need to be supervised, who need constant support and backing, and who do not progress without outside intervention tend to turn out to be a problem for the environments in which they work.

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

### Relationship skills.

One of the common misconceptions about developers is that they are reclusive and closed people.
Beyond the character aspects, it is necessary for any developer to be able to communicate in the best way possible in order to make their own work, and that of others, run more smoothly.
A developer who is unable to explain a solution to a problem, or how his or her code works, or who, even worse, does not make himself or herself available to other team members, becomes a critical element that risks undermining the success of projects.

### Solution-finding skills.

It is not required that a developer knows everything by heart-Google, Github, and Stackoverflow are our best friends.
But beware, it is very easy to fall into the trap of applying the wrong solutions, or even worse, at random without really understanding how they work.
This means knowing how to master our work, knowing exactly what we need, and consequently doing the right research.

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

# Mindset

### Spirit of adaptation

This is a recurring point in various forms.
Adapting to different situations is definitely a key characteristic of becoming a good developer.
Challenges and contexts are always different; being able to adapt quickly to new realities and situations allows you to remain productive at all times.

### Habit of "navigating by sight"

Tied to the spirit of adaptation, very frequently the developer has to delve into areas of which he has no particular knowledge, has to measure himself against situations never seen before, in which all the skills mentioned become important in order not to feel lost.

### Don't be afraid to make mistakes.

What we write are nothing but bits. We can always correct and go back.
The best developers are those who have experimented a lot, and been wrong a lot.
From mistakes, and from comparison, comes expertise in this area.
It is not just knowledge, but it is a lot of experience.

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

### Curiosity and hunger for learning

The point at which a developer thinks he or she knows something well is the point at which he or she needs to put himself or herself back to study.
There is no point at which you can say you know everything you need.
What we know today may not be needed tomorrow.
Stopping learning is the best way to stay away from the present.

### Mental Openness

Technology advances at such a speed that every day there are new solutions to a problem we had before.
To avoid trying something just because of fear of the unknown is tantamount to not wanting to improve oneself.
This does not mean running after every novelty or fad, but it means consciously acting with a view to continuous improvement.

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

# Pros

### Extremely creative

Writing code is one of the most creative activities, more so than you might imagine.
Through software one can solve concrete problems, in ever-changing ways, despite the fact that from the outside the value of what is being done is hardly perceived.
The beauty of programming is to invent a way to solve problems in everyday life.

### You learn every day.

Each day constitutes a new challenge to achieve. A new requirement, a new goal to achieve.
Every day is suitable for learning a different way to solve a problem and improve yourself.

### Every situation is training.

This aspect upsets many people. So many are afraid of making mistakes, of doing things not the way it should be done.
Actually, by making mistakes we get better, because it allows us to learn from what we did wrong before, making the right corrections.
By embracing the mistake we are able to learn faster.

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

### A degree is not necessarily necessary (but it comes in handy).

One of the biggest clichés in this area.
From the outside, it might seem that to do a concept job, where you deal with a lot of technical situations, you can only do it if you have a college degree.
Or because in job offers the presence of a college degree is often required.
In reality, especially in the Web field, it is practically never required.
In some very specific areas, the degree allows for ancillary knowledge (such as Mathematics, we will see later) and forma mentis, but in fact for the overwhelming majority of cases, one can safely work without a degree.
What matters most is the ability to approach problems, solve them logically and accordingly through programming.

The areas in which it is definitely useful (but not necessary) to have a Bachelor's degree are:
- Data Science
- Computer Vision
- Machine Learning / Artificial Intelligence
- Game Development
- Server Management / Networks

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>

### No great mathematical skills required (only in certain areas).
Another huge cliché.
Mathematics is (almost) never necessary.
We can identify areas where Mathematics is needed in this list:
- Data Science (Linear Algebra, Probability and Statistics)
- Machine Learning
- Artificial Intelligence
- Game Development (trigonometry)
- Low-Level Programming

### You can easily work remotely

During the 2020 pandemic, the Developer profession was the least affected by the situation.
Those who were already in this profession were already used to communicating and working online. It was no problem for them to do it from another location.
This opens up possibilities for everyone, even those who live outside of large cities or metropolises, to work easily.

### It's continuous growth


### You experiment with new technologies

### One can grow professionally and aspire to important positions


### There is always demand of developers in the work market


### You don't need certification

<div align="right">
<b><a href="#indice">↥ Back To Top</a></b>
</div>