Hello World Como Você Nunca Viu! | Entendendo C

Поділитися
Вставка
  • Опубліковано 29 вер 2024

КОМЕНТАРІ • 1,3 тис.

  • @gabrielcasseb9404
    @gabrielcasseb9404 3 роки тому +771

    e o Akita trouxe o primeiro vídeo do UA-cam que é melhor assistir em 0.75x

    • @Ninguem_365
      @Ninguem_365 3 роки тому +45

      Assistir em 2x tô sagrando pelas orelhas kkkk

    • @JonatasSantiago
      @JonatasSantiago 3 роки тому +12

      hahaha eu ia comentar isso. na verdade, estava indo bem, até chegar em ponteiro. foi quando reduzir a velocidade para 0.5 e que ele começou a soar como um bêbado dando aula kkk. ficou top, deu pra entender melhor hehehe dá até pra beber cerveja junto

    • @comentotudo7
      @comentotudo7 3 роки тому +17

      kkkkkk to acostumado a sempre assistir em 1,75x, 2x, mas dessa vez num deu não kkkkk

    • @heloisacardoso7058
      @heloisacardoso7058 3 роки тому +4

      Bem isso!!! ;)

    •  3 роки тому +2

      boa sugestão

  • @manoget
    @manoget 3 роки тому +10

    Mesmo com vários anos de DEV, sempre tem algo bom a aprender. Vamos passar o final de semana escovando Bits com SENSEI Akita.

  • @jessicabeatrizmonteiro8708
    @jessicabeatrizmonteiro8708 2 роки тому

    Essa aula é ótima para relembrar os conceitos bases!

  • @MarceloLima-sn7ly
    @MarceloLima-sn7ly 3 роки тому

    Eu novamente, meu, que vídeo sensacional! Acho que vi a mulher de vestido vermelho na Matrix depois dessa aula. E ALIÁS, gostei muito desse formato com a tela dividida e você mostrando a saída dos testes no terminal meio que "ao vivo"!

  • @SixDayStudio
    @SixDayStudio 3 роки тому

    Que isso homem! Gratidão por todo conhecimento compartilhado!

  • @jeff-erson
    @jeff-erson 3 роки тому +1

    Ótimo vídeo, mas ainda quero o vídeo de análise e estrutura de dados pois para mim vai ser um daqueles vídeos que irei manter em loop

  • @MurySoka11
    @MurySoka11 3 роки тому +5

    "ponto flutuante"
    Fazia tempo que não escutava essa expressão, hehe.

  • @murillomagalhaes9258
    @murillomagalhaes9258 Рік тому

    26:21 Caraca Akita fiz um experimento aqui e realmente corta a performance e o uso de RAM vai pro espaço, o experimento é bem simples:
    - Criar um array vazio e ir enchendo com números com o laço de repetição for (python)
    Reusltado:
    Ao ir aumentando o número do range de 10 para 100 milhões a RAM usada chegou em, pasmem, 4 Gb (50% do máximo) e o uso do processador (quad-core) em 100% kkk e eu ainda acho que ele teve ter cortado pois já tava quase no limite de 100% mostrado aqui no Task Manager.
    Edit.: Acredito que isso se deve por não só o número de itens ir aumentando mas também os números dentro dele, saindo de 1 e indo até 99,99 milhões.
    Edit. 2: Quanto coloquei apenas um inteiro (1) por vez o limite aumentou para 1 bilhão porém eu nem terminei pois ficou 1 minuto executando e ainda não havia terminado, eu acredito que ele estava usando o SSD como memória virtual para armazenar o restante já que, no Task Manager o uso de RAM dele caia e subia enquanto no meu sdd estava sendo usado também, e obviamente o limite (4 Gb) havia sido alçancado. E sobre ele estar cortando agora, na verdade, penso que ele estava apenas guardando, também, no SSD

  • @jeneslima5798
    @jeneslima5798 3 роки тому

    Fábio Akita explicou muita coisa que eu não sabia, pra mim era algo da programação que não dava pra usar a " , " em vez do " . "

  • @MakoNext
    @MakoNext Рік тому

    sinto q estou ficando mais burro com o tempo pq na epoca de facul esse role de escovar bits era tao easy kkkkkkkkk como sempre otimos videos

  • @fagnerrodrigues9082
    @fagnerrodrigues9082 3 роки тому +1

    Faltou dar um free nesse malloc hehehe. Muito bom lembranças de programação em C e estrutura de dados e algoritmos.

    • @Akitando
      @Akitando  3 роки тому +1

      ah sim, eu não dei free de propósito, primeiro pra não complicar a explicação, mas segundo pq nesse caso nem precisa, quando o programa sair vai limpar tudo. Se fosse um daemon/server, ia fazer diferença.

    • @fagnerrodrigues9082
      @fagnerrodrigues9082 3 роки тому

      @@Akitando vdd, ou então uma árvore de busca binária tbm, hehehe. Mas lembro que é mais por boa prática tbm, pelo que meu prof ensinou, sempre que usar malloc ou calloc, sempre libere a memória que foi alocada.

  • @markus2344
    @markus2344 3 роки тому

    29:50 - Se quiser, você pode colocar somente a assinatura da função acima e declarar ela em baixo da função main.

    • @Akitando
      @Akitando  3 роки тому +1

      verdade, pode mesmo, mas fiz assim mais pra facilitar a explicação. quem não sabe ia se complicar.

  • @araujopsy
    @araujopsy 3 роки тому

    De repente, dei-me conta que meus objetivos de aprendizagem aumentaram assustadoramente! lol

  • @aclanza100
    @aclanza100 3 роки тому

    Ficaria prestando atenção por horas a fio, então, manda bala e não se preocupe com o tempo. Ótimo vídeo obrigado 😁

  • @DioneBatista
    @DioneBatista 3 роки тому +1

    Bora para mais uma viagem!

  • @paulosantana9607
    @paulosantana9607 3 роки тому +1

    Um engenheiro eletricista e eletrônico morre a cada vez que você fala todos os Es do IEEE

    • @Akitando
      @Akitando  3 роки тому +1

      Maus, eu não lembrava mesmo de falar com I 3 Es kkkkk

  • @LucasMontano
    @LucasMontano 3 роки тому +851

    baita explicação Akita! 👏🏻

    • @marcelosantana8931
      @marcelosantana8931 3 роки тому +11

      Salve Lucas Montando do canal Lucas Montando. 😁

    • @hernandeserick7320
      @hernandeserick7320 3 роки тому +5

      Olá Lucas Montano do canal Lucas Montano

    • @Heineken774
      @Heineken774 3 роки тому +6

      Lucas grava um vídeo para minha mãe, falei com ela que vc é o Moriarty fala um português tentando fingir um sotaque aí

    • @lucasfelipe-ze5sy
      @lucasfelipe-ze5sy 3 роки тому +5

      Lucas Montano do canal Lucas Montano que pertence a Sara Montano

    • @rodrigonahid6558
      @rodrigonahid6558 3 роки тому +8

      coitado, o cara n pode nem mais comentar kkkkkkk

  • @luccasbrandao4187
    @luccasbrandao4187 3 роки тому +1257

    - "C nem é tão dificil assim..."
    - HELLO WORLD DE 1 HORA !

    • @calculandopoop5825
      @calculandopoop5825 3 роки тому +75

      Olha que ele nem explicou tudo em

    • @rotognin
      @rotognin 3 роки тому +12

      kkkkkkkkkkkkkkkkkk
      Hello World maior que esse só na "linguagem" white space...

    • @literallybiras
      @literallybiras 3 роки тому +78

      Já dizia Carl Sagan, se quiser fazer uma torta de maçã, é preciso primeiro criar um universo... Só aquele include stdio ja faz o serviço de criar um universo de certa forma

    • @RodatuOdatu
      @RodatuOdatu 3 роки тому

      @@rotognin brainfuck

    • @joiaribealves5710
      @joiaribealves5710 3 роки тому +1

      huehuehu

  • @yagomello
    @yagomello 3 роки тому +216

    Muito bom o vídeo!
    Finalmente alguem que explica o que ta acontecendo, a maioria dos outros canais so fica comparando o "Hello World" em varias linguagens sem explicar nd.
    Imagino que esse video vai ser usado por muitos estudantes como material de estudo (ICC1 na usp é isso ai + arquivos), entao fico preocupado pq tem alguns pontos que podem confundir os alunos nas provas, nao quero ser chato (ficar te corrigindo), só vou colocar eles aqui pra se alguem for usar isso, estar o mais completo possivel:
    --- No video tem uma associacao bem forte entre ponteiros o heap (alocacao dinamica com malloc), mas qualquer variavel/struct/etc pode ser passada pra um ponteiro:
    int x = 42;
    int * y = &x;
    --- Na parte de alocacao dinamica nao foi usado o comando free, hoje os computadores sao espertinhos e quando um processo morre o SO ja libera a memoria, mas o correto eh cada malloc ter um free associado (e se nao colocar o free na prova perde ponto):
    int * x = (int *)malloc(sizeof(int));
    ...
    free(x);
    Nao liberar a memoria com o free eh conhecido como vazamento de memoria.
    --- O correto pra main eh "int main()" ou "int main(int argc, char ** argv)"
    void main() foi comum em alguns microcontroladores, mas o valor que a main retorna tem significado.
    quando uma main "retorna 0" ("return 0;" ou "return EXIT_SUCCESS;"), o programa ta indicando que terminou de maneira normal.
    o usuario pode retornar EXIT_FAILURE caso o programa encontre um erro, nao eh obrigatorio.
    --- Apesar de em versoes mais recentes de C e C++ o return da main poder ser omitido, nao colocar "return 0" no final da main pode custar uns pontos na prova.
    --- "struct->variavel" é equivalente a "(*struct).variavel"
    --- Uma array (char nome[ ] = "joao") eh identico a (char * nome = "joao"). A array decai pra ponteiro.
    --- Escrever "array[posicao]" eh o mesmo que escrever "*(array + posicao)".
    Quando soma um ponteiro com um numero, nao eh uma soma comum, chamam de aritmetica de ponteiros.
    O valor do ponteiro vai ser incrementado pelo tamanho (sizeof) do valor apontado pelo ponteiro. Eh um bait bem comum.
    Aqui tem um exemplo: onlinegdb.com/PJuz2CNxk5
    --- Pra fazer uma funcao que edita o valor de uma variavel, tem que passar a variavel por ponteiro. Passar por copia vc so vai estar editando o valor da copia.
    Exemplo: onlinegdb.com/FjBd-vUF5
    --- Nao precisa complicar tanto a notacao dos callbacks, exemplo:
    onlinegdb.com/HkQ4EoZXO
    --- Um exemplo mais completo sobre callbacks, const, typedef e OOP em C:
    onlinegdb.com/B1LySsWX_
    --- Variaveis estaticas (declaradas com "static") podem simplificar muito o programa, e acabar com a necessidade de algumas variaveis globais ou locais.
    Exemplo: onlinegdb.com/SyWwqoZ7d
    --- Detalhes extras:
    Sempre use flags de warning quando for compilar:
    -Wall -Wextra -Wshadow
    Elas ajudam a indicar coisas que podem estar erradas mas nao sao erros, como tentar printar um uint32_t como uint16_t no printf, ou usar uma variavel que ainda nao teve valor definido.
    -Wshadow mostra quando uma variavel ta com o mesmo nome de outra que tbm eh acessivel naquele lugar (tipo variavel global).
    Ja perdi um dia inteiro procurando um bug que tava acontecendo pq uma variavel na funcao tinha o msm nome que uma variavel na classe (C++), ai eu achava que
    tava escrevendo na variavel da classe quando tava escrevendo na da funcao.
    --- Se o seu codigo funciona sem otimizacao mas quando liga a otimizacao ele para de funcionar, provavelmente ele tem Undefined Behavior (comportamendo nao definido).
    Exemplos disso sao escrever em ponteiro que aponta pra variavel que nao existe mais; pegar o endereco de uma variavel, converter pra ponteiro de outro tipo e tentar acessar; FAZER OVERFLOW EM SIGNED INTEGER. unsigned eh de boa.
    O compilador assume que o undefined behavior nunca vai acontecer, e otimiza o codigo pra ir mais rapido. Comeca a aparecer erro magico.
    Nao passe ponteiro de funcao como "void *", nem como qlqr outra coisa. Tem arquiteturas que tratam eles de maneira diferente, tipo IA-64.
    --- Quando quiser debugar o codigo, pode usar otimizacao -Og, assim como -g3 pra ter mais detalhe de debug. Se for usar o GDB pra executar o codigo linha por linha e ver as variaveis, pode usar -ggdb3 no lugar de -g3. Pra versao final do programa substitua -Og por -Os, -O2 ou -O3.
    --- Nao use a flag de otimizacao do gcc "-ffast-math".
    Explicacao: stackoverflow.com/questions/7420665/what-does-gccs-ffast-math-actually-do
    Ja eh dificil lidar com os bugs que a gente cria, lidar com os criados por essa otimizacao ai n eh nd lgl.
    --- Codigos otimizados sao muuuito mais rapidos que codigos de debug. O compilador olha coisas que podem ser removidas, como variaveis temporarias, atribuicao de valor pra mesma variavel 2 vezes seguidas, trechos de codigo que nao fazem nada. Tem muito mais coisas mas foge do escopo desse comment.
    --- Um site muito bom pra ver o assembly gerado pelo seu codigo eh o godbolt.org/
    Ele mostra o que cada funcao esta virando de assembly
    Tem uma opcao escondida que permite executar o codigo tambem
    --- Quando for pesquisar uma flag do gcc no google, coloque ela entre aspas, pq o simbolo - indica pro google que eh pra excluir resultados com o que vem dps do -, o contrario do que queremos. Entre aspas pede um match exato do que ta dentro.
    exemplo: gcc "-flto"
    --- Pra encontrar vazamento de memoria e acesso a elementos depois do final de uma array e coisa assim, existe um programa chamado Valgrind, eh gratis e de codigo aberto, muito util quando o programa comeca a ficar grande.
    --- Caso esteja na duvida de como indentar o codigo, nomear funcoes, structs e etc, o kernel do linux usa um style guide que eh bem comum por ai, www.kernel.org/doc/html/v4.10/process/coding-style.html
    Eu mesmo nao sigo ele todo, mas tem umas coisas interessantes que ajudam a escrever codigo melhor.
    Boa sorte ai a todos que estao fazendo trabalho ou vao fazer prova usando C!

    • @Akitando
      @Akitando  3 роки тому +62

      Excelentes colocações. Não se preocupe pq toda informação que complementa é importante. Muita coisa eu cortei desta explicação pra não perder o foco do video, por isso eu insisto pro pessoal pesquisar por fora usando o que falei de referência inicial. Mas você está correto nas colocações.

    • @profAMuniz
      @profAMuniz 2 роки тому +6

      Há um ano e só 26 likes. Esse comentário deveria ser lido por todos! E sim, não é um bicho de sete cabeças usar malloc/calloc/realloc, basta não esquecer de usar free().
      Eu só consegui fazer um O(1) generic swap de arrays usando -Wall -pedantic-errors, e o erro era... size_t não é unsigned int, é long unsigned int 🥲(ao menos, na minha distro Linux)

    • @lucaslcslcs
      @lucaslcslcs Рік тому +2

      Parabéns pelo comentario que complementa e agrega muito ao vídeo do Akita !

  • @andrekleine4016
    @andrekleine4016 3 роки тому +286

    Akita, resolvi entrar na área já próximo dos 40 anos, em boa parte graças à sua famosa série de vídeos. Segui seu conselho e fugi de cursos "receita de bolo". Estou cursando, online, o CS50 de Harvard (introdução à ciência da computação). Lá, estou há semanas a fio aprendendo a RESOLVER PROBLEMAS sozinho usando a linguagem C. E, justo nesta semana, estou aprendendo a criar filtros para imagens .bmp utilizando, justamente, a lógica do salsichão de bytes. Imagine a minha alegria ao abrir este seu vídeo e ENTENDER cada palavra do que você estava falando. Me fez sentir que estou no caminho certo. Te agradeço por toda a ajuda motivacional que o seu canal está me dando. Um grande abraço!

    • @andrekleine4016
      @andrekleine4016 3 роки тому +2

      @marcos paivajr ele não fala desse curso, esse resolvi fazer por conta própria. Se tiver interesse, é só entrar no site edx.com

    • @andrekleine4016
      @andrekleine4016 3 роки тому +2

      @Lucas Almeida em inglês!

    • @andrekleine4016
      @andrekleine4016 3 роки тому +2

      @marcos paivajr é de graça!

    • @fernandomedeiros1041
      @fernandomedeiros1041 3 роки тому

      Ai o cara fez a boa, tmj tmj 🙌

    • @JLeandroSartori
      @JLeandroSartori 3 роки тому

      @@andrekleine4016 o famoso edx!
      😏😌✌️

  • @pedroveloso6172
    @pedroveloso6172 3 роки тому +267

    Você pode não saber, mas mesmo sem vender nenhum curso, você está melhorando muito a educação tec no Brasil.

    • @JLeandroSartori
      @JLeandroSartori 3 роки тому

      Podes crer!
      Muito "Hello Word "!!!
      😌😌😌

    • @emanuelmarcal
      @emanuelmarcal 3 роки тому

      Mestre @Akitaonrails sabe que está...deve ser esse um dos objetivos dele no minimo.

  • @jopefd
    @jopefd 3 роки тому +167

    eu sem entender nada de c: vai da nao vei....
    akita: * video novo sobre c *
    eu dnv: traz o diploma, passamo. 😎

  • @rodstech
    @rodstech 3 роки тому +108

    Quando algum leigo ou curioso te perguntar como os computadores funcionam, dê a melhor e única resposta que importa conforme nos ensinou o poeta e mestre Akita: "- Tudo é um linguição de bits!" 😁

    • @vinybas
      @vinybas 3 роки тому +13

      Ou dê a resposta mais fácil: é tudo mágica! rs

    • @saulompg
      @saulompg 3 роки тому +8

      @@vinybas Qualquer tecnologia suficientemente avançada é indistinguível da magia.

  • @Akitando
    @Akitando  3 роки тому +76

    Eu cometi alguns erros que passaram batido. Desculpem por isso. Estou colocando nas Erratas na descrição. Vejam se já não está lá antes de comentar.
    E sim 🤣 pra quem notou o "braço que desaparece", foi por causa disto: twitter.com/AkitaOnRails/status/1366932346755297281?s=20
    Update de 22/03/2021. Aproveitei pra consertar muitos dos erros deste video no próximo que já foi pro ar. Se gostaram deste, não deixe de ver o próximo ua-cam.com/video/YyWMN_0g3BQ/v-deo.html

  • @mfrdbigolin
    @mfrdbigolin 3 роки тому +54

    When I find my code in tons of troubles, friends and colleagues come to me, speaking words of wisdom: "write in C".

  • @SoldierDan
    @SoldierDan 3 роки тому +64

    Lembrei da minha prova final do primeiro semestre na faculdade. Escrever um código em C que calcularia duas notas de um aluno e retornaria a média final e se ele estava aprovado ou reprovado. O professor foi testar e das cinco vezes que ele fez a inserção das mesmas notas foi uma média diferente, e só um dos testes a média estava correta. Ele olhou pra mim, olhou pro código, olhou pra mim de novo e disse; "nem vou perder meu tempo de olhar a magia que você fez aqui, mas como deu certo em uma das tentativas eu vou te aprovar. Pode ir embora e feliz Natal." hahahaha

    • @Akitando
      @Akitando  3 роки тому +23

      WUT??? kkkkkk

    • @jackcardoso4688
      @jackcardoso4688 3 роки тому +2

      kkkkkkkkkkkkk

    • @LucasLima-hj5sg
      @LucasLima-hj5sg 2 роки тому +21

      que cara bom, criou a computação probabilística: 20% de chance de cair um resultado, 30% outro, 50% outro... kkkkkkk

    • @1LY4x8s96r
      @1LY4x8s96r Рік тому

      😂

    • @jamissonlocke8838
      @jamissonlocke8838 9 місяців тому

      Apenas.... Como????
      Eu queria muito analisar um código desses. É magia! 😅😅

  • @edupazz
    @edupazz 3 роки тому +35

    Filosofia: entendendo-se
    Computação: entendendo C

  • @grpineiro
    @grpineiro 3 роки тому +93

    Você vê, que o seu fim de semana vai ser bom, quando você acorda com um novo vídeo do Akita.

  • @theushsantos16
    @theushsantos16 3 роки тому +4

    Assista na velocidade 2x se tiver coragem kksk

  • @gustavosalibi3914
    @gustavosalibi3914 3 роки тому +33

    Ótimo vídeo!
    Mas em 40:08 vc se confunde ao dizer que existem dois tipos de pilha. Pilhas são essencialmente LIFO. Filas é que são FIFO

  • @victorbarros1130
    @victorbarros1130 3 роки тому +46

    O Akita é tão foda que da até orgulho de ser Brasileiro.
    Vc está fazendo mais por nós que muito curso (inclusive gringo).
    Parabéns e muito obrigado!

  • @MsBottura
    @MsBottura Рік тому +10

    Quando eu fazia BCC na USP de São Carlos não simpatizava com a linguagem C. Eu tinha muitas dificuldades de entender o funcionamento da linguagem como um todo, os professores me diziam do poder da linguagem, porém para mim era uma linguagem como qualquer outra. No último ano do curso consegui um emprego na FacTI, uma fundação de tecnologia que prestava serviços para a Itautec. Foi nesta experiência que entendi o poder da linguagem C na prática. Trabalhei com verdadeiros monstros na programação, entrei num grupo de 10 programadores que programavam o PDV das lojas Fnac. O programa era "codado" em visual e compilado no Linux. Fazíamos ele conversar com o PinPad, monitor touch e a impressora, tudo por código C. Resumindo vi o verdadeiro poder da linguagem C. E digo mais, vi códigos neste projeto que nunca vi no curso de computação e nunca vi algo parecido procurando na Internet. Resumindo: foi a experiência mais enriquecedora que eu tive na minha vida de programador.

  • @davidossantos3430
    @davidossantos3430 3 роки тому +31

    Estudei C por um tempo e esse foi o melhor vídeo que vi sobre o assunto, principalmente a parte dos pseudo-objetos!

  • @Hoshoyo
    @Hoshoyo 3 роки тому +16

    Em 32:09 não existe cópia em C, o uso do & dentro das funções pega o endereço
    na stack de f1 em que o endereço de hello (que está na stack da main) está.
    Quando a main chama f1, ela copia para a stack esse endereço, portanto não é
    feito uma cópia do array, a variável hello contém esse endereço. Isso pode ser visto
    rodando o código:
    void f1(char hello[]) {
    printf("f1: %p
    ", hello);
    hello[0] = 'J';
    }
    void main() {
    char hello[] = "Hello World";
    printf("main: %p, %s
    ", hello, hello);
    f1(hello);
    printf("main: %s
    ", hello);
    }

    • @Akitando
      @Akitando  3 роки тому +11

      Me ocorreu isso depois. Preciso rever isso.

    • @ffvdl
      @ffvdl 3 роки тому +1

      Com certeza o Akita vai fazer um comentário de errata no próximo video

  • @matheuscascalho6359
    @matheuscascalho6359 3 роки тому +35

    24:37 - "todo array que se preza começa do 0"
    Matlab não curtiu kkkk
    Excelente vídeo👏👏👏👏

  • @isaacvitor
    @isaacvitor 3 роки тому +22

    Esse Akita é imoral... o cara transforma um livro de 500 páginas em um vídeo de pouco mais de uma hora!

  • @isaipack
    @isaipack 3 роки тому +16

    Ter iniciado por C realmente te poupa a dor extra de ter que estudar isso depois de conhecer as facilidades das linguagens de alto nível.

  • @douglasdrumond
    @douglasdrumond 3 роки тому +36

    A referência a Tropa de Elite 😂 25:02

    • @kmdd2723
      @kmdd2723 3 роки тому +8

      no fundo ele tah falando "qm eh fanfarrão pede pra sair" desde o começo kkkk

    • @tiagotele1
      @tiagotele1 3 роки тому +4

      Isso é pra ninguém dormir e ficar c uma granada na mão rsrsrsrs.

    • @pauloreis4053
      @pauloreis4053 3 роки тому +3

      Foi a única parte que entendi (até me senti um gênio). kkkkkkkkkkkkk

  • @rodrigo.coding
    @rodrigo.coding 3 роки тому +18

    Acabei de começar a programar em C por causa da Faculdade.. Mas o mestre Akita contextualizando é outra história hehe..

  • @Heineken774
    @Heineken774 3 роки тому +21

    1 hora de vídeo aula: 😩😩😩😩😩
    1 a 10 horas de Fábio Akita: 🥳🥳🥳🥳🥳

    • @TI4All
      @TI4All 3 роки тому +3

      Passa rápido quando é conteúdo de primeira

  • @tiagotele1
    @tiagotele1 3 роки тому +47

    O fim de semana tá começando bem!

    • @tapiocaferoz02
      @tapiocaferoz02 3 роки тому +2

      Rapaz, isso que é ser xará em outro nível...

    • @tiagotele1
      @tiagotele1 3 роки тому +1

      @@tapiocaferoz02 Rsrsrsrs um portal em um universo paralelo. Tamo junto!

  • @ViniTheDev
    @ViniTheDev 3 роки тому +36

    Meu professor pronuncia "IEEE" como "i três é" e eu acostumei assim hahaha.

    • @Akitando
      @Akitando  3 роки тому +18

      Boa ideia! Muito mais fácil

    • @isaipack
      @isaipack 3 роки тому +3

      também sempre pronuncio assim por causa dos professores kkkkk

    • @user-lz2oh9zz4y
      @user-lz2oh9zz4y 3 роки тому +4

      Em inglês se usa essa pronúncia.

    • @alexsandrotabosa4461
      @alexsandrotabosa4461 3 роки тому

      puts eu também mano kkkkk tenho até um vídeo em vhdl da prova que tive hehe

    • @odayltonprof
      @odayltonprof 3 роки тому

      ​@@Akitando Tudo muito bom ... talvez em um outro vídeo poderia falar sobre instancia da variável Global e Local .... kkk ai sim ia dar um nó na cabeça de todos

  • @wellitonmoreira990
    @wellitonmoreira990 3 роки тому +29

    Grande Akita, você poderia comentar sobre a metáfora desktop e comparar com a mobile? Seria ótimo ouvir sobre isso de quem viveu as mudanças de interfaces ao longo das décadas...

    • @andfresou
      @andfresou 3 роки тому +3

      Bom tema, eu gosto de temas que liga a computação ao humanos não-programadores, gostaria de ver o contexto histórico e a psicologia por trás da interface gráfica.

  • @wolvfenix
    @wolvfenix 3 роки тому +27

    44:10 agora vem a parte mais complicada! Como assim? Eu parei minha louça pra esse comentário hahaha

    • @wolvfenix
      @wolvfenix 3 роки тому +3

      @João M. eu comecei a assistir justamente pra passar o tempo lavando louças hahaha eu nem sei da área de TI

  • @viniciusoliveiracosta1366
    @viniciusoliveiracosta1366 3 роки тому +3

    Ola Akita, gosto muito do seu trabalho, este vídeo ficou muito bom entretanto gostaria de fazer algumas correções. No minuto 23 você falou que quando fazemos “char palavra[100]” o array irá ter um byte a mais para o caractere nulo, entretanto o que ocorre é que serão armazenados apenas os 100 espaços para char, isto é, poderemos armazenar caracteres do palavra[0] ate palavra[99], se tentarmos escrever em palavra[100] iremos escrever em um espaço de memória que não pertence ao nosso array. Por exemplo:
    int main()
    {
    char palavra[10];
    palavra[10]='x';
    printf("%s
    ",palavra);
    }
    Este código irá mostrar um erro na pilha.
    Agora quando fazemos char palavra[]= “Hello World” então teremos sim um byte a mais que será o caractere nulo.
    Outra observação é no minuto 32 que você fala que a string foi copiada três vezes e na verdade a string não foi copiada e nem passada por valor. No C dados primitivos são passados por valor para uma função mas arrays não são passados por valor e sim referência, e como a string é um array de caractere então a passagem para uma função ocorre por referência. Para explicar isso melhor é importante sabermos que char hello[] é sinônimo de char*hello, por exemplo, o parâmetro da função f1 poderia ser trocado por char*hello e continuaria funcionando normalmente. Outro ponto a ser observado é que quando declaramos uma string (char hello[]= “Hello world”;) a variável hello é o endereço da string e sendo assim &hello continua sendo o mesmo endereço e se pegarmos o endereço do primeiro caractere &hello[0] continua sendo o mesmo endereço. Quando a função f1 é chamada (linha 17) o parâmetro que é passado é o endereço da string hello, na linha 8 a função f1 recebe como parâmetro este endereço, na linha 17 é mostrado o endereço da variável hello que é local a função f1 entretanto se for mostrado o conteúdo desta variável ponteiro iremos ver que é o mesmo endereço da variável hello local a função main que foi declarado na linha 17. Em resumo temos apenas uma string “Hello World” que foi declarado na linha 15 e o endereço dela é passado para a função f1 e depois passado para a função f2. Fiz algumas alterações no código para que seja possível ver isto.
    void f2(char hello[])
    {
    printf("From f2: %d\t%d
    ", &hello,&(hello[0]));
    printf("%s
    ",hello);
    }
    void f1(char hello[])
    {
    printf("From f1: %d\t%d
    ",&hello,&(hello[0]));
    f2(hello);
    }
    void main()
    {
    char hello[]="Hello World";
    printf("From main: %d\t%d
    ", &hello,&(hello[0]));
    f1(hello);
    return;
    }

  • @onix2607
    @onix2607 3 роки тому +119

    Quem aí correu para o terminal interativo do Python para verificar se 0.1 + 0.2 == 0.3 daria false ?
    Minha mente explodiu agora!!! kkkkkkkk

    • @ferco0
      @ferco0 3 роки тому +4

      é 2, no node, mas fui tentar resolver kk

    • @SuportoVc
      @SuportoVc 3 роки тому +9

      Kkk tem também essa: 0.1f == 0.1 é false.

    • @fabiomoraes013
      @fabiomoraes013 3 роки тому +10

      Cara na hora abri o console do chrome kkkkkk

    • @LeThorquato
      @LeThorquato 3 роки тому +1

      Eu!

    • @pedroaraujo5564
      @pedroaraujo5564 3 роки тому +5

      Já tive problemas ao comparar diversas quantidades somadas com um valor específico em Delphi, utilizando o tipo Double. Tive que fazer um trunc para resolver o problema. Existe a função SameValue que ajuda também.

  • @joshuademoraes
    @joshuademoraes 3 роки тому +12

    Nos meus primeiros anos enquanto aprendia C, quando dava "estouro de pilha", pensava: fudeu, a bateria da placa-mãe explodiu..

    • @programacaofull6971
      @programacaofull6971 3 роки тому

      da esse perigo e como faz pra aprender ? uma maquina virtual?

  • @gabrielbraga5122
    @gabrielbraga5122 3 роки тому +10

    Akita, você acabou de ser minha luz. Primeiramente, parabéns pelo canal e por todo conteúdo de qualidade que compartilha com a gente.
    Acabei de receber o resultado do vestibular da UFMS e passei em primeiro lugar pra Ciência da Computação, mas estava muito em dúvida sobre ingressar nesse curso de 4 anos ou pedir transferência da Licenciatura em Computação que curso atualmente para o tecnólogo em Sistemas para Internet do IFMS da minha cidade (o que me garantiria um diploma mais rápido, apesar de uma formação mais rasa). Enquanto me perguntava sobre qual decisão tomar, o YT me recomendou esse vídeo onde você demonstra com maestria a importância de uma base sólida e entendimento profundo da computação na vida e carreira de um profissional da tecnologia. Senti, enquanto assistia, que deveria buscar esse conhecimento, e o curso de Ciência da Computação na universidade iria me proporcionar estrutura e recursos para facilitar esse processo; também fiquei encantado com seus exemplos e com a maravilha que tem por trás de um Hello World. Recentemente assumi um concurso como desenvolvedor na própria UFMS e o começo da minha jornada na programação foi meio porca, sem entender muito o que estava fazendo, copiando e colando código sem me importar com isso - o que está me dando dor de cabeça para acompanhar as demandas agora. A primeira vez que despertei (e me assustei) para a importância desse conhecimento foi assistindo a um vídeo seu durante o DoWhile, da Rocketseat. Desde então, não consigo pensar em outra coisa senão recomeçar do jeito certo para me tornar uma pessoa que eu admire no futuro, e seus vídeos tem me inspirado muito a buscar por isso. A forma como você explica é muito didática, algo muito lindo de ver. Obrigado pela dedicação com o canal e por toda contribuição pra comunidade de profissionais e entusiastas dessa área.

  • @GuilhermeBressan
    @GuilhermeBressan 3 роки тому +111

    Não acredito que teve um animal capaz de dar dislike num conteúdo magnífico desses...

    • @rotognin
      @rotognin 3 роки тому +17

      3 "programadores html" deram deslike... e depois voltaram ao toddynho

    • @maikerodrigo4249
      @maikerodrigo4249 3 роки тому +1

      Kkkkk sempre vai ter

    • @MateussCelioBR
      @MateussCelioBR 3 роки тому +11

      Foi o pessoal q se sentiu ofendidinho por ele ter chamado suas linguagens preferidas de cola

    • @anderfilth
      @anderfilth 3 роки тому +2

      Os caras não gostam, mas estão sempre presentes

    • @luizubiratan7243
      @luizubiratan7243 3 роки тому +3

      @@anderfilth Conheço um cara que vive falando mal do Akita, mas sabe mais da vida do cara que eu.

  • @andre.gabriel
    @andre.gabriel 3 роки тому +9

    Eu realmente estou impressionado por ter entendido uns 90% do vídeo, o que significa que fui um pouco produtivo no último semestre da faculdade. Agora, "implementar" o conceito de P.O.O em C foi muito louco, mesmo tendo noção de que isso poderia ser feito, mas nunca tive ideia de como fazer com que as structs tivessem métodos próprios e nem passou pela minha cabeça em usar referência de funções para isso. Isso que é aula. Agora, é estudar mais e rever o vídeo para entender os outros 10%. Valeu Akita.

    • @sonaulo
      @sonaulo Рік тому

      Cara... tive esse mesmo pensamento qdo vi ele transformando C em C++ na minha frente. Obviamente é bem mais do que isso, mas a explicação dele foi mais do que clarificante nesse quesito.

  •  3 роки тому +9

    Eu faço um vídeo com 3 tipos de Hello World e o Akita me vem com um tipo só mas passa uma hora dando uma aula de ciência da computação.
    Ainda bem que não tenho amor próprio 😂
    Valeu pela aula!

  • @kuryart4586
    @kuryart4586 Рік тому +4

    Não tem como, Fabio Akita apresenta o melhor conteúdo sobre computação que existe na internet em português.

  • @hehehepaitachato9184
    @hehehepaitachato9184 3 роки тому +24

    esse japones é foda! da pra aprender mais nesse canal do que na faculdade

    • @neyalexandre
      @neyalexandre 3 роки тому +1

      Dá não velho, o Akita é bom mas ainda não produziu 3 mil horas de video, não tem como competir com uma boa faculdade. Se sua faculdade é fraca, então considere trocar para uma melhor

    • @hehehepaitachato9184
      @hehehepaitachato9184 3 роки тому +2

      @@neyalexandre Grande parte da grade horária do meu curso é matemática. Na parte de computação, com certeza o Akita da de mil a zero.

    • @vinybas
      @vinybas 3 роки тому +1

      @@neyalexandre 1h de aula do akita deve dar aí 1 mês de aula na faculdade no mínimo.

    • @neyalexandre
      @neyalexandre 3 роки тому +4

      @@hehehepaitachato9184 pois é, na faculdade você tem disciplinas, como matemática(Cálculo, Geometria Analítica, Algebra Linear, Equações Diferenciais), que vão além te ajudar a estar preparado para compreender e implementar, na programação, modelos(Econômicos, Físicos,etc) de algumas areas, também te ajudar a desenvolver a sua habilidade de raciocínio logico.
      Em Programação vai ver os fundamentos da coisa toda.
      Tudo que o Akita falou nesse video vc ja deve ter aprendido quando estudou Fundamentos de Computação, Programação estruturada, Estrutura de Dados, algorítimos, matemática discreta e Logica.
      A difença é que o Akita teve a sabedoria de juntar isso tudo par produzir um video massa e para esclarecer como alguns conteudos influenciam em outros.
      Tudo que o Akita falou se estuda em várias disciplinas da faculdade, a diferença é que ele ajuda vc entender as Interrelações desses conhecimentos.

  • @tsxjs
    @tsxjs 3 роки тому +8

    É impressionante como em pouco tempo o Akita consegue explicar, de uma forma extremamente didática, e fazer com que milhares de pessoas, inclusive fora do mundo de programação, aprenda conceitos extremamente importantes que utilizamos por baixo dos panos TODOS OS DIAS! Só resta agradecer, obrigado Akita

  • @errodememoria
    @errodememoria 8 місяців тому +3

    Tô maratonando a playlist e amando os vídeos. Por favor, não pare de trazer esse conteúdo importante e gratuito aqui pro BR. Sei que faz anos de lançamento do vídeo, mas se alguém estiver vendo esse comentário, gostaria de fazer uma "correção" (as aspas farão sentido mais a frente) ao Akita quando ele fala sobre inteiros em C, e adicionar um pouquinho da minha experiência da linguagem também para os mais entusiastas. Primeiramente o ponto que quero corrigir é sobre o intervalo de um inteiro: no exemplo dado de um inteiro com sinal de 8 bits, os valores vão de -128 a 127, e não de -127 a 128 como no vídeo, mas isso se o compilador utilizar o complemento de 2 como forma de armazenamento de inteiros. Isso fica bem claro quando tentamos usar um `char` para printar o caractere de número 128 da tabela ASCII extendida, que vai de 0 a 255, utilizando um total de 8 bytes e não 7, e recebemos um erro, mas ao utilizar um `unsigned char`, eliminando o bit de sinal de um `char` padrão, o código funciona perfeitamente. Agora a parte mais detalhada da linguagem em si: o padrão de C não estabelece ainda uma maneira de como o compilador deve armazenar o inteiro na memória, apesar de estar sendo fortemente cogitado para o padrão ser complemento de 2 na próxima versão de C (a versão atual, no momento desse comentário, é c17). Dito isso, os compiladores atualmente podem armazenar os inteiros da forma que preferirem, o que pode levar a você achar que 128 cabe em um inteiro de 8 bits, mas não cabe porque o seu compilador usa complemento de 2, indo só até 127. O Akita, na realidade, está certo se for considerado um método que usa inteiros indo de -127 a 128, e eu não lembro agora qual é o nome desse tipo de transformação. Na prática não se aplica tanto, já que os compiladores atuais mais utilizados (gcc e clang) usam complemento de 2, e provavelmente algum compilador menor que você talvez tenha que usar, também deve o fazer. Outro fato importante é que inteiros com sinal são sempre armazenados convertidos (em complemento de 2, por exemplo), independentemente de serem positivos ou negativos.

  • @ProfRobsonLopes
    @ProfRobsonLopes 3 роки тому +3

    Akita parabéns pelo Canal, como amante da informática e escovador de bits como sou é demais suas aulas. Quero como professor de Arquitetura de Computadores aqui no IFSP Guarulhos quero sua autorização para colocar seus vídeos como material didático da minha disciplina?

    • @Akitando
      @Akitando  3 роки тому +3

      Claro, não vejo problemas! Por favor ajude seus alunos a gostar de programação em vez de achar que escovação de bits é uma chatice só pra passar em provas.

  • @luis3659
    @luis3659 3 роки тому +3

    Impressionante, tive contato com todo esse conteúdo em uma disciplina de Calculo Numerico. Na epoca achei extremamente chato e nao dei valor. Hoje trabalho com programaçao e vim rever todos esses conceitos. Voce torna o conteudo interessantissimo.
    Monstro.
    Parabens, Akita.

  • @luisbulek65
    @luisbulek65 3 роки тому +6

    C é fantástico. Um dos grandes erros de minha vida foi não ter começado a aprender C com 15 anos de idade.

  • @elissonlima2430
    @elissonlima2430 3 роки тому +3

    Que vídeo sensacional. Já vi todo esse conteudo na faculdadde, mas hoje com 2 anos de experiência assisti esse video e fiz execicios quase que só pela nostalgia, a visão sobre o código é extremaente diferente! Valew Akita!!!!!!!!!!!!!!!

  • @TecnocraciaLTDA
    @TecnocraciaLTDA 3 роки тому +4

    Vc falou de fifo/lifo/queue.
    Tenta fazer um vídeo específico de estruturas de dados po. Tem bastante coisa pra explorar, dá pra fazer 1h;
    Tem até um bagulho interessante, que se não me falha a memória, lisp-machines foram feitas pra lidar melhor com programação funcional que usam recursão pra fazer loops sem f0der a memória;
    Acho que dá um video bom de uma hora, ainda mais se vc explicar as utilidades de cada estrutura de dados mais conhecida;
    Aliás, é um ótimo gancho pra explicar Big O Notation junto e calcular performance de funções e por conseguinte de programas inteiros;

  • @ramongoncalves6168
    @ramongoncalves6168 3 роки тому +12

    C é uma linguagem linda. C se torna uma linguagem relativamente simples quando se estuda o básico de arquitetura de computador. No minuto 50:16 faltou falar sobre structure member alignment, pq nem sempre o tamanho será a soma dos elementos. Como sempre Akita, genial na explicação.

    • @rocchirodrigo
      @rocchirodrigo 3 роки тому +1

      kkkkk simples depois que estuda outras coisas que não são a linguagem. Boa Sr. Manteiga, mas não convence.

    • @ramongoncalves6168
      @ramongoncalves6168 3 роки тому +5

      @@rocchirodrigo mas isso é o básico de computação. Basicamente todo programador deveria entender como essas coisas funcionam. Sr Manteiga foi foda kkkkk não peguei a referência.

    • @rocchirodrigo
      @rocchirodrigo 3 роки тому +3

      @@ramongoncalves6168 manteiga pq desliza, simples e C na mesma frase não dá kkkkk...dá python pra qqr um e 2 meses depois o cara tá fazendo 50 coisas diferentes.

    • @odayltonprof
      @odayltonprof 3 роки тому +7

      @@rocchirodrigo a questão aqui não é a produção e sim a otimização... entender como os Bytes são tratados pela CPU é algo muito simples e essa simplicidade não é explicita em linguagens de alta produtividade... em casos que existem muitos dados a serem processados a otimização dos processo é algo indispensável, o ganho de 1 mili segundo em 30 horas quanto vc não economiza... em aprendizagem de IA isso agiliza em muito o processo

  • @lobohacker
    @lobohacker 3 роки тому +1

    Permita-me fazer uma observação no tempo 36:20 ...
    Na verdade em C arrays de tipos primitivos não são duplicados, ou seja, são passados por referência e não valor, para as funções.
    No seu exemplo há um erro de codificação, pois nos comandos printf("from x: %d
    ", &hello) você está passando &hello, que seria um ponteiro do ponteiro do array.
    Todo array, exemplo "hello" já é um ponteiro por sí só. Então para ver o endereço real do ponteiro do array basta fazer: printf("from x: %d
    ", hello).
    Corrigindo o código para:
    #include
    void f2(char hello[]){
    printf("from f2: %d
    ", hello);
    hello[1] = 'X';
    printf("%s
    ", hello);
    }
    void f1(char hello[]){
    printf("from f1: %d
    ", hello);
    f2(hello);
    }
    void main(){
    char hello[] = "Hello World";
    printf("from main: %d
    ", hello);
    f1(hello);
    printf("%s
    ", hello);
    return;
    }
    Verá que todas as saídas apontarão para o mesmo endereço. (tomei a liberdade de adicionar uma alteração no conteúdo de "hello" dentro da f2 e também colocar um print final de "hello" na main para comprovar que a passagem é por referência e não valor.)
    Conclusão: Em C, o conteúdo de um array não é copiado durante a chamada de uma função.
    No mais excelente vídeo como sempre.

    • @Akitando
      @Akitando  3 роки тому

      Correto, eu mudei o exemplo de ints pra arrays e na hora de editar deixei passar batido sem consertar isso. Já coloquei na errata. Valeu

  • @justvagan
    @justvagan 3 роки тому +7

    A didática do Akita é incrivel. nunca pensei que veria um Hello World de 1 hora kkkkkkkk

  • @_PauloSantoro
    @_PauloSantoro 3 роки тому +3

    Bora mudar o título do vídeo para "Hello Universe!" ;)

  • @thls_hpl
    @thls_hpl 2 роки тому +4

    Akita é mais cientista da computação que muito cientista formado. Nunca me canso de assistir seus vídeos!

  • @esdrastarsis
    @esdrastarsis 3 роки тому +4

    ERRATA: em 45:46 , Akita chama o sizeof de função, mas na verdade é um operador. Excelente vídeo e que venham mais vídeos de C!

  • @ronnykraus1604
    @ronnykraus1604 3 роки тому +1

    Olá.
    Preciso ler uma variável do tipo VARCHAR(20) (texto) de uma banco de dados MariaDB e jogar em uma variável no microcontrolador para mostrar em um Display LCD e não estou conseguindo converter.
    Qual conversor usar?
    Tem alguma dica para me dar para ler essa variável texto?
    Eu testei assim :
    char description [20];
    Serial.print (row->values[f]); = Parafuso
    description = strtok(row->values[f], NULL);
    Serial.print (description); = error: incompatible types in assignment of 'char*' to 'char [20]'
    A variável do tipo SMALLINT(6) no banco de dados eu consegui com o atoi().
    int cycle_time;
    Serial.print (row->values[f]); = 12345
    cycle_time = atoi(row->values[f]);
    Serial.print (cycle_time); = 12345
    OBS:
    "row->values[f]" é um indexador de campo no banco de dados.

  • @noconnectionfound
    @noconnectionfound 3 роки тому +26

    O livro de Luís Damas tem uma ótima didática sobre C pra quem gosta de baixo nível e é "iniciante".

    • @rodolfodirack1246
      @rodolfodirack1246 3 роки тому +1

      Muito bom este livro!

    • @luisdomiciano
      @luisdomiciano 3 роки тому

      Já eu prefiro o treinamento em linguagem c victorine viviane mizrahi.

    • @Paulohenrique-wz6go
      @Paulohenrique-wz6go 3 роки тому

      valeu pela dica ae, mas vou ficar bom numa linguagem de alto nível primeiro

    • @gladistonsantana
      @gladistonsantana 3 роки тому +1

      Dá para usar peek e poke?

    • @odayltonprof
      @odayltonprof 3 роки тому

      @@gladistonsantana kkkk eu usei isso em 1992 para mapear uma calculadora da Casio FX-880p e descobrir onde ficava a pagina de vídeo e fazer um joguinho na tela de 32x2 caracteres ou seja 160x14 pixels monocromáticos (5x7) em cada área de um carácter... eu lembro que na epoca tinha um modelo que só era vendida no japão e que vc podia programar em LM nela

  • @vcatafesta
    @vcatafesta 3 роки тому +1

    45:41 olhando mais atentamente teu código, tenho a impressão que vc quis alocar 12bytes em *hello2, em vista ter utilizado o tamanho de hello com sizeof(hello),
    sabemos que ponteiros tem tamanho fixo, (4bytes para 32bits/8=4 e 8bytes em 64bits/8=8), apesar de ter comentado corretamente segundos antes a esse respeito;
    assim, seria mais correto declarar: char *hello2 = malloc(sizeof(char *)) ou melhor ainda char *hello2 = (char *)malloc(sizeof(char *))

  • @cr3sB3n
    @cr3sB3n 3 роки тому +4

    O melhor é a camiseta do Akita:
    "I paused my game to be here"
    Que segundo o que ele falou no último vídeo, isso é completamente verdade kkkkkkkkkkk

  • @OlavoGanbino-ck5bq
    @OlavoGanbino-ck5bq Рік тому +1

    Eu te amo Akita sem Zuera!!! Cara o dia q eu te ver pessoalmente vou te dar um beijo cara !!! Vc tá lascado!!! Mano não sei velho, cada detalhe das palavras fazem fluir nosso pensamento. 100 akitas resolveriam o Brasil!!!

  • @MarceloLima-sn7ly
    @MarceloLima-sn7ly 3 роки тому +6

    Sábado de manhã começando bem, e falando sobre C, que satisfação!!

  • @ramonpaolomaran2253
    @ramonpaolomaran2253 3 роки тому +6

    Akita está contra o meu simples "print('hello World')"?

  • @cmourabraz
    @cmourabraz 3 роки тому +1

    Oi tudo bem? Eu adoro as suas aulas, e nesta não poderia ser diferente.
    Mas eu fiquei com um nó na cabeça.... na parte do minuto 32:11!
    Se os "arrays" em c ficam no heap o que a função recebe é o endereço desse dado no heap e o que a função f1 e f2 recebe é um endereço e não o valor, o que ela imprimi é o endereço da variável local (da função) que contém o endereço que aponta para a string "Hello World" na heap.... ou seja, não entendi o porque das cópias. Ao ver o vídeo fiquei com a ideia de que na memória existirão 3 vezes os valores que compõem a string "Hello World". Mas não seria apenas uma vez?
    Bem vou ver de novo, porque fiquei confuso.
    Grande abraço!

  • @TecnocraciaLTDA
    @TecnocraciaLTDA 3 роки тому +3

    "Arrays são sempre listas que contém os MESMOS tipos de elementos"
    > PHP: we don't do that here, broh
    A título de curiosidade, para quem não sabe, arrays no PHP podem ser listas e/ou dictionaries e/ou hash-tables, e/ou tuplas ou tudo junto.
    Nele você pode criar uma lista e enfiar o que quiser. Em resumo, permite que programadores ruins façam m3rd4.
    Exemplo, vc pode fazer, num array só:
    $minhaLista = array(5, 'banana', 3, '5', 'nome' => 'Fabio', 'sobrenome' => array( 'Makoto', 1=> 'Akita'), 'ola' => 'mundo', 2 => 84923);
    Notou o surubão desgovernado e desordenado? Pois é, o PHP PERMITE isso, CASO você queira.

    • @gladistonsantana
      @gladistonsantana 3 роки тому

      Pois é, alguém chamou de array o que o javeiro chamou de coleções. Mas convenhamos que o php começou procedural, simples e fácil, mas quando a coisa apertou foi para orientação a objeto e embora esteja um pouco por fora do php me parece que anda bebendo muito das fontes de Java com direito até a máquina virtual.

    • @TecnocraciaLTDA
      @TecnocraciaLTDA 3 роки тому

      @@gladistonsantana Não tem máquina virtual no PHP.
      Hoje PHP é uma linguagem muito f0da.
      Tem tudo que é tipo de recurso pra orientação a objetos e varios para programação funcional.
      PHP 8 bota nodejs pra mamar

    • @gladistonsantana
      @gladistonsantana 3 роки тому

      @@TecnocraciaLTDA JIT é para que então? Sei que melhorou muito, eu programava POO com ela, mas parecia POG porque misturava conceitos antigos com novos.

    • @TecnocraciaLTDA
      @TecnocraciaLTDA 3 роки тому

      @@gladistonsantana JIT é uma coisa, máquina virtual é outra.

    • @TecnocraciaLTDA
      @TecnocraciaLTDA 3 роки тому

      @@gladistonsantana vc deve ter uma visão de PHP de 15 anos atrás então.
      PHP tem namespaces, sistema de pacotes, sistema interno de cache, traits, interfaces, typed properties, Annotations, arrow functions, tem Swoole pra trabalhar de forma async excelentemente bem...

  • @felipeschossler
    @felipeschossler 3 роки тому +6

    Hello world versão Akita: 1 hora

  • @androidfirebase3095
    @androidfirebase3095 3 роки тому +1

    Fabio Akita fez um breve ressumo do livro THE ART OF ASSEMBLY LANGUAGE

  • @gu_otani
    @gu_otani 3 роки тому +4

    Aprendendo bastante com esses vídeos, realmente poucos explicam detalhadamente assim

  • @nddaniel1681
    @nddaniel1681 Місяць тому +1

    assisti este vídeo antes de começar a estudar a 6 meses atrás e quase não entendi nada, agora depois de estudar c na 42, entendi muito dos conseito que não tinaha pretendia no ano anterior.Este vídeo foi muito bom. Ainda irei assistir novamente.

  • @custodiogomesbarcellos4972
    @custodiogomesbarcellos4972 3 роки тому +1

    Ótimo vídeo! Aproveito pra informar que peguei uma lente e fiquei tentando ver quais livros estão na sua estante. Pensei: Vou ler o que esse japa lê e vou ficar esperto que nem ele. rsrs Depois faz um video com um tour pela sua estante pra facilitar minha vida. rsrs Um abraço e ótimo vídeo!

  • @viniciuspjardim
    @viniciuspjardim 3 роки тому +6

    Edit: tem a errata na descrição, não tinha visto...
    Em 6:08 é 7 bytes mesmo!
    1 byte são 8 bits. 8 bytes (8 x 8) são 64 bits. Então o Int64 são 8 bytes. Estaria desperdiçando 7 quando precisa só de um.
    Só mais uma dica pro pessoal novato, bytes é abreviado com B maiúsculo e bits com b minúsculo. Então 1B = 8b.
    Por exemplo, ao contratar a internet com o provedor, a velocidade está em Mbps (mega bits por segundo). Quando a gente faz um download a velocidade é exibida em MB/s (mega bytes por segundo).
    Então se sua internet é 200 Mbps o limite da velocidade de download seria de 25 MB/s. Muita gente acha é a mesma unidade e a operadora está roubando a velocidade!

  • @queencarolas
    @queencarolas 3 роки тому +1

    Baita vídeo!
    Esse tipo de conteúdo me faz valorizar meus professores de Fundamentos da Computação e Estrutura de Dados, que fazem questão de ensinar em C. Se o computador pensa em binário e C, eu preciso saber como ele está pensando - mesmo que a minha aplicação seja em Python. Não dá pra confundir aplicação com fundamentos - e o que eu mais gosto desse canal é que você deixa isso bem claro.
    Continue com o bom trabalho. =)

  • @matheusabmoreira
    @matheusabmoreira 3 роки тому +3

    Em uma hora conseguiu resumir meu primeiro período em Ciência da Computação e fez uma introdução aos próximos. Muito obrigado Akita!

  • @marcelojtelles
    @marcelojtelles 3 роки тому +1

    Akita discordo de vc, quando vc falou para pegar papel e caneta. Ao invés de papel o correto seria CADERNO kkkkk. Excelente vídeo, parabéns pelo conteúdo. Sucesso a todos, valeu Akita.

  • @matheusrossisaciotto922
    @matheusrossisaciotto922 3 роки тому +3

    Em 38:34 quando você passa um array para função em c e c++, mesmo declarando com colchetes você passa a referência, mesmo definindo o tamanho entre os colchetes vai ser passado por referência. você pode confirmar isso através de sizeof(hello). Logo a pilha não vai conter a palavra inteira hello.

    • @hiperrafael546
      @hiperrafael546 3 роки тому

      Dá para fazer isso fazendo um struct e colocando o array dentro. Passar o struct como argumento vai forçar a cópia.

    • @feliperesende4505
      @feliperesende4505 3 роки тому

      Não sabia dessa em C, em C# é passado o array mesmo até onde eu lembro. Acho que em C é passado como referencia porque a sintax do colchetes é uma espécie de abstração de ponteiro.

    • @wallas4171
      @wallas4171 3 роки тому

      Oxe, claro que a pilha vai continuar tendo a palavra inteira hello neste exemplo.

    • @wallas4171
      @wallas4171 3 роки тому

      Infelizmente, tem vários pequenos erros, mas no geral, ficou legal o vídeo.

    • @hiperrafael546
      @hiperrafael546 3 роки тому

      @@wallas4171 Ele quis dizer que a função f1 não vai ter a string hello copiada novamente na pilha e sim, somente um ponteiro para string hello declarada na pilha na função main

  • @ThiagodaCunhaBorges
    @ThiagodaCunhaBorges 3 роки тому +5

    Acabei de começar a assistir o vídeo, e me veio aquela sensação de que vou assistir esse vídeo em loop infinito...

  • @MsVictorAlisson
    @MsVictorAlisson 3 роки тому +2

    Foi uma mescla de várias cadeiras de computação: arquitetura de computadores, fundamentos de programação, introdução a programação, SO, etc.
    Matei a saudade em alguns momentos dos tempos de universidade. Parabéns man! Vídeo educativo e muito bem produzido/feito.

  • @expencersumbo7320
    @expencersumbo7320 3 роки тому +3

    Estou iniciante java , venho estudando a 1 ano e pouco meses(uns 4 ou 5), nesse intervalo esperimentei quase todas as linguagens mais populares de hj em dia, C, c++, python ,js, c#, php, html +css, sql(não de programação, mas testei), pois sou extrememante curioso e quero sempre aprender mais , pois não suporto não saber. O meu foco principal é java nomomento, mas não consigo aprender somente java, sem dar um espereitade-a para ver como se faz as coisas em outras linguagens, recentemente até quiz esperimenta o golang. Por muito tempo me senti que que quase não avançava, ou que avançava muito devagar. Cheguei a pensar que uns dos motivos é por as vezes esperimentar outras linguagens. Mas vendo esse vídeo do AKita me fez perceber que valeu a pena, e que aprendi e tenho aprendido muita coisa principalmente associando os conceitos de todas essas linguagens(C principalmente) . Eu vejo sempre os videos do Akita mas boa parte sempre apanho porrada do assunto que ele fala por não saber ou ter a mínima noção, mas este em particular é o primeiro que entendi quase 70% do que ele falou no vídeo, até as partes mais complexas onde relaciona o C com outras linguagens que usam outros paradigmas. Isso me deu um super boost na motivação, em particular a parte que tenat resumir a POO em C fazendo a combinação de uma struct com todos os campos e ponteiros para funções, pois esse reciocínio que tive exactamente que estudei um pouco de ponteiros para funções e struct. O que permitiu tambem perceber como era possivel manipular funçoes como se fossem vars normais em python e js(closure, first-class function, high-order). Vendo Aqui qué um expert na Area, a ter um raciocinio semelhante ao meu, me mostra que estou a comecar a pensar como programador
    Sou de Angola, e estou aprendendo programação por conta propria buscando de todas fontes possíveis e disponiveis(ebook gratuitos, youtube, free courses, etc).

    • @profAMuniz
      @profAMuniz 2 роки тому

      Se te ajudar, pesquise "Library Genesis" e baixa tudo lá rs de Assembly até Carbon! ;)

  • @Raffa064
    @Raffa064 Рік тому +1

    To aprendendo c++, ai fui fazendo uns testes, junto com o ChatGPT, e ele me falou uma coisa... As variáveis criadas em escopo global têm um lugar próprio na memoria, que ta fora daquele esquema q tu mencionou... é verdade? onde exatamente ele se encontra naquele esquema ( 35:31 )?

  • @leandro_augpc
    @leandro_augpc 2 роки тому +1

    Uau muito bom! Eu como iniciante estou com outra visão sobre essas linguagens e como é importante saber o básico e ter uma boa base para fazer bons trabalhos. Gratidão Fabio

  • @DanielPereira-pq3tw
    @DanielPereira-pq3tw 2 роки тому +1

    Utilizei o C durante o curso técnico em eletrônica, e também tive uma visão sobre as estruturas de dados e algoritmos com microprocessadores 8051 em Assembly. Agora estou aprendendo análise de dados e o Python me auxilia nisto com a biblioteca Pandas e Seaborn. É valido rever o "micro" para compreender as falhas no "macro". Excelente trabalho!

  • @rafaeljesus579
    @rafaeljesus579 Рік тому +2

    Só agora entendo o poder do Ponteiro em C/C++, muito obrigado Akita

  • @mateusnatanael7422
    @mateusnatanael7422 3 роки тому +1

    Minha vida nesse começo na computação é uma saga filmes que tem o subtítulo o inimigo agora é outro...
    Eu achei que sabia C kkkkkkk

  • @leyria
    @leyria 3 роки тому +1

    40:35 O nome do famoso site de consulta StackoverFlow, vem exatamente dai, de quando vc estoura uma stack (pilha).

  • @phillipeeduardo4087
    @phillipeeduardo4087 3 роки тому +1

    Grande aula, o seu conteúdo e tão bom que 1hr de vídeo pareceu apenas 10 minutos de vídeo, o assunto foi dinâmico e claro, incrível o método, você ensinou muita coisa, passou por vários assuntos tipo, Orientação a objeto, programação de baixo nível, alto nível, nível de arquitetura de processador e nível de arquitetura de maquina muito bom mesmo. Ganhou mais um inscrito no canal, vlw.

  • @henriqueS9653
    @henriqueS9653 3 роки тому +1

    cara tu basicamente resumiu as disciplinas mais importantes de ciencia da computação uheuheauhea esse papo todo me fez lembrar demais um projeto que eu tive que fazer em estrutura de dados que era uma agenda de telefone, e essa agenda tinha que ser criada utilizando um ponteiro void como buffer, e a gente tinha que adicionar structs dentro desse ponteiro com as informações das pessoas (nome e telefone), me lembro nitidamente de escovar os bits com alloc, malloc e realloc. Depois pra deixar mais "didático" o professor pediu pra gente desenvolver algoritmos de sort tipo quick sort e merge, e ainda adicionar suporte a algumas estruturas tipo lista, pilhas, filas, arvores binarias, arvores avl, arvore rubo negra. Eu me lembro que esse semestre eu suei frio pra fazer esse negocio hahaha , por fim é o código que eu fiz que tenho mais orgulho hahaha ficou umas 1000 linhas no final

  • @LooserName
    @LooserName 3 роки тому +1

    Top o vídeo. E um assunto interessante pra ver o Akita falando seria programação funcional.

  • @joaovictor_ti
    @joaovictor_ti 7 місяців тому +1

    em 2022 eu assisti esse vídeo e n entendi nd, agr em 2024 eu re-assisti esse vídeo e entendi uns 80% sksks

  • @wellifabio
    @wellifabio 3 роки тому +2

    Obrigado pela sua paciência para criar estes conteúdos. Utilizo seus vídeos em minhas aulas. e confesso que estudo bastante para sanar as dúvidas dos meus alunos.

  • @ricardobrito383
    @ricardobrito383 Рік тому +1

    Ótima aula, Fabio! Estudo linguagens de programação de baixo nível e vi que as suas explicações sobre stack pointers (LIFO), segmentation fault e endereçamento de memória estão no mesmo naipe dos grandes escritores de livros de programação Assembly. É uma noção fundamental para todos os programadores que querem fazer a diferença no mercado de trabalho.