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

100 Dias Evoluindo na Programação com Python

Fala turma TabNewer, todo código funcionando bem por aí?! 🤩

Ao ler esta publicação Faltam 107 dias para o fim de 2023!!! Desafio: 100 Days of Code! 🚀 e inspirado por outra publicação como essa 100 dias de inglês! Isso pode mudar sua vida., fiquei inspirado a seguir um Roadmap de estudos com Python também este ano me desafiando nestes nossos mais de 100 dias faltando para terminar este ano!

Quando estava planejando o que eu iria estudar, pensei em tantas coisas, como Python, Lua, Julia, Rust, Go Lang, MuleSoft, IA, Web3, etc. Porém, como sou fã da linguagem Python (já estudo e desenvolvo projetos pessoais há mais de 4 anos) então decidi evoluir com nessa linguagem :D

Logo, escolhi me planejar bem para seguir estes 100 dias com o propósito de ter um bom resultado - que é ser um dev melhor - e por isso fui pesquisar roadmaps de Python e encontrei diversos Roadmaps como o Python Developer, mas eles te oferecem diversas opções para seguir se você quiser, além disso que é feito de forma genérica realmente para indicar um potencial caminho.

Então escolhi criar meu roadmap em planilha, com as datas de cada assunto, com a coluna Complete para marcar se foi feito ou não, a categoria e o assunto e por fim uma coluna de Project que estão com células vazias pois o intuito é criar um projetinho por dia com o assunto aprendido.

Este projetinho serve para que eu possa de alguma forma materializar o que eu aprendi no estudo e pode ser qualquer coisa, como:

  • Um Joguinho Simples
  • Alguma Brincadeira
  • Uma Funcionalidade
  • Uma Interface Gráfica
  • Um Hello World
  • Uma DOC
  • Ajudar alguém no StackOverflow
  • Abrir PR em projetos Open Source

A ideia será estudar no MÁXIMO 1 hora por dia, entendendo e aprendendo o conceito ao menos superficialmente para ir avançando cada vez mais em outros conceitos e abstrações. A ideia é ser divertido e ao final deste roadmap ter a compreensão do que de fato vale a pena se aprofundar.

É importante dizer que se você já tem os fundamentos da programação, todo este roadmap será tranquilo para ser feito, mas se você ainda não tem, já publiquei aqui sobre os principais fundamentos que acho necessário para imergir melhor no mundo do desenvolvimento. Confira aqui minha publicação sobre Os Principais Fundamentos da Programação!

Meu Roadmap de Estudos de Programação com Python

DayCompleteCategorySubjectProject
2023-09-22BasicBasic Syntax
2023-09-23BasicVariables
2023-09-24BasicData Type
2023-09-25BasicConditionals
2023-09-26BasicType Casting
2023-09-27BasicExceptions
2023-09-28BasicFunctions
2023-09-29BasicBuiltin Functions
2023-09-30BasicArgs, Kwargs
2023-10-01BasicTyping
2023-10-02BasicLists, Tuples, Sets, Dictionaries
2023-10-03BasicDebug
2023-10-04Datastructures and AlgorithmsCollections
2023-10-05Datastructures and AlgorithmsArrays and Linked Lists
2023-10-06Datastructures and AlgorithmsHeaps, Stacks and Queues
2023-10-07Datastructures and AlgorithmsHash Tables
2023-10-08Datastructures and AlgorithmsBinary Search Trees
2023-10-09Datastructures and AlgorithmsRecursion
2023-10-10Datastructures and AlgorithmsSorting Algorithms
2023-10-11AdvancedIterators
2023-10-12AdvancedModules Builtin
2023-10-13AdvancedModules Custom
2023-10-14AdvancedDecorators
2023-10-15AdvancedLambdas
2023-10-16AdvancedClosures
2023-10-17AdvancedRegex
2023-10-18AdvancedClasses
2023-10-19AdvancedInheritance
2023-10-20AdvancedMethods, Dunder
2023-10-21AdvancedList Comprehension
2023-10-22AdvancedGenerators
2023-10-23AdvancedMetaprogramming
2023-10-24AdvancedReflection
2023-10-25File Formatsjson
2023-10-26File Formatsxml
2023-10-27File Formatsyaml
2023-10-28File Formatstoml
2023-10-29Package ManagersPip
2023-10-30Package ManagersPyPI
2023-10-31Package ManagersConda
2023-11-01Storagesqlite3
2023-11-02Storagepostgres
2023-11-03StoragemongoDB
2023-11-04StorageCache
2023-11-05ParadigmsImperative
2023-11-06ParadigmsFunctional
2023-11-07ParadigmsDeclarative
2023-11-08ParadigmsOOP
2023-11-09Testsdoctest
2023-11-10Testsnose
2023-11-11Testspytest
2023-11-12Testsunittest
2023-11-13TestspyUnit
2023-11-14FrameworksFlask
2023-11-15FrameworksPyramid
2023-11-16FrameworksDjango
2023-11-17FrameworksFastAPI
2023-11-18Frameworksgevent
2023-11-19Frameworksaiohttp
2023-11-20FrameworksTornado
2023-11-21FrameworksSanic
2023-11-22ServicesAPI REST
2023-11-23ServicesAPI SOAP
2023-11-24ServicesWebsockets
2023-11-25ServicesgRPC
2023-11-26ServicesGraphQL
2023-11-27Messaging ServicesRabbitMQ
2023-11-28Messaging ServicesApache Kafka
2023-11-29ObservabilityLogger
2023-11-30ObservabilityWatchdog
2023-12-01AutomationOS, Path, Sys
2023-12-02AutomationPynput
2023-12-03AutomationPyAutoGUI
2023-12-04AutomationSelenium
2023-12-05GUIKivy
2023-12-06GUITkinter
2023-12-07GUIPySimpleGUI
2023-12-08GUIBeeWare
2023-12-09Architectural PatternsMVC
2023-12-10Architectural PatternsMVVM
2023-12-11Architectural PatternsMVP
2023-12-12Design PatternsCommand
2023-12-13Design PatternsComposite
2023-12-14Design PatternsMediator
2023-12-15Design PatternsStrategy
2023-12-16Design PatternsObserver
2023-12-17Design PatternsState
2023-12-18GamePygame
2023-12-19GamePyglet
2023-12-20GamePanda3D
2023-12-21GameUrsina Engine
2023-12-22SOLIDSingle Responsibility Principle
2023-12-23SOLIDOpen-Closed Principle
2023-12-24SOLIDLiskov-Substituion Principle
2023-12-25SOLIDInterface Segregation
2023-12-26SOLIDDependency Inversion
2023-12-27Clean ArchitectureDomain Business Rules
2023-12-28Clean ArchitectureApplication Busines Rules
2023-12-29Clean ArchitectureInterface Adapters
2023-12-30Clean ArchitectureFrameworks & Drivers

Olha a Ação!

Espero que você tenha gostado desta publicação e peço que se tiver dicas de como poderia melhorar este roadmap, quais projetos posso fazer, o que você sentiu falta, qual ordem poderia ser, o que você vê que não faz tanto sentido estar aí, sugestões, dúvidas, comentários, etc, estou por aqui!

Espero também ter te inspirado a seguir um roteiro parecido e simbora ser devs melhores!

E por fim, deixe seus comentários aqui e se possível crie publicações como essas para sua linguagem favorita ou outro plano de estudos que você estiver fazendo para aproveitar essa onda de 100 dias para o fim do ano e tenho certeza de que irá inspirar muitas pessoas!

😆💎

Carregando publicação patrocinada...
2

Você disse que quer estudar ao máximo 1 hora por dia, mas diversos dos assuntos listados aí requerem um bom conhecimento de outros pontos para que sejam compreendidos ao menos superficialmente. Como metaprogramming e reflection são assuntos que são ótimos para ter domínio em Python, mas para isso você precisa entender muito bem como a orientação a objetos funciona no Python.

Além disso, se você quer apenas saber o que esses temas são apenas superficialmente pode até ser que funcione, mas com 1 hora por dia e cada dia com um tema diferente você não vai conseguir por quase nada disse em prática, nem que seja em uma aplicação simples de estudos.

Minha sugestão

É apenas uma sugestão com base na minha experiência: não coloque um limite de dias para aprender um assunto

Por exemplo, o primeiro tópico: Basic Syntax
Estude esse assunto, que seja uma hora por dia, até você dominá-lo. De uma forma que você até conseguiria ajudar alguém no StackOverflow que tenha problemas nesse assunto, ou aplicar um PR em algum projeto opensource usando esse conhecimento adquirido.

Isso pode levar um, dois, três, ... dez dias e não há problema com isso.
É melhor levar mais tempo e dominar o assunto e ser consistente, do que ser rápido e começar a tropeçar nos assuntos mais complexos pq não dominou a base.

Quando se sentir seguro com o assunto, vai para o próximo e repete o processo.

1

@user1 muito obrigado pelas sugestões e indicações! Não tinha pensado nas possibilidades de Ajuda no StackOverflow ou abrir um PR pra algum projeto, tá anotado aqui na publicação!

E concordo com a sugestão de não delimitar o tempo de aprendizado do assunto, inclui este tempo aqui como uma meta diária palpável, mas sabendo que não conseguirei cumprir com todos os desafios e dias e isso é muito importante saber, pois isso não pode ser um acidente é uma decisão consciente de que existirão temas mais complexos, dias mais difíceis e situações mais complicadas para lidar, logo, não levarei 100% a risca este compromisso, mas é uma trilha consolidada para me mostrar onde estou, o que preciso fazer e de certa forma chegar ao resultado esperado que é ser um dev melhor.

Ser superficial agora pode me ajudar a entender alguns bits mais complexos na visão do todo do que me aprofundar nos detalhes mais sórdidos de algum conceito.

E pra mostrar o tanto que entendi de um assunto, estarão os "projetos" que na verdade serão ações para me mostrar o tanto que evolui no conhecimento daquele assunto.

Assim que estes dias de código finalizarem, com certeza sairei dele 50% melhor de compreensão destes temas, preparado para mergulhar nos temas que mais importam sabe.

A ideia aqui não é ser pragmático no dia a dia, a ideia é ser divertido e com isso chegar o mais longe o possível, aprendendo e agregando valor o máximo que der.

Muito obrigado mais uma vez pela contribuição!