openschoolbr / forum

:loudspeaker: Fórum para discussões/dúvidas/sugestões a respeito da Open School Brasil.
MIT License
90 stars 2 forks source link

Ideias de cursos / assuntos a serem abordados #2

Closed muniz95 closed 7 years ago

muniz95 commented 7 years ago

A comunidade é livre para decidir quais temas serão abordados nos cursos.

Sugestões de assuntos pra virar curso podem ser feitas por aqui.

lflimeira commented 7 years ago

Para a parte de back acho que seria legal começar pela base, lógica de programação, OOP, SQL, NoSQL e por ai vai.

alinebastos commented 7 years ago

Lógica de programação acho importante pra tudo, deveria ser um pré-requisito pra todos :)

lflimeira commented 7 years ago

Boa @alinebastos, agora que vc comentou, poderiamos criar uma lista dos cursos oferecidos e descrição de cada um, juntamente com pré requisitos. :smile:

bernardocs commented 7 years ago

Eu acho importantíssimo o básico de UI moderno: HTML, CSS. Julgo ser um conhecimento indispensável para o desenvolvedor web.

O que eu vejo muito também é agregarem o conhecimento de UI (HTML, CSS) e separarem de JavaScript, mesmo que seja apenas para manipular o DOM, devido a necessidade de conhecimento de lógica de programação para faze-lo.

Existe alguma forma legal de apresentar as duas formas de conhecimento sem segrega-las?

alinebastos commented 7 years ago

Sim, seria bem interessante pra orientar as pessoas! Muita gente não tem ideia de como começar, por onde seguir depois.

bernardocs commented 7 years ago

Eu também tenho uma opinião bem forte em relação à aplicação do conhecimento de Ciência da Computação (lógica monádica, padrões de projetos e, principalmente, estrutura de dados) ao dia a dia.

Debati, recentemente, com colegas sobre a importância de olhar para um código e inferir a complexidade computacional e ciclomática dele.. sobre saber qual estrutura de dados usar em dada situação e porquê... sobre saber aplicar os padrões de projetos e porque aplica-los.

lflimeira commented 7 years ago

@bernardocs Eu acho que a questão de padrão de projetos, é bem relativa, o que aplicar e quando aplicar depende de N variáveis, na minha opinião. Mas acho que poderia ter um curso sobre isso tudo, design pattern, estrutura de dados e outros.

phillipnunes commented 7 years ago

Minha sugestão de curso segue na linha do livro Clean Code e outros bons livros, que um desenvolvedor poderia lêr e aplicar.

Não apenas ensinarmos a tecnologia, mas como usá-la direito. Como escrever um bom código e etc.

Isso poderia ser um ou mais cursos a parte, ou um conceito inserido em todos os outros cursos, quando for aplicável.

erandirjunior commented 7 years ago

Padrões de projeto.

iagocavalcante commented 7 years ago

Acho que seria interessante abordar Lógica de programação com uma didática voltada para os mais jovens, quem sabe até crianças interessadas na área.

alinebastos commented 7 years ago

Lógica pra crianças acho muito interessante! Tenho uma filha de 10 anos que sei que adoraria :)

lflimeira commented 7 years ago

Poderia ter algo de IoT, Robótica utilizando Arduino, Rasp e afins.

alinebastos commented 7 years ago

Tô vendo que vamos ter uma lista de cursos muito interessante :D

muniz95 commented 7 years ago

@alinebastos nessa ideia de lógica para crianças seria legal abordar o Scratch que é feito pensando nos pequenos

alinebastos commented 7 years ago

Sim! Minha filha começou a usar ele, mas acabou ficando sem note. Quero ver se ela volta. Eu achei muito legal, e muito fácil de entender!

yuriploc commented 7 years ago

Sobre começar pelo básico, posso ajudar a escrever sobre Algoritmos e Estrutura de Dados em JS com node. Quem sabe, depois de implementar na mão, pegar alguma lib tipo underscore ou lodash pra galera também ter algo prático pro mercado.

lflimeira commented 7 years ago

Será que Algoritmos não seria melhor começar pela teoria sem utilizar uma linguagem em si?

muniz95 commented 7 years ago

Eu acho q um portugol da vida, pra início ao menos, sempre é bem vindo

bernardocs commented 7 years ago

Eu acho que a ideia é fazer a galera conceber que a linguagem é só o "meio" para se alcançar a solução. Vale de fazer uma metodologia bem pausada, tipo um passo a passo desde:

Quando pedem pra eu explicar algo, eu sempre resumo o processo de solucionar problemas via programação desta forma.

Todavia, não sei se esta metodologia se aplica bem à galera mais iniciante.

bernardocs commented 7 years ago

Aumentar o repertório de maneiras de resolver problemas também é uma boa... Apresentar um problema e resolve-lo usando:

etc.

Contudo, deixo a mesma ressalva que falei no meu comentário acima: não sei se seria didático para pessoas com pouco ou nenhum conhecimento no assunto.

yuriploc commented 7 years ago

Não sei se é esse o objetivo (cheguei agora), mas se ficar muito teórico, a gente vai cobrir a mesma ementa de um curso de Ciências da Computação.

Tem que definir bem o perfil do aluno pra saber se vai ser esse caminho mesmo ou algo mais prático.

2017-08-03 15:22 GMT-03:00 Bernardo da Costa Santos < notifications@github.com>:

Aumentar o repertório de maneiras de resolver problemas também é uma boa... Apresentar um problema e resolve-lo usando:

  • estruturas básicas de repetição e controle de fluxo
  • recursão
  • um approach funcional

etc.

Contudo, deixo a mesma ressalva que falei no meu comentário acima: não sei se seria didático para pessoas com pouco ou nenhum conhecimento no assunto.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/openschoolbr/forum/issues/2#issuecomment-320050605, or mute the thread https://github.com/notifications/unsubscribe-auth/ACdL_5Y5DZfRkCk0LzXbFvVkcBL-IBmAks5sUg_8gaJpZM4OrY_z .

-- Yuri Oliveira Lokah samastah sukhino bhavantu

alinebastos commented 7 years ago

Eu su suspeita pra falar, pois vou começar CS este ano, hehe, então adoraria algo mais teórico. Mas podemos dividir entre matérias mais teóricas e mais práticas. Acho que se cada um que entrar aqui se dedicar a ensinar o que gosta vai ter pra todos os gostos :)

larismourullo commented 7 years ago

Se for ter um curso de CSS acho legal incluir CSSLint (ou qualquer outro), pré-processadores, apresentar alguns frameworks, entre outros assuntos. Eu acho legal também contemplar assuntos voltados pra matemática também, não só computação, pois é algo que estimula nossa lógica e ajuda bastante dependendo do código. Geografia seria uma boa também pra explicar sobre geolocalização e afins. Contextualizar é um ótima pedida.

erandirjunior commented 7 years ago

Por que não fazer nos moldes do curso em video? Tem um curso de lógica, e a partir dele a pessoa se dedica a linguagem que quiser, tipo, php, python, js, c#... até java, e cada curso de linguagem teria mais ou menos uma ementa igual, pelo menos até certo nível.

larismourullo commented 7 years ago

@fsoaresjunior também concordo que teria um padrão todas as linguagens. E esse padrão poderia seguir o de lógica. Já que toda linguagem tem IF, ELSE e afins. Só muda a forma de implementar essas coisas. Seria um molde legal pra seguir.

erandirjunior commented 7 years ago

@larismourullo isso mesmo, módulo introdutório -> lógica, depois cada linguagem seguiria seu caminho.

nandomoreirame commented 7 years ago

Sugestão: UX Design para desenvolvedores

yuriploc commented 7 years ago

Movida para a #9

Wrapping up e sugerindo:

Pré-trilhas

Trilhas

Como organizar

Sugestão de https://github.com/openschoolbr/forum/issues/5#issuecomment-320008417

kvnol commented 7 years ago

@nandomoreirame estava pensando em falar sobre isso, podemos escrever juntos. :heart:

khaosdoctor commented 7 years ago

Não sei se cada tópico em um branch ajudaria muito não cara, fica mais complicado eu acho... Teria que ser uma estrutura de pastas mesmo

wmsbill commented 7 years ago

Vou pensar num currículo em JS para mandar aqui.

larismourullo commented 7 years ago

@wmsbill pra JS podia ter como base o livro Eloquent JavaScript ele tem uma uma ordem boa do que abordar pena ser JS5 ainda então teria que ver o que teria pra acrescentar na ementa.

lflimeira commented 7 years ago

Chegando meio atrasado, mas apenas para dar minha opinião, eu acho que a parte teórica é imprescindível, a ideia é passar um curso de qualidade e formar pessoas com uma boa base.

larismourullo commented 7 years ago

@lflimeira teremos alunos que estão entrando na faculdade, para eles ter uma base ao chegar lá seria uma ótima oportunidade. Conteúdo independente dele ser mais prático ou teórico é conteúdo. É só necessário dosar pra não ficar algo monótono e não ficar algo parecendo que é só mágica acontecendo.

lflimeira commented 7 years ago

Sim sim... Por isso eu que eu acho que passar lógica de programação sem uma linguagem é importante, pq na facul eles podem ter n linguagens possíveis, com a base forte os alunos vão chegar preparados.

larismourullo commented 7 years ago

@lflimeira mas é o que a galera pretendia, uma parada geral e depois lógica com a linguagem. Tivemos vários problemas de lógica de programação por sinal na minha faculdade, muito alunos desistiram do curso por falta de lógica infelizmente é algo que realmente acho necessário.

caiodev commented 7 years ago

Boas práticas em desenvolvimento Mobile: React native, Android e iOS, TDD, Segurança da informação em desenvolvimento de software e por aí vai

ghost commented 7 years ago

Acho legal abordar programação funcional, reativa e concorrente. Falar também sobre cálculo lambda, teoria da recursão, expressões regulares, efeitos monádicos, funtores, funções puras e etc. Tenho algumas coisinhas que anoto por aqui, não é grandes coisas mas, acho que ajuda.

https://gist.github.com/lukkaslt/

Tenho também alguns artigos científicos sobre programação funcional e alguns exercícios e receitas sobre JS. Se for de interesse dos membros posso organizar e subir depois.

lflimeira commented 7 years ago

Esquecemos do curso do Git/GotHub, na minha opinião esse curso deveria ficar na base tbm. O que vcs acham?

lai32290 commented 7 years ago

Esquecemos do curso do Git/GotHub, na minha opinião esse curso deveria ficar na base tbm. O que vcs acham?

Acho muito valido, facilita pra iniciantes conseguirem encontrar as coisas do conteúdo no GitHub também.

lai32290 commented 7 years ago

Pessoal, eu dei uma pequena organizada dos assuntos e quantidade que foi mencionado, caso esqueci algum, pode adicionar.

Voto Assunto
3 Lógica de Programação
3 Padrões de Projetos
2 Git
2 GitHub
2 Estrutura de Dados
1 OOP
1 SQL
1 NoSQL
1 HTML
1 CSS
1 Javascript
1 Lógica Monádica
1 Clean Code
1 IoT
1 Robótica (Arduino, Raspberry)
1 Scratch
1 CSSLint
1 Pré-processadores CSS
1 UX Design para desenvolvedores
1 Matemática divertida
1 PHP
1 Ruby
1 Python
1 Java
1 Scala
1 DevOps
1 Boas Práticas
1 React Native
1 Android
1 iOS
1 TDD
1 Segurança de Informação
1 Programação Funcional
1 Programação Reativa
erandirjunior commented 7 years ago

e em ordem?

yuriploc commented 7 years ago

@lflimeira boa, adicionei Git / GitHub na #9

khaosdoctor commented 7 years ago

Se for para dar mais foco no básico, lógica e POO são melhores, se não, podemos dar foco em tecnologias do momento como NoSQL, GraphQL, ReST e etc

yuriploc commented 7 years ago

@lukkaslt deixei no Pré-trilhas, mas pode-se ter uma trilha pra cada paradigma também

erandirjunior commented 7 years ago

Um único curso de lógica de programação, e depois cada linguagem vai com sua sintaxe, porque tem muita gente avançada, mas também tem muita gente que está começando, e seria melhor, primeiro dar foco no básico, para aí sim, passar conteúdos avançados.

g-adolph commented 7 years ago

Pessoal, primeiramente gostaria de dizer que achei muito boa a iniciativa. Em relação ao conteúdo, vou dar minha humilde opinião.

Embora tenha feito ciência da computação e não terminado é inegável que a linha de raciocínio de aprendizado apresentada é muito boa.

Primeiramente devemos ignorar gostos pessoais por uma linguagem específica, pois como profissionais temos que saber avaliar qual são os prós e contras de qualquer coisa e saber identificar o que será melhor para o que vamos fazer.

Inicialmente acho legal termos um módulo de história da computação, contando desde a criação do ábaco passando pela primeira guerra e chegando aos computadores de hoje em dia, acho que é bem interessante saber a história de como chegamos até os dias de hoje. Pode se falar também das linguagens de primeiro nível, segundo e etc. Diferença entra compilação, transpiração e interpretação.

Acho fundamental aprender algoritmos com algo palatável como por exemplo: portugol, uma linguagem tranquila de entender pq quebra a principal barreira de muitos desenvolvedores, o idioma.

Depois acho legal a ideia de aprender sobre alocação de memória, ponteiro, passagem de parâmetro e coisas do gênero e para mim não existe linguagem melhor que c.

Acho que todo profissional deve saber estrutura de dados, saber o que é uma fila, lista, árvore e algumas coisas mais complexas.

Depois podemos iniciar os conceitos dos paradigmas de programação como por exemplo: orientação objeto, funcional e o procedural. Acho legal ter as críticas sobre eles e identificar casos que cada um deles podem ser usados.

Após os conceitos dos paradigmas, podemos avançar sobre arquitetura de sistemas. Sistemas distribuídos e paralelos. Arquiteturas como p2p, cliente servidor e por aí vai.

Agora que sabemos os paradigmas, os conceitos de arquitetura de sistema, podemos avançar sobre os padrões de projeto e de código.

Agora sim acho que as pessoas vão ter condição de aprender as linguagens da moda ( brincadeira) e agora podemos diferenciar em 3 trilhas front-end, back-end e tudo relacionado a banco de dados.

Front-end ...

Back-end ...

Banco de dados ...

lai32290 commented 7 years ago

Eu sou a favor de começar com algum assunto de tecnologias, linguagens, frameworks mais moderno, por ser mais atraente e divertido, acho que isso serve pra pessoal que já está no mundo dev por um tempo já, e também pra pessoal que tá entendo, pra eles sentir um pouco de gostinho primeiro.

Pois pessoalmente, humildemente, acho que as matérias teóricas e históricas de computação, apesar de ser importante, é um assunto mais seco, que pode não ser interessante pra iniciante.

Apesar que concordo que todo esses assuntos básicos são muito importantes, sem duvida alguma.

lflimeira commented 7 years ago

Acho que lógica de programação em um nível inicial n deveria nem utilizar portugol, apenas ensinar a galera a pensar de forma lógica e criar um algorítimo passo a passo. Ensinar fluxograma e depois entrar com um portugol. Mas essa questão de conteúdo dos cursos acho que podemos definir em um segundo momento, quando os cursos começarem a sair do papel.

vinculuzX commented 7 years ago

acho que vale apena ter algum curso de algoritmo tb !