- Esse curso decidi pegar firme, pois a linguagem tem vários pontos fortes para área que atuo (área financeira) e isso será de grande valia para mim.
- Meu objetivo é conseguir fazer sites e aplicações observando banco de dados e gerando relatórios e dashborads para os usuários.
| Mês | Dias do mês |
|---|---|
| 04/2024 | 10 ; 11 ; 12 ; 15 ; 18 ; 22 ; 23 ; 24 ; 30 |
| 05/2024 | 03 ; 07 ; 08 |
| 07/2024 | 17 |
| 08/2024 | 12 ; 14 |
| 09/2024 | 24 ; 30 |
| 10/2024 | 02; 29 |
| 11/2024 | 04; 23 |
| 12/2024 | 16 |
| 01/2025 | 06; 13; 15; 20; 22;31 |
| 02/2025 | 04; 10; 12; 12a; 17; 21; 24; 26 |
| 03/2025 | 16; 17; 20 |
| 07/2025 | 21 |
| 08/2025 | Que vergonha, sem estudar!!!!! |
| 09/2025 | 08; 16; 25; 29 |
| 10/2025 | 01;06; 08; 15; 20 |
- Criei o repositório.
- Update the websit
- Aulas assistidas de 32 ao 39 do curso e com os dois exercícios resolvidos sem assitir as aulas de resolução.
- Aula 39 e 40 resolvidas.
- Aulas assistidas de 40 com a solução bem como as aulas 41 à 46. Tentando resolver o exercício da aula 47.
- Resolução da atividade da aula 47. Tive dificuldades para resolver o exercício, pratiquei e tentei por aprox. 1:40h e decidi acompanhar pela resolução do professor. Entendi que preciso prestar atenção no que o 'for' tras de reflexo ao estar em tempo de execução.
- 11 aulas assistidas e problema da aula 54 resolvido. Porém, estou incrementando ações no sistema do professor, como inserir quantidade e sair do sistema.
- ATENÇÃO: Falta colocar o clear usando a biblioteca 'os'.
- 8 aulas assistidas tendo a solução da aula 54 e aula 61 feitas sem observar o resultado do professor. :D.
- RESPOSTA À ATENÇÃO: Foi executado na aula 54, o clear usando a biblioteca 'os'.
- Foi retirado também a opção de criar a lista com a quantidade pois não foi ensinado ainda dicionário.
- Finalização da 3ª Seção do curso.
- Início da Seção 4 já falando de funções. Amanhã estaremos estudando além das funções, módulos, global, return, *args.
- Assisti as aulas 76 à 76d e resolução da aula 77 sem ver resposta do professor.
- Assistindo as aulas 78 e 79 com solução do exercício 80.
- Assistindo as aulas 81 à 86. Senti mais dificuldades em lambda do que list, set e dictionary comprehension. Curioso né?!?!?!!!! Ou não???? rsrs...
- Assistindo as aulas 87 à 94. Bem produtivo hoje. trantando de try, except, finally, Generator, Iterators e IsIstance.
- Volta aos estudos referente às aulas 95 à 100, aprendendo: exceções, modularizações e packages (pacotes). Quanto ao módulo
"aula98.py", foi feita somente a atualização de uma anotação.
- Volta aos estudos referente às aulas 100 à 106, aprendendo: foi realizada as duas atividades da aula 100 e 101 e aprendi sobre decoradores e relembrei bem sobre closers (nem sei se está escrito certo. rsrs..)
- Nas aulas 107 à 110, pude aprender sobre a união de listas utilizando strings que somente o python tem como a função
zipe ozip_longestdo móduloitertools, aprendi também sobre a funçãocountque é um contador sem limites (o que se difere do range) e também sobre as funçõescombinations,permutationseproducttodas também do móduloitertools.
- Nas aulas 115 à 120, falou-se em combinações, permuntações, groupby, funções recursivas, ambientes virtuais, instalações de bibliotecas, métodos úteis e Salvando dados em JSON.
- Nas aulas 121 à 127, início da seção 5, onde falamos de Classes,
Self, método__init__, atributos, métodos,__dict__e vars, bem como foi dado um exercício de transformar a classe em um JSON e depois lê-lo.
- Nas aulas 127 à 130, Foi resolvido o exercício do json, falamos sobra
@classmethod,factories methodse@staticmethodse tivemos um bom resumo na sua 130 sobreMethods,classmethodestaticmethod.
- Revisei a aula 130 e 131 fiz novos comentários, bem como já evoluímos para a aula 132 onde falamos dos
getter's (@property) esetter's (atrib.setter)
- Revisei as aulas, 131 à 133 sobre
getteresettere sobre a convenção de encapsulamento em python que não é protegida pela linguagem usando_para protected e__para private. E aprendi também sobre a Associação, Agregação e Composição e vou começar a tentar fazer a solução do exercício daa aula 137.
- Só dei continuidade nas aulas 138 à 141 onde falamos de Herança Simples, Sobreposição
super(), Herança Multipla, Mixins e Abstração.
- Dei continuidade das aulas 142 à 150 Onde falamos sobre abstração, polimorfismo, excesões, falamos sobre Dunder Methods ou Special Methods, falamos também de
__new__,__init__e Context Manager com classes.
- Hoje aprendi sobre, funções decoradoras e decoradores com classes
- Voltei o ano com o gás renovado após as férias para aprender mais sobre o python, já sabendo que teria alguns desafios. Hoje assistimos as aulas: -Funções decoradoras e decoradores com classes;
- Falamos sobre repr;
- Método
__call__; - Classes decoradoras;
- Meta Classes (Apesar de achar que provavelmente não utilizarei tão cedo.);
- Enum (Que pode ser bem dinâmico nas utilizações diárias);
- E já verifiquei sobre o enunciado do exercício de criar um sistema de banco simplificado para utilizar tudo o que aprendemos até aqui, focando em Abstração, Herança, Encapsulamento e Polimorfismo.
- Sobre o exercício, imaginei que o professor fosse criar uma pasta só para ele. Só comecei a assitir os primeiros segundos da solução do professor, para confirmar minha teoria (que estava certa) para tentar sozinho inicialmente. Pretento ainda hoje mexer no sistema e vou postando aqui.
- Corrigi o Readme.md do dia 06/01/25;
- Como estou ancioso para trocar de módulo do curso, acabei assistindo as aulas de solução do exercício, mas com certeza irei fazer lives para desenvolver SaaS com utilizando todos esses métodos.
- Aprendi também sobre dataclasses que são a forma mais fácil de se criar uma classe, onde ela já compõe as funções e métodos necessários para uma classe base, podendo também, criar novas funções e métodos, bem como
propertyesetter. É interessante, pois no dataclasses é possível se ter um__post_init__que inicializa após o__init__. Usando o decorator, pode-se fazer diversas modificações nadataclass - Foi ensinado também o NamedTuple que pode ser usado por meio de duas bibliotecas diferentes, sendo que achei a
typingmelhor pois se assemelha mais com as classes, e pode-se typar suas variáveis. - Foi ensinado como implementar nossa própria lista com
iterable,iteratore usando também oSequenceda bibliotecacolections.abc. - Finalizamos assim a Seção 5.
- INÍCIO DA SEÇÃO 6
- Iniciamos a fala sobre o módulo datetime nativo do python.
- Foi tratado sobre as datas, calculos usando datas e passado algumas bibliotecas que serão interessantes ler e aprender.
- O exercício de data foi bem bacana pois entrou diretamente em aplicações práticas que eu utilizo em meu dia-a-dia. Inclusive, pude perceber que somando as parcelas do empréstimo (sim era sobre financiamento :D) o montante do empréstimo devolveria R$1.000.000,20 e isso não estava descrito e entendo que é somente para praticar, mas já estou ansioso pra testar isso mais pra frente pois já tenho uma idéia de como resolver essa situação podendo colocar a parcela de ajuste tanto na primeira como na ultima parcela (usando tt parcelas - 1)
- Foi ensinado também sobre calendários.
- Foi tratado também sobre o Locale que conforme orientação do professor, ele SUGERE que seja colocado já no main do programa o locale e bem no início e com a categoria como ALL e com o segundo atributo como ''.
- Iniciamos os estudos falando sobre os pacotes do python:
os.path;os.listdir;os.join;os.walk;shutilque faz várias ações doosde forma mais simplificada, mas o os nos vai dar mais controle em cada ação.
-
Em fim, comecei a estudar sobre arquivos
*.jsonjá estava ansioso por essa aula para tentar mais pra frente consumir API's. -
Foi ensinado sobre
import jsone os metodosjson.loadsejson.dumpspara trabalhar diretamente na string manualmente, bem como opprinte otyping.TypedDict(apesar de ter uma aula só sobre tipagem). -
Foi ensinado sobre
import jsone os metodosjson.loadejson.dumppara trabalhar com o arquivo agora. -
Foi ensinado sobre o pathlib que está em um vídeo gratuíto no youtube que vou colocar aqui o link (33 min): Link do video
-
Muito bacana aprender sobre o pathlib
-
Aprendi também sobre manipulação de arquivo
*.csv. -
Aprendi também sobre a biblioteca
randomesecretsusando oSystemRandom. -
Estudei sobre o
string.Template. -
Falou-se também sobre variáveis de ambiente.
-
Aprendi também a enviar emails pelo gmail usando o SMTP (aula185 vídeo-aula 302 e 303).
- Hoje foi dia de aprender a mexer com o
zipflemódulo nativo do python. - Está sendo ensinado também a Executar arquivos com argumentos no sistema usando
sys.argveArgumentParser. - Foi ensinado também o básico do protocolo HTTP e com isso aprenderemos a fazer raspagem de dados webscraping. (arquivo aula189.py e video-aula nº 308 e 309.)
- EXTRA DE HTML E CSS: Como tenho o conhecimento muito superficial de html e css, decidi fazer todo o curso para poder usufruir melhor do webscraping, técnica que preciso usar bastante no meu dia-a-dia.
- Aprendendo sobre a estrutura HTML;
- Atributos;
- Tags;
- Headings;
- Semântica;
- Aprendi sobre os formulários e seus atributos
-
Aprendi sobre os seletores de CSS que além dos seletores de classe e tags, temos:
*(Seleciona todos os elementos da página);>(Seleção de decendente direto);+(Seleção de próxima tag ou classe - adjacente sibling selector);~(Seleção de todas as tags ou classes após uma determinada classe ou tag - generator sibling selector);
-
Falamos também sobre os seletores de atributo que são:
[exemplo-de-atributo~='valor'](vai selecionar somente aqueles que possuem o atributo com a descrição valor);[exemplo-de-atributo^='valor'](a descrição deve começar com valor independente de traço ou não);[exemplo-de-atributo$='or'](a descrição termina com or ou seja, valor);[exemplo-de-atributo*='al'](a descrição contem al, ou seja valor);[exemplo-de-atributo|='valor'](vai selecionar aqueles que COMECEM com a descrição valor e seguida de um traço, por exemplo: valor- ...);
-
Falamos também de seletor de pseudo classe que verifica o estado de um elemento, como por exemplo
checkeddemonstrando que um determinado elemento está checado em um checkbox. Alguns exemplos são:hovercheckedactivelinkvisitedfocusdisableddesabilitadoenabledhabilitadofirst-childprimeiro filho de uma lista por exemplolast-childultimo filho de uma lista por exemplorequiredé um campo requerido (obrigatório)not()utiliza todos os lementos exceto (not) o que eu precisar, por exemplo: p:not(.meio) aqui, selecionei todos os parágrafos exceto àqueles que possuem a classe meio.nth-child()Seleciona a partir de um grupo de irmãos, baseado por exemplo pelo índice (que começa por 1) par (even) ou ímpares (odd), de 5 em 5 (5n) ou apartir do 3, selecionar de 2 em 2 (2n+3)
-
Seletores de pseudo elementos como exemplo:
::selection::placeholder::after::before::first-letter::first-line
-
Falamos também da especificidade do CSS informando que a ordem de disposição importa e será levado em consideração, porém, é possível calculá-lo como ordem de importancia (que será levado em consideração a regra de precedencia da seguinte forma: especificidade, empate, style e !important): ID / CLASSES, ATRIBUTOS e PSEUDO-CLASSES / ELEMENTOS e PSEUDO-ELEMENTOS 1/0/0 0/1/0 1/1/0
-
Após isso, me parece que já falamos de todos os seletores que o professor tinha previsto, então vou voltar a assistir a aula para falarmos sobre webscraping.
- Voltando a aula de webscraping:
- Aprendendo sobre o módulo
requests.
- Aprendi hoje sobre o Selenium e fazer dele automações.
- Nessa automação, pude aprender a fazer a espera por um tag (
aula193/main_a.py) - Há dois arquivos
main, mas atenção que o correto é o caminho acima, visto que a aula gravada pelo professor, está antes da atualização do chromedriver 115, onde não é mais necessário, baixar o driver do navegador, podendo seguir direto, conforme eu já havia colocado. É importante destacar que não tentei ocutar o--headless, mas isso vale para estudo posterior.
- Subprocessos para executar programas e comandos externos.
- Aprendendo sobre Openpyxl (manipulação de planilhas), Pillow (manipulação de imagens) e Pyside 6 (Gui Gráfica)
- Já finalizamos a parte de instalação do PySide6 e descobri que teremos 28 aulas com informações (que conforme já dei uma olhada no conteúdo programático) bem relevantes com mais detalhes à biblioteca.
- Já começamos a calculadora.
- Como comecei a trabalhar em uma empresa que demanda bastante tempo, estarei menos frequente aqui para estudar com vocês. Mas estarei me esforçando que sempre que estiver estudando, estarei compartilhando meu estudo na twitch e aqui no github. Portanto, lembrem-se de marcar a notificação caso queira companhar comigo meu estudo e bora lá.
- Relembrado as ultimas 4 aulas do curso;
- Aprendemos sobre a estilização e criação de botões.
- IMPORTANTE: toda vez que tiver atualização no código do main. Atentar-se para o parâmetro solicitado no arquivo
main.pyonde faz a estilização do tema dark conforme abaixo
'''pyhton if name == 'main': # Cria a aplicação app = QApplication(sys.argv) setupTheme(app) window = MainWindow() '''
- Passado pelas aulas onde foi criado os botões utilizando um laço
forcomenumeratee já deixando ogettere osetterpara serem configurados na próxima aula.
- Hoje como cheguei mais tarde em casa, decidi por arrumar algumas configurações da live e fazer um teste rápido, portanto ficou somente a aula sobre a configuração inicial dos botões especiais.
- Volta às aulas depois de muita correria. Estive ausente das aulas por motivos pessoais, mas vamos que vamos galera. Dá força aí, se inscreve no canal da twitch e vamos pra cimaaaaa!!!!!
- Até que em fim consegui chegar nas aulas de SQL.
- Aprendi sobre Worker e Thread também e parece ser bastante útil para não travar formulários.
- No início da live relembrei as aulas iniciais de SQLite.
- Relembrei a parte de abertura e fechamento de conexão, sua estrutura que vem de servidor, base de dados, tabela, colunas e linhas;
- Aprendi sobre o CRUD usando Python
- Será iniciado na proxima aula, sobre a instalação do Docker e do Mysql.
- Hoje a live foi bastante simplificada e cortada em 3 momentos, rsrsrs... para instalar o docker precisa reiniciar para instalação do WSL2 e depois de ter instalado o docker, ele também faz o logout. De qualquer forma quero agradecer a todos que insistiram em participar assim como o mestre dunossauro e o novo follower Nemo.
- Hoje apesar de eu não ter conseguido evoluir muito (dado pelo fato de eu insistir de fazer a conexão usando variável de ambiente e não conseguir, decidi portanto, seguir como está no curso do processor, pois deu certo) ainda estou motivado e apesar dos problemas, aprendi bastante como iniciar, parar, ver o log, finalizar ou matar a conexão usando o metodo
downo que foi bastante interessante.
- Apanhamos novamente na conexão e base de dados, pois:
- não lembrei de que o aplicativo do docker tem que estar aberto;
- não lembrei também que é importante trabalhar com ambiente virtual e por não ter o costume, tive que pesquiser novamente como criava o ambiente e como ativá-lo;
- Após isso, evoluímos para criar a conexão, o cursor, criar a tabela e fazer as primeiras alimentações inclusive colocando placeholder.
- Apanhamos novamente na conexão e base de dados, pois:
- Apesar de ter lembrado de que o aplicativo do docker tem que estar aberto;
- Apesar de ter lembrado que é importante trabalhar com ambiente virtual e por não ter o costume, tive que pesquiser novamente como criava o ambiente e como ativá-lo;
- Me esqueci que tem que ser Instalado o
pip install cryptography
- Após isso, evoluímos para criar novas conexões, e assim já aprender sobre a leitura de dados do Banco de Dados.
- Hoje não apanhamos, foi tranquilo para iniciar os estudos;
- Aprendemos sobre o Update e o Delete, bem como outras funcionalidades que podem ser úteis como
scroll,rowcount,lastrowiderownumber. - Na próxima live, iremos entrar na matéria que tanto queremos, Django!!! Boraaaaaa!!!!!
- Diante da recomendação do saudoso professor Luiz Otávio, e considerando que estou no processo de aprendizagem, vou aderir a sugestão do professor em criar arquivos específicos do projeto, porém, estarei registrando as atualizações cotianamente neste diário.
- Aprendizado de hoje foi muito top, me motivando novamente a estudar programação ao ver o site (mesmo que ainda a tela de servidor) funcionando, subindo o servidor, entendendo cada arquivo inicial, aprendendo a criar o arquivo na raiz, sem criar pasta e subpasta do projeto e já criando os primeiros app's.
- Não vejo a hora de já começar a estudar na sexta-feira (17/10). Vamos pra cima galeraaaa!!!!
- Hoje foi ensinado sobre aninhamento de urls, include, urls dos apps do Django, sobre o render, configurando templates globais, configurando DIRS e exteds para herança de templates (usando neste caso em templates globais) e arquivos parciais usando o include para dar produtividade na criação de sites.
- Para a próxima aula, devemos falar sobre:
- Arquivos estáticos;
- Usar Context para enviar dados para os templates;
- URL's dinâmicas
- Mover os CSS's para o global;
- Criando o partial
postblock.htmlusanod o include. - Usar block para criar blocos de post e home;
- Entendendo o HTML final e adicionando CSS aos posts.
Quer me ver passando vergonha ao aprender? Acesse abaixo!!! https://www.twitch.tv/skilo_cba