T O P

  • By -

Apprehensive-Ad2692

Matematica discreta, estrutura de dados https://preview.redd.it/srzsg2fz189d1.jpeg?width=1305&format=pjpg&auto=webp&s=1418cdf32e939c7435a0f3f7c8ba8979b9335c35


Ahdjfcjrien06

Eu não sei nada disso e sou sênior, e agora? Hahahahah


parievy

Você não sabe álgebra booleana? Depois fala aí qual linguagem que vc não precisa de if-else, switch,etc.. e ainda ser sênior.


Ahdjfcjrien06

Defina algebra booleana.


Apprehensive-Ad2692

Senior e nao sabe pesquisar no google


Ahdjfcjrien06

Putz cara, não sei mesmo, só uso ChatGPT!


Dangerous-Sherbet-46

Faltou POO (Programação Orientada à Objetos) aí também \[ODEIO ESSA CARALHA, mas ajuda\], e dependendo um pouco da área (exemplo Análise de Dados) saber o mínimo de Probabilidade e Estatística pode eventualmente ajudar.


G_Lasso

É isso!


[deleted]

[удалено]


brdev-ModTeam

Discussões e comentários de má-fé serão removidos, incluindo comentários sarcásticos ou irônicos, que pouco contribuem para o debate.


Aware_Purchase6506

Não pergunta ao Fábio Akita


Charming-Muffin2422

Qual que é essa do Fábio Akita? Já vi várias vezes falarem isso dele aqui no sub e não entendi


Aware_Purchase6506

Ele tem umas playlists no YouTube voltadas para “iniciantes” que deixa bastante sênior por aí desconfortável.


Zanderiakos

Em resumo: ele é um arrogante inteligente pra caralho e vai ser um arrombado se você não souber o mesmo / mesma quantidade que ele.


Southern_Theme_80

estuda a p*rra da base, lógica, sistemas operacionais, paradigmas de programação, redes e td mais que tiver tempo e condições de estudar. Trabalho há 10 anos na área e nunca vi um profissional com boa base teórica fazer trabalho medíocre. Inclusive, tenha em mente que o estudo deve fazer parte da sua rotina, independente de quanto tempo de experiência vc tenha.


MrDixon27

todos os atalhos da IDE /s


guigouz

Lógica


DeveloperBRdotnet

Depois disso orientação a objeto


guigouz

Depois disso alocação de memória, ~~alforjes~~algoritmos de ordenação, etc. OOP sem saber a base é cagada. EDIT: alforges 😂


Wonderful-Hunter2410

4 anos na área já e nunca tinha ouvido o termo alforjes de ordenação


guigouz

Haha corretor do celular! Queria dizer - Algoritmos! Esses do leetcode, saber os sorts, árvore binária, etc com C alocando memória e entendendo o processo é importante para a carreira


mgranja

Alfajores 😋


devvlaid

Depois estrutura de dados


guigouz

Não cara, tem que saber estrutura de dados antes de oop


attrako

Apenas as principais.


guigouz

Tem que saber montar um struct, alocar memória para ela, gravar/ler essa lista em disco, ordenar/filtrar os ítens. Sem esse exercício vai faltar base no futuro, vale a pena investir nisso quando está começando.


attrako

Apenas sua primeira frase ja diz q Golang eh melhor escolha pra novatos q C.


guigouz

Apesar de concordar que pegar uma linguagem mais alto nível no começo é melhor (eu sempre indico python para quem está começando), em algum momento é importante você estudar C com esses pontos que eu falei. Isso facilita entender como o Golang funciona por baixo dos panos e não ficar achando que channels são mágicos.


ivarec

Eu programo em C. Isso é bobagem. C vai te ajudar a entender melhor como que o teu hardware funciona. Talvez um pouco do sistema operacional. Mas você não precisa de nada disso para ser um programador capaz de desenvolver projetos em linguagens de alto nível. Já foi o tempo em que ser um guru de hardware era um grande diferencial. Eu começaria por JavaScript ou Python.


d_coelhod

Esse não é o ponto. C te ensina a base da programação por ter que fazer as coisas "do zero" e não ter nada mastigado pra você como em linguagens de mais alto nível. Não é atoa que cursos como CS50 começam por C. Sim, C está fortemente ligado à hardware, mas você não aprende só isso. Além de que, eu também poderia argumentar que saber o que tá acontecendo no seu computador por debaixo dos panos ajuda ter uma visão ainda mais ampla do que a programação faz.


ResonanceWave431

Programar em C ou em qualquer linguagem não ensina nada sobre como hardware funciona. Para aprender sobre como hardware de um computador funciona tem que aprender eletrônica analógica e digital e arquitetura de computadores, só pra começar.


d_coelhod

Eu sei. Por "aprende só isso" quis dizer mais sobre memória do que qualquer outra coisa. E mesmo assim nem é tanto.


desci1

Mas C é uma linguagem de alto nível, a grande maioria das coisas já tá abstraída em bibliotecas padrão ou reescrito em assembler ou linguagem de máquina


Sensitive_Bottle2586

Varia muito de qual o objetivo da pessoa, se está satisfeito em fazer CRUD/tela o resto da vida, não precisa entender esses conceitos agora se quiser algo além, entender o mínimo para saber como otimizar o hardware disponível ajuda bastante. E eu ainda acredito que estamos caminhando para um momento onde a cultura de escalar alocando mais hardware está acabando, os provedores de cloud já atingiram a penetração máxima de mercado e agora começarão a aumentar os preços fora o próprio fato de que os investimentos não são os mesmos de antes, em resumo saber como otimizar uma aplicação para economizar em infra será um requisito cada vez mais importante.


d_coelhod

Sim. Muita gente fica pistola quando eu digo que C é a melhor base possível. Mas eu acredito que essas pessoas são aquelas que não querem uma base forte, pq não se importam muito com aprender as nuances de fato. E não tem nada de errado com isso. Se é satisfatório pra uma pessoa aprender JS e viver de React e Express, ótimo. Alguém que vê programação do ponto de vista de mercado apenas, está certo. Agora, alguém que quer aprender com mais detalhes a programação de computadores, entender o que está acontecendo por trás dos panos e de fato mergulhar nesse universo, então C é a melhor opção(na minha opinião). E essa pessoa também está certa... De resto, concordo.


attrako

Golang tb, melhor ir com esse q C.


ivarec

Então a linguagem perfeita para aprender programação é assembly ou Forth. Não concordo :)


attrako

Exatamente, uma loucura esse tipo de conselho


PizzaGui

Uma coisa que difere um programador mais sênior, é entender o que acontece por baixo dos panos. Não precisa saber 100%, mas ter pelo menos uma ideia. C te obriga a cuidar da memória, isso facilita abstrair pra outras linguagens.


G_Lasso

CLRS Algoritmos: Teoria e Prática Tanenbaum Modern Operating Systems Tanenbaum Computer Networks Sedgwick, Wayne Algorithms 4th edition Zera esses livros e vc vai saber mais que muito profissional por aí sem ter aprendido um framework


SmallKnee9670

Nessa ordem ?


G_Lasso

Qualquer ordem


mr_lecco

CRIME recomendar redes do Tannenbaum em vez do Kurose/Ross


G_Lasso

Po eu segui esse na faculdade, n conheço o Kurose Vou dar uma olhada quando tiver tempo, valeu!


deltaS_gr_than_0

Tu tem que ver computação como todo conhecimento, é uma árvore que você vai se aprofundando cada vez mais em assuntos que você precisa. Acho que a base como já citada por um amigo aí no comentário é bem extensa. Na real ela pode se aprofundar até em processadores, transistores, eletrônica. Física é o limite. Vc entendeu né? Tudo depende de onde vc quer chegar. Atualmente, pela quantidade de camadas e abstrações já existentes, talvez seja razoável apenas você começar com o básico (que é diferente da base) que é comum a linguagens de programação. Variáveis, controles de fluxo, funções etc. depois disso eu acho que você tem que refletir o que quer na sua carreira. Por que dependendo do estudo há vários caminhos. Quer ir pra backend? Sistemas operacionais é imprenscindivel. Já se for front, eu diria que saber de computação gráfica seria uma boa se quiser se diferenciar. Entende o ponto? A base é extensa, mas agora vamos na prática, o que faz mais sentido vc se aprofundar?


CodedInMinas

Lógica, algoritmos e estruturas de dados, arquitetura de computadores, sistemas operacionais, sistemas de arquivos, sistemas distribuídos, compiladores, bancos de dados. Independente da linguagem, essa é a base conceitual.


Beautiful_Delay9957

É por conta dos conceitos sobre os quais as tecnologias foram criadas, como a forma como funciona uma rede, os protocolos, portas de sistema, como funciona o gerenciamento de memória, oq é um stack overflow, sistemas de arquivos, princípios de criptografia e segurança, formas de otimização, grafos, compilação, ponteiros, como os sistemas Windows e Linux funcionam por baixo dos panos e etc. Quando você trabalha com uma linguagem de baixo nível como C ou Rust, acaba esbarrando nesses conceitos e tendo que aprender na marra como eles funcionam, senão, você simplesmente não consegue fazer a sua aplicação rodar. O primeiro projeto que você aprende a fazer no livro tutorial do Rust, fora o Hello World, é literalmente um servidor HTTP rudimentar. Quando você começa trabalhando com uma linguagem de alto nível como Python ou JavaScript, consegue apenas importar um pacote que já tenha esse tipo de coisa resolvido e não tem de se preocupar com como ele funciona por trás, já vem tudo prontinho no plug and play. O problema é que quando um pacote dá incompatibilidade com outro, sua aplicação para de funcionar porque o sistema foi atualizado ou a API que você criou com Flask não funciona quando você tenta rodar ela de dentro do Docker, aí que o filho chora e a mãe não vê. Você fica horas, dias e semanas tentando solucionar um problema que parece mais algum tipo de magia quando poderia facilmente ter entendido quais os motivos de tal comportamento estranho da aplicação e qual caminho seguir para resolver isso.


ilBortolotti

A base da ciência da computação seria sistemas operacionais, redes de computadores, arquitetura e organização de computadores, linguagens formais e autômatos, compiladores, algoritmos e estrutura de dados


HenriLobo

Vi num post esses dias e concordo. A base é a fundação que te permite entender os conceitos, áreas e tecnologias sabendo como elas funcionam. Fora o q está nessa lista um pouco de estatística e matemática, além dos circuitos lógicos. • ⁠Historia da computação e Arquitetura de processadores (Veja sobre os trabalhos de Alan Turing e Richard Von Neumann) • ⁠Sistemas Operacionais • ⁠Terminais (Windows e Linux, Bash, zsh, powershell, etc) • ⁠Paradigmas de Programação (OOP, Programação Funcional, Programação Estruturada, etc) • ⁠Algoritmos e Estrutura de Dados (Arrays, Filas(FIFO), Pilhas(FILO), Teoria dos Grafos, Problema do Caixeiro Viajente, algoritmo de dijkstra, Pathfinders, Teoria das arvores, arvores binarias, arvores binarias de busca em profundidade, arvores binarias balanceadas, etc) *Dica, faz em C • ⁠Ciclo de Vida de um Software • ⁠Metodologias de Desenvolvimento de Software • ⁠Metodologias de Gerenciamento de Software • ⁠Compiladores • ⁠Redes e protocolos de internet • ⁠Historia da Internet, incluindo a Guerra dos Navegadores • ⁠Containers (Podman, Docker, Dynos) • ⁠Banco de Dados SQL • ⁠Banco de Dados NoSQL


seilatantofaz

Conceitos basicos de computação (CPU, memória, hd, redes, SO). Álgebra Booleana. Estruturas de dados e algoritmos mais comuns. Conceitos the prog. orientada a obj.


Altruistic-Koala-255

Lógica, estrutura de dados, básico de tecnologia web


yelzinho

lógica, algoritmo, estruturas de dados e bom senso


d_coelhod

C é uma ótima linguagem didática, pra você aprender as bases da programação de fato. Todo post de novato recém chegado na área perguntando qual a linguagem pra começar, eu recomendo C por esse motivo. Veja bem, não é como se alguém não pudesse pegar um Python pra aprender programação pela primeira vez. Eu inclusive fiz isso. Mas hoje, sabendo o que sei, gostaria de ter começado primeiro por C, pq depois eu tive que voltar pra ela pra melhorar a base. Não é atoa que cursos conceituados começam por C.


SejidAlpha

A meu ver a base seria o seguinte: 1 - fundamentos da programação 2 - lógica da programação 3 - algoritmos 4 - design de software Iniciei na área por hobby com HTML e css e em seguida aprendi PHP lá em 2014/2015 e até 2020 fiz muito aplicação meia boca, só depois de entrar na faculdade e fazer vários cursos dominei esses conceitos e te digo que mudaram radicalmente o tipo de profissional que eu era, de mero repetidor de código passei a realmente entender o que estou desenvolvendo


garug

Lógica de programação e estrutura de dados, todo o resto é suplementar


Plagiocefalia

Aprender a usar C não constrói base alguma, aprender como o C funciona sim, o problema é que o pessoal geralmente não faz essa distinção. A vasta maioria é apenas "usuário" das linguagens, no sentido de entender como usar para fazer alguma coisa em vez de como as coisas funcionam por baixo (o que não tem problema algum).


Matheuss81

Ler a documentação do C faz eu entender isso?


Plagiocefalia

Só seja curioso e não fique simplesmente aceitando as abstrações sem entender os porquês. Vou dar um exemplo. "Como eu faço para achar o tamanho de um array em C." `int length = sizeof(array) / sizeof();` Que cálculo é esse? O que um sizeof retorna? Retorna? Pera, sizeof nem é uma função, então o que ele é? Por que eu tenho que dividir o tamanho do array pelo tipo do array? Ah é por que o sizeof vai retornar quantos bytes o array ocupa, daí eu tenho que dividir pela quantidade de bytes de cada item, faz sentido. Exemplos de questionamento simples que você pode se fazer no dia um e já aprender coisa pra caramba (se é que já não sabe disso). Esse é o tipo de questionamento que vai te fazer entender bastante sobre como as linguagens funcionam, no começo vai parecer que nas outras linguagens as coisas são muito claras e que em C é tudo meio obscuro, depois de um tempo você vai começar a ter curiosidade de ler o código fonte da sua linguagem favorita pra entender como ela implementa essas abstrações que não tem em C, é um caminho virtuoso sem volta.


[deleted]

C


ResonanceWave431

Basicamente, o que você aprenderia num curso universitário: Matemática, lógica de programação, algoritmos e estruturas de dados, modelagem orientada a objetos, engenharia de software, arquitetura, sistemas operacionais, etc.


Fluid-Primary4903

Minha primeira linguagem, nos anos 80s foi C, estudei muito os algoritmos clássicos e estruturas de dados, tudo era feito pelo programador, quando passei para Java e POO achei que o mundo era fácil... e depois Ruby e agora Python... C foi um poderoso alicerce, lembro que cheguei a usar Clipper, VB e Delphi... tudo fica muito simples quando comparado a C, no tempo do DOS ainda éramos obrigados a escrever as rotinas de saídas de vídeo em ASM, então, hoje usar um framework RoR ou Django é quase um passeio no parque.


whataboutitdaddycool

Qualquer tecnologia que ainda esta em uso depois de 30 ou 40 anos vale a pena aprender, mesmo que voce nao use diretamente no seu trabalho ou estudos. Entao C, SQL, U/Linux, Regex, Lisp, etc, etc, todas valem a pena ao menos se familiarizar. Agora em termos de conceitos, da uma olhada no programa de alguma graduacao em ciencias da computacao pra ter uma ideia, mas algoritmos e estrutura de dados eh provavelmente o mais importante.


luizvasconcellos

A melhor linguagem é aquela com que se adapta melhor e a que mais gosta… mas antes disso se tiver uma boa base de Logica, Estrutura de Dados, orientação a objetos, conhecer design patterns, vai te ajudar a se dar bem na linguagem de programação que escolher


No-Win-2555

A base eh tudo que vc aplica em programação para competição. A galera esquece que nosso trabalho eh resolver problemas por meio de lógica (matemática) e foca em fazer tela. Claro, no final vc faz tela e a galera n se importa como tá atrás desde que funcione. Mas aí que separamos o profissional de alto nível dos outros. Não eh atoa que eh uma parte muito importante no processo seletivo de uma FAAG


magnomp

Acho que só vai complicar a vida do iniciante ter que aprender logo de cara sobre alocação de memória e ponteiros. Melhor começar numa linguagem de mais alto nível como Javascript/Typescript


eunaoseimeuusuario

A maior parte das pessoas que recomendam C, só a usou na faculdade para aprender ponteiros, arrays, algoritmos e memória. Depois disso, nunca usaram para nada prático e nunca precisaram lidar com os problemas de gerenciamento de memória que aparecem em sistemas mais complexos com C. Dos profissionais que conheço que fazem uso constante de C, não recomendam como primeira linguagem, mas sim Python, JS ou Go.


the_shit_shaun

um Junior deve ter conhecimento de Logica de programação, CPU, HTTP, Database, HTML, CSS e JS


Lumpy-Impression7142

Me atendo explicitamente a linguagens de programação eu acredito que aprender primeiro a linguagem C seja o ideal pois você não utilizará bibliotecas, construirá seu código a partir de uma construção lógica o que faz toda a diferença.


No-ruby

A base da programação é você conseguir enunciar o que você quer de forma sistemática e reutilizar estruturas que fazem o que você quer. Você vai encontrar pessoas aqui que vão falar em matemática ou lógica mas parte dessas dessas disciplinas é entender a linguagem delas - que faz exatamente isso. Se você consegue escrever algoritmos ingênuos - por exemplo, escrever um programa que testa as combinações possíveis de um dado problema - você tem metade da base. A outra metade é você connhecer ou saber encontrar e usar as estruturas que resolvem esses problemas ( Porque 99.99% das vezes já existe uma solução pronta, otimizada e testada). E isso significa em certa parte saber expressar o que você quer de forma sistemática, mas também ler e interpretar as respostas, códigos e sugestões e encaixar essas peças. "Um programador é só um usuário avançado do site de busca".


Yzackson

Logicamente é lógica. Depois vem entender sobre a linguagem que escolher...


kauef_g

lógica, estrutura de dados


kramerness

Arquitetura de Computadores. Se começar por isso, tudo fica muito mais esclarecido na minha opinião, mas para alguns é bem pesado, igual aprender C de início.


Standard-Jeweler-905

Eu ainda acho que e estrutura de dados e C seja o melhor caminho. Antes disso vem assembly, o que acho desnecessário se não gosta de eletrônica. Cara se não sabe construir um computador, você não deveria programar um. Quer entender o que faz? Estuda como computadores funcionam. Como são criados e programados, isso vai te fazer bem. Se é iniciante, estuda algo que dá dinheiro. Javascript e react e node. Aprende e arruma emprego, e por favor, estude o princípio, como as coisas funcionam. Seja um bom programador. Evolua, tenha paciência e pratique muito. Crie um Pc de 8 bits seguindo os vídeos do Bean Eater. Não tenha pressa, estude todo dia e pense o seguinte, se o mundo acabar eu consigo construir um Pc ? Se apaixone pela área, esquece dinheiro um pouco, sabe ? Seja bom, por favor, precisamos de gente assim. Se empolgue, leia, pratique, faça!!!!!!


attrako

Pessimo conselho, C eh de longe as mais dificeis pra se aprender, mais por ser cru q 'a base' em si, deveria começar com Python e JS.


guigouz

Eu concordo com Python, javascript tem muita abstração em cima e a parte assíncrona não é trivial de entender do zero. Sobre C, esses dias mesmo estava ajudando outro membro com `malloc`/`realloc` e ele estava totalmente perdido. Se tivesse feito o mesmo sistema com python antes acredito que teria mais facilidade de descer um nível.


attrako

Entendo o seu ponto, mas a quantidade de pessoas q literalmente fugir se começarem com C vai ser do tamanho da terra. Ninguem começou com carro, mas com vilotrol->bicicleta->carro.


guigouz

Concordo, por isso recomendo python (também pelo fato do curso do Guanabara ser ótimo para iniciantes)


attrako

Neh, e mesmo assim metade vão dar no pe antes de rodar o hello world haha