macabeus Profile picture
Feb 4, 2021 11 tweets 4 min read Read on X
🪄 Uma pergunta frequente é "como começar a programar?". Sei que muita gente já escreveu sobre isso, mas como essa pergunta ainda aparece, vou respondê-la em primeira pessoa, focando em como deu certo para mim. Espero que você possa aproveitar a experiência para se inspirar.
1/9
A primeira vez que "escrevi algum código" foi ainda criança, usando ferramentas bem visuais: Delphi e RPG Maker. É fantástica a empolgação em rapidamente ter um feedback do que estou criando, resolver puzzles e ter a sensação de poder mandar o computador fazer o que quero.
2/9 RPG Maker VX com o painel d...
Como primeiro passo, creio que o mais importante é criar gosto. Linguagens visuais e/ou educaionais como Scratch e Logo são voltadas para crianças, mas algumas graduações a usam. São úteis para o primeiro contato, para já ajudar a pensar em como se comunicar com o computador.
3/9 xLogo aberto com algumas es...
O que me fez migrar de Delphi/RPG Maker para uma linguagem textual foi querer colaborar num projeto opensource.
Sei que diversas pessoas aprenderam a programar de diferentes formas; conheço quem começou para fazer site de hentai, outro que foi para fazer warez, porém...
4/9
...o meu divisor de águas foi querer colaborar por 4fun no OpenKore - bot para o jogo Ragnarok, da qual gosto muito e é bem nostálgico para mim. Me sentir fazer parte da comunidade e ter feedback dos usuários a cada commit no SVN eram os meus motivadores para programar.
5/9 OpenKore aberto, mostrando ...
Então sempre quando me perguntam "como começar a programar?", eu sempre respondo para colaborar em algum projeto opensource, onde tenha uma comunidade para te apoiar e você se sinta motivado. Funcionou comigo e tenho esperança que dê também para um conjunto de outras pessoas.
6/9
No meu caso, eu já tinha um projeto em mente que queria colaborar, e você certamente já usa algum software opensource que gostaria de fazer parte. Mas se ainda não tiver ideia de onde ajudar, tem essa awesome list com vários projetos beginner friendly.
github.com/MunGell/awesom…
7/9
Não se acanhe se a sua colaboração não for aceita de primeira, ou se for simples.
O meu primeiro commit foi de tradução. E um dos primeiros commits um dev escreveu um textão explicando o que eu devia melhorar no código - e isso é bom, pois ele estava me ensinando de graça!
8/9
E essa é a minha historinha. Resumindo: os dois principais pontos para mim foram começar com uma linguagem visual, e em seguida fazer parte de uma comunidade opensource. Talvez para ti o mesmo possa da certo.
Fim da thread. Espero que esses tweets tenha te inspirado. Valeu 🎉
9/9
Apendando na thread um tweet a mais.
Queria aprender C#, e então decidi colaborar no Ryujinx, um emulador de Nintendo Switch.
Assim abri alguns PRs - e um deles foram citados no release notes.
Isso é bem motivador, pois é algo útil para alguém e fiz parte do release ☺️ Image
Apendando outro tweet.
Como disse, colaborar num projeto opensource é excelente para aprender a programar. E se for algo divertido, tal como um jogo, melhor ainda!
E temos esse game, bem completo, comunidade ativa, e muitas oportunidades mais ajudar:

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with macabeus

macabeus Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @bmacabeus

Jun 18, 2022
Como obtive o Cartão de Cidadão de Portugal com base no Estatuto de Igualdade de Direitos, também chamado de Tratado de Porto Seguro?

Thread explicando o passo a passo 🧵
Antes de tudo, vejamos os benefícios: em resumo, concede os mesmos direitos de um português (com algumas ressalvas).

Um dos principais é facilitar o crédito. Por exemplo, mesmo cartão de supermercado não da para ter só com residência, precisando do cartão de cidadão para tal!
+
Outro benefício é o burocrático.
Passa a poder assinar mais documentos na Junta da Freguesia (como ser testemunha num atestato de residência) e obter a chave móvel digital.

Em determinadas condições, você também passa a ter direitos políticos, podendo votar.
+
Read 14 tweets
Apr 20, 2022
CLT vs PJ 💥

Evito essa discussão por ser inócua em 99% das vezes... Porém, vou escrever uma simples thread com exercício mental para da ctrl+c e ctrl+v sempre que precisar.
+
Com CLT, ambas as partes são obrigadas a seguir um preset.

Você tem menos flexibilidade sobre o que quer ou não. Por exemplo, você é obrigado a ter FGTS, abidicando parte do salário mensal que só poderá usar tempos depois.
+
Já com PJ, ambas as partes tem uma maior flexibilidade para decidir o que querem ou não.

Como regra geral, só vale a pena assinar contrato PJ se o salário for consideravelmente maior que CLT, exatamente pelas perdas de benefícios impostos nos preset da CLT
+
Read 10 tweets
Apr 15, 2022
Please, avoid adding weak password policies to your system.
Here's a short thread with some tips 🧵 Image
First: enforce numbers, upper and lowercase, special characters... aren't really useful. It isn't either a good way to estimate the password strength.
It only gives a false sense of security.

It misleads since it says that a password is "strong" even when it's easy to crack it
+
A better approach is to check how much time the password can be cracked, which libraries like zxcvbn and derived do.

Since zxcvbn itself is abandoned, inspired projects were developed. One of them is zxcvbn-ts, which is used on big projects such as phpmyadmin and zulip.
+
Read 6 tweets
Apr 6, 2022
@apertaoesc @coproduto @_StaticVoid Considere:

const arr = ['foo', 'bar']
const obj = { 'foo,bar': 42 }

Todas essas linhas são equivalentes:
obj[arr] // 42
obj[arr.toString()] // 42
obj[arr.join()] // 42

Note que a concatenação é feita com vírgulas.
+
@apertaoesc @coproduto @_StaticVoid Isso deve-se porque o `toString` equivalente a chamar o `Array.prototype.join` passando nenhum argumento, conforme consta na spec.
+
@apertaoesc @coproduto @_StaticVoid Além disso, ao usar o `obj[key]`, se `key` não for um tipo primitivo, o JS vai transformá-lo em um.

Como objetos não são primitivos, será chamdo implicitamente o método `toString` nele. Que como vimos acima, chama o `join`.
+
Read 6 tweets
Nov 28, 2021
✏️ Toda linguagem tem propósito de ser útil em alguma coisa? Bem... já ouviu falar de *linguagem esotérica*? Vejamos sobre nessa divertida thread!
1/7
"Linguagem esotérica" são linguagens de programação cujo único intuito é ser divertida, mind-blowing, por em prática alguma ideia bizarra, por mais inútil que seja.

Por exemplo, Piet é uma linguagem esotérica que se programa usando pixels. Abaixo está um hello world em Piet

2/7
Piet está na categoria de linguagem esotérica não-textual, uma vez que o código é uma imagem.

Outra categoria são as bidimensionais, tais como MarioLANG, da qual o cursor percorre um texto que se parece (?) com as fases de Mario.

3/7
Read 7 tweets
Nov 11, 2021
"Propina" em português de Portugal é "mensalidade" (de escola/faculdade/curso)
Enquanto algumas palavras tem um "c" a mais, como "activo", outras não tem, como "infetar"
Alguns países tem nomes diferentes em Portugal, como Irão
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(