🪄 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
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
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
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 ☺️
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:
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.
+
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
+
Please, avoid adding weak password policies to your system.
Here's a short thread with some tips 🧵
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.
+
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`.
+
✏️ 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.