Executando verificação de segurança...
7

[Dúvida] Como programadores experientes conseguem ser tão ativos em projetos Open Source e fóruns?

Como estudante de programação, já ouvi muitos conselhos de programadores mais experientes. Uma das dúvidas mais comuns é: como aprender e como ser bom? Pelo que entendi, a resposta para essa pergunta é praticar e estudar. Não existe uma maneira única e correta de "ficar pronto" para o mercado. O caminho é aprender o máximo possível, procurar um emprego e continuar trabalhando e estudando.
Até aí, tudo bem, faz muito sentido. Mas, como todos sabem, a quantidade de coisas para aprender e as oportunidades no mundo da tecnologia podem ser extremamente avassaladoras, deixando iniciantes cada vez mais perdidos entre pedir dicas e decidir o que estudar e o que praticar (basicamente o que estou fazendo aqui).
Por isso, decidi me colocar na mentalidade de que já sou um programador e tentei aplicar a estratégia fake it until you make it.
Deu muito certo e muito errado ao mesmo tempo. Explico: comecei a realmente programar melhor e me sentir mais confiante. Consegui desenvolver projetos que antes não imaginava serem possíveis com o meu conhecimento. Aprendi que não devemos escolher apenas projetos nos quais já sabemos exatamente como fazer tudo. Afinal, que aprendizado ganharíamos com isso? Essa abordagem me ajudou bastante, e sinto que aprendi mais em quatro meses seguindo essa filosofia do que em dois anos e meio de faculdade e um ano de cursos diversos.
Seguindo essa mentalidade de que já sou um programador, decidi começar a participar de fóruns (o que me trouxe até aqui) e, quem sabe, até me arriscar contribuindo para projetos Open Source. Foi aí que perdi o chão e voltei a me sentir perdido e sobrecarregado com tanta informação. Existem muitos projetos e discussões paralelas, e parece impossível acompanhar tudo e ainda desenvolver um projeto pessoal ou profissional.
Gostaria de entender como algumas pessoas conseguem fazer tudo isso: estão sempre estudando novas tecnologias em suas áreas, participam de fóruns, ajudam e dão apoio a iniciantes e ainda contribuem para comunidades Open Source. Como vocês conseguem gerenciar tudo isso?
Se não acharem muito invasivo, poderiam compartilhar um pouco sobre a rotina de vocês? Isso ajudaria nós, iniciantes, a entender o momento da vida em que vocês estão e como conseguem equilibrar todas essas atividades.

Carregando publicação patrocinada...
2

@HenriqueMena, quem tenta ser bom em tudo, não fica bom em nada.

Em grandes empresas tudo é setorizado e cada pessoa tem sua responsabilidade e função.

Você precisa ter entendimento de como cada área do ecossistema funciona, mas não precisa ser especialista em todas.

Quando se trabalha em empresas e projetos grandes, você se depara com problemas grandes que, em alguns casos, poderiam ser resolvidos se a dependência X tivesse uma funcionalidade esperada. Como se soluciona? Colaborando no projeto Open Source. Resolve seu problema e ajuda a comunidade.

Não pense que desenvolvedores experientes vagam pelo github procurando issues open source para resolver, eles só querem resolver seus próprios problemas.

Falo por experiência própria Software Engineer no Mercado Livre.

1

Ah, isso esclareceu bem minha dúvida, e faz muito sentido. Que legal entender como funciona essa dinâmica. Agora, esse processo de coloborar no projeto Open Source acontece em horário de trabalho ou o desenvolvedor faz isso fora do horário? Por um lado ele está desenvolvendo para solucionar um problema da empresa, mas por outro lado ela está trabalhando em um projeto que não pertence a empresa. Como funciona esse dinâmica? A empresa pagar horas de desenvolvimento para um projeto Open Source é muito massa! Esse tipo de coisa que e atrai na área!

1

Cara, eu super entendo essa sensação de estar perdido com tanta coisa pra aprender e acompanhar. Acho que todo mundo que já programou por um tempo passou por isso em algum momento. O mundo da tecnologia é gigante e sempre tem algo novo rolando, então a real é que ninguém consegue estar em tudo ao mesmo tempo—e tá tudo bem.

O que tem me ajudado é focar no que realmente faz sentido pra mim naquele momento. Tipo, Open Source é incrível, mas você não precisa contribuir de cara com um sistema gigante. Começar com pequenas melhorias em documentação ou correções simples já é um baita aprendizado. Fóruns são ótimos também, mas é impossível ler e responder tudo. O segredo é participar quando você sente que pode agregar, sem aquela pressão de "preciso estar ativo o tempo todo".

E sobre rotina… cada pessoa encontra um jeito que funciona melhor. Tem gente que separa um tempinho fixo pra estudar, programar projetos pessoais e interagir com a comunidade. Outros fazem isso mais espontaneamente, sem um plano rígido. O importante é achar um ritmo que não te deixe exausto e que ainda te mantenha motivado.

No fim, é um jogo de longo prazo. Vai devagar, aproveita a jornada e não se cobra tanto. E sempre que rolar uma dúvida ou um momento de desânimo, lembra que tá todo mundo no mesmo barco, aprendendo um pouco mais a cada dia. 🚀 HenriqueMena, dá uma olhada nas minhas publicações no TabNews

1

Primeira coisa. Não importa quanto conhecimento você tem, você precisa continur aprendendo. Linguagens mudam, perdem o interesse, são destronadas. E as vezes insistir na pior opção é mais custoso que começar do "zero".
Quando você desenvolve projetos proprios, você é o programador e o QA. Ou seja, você desenvolve e analisa se o codigo esta bom.
Ao se envolver com repositórios maiores, você tem a chance de aprender a organizar seu codigo de forma mais eficiente.
Quando você se envolve e vem na sua direção milhares de coisas que você sequer sabia que existiam, você esta topando com o mundo real. Bem vindo. Essa é uma chance de ouro para você aprender. Aprenda o básico de cada uma, e continue se envolvendo no projeto. O foco e ser um programador melhor, e é exatamente isso que vai acontecer.
E outra dica. Não va fundo demais. Você precisa de um tempo para você. As vezes parece que se você dedicar horas para aprimorar um projeto, você vai aprender mais rapido, mas a realidade é que isso não é uma regra. O aprendizado organizado supera o esforço excessivo. Aprender a dosar é uma arte.

1

Interessante os questionamentos feitos, e a conversa esta ao redor das escolhas. O primeiro ponto que vou levantar é que seguidores é a chave para muitas pessoas, porque isso paga as contas não seja um, trilhe o seu próprio caminho.

Cuidado com as amizades, a vida é muito mais do que parece e principalmente quando sentamos em frente a um computador ou passamos horas em outros tipos de telas, a sensação é de que você esta desperdiçando sua vida com coisas que não tem relevância, e isso pode te levar a uma falta de equilíbrio, mas é aqui que podemos transformar o chumbo em ouro.

Você precisa fazer dinheiro o suficiente para alcançar uma certa estabilidade em sua vida, para que as realizações pessoais sejam alcançadas e que você coniga dar atenção para objetivos mais nobres.

Com isso, caneta e papel com direcionamento as áreas que você almeja, podem revelar muito mais de você do que imagina, aprender a resolver um problema sem a necessidade de pesquisa ou conversando diretamente com pares, referências e que todos eles sejam confiáveis para que você se sinta seguro de avançar, valem mais do que 10h, 1 semana ou anos de codificação em um projeto.

O mundo mudou e por consequência a internet também, então procurar eventos que conectem você a pessoas melhores que você é o que vai mudar o jogo, mas precisa ter cuidado, não faça nada anti-ético ou moralmente inadequado porque pode custar a sua saúde mental.

Foque em fazer uma coisa, mas uma coisa muito bem, quando alcançar o seu primeiro montante, foque em aperfeiçoar e buscar habilidades que só você vai ter, isto torna o seu trabalho único, porque afinal de tudo saber como a história foi contada te da uma vantagem enorme, que chega a parecer ilegal, e não deixe isso te consumir e achar que é um impostor, cuide de você e dos outros, o pensamento construitivo e um bom posicionamento sobre determinados assuntos, evita frustrações.

E por último, não confie em qualquer pessoa que seja se não houver um vinculo forte e expectativas claras, leia as entrelinhas.

Em resumo, porque o texto pode parecer confuso, muitos destilam veneno na internet, porque estão a distância e não podem sofrer imediatamente as consequências mas sofrem porque nada neste mundo é mau projetado, talvez não tenham chego a devida compreensão, mas existe muito mais do que imaginamos quando olhamos sem profundidade.

Erre rápido e corrija, aprenda com os seus e os erros dos outros, não ignore as ferramentas que tem a mão, enquanto uns pregam que não devem usar X, Y, ou Z estão usando direta ou indiretamente, só não tomaram conhecimento, não entenda esta mensagem como algo duro, mas fique forte e saiba que você é o futuro, só não deixe isso te desviar do seu propósito.

1

Atualmente tenho 4 anos de experiência trabalho com 3 linguagens, minha linguagem principal é a segunda linguagem que aprendi, então não é a que mais tenho domínio mas paga as contas.

Teve uma pergunta sobre rotina.
Primeiro entenda que o seu momento de trabalho não é exatamente o meu momento.

Mas antes um breve parêntese...Quando você é Júnior precisa de experiência, quanto mais projetos melhor (não estou falando de estudo e sim de projetos reais).
Em um projeto o mais importante é a regra de negócio. Entender ela bem te fará ter destaque se souber como utilizar esse conhecimento.
Um Júnior gasta mais tempo estudando, procurando como resolver um problema ou como implementar determinada coisa.
Um Pleno/Intermediário gasta mais tempo lendo o código e pensando qual a forma de implementar que irá facilitar sua vida no futuro.
Veja que o tempo investido pra cada um é diferente.

Agora voltando a rotina e ligando os pontos. Me considero pleno em duas das 3 linguagens que trabalho. Quando preciso de trabalhar com a terceira tenho que pesquisar bem mais, não dá pra sair implantando direto e preciso de ficar pesquisando coisas que não lembro ou não enraizaram muito bem.

Não participo de projetos OS/SL porém participo de fóruns não muito ativamente.
No momento que me encontro 3 coisas são importantes:

  • cuidar da minha saúde: ter horário pra exercitar, descansar adequadamente e relaxar com a família.
  • realizar network: fóruns são excelentes lugares pra encontrar pessoas com contextos diferentes.
  • Realizar meu trabalho com excelência: vulgo não perder meu emprego. Isso exige cobrir os gaps do que ainda não aprendi ou ainda o que sei pouco, isso inclui pesquisar sobre o assunto e estudar/praticar o que estudei.

Apesar das 3 coisas serem importantes não estudo todos os dias, não tenho descanso adequado todos os dias (procuro ter), não participo de foruns todos os dias, também não trabalho todos os dias (final de semana serve pra descansar).

Boa sorte na sua jornada e espero que encontre o equilíbrio que funcione pra você.
No começo é difícil, depois você acostuma e por fim descobre o que é importante pra você e prioriza melhor.

1

Muita coisa em programação voce decora e começa a fazer rápido.

Os cursos mimi feito sob medida pra enzo omite isso, te vendendo um mundo facil.

Mas a verdade é que de tanto estudar e usar ferramentas voce decora conceitos e APIs e acaba fazendo e entendendo tudo muito rapido, coisas que um junior precisa ficar consultando doc, stack over flow, chatgpt, aprendendo enquanto faz e perde tempo demais.

Chega um ponto que você ja sabe tudo de determinada situação, como uma feature de uma lib, ou uma tecnologia.

Importante, voce se torna ativo em coisas que você esta usando ou estudando ativamente, não é essa palhaçada de 'ah deixa eu separar um tempo aqui pra me atualizar e participar de uma coisa aleatória, por que é bom pra mim'. Isso é viajem na maionese, ngn tem tempo sobrando assim.

Pra isso você tem que fazer coisas realmente desafiadoras, participar de soluções complexas, se envolver em trabalhos difíceis. Sabe aquela implementação que vc so copia e cola e nem sabe onque realmente ta rolando, so sabe superficialmente que funciona? pois é, num trabalho complexo isso nao basta. Ou o seu trabalho te força a escovar bit e vc acaba ficando ativo nesses foruns e tecnologias ou voce ta assistindo muito Marvel, achando que di nada na sua garagem vai fazer uma maquina do tempo...

O que passa disso é fantasia de 'se voce é junior e não trabalha na gringa tá deixando dinheiro na mesa ...'

1

Como aprender é a grande questão. Eu não sei responder. Sei que um monte de gente que também não sabe fala sobre isso. Tem gente que estuda o assunto e não sabe muito. Mas tem material e tem gente que pode ajudar de verdade. Eu espero poder ajudar um pouco com propriedade um dia, com o apoio de outras pessoas para não falar besteira. Vai demorar, farei com o máximo de responsabilidade possível. Eu sei que o pessoal não gosta muito desse tipo de resposta, querem uma mentira qualquer.

Muito menos sei dizer como ser bom, provavelmente é aprendendo bem, praticando muito. Tenho quase certeza que é praticando o acerto e não o erro, como muitas pessoas fazem. Não há dúvidas que depende de muita dedicação e bem direcionada.

Eu diria que tem alguns fatores que a pessoa não controla. Já vi estudos que mostram que, entre outras coisas e não de forma única e excludente em todos os casos, DNA é um fator. É difícil para alguém com ascendentes que não aprenderam bem melhorar muito, mas tem várias exceções.

O mesmo vale, e tem estudos mostrando que até o pré-natal bem feito dessa pessoa vai influenciar se ela terá mais chances de ser tudo isso. E claro que o crescimento com acompanhamento adequado, alimentação, educação básica em casa, que é outro fator dos pais ou responsáveis que é diferente do DNA, a educação formal inicial que recebe, os incentivos, os traumas que passa, e uma quantidade enorme de variáveis que eu não saberia descrever.

Claro que a pessoa pode fazer a diferença por conta própria também, para alguns será mais fácil ou mais difícil. Alguns estão em condições tão precárias que nem na Suíça, Japão ou outro lugar forte ela poderia se desenvolver tão bem, embora teria um avanço considerável. Da mesma forma que alguém no interior da Etiópia ou Piauí ainda pode se destacar muito apesar das dificuldades. De outro lado alguém que nasce em berço de ouro de pais de extremo sucesso em tudo pode ser um idiota e estragar toda sua via e de outras pessoas.

Tem pessoas que nascem com limitações diversas, físicas ou mentais, outros podem nascer com uma vantagem em algo assim. Muitas vezes o segredo é achar no que a pessoa obtém melhor desempenho, onde ela consegue ser feliz, que é algo que não pode ser desprezado. Eu lamento muito pelas pessoas que precisam fazer qualquer coisa para sobreviver mesmo que as deixe infelizes ou cause problemas piores, isso é uma das injustiças da vida.

Sem a base todo o resto fica fraco, e pode nunca mais recuperar. Deveria ser crime de lesa-humanidade a forma como a sociedade e governos atendem as crianças e tiram suas chances de prosperar, a não ser que ela tenha tudo uma sorte em vários sentidos. Quase nada é definitivo.

Cada pessoa é diferente. Não dá para se cobrar ser o que não foi feito para você. Mas não dá para desanimar e "deixar a vida te levar", você deve buscar o melhor. Começando aprender a aprender, de forma favorável, produtiva.

Eu não posso ajudar tanto porque eu não fiz isso bem, eu tenho minhas limitações. Mas sei que tenho que aprender mais e mais, de tudo um pouco, não posso ficar bitolado, não posso só decorar receitas de bolo, tenho que raciocinar, cria meu próprio conhecimento, me conhecer, treinar, melhorar, ouvir as pessoas certas, observar, adaptar, avaliar, rever o caminho, não desistir, não desanimar, focar, priorizar manter a mente aberta, ser criativo, ser curioso, querer se aprofundar, não pular etapas ou procurar o caminho mais curto, sem prestar atenção, consumindo uma coisa atrás da outra em 2x, tenho que me desafiar, me estimular, não ter medo errar, mas não aceitar o erro como normal, tenho que me comparar com outras pessoas para ter parâmetros, mas não posso fundir minha cabeça com isso. Aceitar suas limitações é algo positivo também.

Minha percepção é que gostar do que está fazendo ajuda muito, por isso destaco aqui. Sentir evolução também ajuda, por isso não pode pular etapas e tem que ter base sólida. Como uma pessoa vai se dar bem com programação quando ela não entende a matemática, e pior, vai ensinar os outros que não precisa de matemática para programar, quando programação é matemática. Como ela vai aprender se ela não entende realmente um texto que ela está lendo, ou não consegue fazer uma pergunta coerente que faça sentido e instigue alguém responder?

Quem pode e não consegue fazer tudo isso precisa de ajuda profissional especializada.

A sua descrição mostra que é possível se fortalecer, mas que há o risco de ficar forte do jeito errado.

A sua percepção que tem informação demais é correta, é uma habilidade fundamental no século XXI saber selecionar isso, provavelmente mais que saber usar a IA. E aceitar que vai perder algumas coisas.

Se não deu ára entender, faça o oposto do que a maioria faz e fala para você fazer, porque a maioria não consegue isso que você deseja.

O resumo de tudo é alqaeida (gastei todo meu árabe, gaste o seu pra entender o que eu falei). Tem gente que nem saberá ou terá vontade de ver o que é isso. Sem isso fica difícil, trabalhoso, caro, os resultados nunca serão os melhores, mas ainda dá pra fazer algo.

Não tem milagre, não acho que tenha técnica específica, é natural quando a pessoa treina isso a vida toda, é um pouco um dom (não gosto tanto da palavra). Tem que fazer e melhorar, fazer mais e melhor de novo. Se a pessoa não consegue ir vendo isso sozinha provavelmente ela não vai conseguir., porque não tem receita de bolo que tantos querem.

Aliás a simples busca incessante por receitas de bolo, por respostas definitivas, por salvações especiais, por técnicas milagrosas, e afins, é um dos problemas que faz a pessoa ter dificuldade, porque desvia a pessoa do trabalho duro e que forma todo o raciocínio. Por isso a IA vai destruir a humanidade, não porque ela terá vida própria e matar todo mundo, porque ela vai entregar fácil o que tem que ser difícil. A IA é pior que a bomba que a pessoa toma na academia, o resultado vem, mas não é real. Na verdade na academia ainda vai exigir bastante esforço, por isso a IA é pior, ela lentamente, como a internet fez, a televisão e outras distrações fizeram com a mente das pessoas. Até o acúmulo de livros e outras fontes melhores é um problema hoje em dia.

Experiência só se adquire experimentando. Vai devagar e sempre, um passo de cada vez, subindo um degrau depois de estar firme no atual. Ou você achará o caminho ou perceberá uma limitação que pode ou não ser transposta, com ou sem ajuda especializada.

Um erro que vejo as pessoas fazendo é achar que ela pode ser um pouco de todo mundo. Note que cada um faz uma coisa e você provavelmente buscará fazer aquilo também, e tudo bem. Mas buscará o mesmo do outro, e de mais um outro, e de dezenas, centenas, milhares de pessoas. Aí é impossível. Não caia nessa armadilha.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

1

Cara, gostei da sua dúvida. Eu não me coloco como programador experiente, tá? Atualmente, tenho cargo de estagiário como dev (apesar de trabalhar como um júnior rs). Entretanto, espero poder contribuir de alguma forma com a sua dúvida.
Vamos ao seguinte:

Existem muitos projetos e discussões paralelas, e parece impossível acompanhar tudo e ainda desenvolver um projeto pessoal ou profissional.

Quem falou para você que tens que acompanhar tudo? Essa é uma das maiores furadas que podemos querer fazer... Não sei se já ouviu falar de Santo Tomás de Aquino, mas existe uma carta dele chamada "dezesseis conselhos sobre a virtude". O décimo sexto conselho é:

  1. Não busques o que está acima de ti.

Repare que todo estudioso - e isso inclui o que estuda programação - necessita de auto conhecimento. E tendo este auto conhecimento, você vai saber o que está ao teu alcance ou não. Você não precisa dar conta de tudo, como se fosse um sênior. Já percebeu que não é para seu nível ainda, correto? Se começou um projeto pessoal, não precisa dar conta dele e de contribuir para um projeto open-source. Precisa dar conta só do projeto que se propôs a concluir. Se está trabalhando já numa empresa a nível profissional, você não vai poder usar o tempo de trabalho na empresa para cuidar de um side-project...
A minha ideia aqui não é te criticar ou te dizer o que tem ou não que fazer, beleza? Mas concorda comigo que: por que você deveria dar conta de tudo, como um sênior - teoricamente - dá, se você ainda não está no nível de sênior? Não vale mais a pena tentar dar conta de poucas coisas e fazê-las bem feitas? Se sim, então por que está buscando algo que ainda está além das tuas capacidades? Buscando algo que ainda está acima de ti, vai acabar não conseguindo chegar onde está almejando. Ex: vai almejar tanto dar conta de coisas que a galera mais experiente dá conta, que vai ser incapaz de se tornar experiente, por querer agir como um experiente sem ter a experiência. Faz sentido?

Claro que devemos almejar chegar neste nível, se assim nos for possível! Mas não significa que será agora rs.

Novamente, não me coloco como um dev muito experiente. Mas é um conselho acho que sobre virtude de modo geral, que é possível se aplicar a qualquer caso. Espero ter ajudado de alguma forma!

-2

Meus 2 cents:

Existem perguntas simples de se fazer e um bocado complexas para reponder - temos o caso aqui.

Uma resposta simples seria: 42 - mas apesar de cobrir o assunto ficaria meio abstrato, entao vamos la:

  1. Primeiro voce tem de separar os que contribuem com projetos de open-source (OS) e/ou software livre (SL) basicamente em 2 tipos:

a) Quem eh contratado (pago) por uma bigtech para contribuir num projeto (ou eh autonomo/founder e o projeto tem relacao com seu trabalho direto),

b) Quem faz como trabalho voluntario.

Quem eh pago, nem precisa explicar muito - voce provavelmente gosta daquilo e te contrataram para isso justamente pela sua paixao, entao ta limpo (tem um bocado de detalhes mas generalizando ta coberto).

E o voluntario ?

Pode ser pelo ego/vaidade - veja, se voce se aventura num projeto OS/SL normalmente eh porque tem razoavel apreço (ou necessidade) por algum detalhe naquele projeto, entao existe a questao da ligacao emocional - quando escreve um driver para um dispositivo (p.ex.) se sente meio "pai" do modulo, tem um apego pelo codigo - naturalmente acaba dando manutencao porque esta emocionalmente ligado a ele.

Parece esquisito ? Pois eh, veja a discussao recente Rust vs C no kernel do linux - ainda que tenha questoes tecnicas envolvidas, nota-se claramente o emocional em cada um defendendo seu lado. Ate aqui no TABNEWS, que eh apenas um forum de debates o ego pega bastante (nao eh a toa que ficam discutindo upvote/dislike como se isso fosse realmente importante, considerando-se que o artigo e/ou comentario caira no esquecimento em no maximo 1 semana)

Tem tambem o fato que para alguem acostumado com uma certa tecnologia e/ou codigo (mesmo sem ser senior) resolver certos problemas eh simples - entao o tempo gasto nao eh tao longo assim.

E tem a questao de sacrificio - tem gente que ama fazer parte da muvuca que eh o desenvolvimento OS/SL, entao acaba sacrificando outras coisas (familia, tempo livre) para isso.

E tem a questao de criar portfolio/networking visando ofertas de trabalho - eh bem comum e da certo resultado (saber ingles B2/C1 ajudara um bocado aqui).

Esta eh uma pequena resposta - uma mais completa/complexa levaria mais tempo, e aqui eh como escrever na areia, se perde muito rapido.

Mas acho que deu para abordar um pouco - perguntas mais especificas podem levar a repostas mais especificas.

Mas continue (ainda que pouco) a contribuir - geralmente da resultado.

Boa sorte e sucesso !