rina 💻 Profile picture
Dec 13 28 tweets 5 min read
COMO DESENVOLVER SOFTWARES MELHORES: dicas de quem programa há quase 6 anos

#studytwt #devtwtbr #collegetwt
1. tenha uma base sólida

muito se fala sobre ter "a base" para programar, mas o que isso quer dizer? na maioria das vezes, quer dizer ter uma boa lógica e saber técnicas que podem ser aplicadas em qualquer linguagem de programação
não posso ensinar vocês a terem uma boa lógica com uma thread, mas posso dizer o que ajuda: prática. façam muitos exercícios de programação, do simples ao avançado. recomendo sites como o beecrowd e o hackerrank para isso
as técnicas são mais fáceis porque eu posso listar as principais. são elas:

entrada e saída de dados
variáveis e tipos de dados
loops (repetição)
condicionais
funções (modularização)
estruturas de dados
arquivos e includes
orientação a objetos*
*nem toda linguagem tem suporte à orientação a objetos, mas as que a maioria começa tem
2. aprenda uma linguagem de programação programando

tentar aprender todas as coisas que eu listei e depois só começar a programar é pouco produtivo, pois tu vai esquecer de muita coisa ou não vai saber aplicar ela direito
por isso, recomendo que comece com programas simples, usando algumas coisas da lista apenas, pra depois ir incrementando e fazendo coisas maiores. não tentem fazer um site inteiro logo de primeira
3. entenda, pelo menos um pouco, de como um computador funciona e interpreta instruções

parece desnecessário mas é muito importante para fazer algoritmos melhores. não estou dizendo pra ir correndo aprender assembly, só pra buscar se informar sobre o assunto no geral
recomendo a playlist do crash course computer science, tem no youtube, mas não tenho certeza se tem legenda em português. o que nos leva a...
4. aprenda a ler em inglês

sim, existe material em português, mas tem MUITO mais coisa em inglês (e as vezes, se for algo mais específico, não vai haver conteúdo em português. acontece mais com erros pontuais)
5. aprenda a usar o google da forma certa

ele pode ser usado para buscar por documentações, exemplos, solução de erros etc. minhas dicas são:
- pesquise em inglês
- olhe a documentação oficial primeiro
- tente entender e aplicar para o que você precisa sem copiar e colar muito
6. não existe uma linguagem de programação "perfeita"

toda linguagem de programação tem seus pontos fortes e fracos. algumas são melhores pra certos assuntos e não para outros, por exemplo: python é bom para análise de dados, c++ para jogos, rust e c para sistemas operacionais
eu diria que a com a menor curva de aprendizado é python, mas isso tem um custo: tu vai sofrer se precisar ir pra outra linguagem depois, principalmente uma mais baixo nível como c. outra coisa, python é bem lento
7. entenda sobre complexidade de algoritmos

isso se chama big O notation. não precisa saber todos os detalhes, só coisas mais básicas, como por exemplo: 5 fors um dentro do outro não é uma boa ideia kkkkkk
8. escreva códigos legíveis

eu não estou dizendo para comentar cada linha. estou dizendo para criar códigos que podem ser entendidos sem muito comentário. comentários devem ser reservados para partes complexas, que requerem uma lógica mais avançada
como fazer um código mais limpo? bem, o principal é:

dar nomes que fazem sentido e não muito longos para variáveis e funções
modularizar o código
manter uma boa identação

aqui mais algumas coisas (do livro clean code) gist.github.com/wojteklu/73c69…
essas são dicas para algoritmos em geral. agora vou falar mais especificamente de engenharia de software
1. busque entender o que se espera do teu software

isso se chama análise de requisitos e é uma das partes mais importantes da engenharia de software. é sobre entender o que o cliente quer e, mais importante ainda, entender como fazer isso em código
provavelmente o "cliente" vai ser você, então aqui estão algumas coisas que tu pode se perguntar

o que eu quero que o meu software faça, em termos gerais? quais características ele vai ter, especificamente? como eu vou chegar nelas com código? quanto tempo preciso?
2. faça um produto simples e adicione features depois

após fazer uma análise dos requisitos, provavelmente você vai acabar com uma lista enorme do que o teu programa deve fazer. agora se pergunte: o que é o mínimo que eu preciso fazer para que isso seja usável?
o "produto mínimo" (minimum viable product ou MVP) é como se fosse a versão 1.0 do seu programa, e com cada update ele vai melhorando, com novas features, correção de bugs etc
uma nota sobre número de versões: digamos que temos um software em sua versão x.y.z

mudanças muito pequenas (bugfix, geralmente) aumentam o z
mudanças pequenas a médias aumentam o y
mudanças grandes aumentam o x
3. aprenda sobre versionamento com git

git (geralmente usado junto com github) é um sistema de controle de versões, que te permite editar o código e mandar ele pra um servidor pra ele ficar armazenado. quando você mudar esse código, pode reenviar ele e ele vai ser atualizado
isso também permite que você trabalhe em times. várias pessoas podem ter acesso ao código no servidor e mandar suas versões. o git consegue (geralmente) manusear as versões para que todas as alterações sejam feitas da maneira correta e todos possam ter acesso a elas
4. tenha um projeto grande e vários menores

por experiência própria, ter só um projeto grande é muito maçante, porque as vezes tu simplesmente não quer mais olhar para aquele código mas ainda quer programar. as vezes tu também pode querer testar algo novo sem afetar o projeto
projetos menores também significam menos comprometimento, é mais fácil largar um deles se tu não tem mais interesse

recomendo ter um projeto grande porque te dá uma sensação de propósito e é algo no qual tu pode trabalhar quando não sabe o que fazer
5. simples é melhor que complexo, complexo é melhor que complicado

acho que essa fala por si mesmo. tente sempre buscar soluções simples e coisas já feitas. não tem porque "reinventar a roda". linguagens como python principalmente tem muitas coisas já feitas em bibliotecas
sim eu fiz uma thread enorme, e daí?

• • •

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

Keep Current with rina 💻

rina 💻 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 @cinnamodev

Dec 15
1 like = 1 coisa q eu sou contra
1. pizza de lombo
2. vegano que so come comida crua
Read 30 tweets
Dec 15
enquetes conhecendo meus seguidores 😎
de onde vcs são?

like = fora do brasil
quantas línguas hablan? b1 e acima
Read 7 tweets
Sep 9
como ler mais rápido e entender melhor o que você lê em outro idioma

#studytwt #langtwt ImageImage
vou usar inglês nos exemplos mas as dicas se aplicam pra qualquer língua
1. leia materiais adequados para o seu nível

essa é meio óbvio, mas ainda sim precisa ser dito. pra quem é iniciante, recomendo histórias curtas feitas para quem está aprendendo a língua. pra quem tá no nível básico, pode começar a ler graded readers e livros bilíngues
Read 19 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 on Twitter!

:(