Educação para programadores - O quê? Onde Quando?


Olá Habr! Muito foi dito sobre educação, especialmente para programadores, sobre programas que são mais adequados ou não, mas a cada ano a situação muda e não importa o quão triste é, você precisa entender isso (seja um candidato ou um empregador). É muito importante iniciar sua jornada precisamente com a escolha da alma mater ... Peço que corte todos os que não têm medo de um longo artigo sobre o assunto.


Atenção!

Este artigo / publicação pode ser considerado um tutorial ou guia para quem já está na área de TI ou deseja conectar sua vida à área de TI. Faremos uma reserva imediatamente: aqui não estamos falando de administradores de sistemas, designers ou engenheiros, mas de programadores (de 1C a Deep Learning).


0 - Etapa zero. Educação escolar. Ensino médio (notas 5 a 9)


A primeira coisa que enfrentamos na vida é a escola. Essa é apenas uma grande parte de nossas vidas, geralmente nosso segundo lar (infelizmente, nas realidades atuais - em termos de tempo gasto na escola). E como um evento muito importante, é necessário abordar de forma responsável e consciente a escolha de sua futura instituição educacional.


Matemática


Um papel especial na vida de uma pessoa inclinada ao pensamento racional ou que gosta de pensar é desempenhada por ciências exatas, como matemática, física e ciência da computação. Muitos podem argumentar que a matemática não é muito necessária em uma ampla gama de problemas de TI, mas deixe-me discordar. Tudo, desde máquinas de calcular mecânicas até a criação do primeiro computador, foi baseado em princípios e modelos matemáticos. Sim, é claro que essa não era uma seção estreita da matemática, mas cada problema precisava de sua própria abordagem e poderia ser encontrado na matemática. A capacidade de pensar ainda não impediu ninguém; esta é uma habilidade muito útil, mas o senso comum não é suficiente; você precisa de uma biblioteca adicional com a qual possa realizar sua ideia. Portanto, o papel dessa biblioteca é a matemática.


Física


A física não precisa de um programador "puro", mas se uma mente jovem entender que a ciência simplesmente não dá, então ele está certo. A física não é necessária onde, mesmo teoricamente, não é usada, mas em todo o espectro de tarefas é simplesmente vital. Veja pelo menos o desenvolvimento de jogos, você pode usar soluções prontas, mecanismos, mas não gostaria de consertar algo, refazê-lo ou simplesmente entender como ele funciona? E se você precisar refazê-lo? Sem conhecer os fundamentos fundamentais, você vasculhará livros ou sites em busca da verdade, mas se souber o que é e como aplicá-lo, não precisará gastar tempo procurando e perdendo células nervosas. Você começará a ser apreciado não apenas como um codificador de macacos, mas como uma pessoa pensante que pode resolver um problema fundamental. Não é esse o ponto? Todos os cálculos científicos, visualizações e outras coisas agora são feitos em computadores e os programas são escritos pelos mesmos programadores.


Também vale a pena aceitar, porque resolve várias tarefas diárias. Por exemplo, se você tiver um problema com a fonte de alimentação, poderá substituir facilmente o capacitor explodido e continuar trabalhando. Você entenderá por que pode haver defeitos no nível do hardware e como evitar isso. Portanto, nos anos escolares, a física definitivamente não deve ser evitada, principalmente porque o programa não é tão complicado.


Ciência da Computação


O que posso dizer - não importa se você não obtém sucesso ou não gosta muito (afinal, isso é apenas o ensino médio). Mas, se você gosta e sente vontade de fazê-lo - ótimo!


Nas realidades russas, sem aulas de ciência da computação, ir à programação não é tão atraente. É claro que você será ensinado em algumas universidades, mas essa não será a abordagem correta e provavelmente você deixará esse negócio.


Vale a pena ensinar a um programador de informática ciência da computação ou mais atenção deve ser dada à matemática na escola? Boa pergunta, tudo depende de quão bem você está indo com cada um dos itens. É impossível à custa do primeiro se contentar com o segundo.


O mais importante é participar das olimpíadas. Assim, você se torna mais inteligente, ganha experiência e conhece melhor o mundo de "pensar" as pessoas. Talvez você seja tão azarado que não ganhe uma única Olimpíada, mas vou contar as boas novas: não conheço uma única pessoa que participaria constantemente desse movimento e não vencesse uma única Olimpíada (ou pelo menos não se tornaria um vencedor).


Podemos dizer que o conhecimento escolar dessas disciplinas tem muito mais vantagens do que desvantagens. Quanto mais jovem você for, mais precisará absorver informações úteis.


1 - O primeiro passo. Educação escolar. Ensino médio (de 10 a 11 anos)


Surge uma escolha difícil: dedique seu tempo a um bom treinamento e à passagem do estado. exames (como o Unified State Examination), ou, você pode se aprofundar em atividades profissionais e começar a se envolver em programação aplicada, ou pode até se concentrar em olimpíadas e algoritmos?


Não há uma resposta definitiva, embora eu ainda recomende participar das Olimpíadas, é muito útil.


Quanto a dedicar-se à programação "real", esse caminho não é adequado para todos. O objetivo que finalmente precisa ser alcançado é tornar-se um programador, um verdadeiro "encoder cerebral" profissional. Lembre-se das histórias daquelas pessoas que abandonaram as universidades e se tornaram bilionárias no campo: Steve Jobs, Bill Gates, Mark Zuckerberg, Michael Dell e outros. Mas entenda uma coisa muito importante: nenhuma delas saiu da escola. Alguém era filho de pais ricos e tinha talento para fazer negócios, alguém nasceu em uma família famosa e não era tolo, alguém teve menos sorte, mas ele foi brilhante. Todo mundo tem sua própria história, mas se alguns abandonam devido a dificuldades de sobrevivência e só depois "se levantam", outros imediatamente têm uma vantagem na forma de uma família e não se importam em aprender quando iniciar e iniciar um negócio.


A propósito, apesar do status de prestígio das famílias Zuckerberg e Gates, eles eram estudantes talentosos e passaram o tempo nas melhores universidades do mundo.
Portanto, se uma situação na vida permite que você se sinta bem: você tem um lar, comida e entes queridos, nunca deve sacrificar um certo presente, por um futuro incerto. Aprenda enquanto tiver oportunidade, escreva programas, estude as ciências exatas, porque no final, seu primeiro objetivo significativo nesse caso é uma boa universidade. Mas se é o exame ou as Olimpíadas, é necessário se preparar. Você não pode perder tempo com coisas como biologia, química, geografia, porque agora você definitivamente não precisa delas, nas séries 10-11 há informações muito limitadas e não faz sentido lembrar quantos campos de petróleo existem em Tyumen ou que tipo de filhote um gato manchado terá. É claro que o setor de TI é muito mais tolerante em termos de emprego, mas você pode começar a se complexar porque os outros são instruídos e você não sabe que alguns passaram por alguns níveis e você não é nem mesmo cinco vezes mais tarde prima pela habilidade de seus colegas, então você não deixará a sensação de que não teve tempo, esqueceu, não terminou ...


Em geral, agora com mais detalhes sobre o treinamento.


Se você busca uma boa universidade, precisa de uma boa escola. Como escolhê-la? É muito simples: pesquise no Google as classificações de escolas / liceus, leia sobre cada uma das que você gosta, pergunte aos alunos e elabore sua classificação de controle. No final, vá aonde você se sentirá confortável em todos os sentidos. Você tem que trabalhar duro, mas vale a pena.


Mas se você não chegou onde queria, não se desespere. Primeiro, lembre-se da autoeducação, mais ela será útil para você mais de uma vez. Em segundo lugar, você tem uma grande oportunidade de gastar tempo em uma boa preparação. Provavelmente, o professor não o ajudará na direção das olimpíadas, mas você pode se preparar perfeitamente para o exame. Procure cursos, crie um horário de aula e comece. Se você seguir claramente o cronograma, verá o quanto melhor começou a conhecer o material. Portanto, é bastante possível marcar 300 ou 400 pontos no exame. Procure cursos, leia livros, decida opções!


Classificação das escolas para 2017/2018


Está na hora de trabalhar!


2 - O primeiro passo alternativo. Colégio (depois da 9ª série)


Muito inesperadamente. Quem está interessado em faculdades? - você pergunta. Milhares de alunos da nona série - eu responderei.


Talvez para alguém seja novidade, mas em nosso país existe o seguinte tipo de instituição - faculdade.


Mesmo há dez anos, as faculdades, sem exceção, lembraram as mesmas escolas profissionais que atuam como memes em vários sites da Internet. Hoje, literalmente, hoje, a demanda por software de código aberto (ensino médio profissional) aumentou muitas vezes entre os estudantes. Qual o motivo disso? Eu posso citar alguns motivos:


  1. Não há necessidade de fazer o exame na admissão e após a graduação.
  2. Exames internos da universidade.
  3. Competências profissionais e disciplinas especializadas.
  4. Especialista certificado.

Muitas pessoas não gostam do sistema de exames e, portanto, esse é o primeiro motivo para a faculdade. Você não pode culpar por isso, porque qualquer exame é estressante e, se também for impossível repeti-lo no mesmo ano, mais ainda. De fato, no bom sentido, esse deve ser o motivo mais insignificante. Muitos são atraídos pela oportunidade de fazer exames internos em vez do exame.


Habilidades profissionais e assuntos especializados são simplesmente parte integrante de todas as faculdades. Além do fato de você obter conhecimentos básicos no prof. áreas em que você já está começando a aplicá-las nessa área. Conhecimento técnico, habilidades, experiência, tudo isso torna essa instituição ainda mais atraente.


E, claro, um diploma que diz que você se tornou um especialista em seu campo ( realmente não )


Tudo começa com a escolha da direção do treinamento e a submissão de uma solicitação ao comitê de seleção. Isso é muito semelhante a aceitar inscrições em uma universidade, onde as pessoas também se sentam à mesa da mesma maneira, os alunos convidam e se oferecem para ingressá-las na faculdade. Quero apresentar a você a especialidade em que estou estudando no último ano (não há tantas especialidades em programação, também há ciência da computação aplicada, mas a escolha mais razoável é a PCS).
02/09/03 - Programação em sistemas de computadores (PCS).


Link para descrição e lista de faculdades


Porque Como estamos falando de programadores, é lógico supor que a especialidade mais adequada seja o PKS. Destina-se inteiramente ao treinamento de pessoal versado nas tendências modernas em programação aplicada. Seja na web ou no desktop, talvez até no desenvolvimento móvel, tudo isso se aplica a essa especialidade. Em muitas instituições de ensino, o programa pode variar, mas as disciplinas obrigatórias mais comuns são: 10-11 ano (padrão - o primeiro ano de estudo, geralmente a ênfase é em matemática e física), fundamentos de programação, algoritmo (algoritmos básicos), elementos de lógica matemática (a- Para a versão “leve” da matemática discreta), os conceitos básicos da análise matemática (que inclui parcialmente o programa de álgebra linear do primeiro semestre de uma universidade técnica), sistemas operacionais, redes e sistemas de comunicação, arquitetura de computadores com istem. Nos cursos para idosos, podem ser exibidos assuntos como programação aplicada, programação na Web e segurança da informação. De faculdade para faculdade, os programas de treinamento, a orientação estão mudando, mas de alguma forma esses assuntos estão sempre lá. Você sempre precisa visualizar o programa de treinamento no site oficial da instituição, isso é importante.


Eu descrevi aqui algumas coisinhas que tivemos

- Fundamentos da programação:
Nestas aulas, você aprenderá o “básico” da lógica, aprenderá a escrever código e desmontar fluxogramas (parte opcional). Exercícios bastante úteis para se aprofundar em todo o sistema e entender o que é o quê. Se você já tem experiência em programação, as aulas podem parecer chatas para você, não há nada a ser feito.


- Algoritmização:
Bem, o que posso dizer, esse assunto é dedicado a algoritmos. Mas tenha cuidado, por exemplo, em nosso programa, isso foi feito da seguinte maneira: uma máquina de Turing, uma máquina de Mark e uma máquina de Post. Por assim dizer, eles receberam tarefas na lógica. Além disso, havia exemplos de recursão e o conceito de funções, etc., mas em um aspecto matemático. Você deve entender que tudo vai depender do professor.


Comentário do autor:


Este curso é um dos poucos de que gostei na instituição de ensino em que estudei, e não porque houvesse um professor único ou interessante, mas porque estávamos imbuídos dessas idéias e tarefas, tentamos resolver rapidamente e comparamos nossas soluções entre si e estavam procurando o melhor! Isso foi muito legal! Verdade, quando fomos explicados à recursão usando mat. das fórmulas, fizemos tão mal que simplesmente selecionamos as soluções para os problemas empiricamente ...

- Lógica matemática:
Este é um curso breve de matemática discreta para o desenvolvimento geral. Pessoalmente, entendi não apenas o conceito de conjunto e o que é DNF, mas também como o processador e muito mais funcionam em princípio. I.e. matemática, mas em primeiro lugar é útil na universidade e, em segundo lugar, abre os olhos para muitas coisas.


- Fundamentos de análise matemática e álgebra linear
Em resumo: conceitos básicos de cada semestre do programa universitário. I.e. resolvemos equações diferenciais, mas digamos que não falamos sobre integrais duplos. Na álgebra linear, fomos informados sobre matrizes, quais são as operações nelas, o que é determinante e como contá-las.


Honestamente, fiquei satisfeito com este programa, ou seja, é apenas uma introdução ao curso de matemática superior, mas encontramos um professor tão maravilhoso que eu gostei muito de tudo, resolvi tudo o que nos era dado e competi com os colegas para tornar tudo mais rápido (e corretamente, é claro também). Definitivamente, vale a pena assistir a essas aulas, principalmente porque essa base é útil para você na universidade.

- Teoria da Probabilidade. estatísticas
Essas duas disciplinas foram ministradas pelo mesmo professor que o básico do tapete. análise. I.e. foi maravilhoso. Essas palestras também serão úteis para você na universidade.


- Arquitetura de sistemas de computadores
Uma excelente oportunidade para entender como um computador funciona no nível físico, o que acontece com o hardware no momento do trabalho, etc. Também são considerados os princípios de construção da arquitetura de microcontroladores, processadores etc. Também é possível trabalhar no programa LogiSim e realizar trabalhos práticos nele.


Infelizmente, encontramos um professor muito preguiçoso e quase não entendemos nada. Ele constantemente o colava no laptop e dava um trabalho que ele próprio não sabia como fazer. Acontece, nada pode ser feito.

- sistemas operacionais
O curso sobre sistemas operacionais considera, de fato, o trabalho de sistemas operacionais modernos (Linux, Windows, sistemas em tempo real, etc.). Existem também de laboratório.


Não é perfeito, mas aprendi sobre sinais no Linux, sobre várias arquiteturas para a construção de sistemas operacionais e também aprendi a trabalhar no vim!

- Redes e sistemas de comunicação
Um curso em redes é essencial para um programador. Se você não souber o que é uma máscara ou como o endereço de rede difere do endereço do host, você parecerá uma ovelha negra. Aqui, os conceitos básicos de terminologia de rede, topologia são considerados, o trabalho é organizado no Cisco Packet Tracer e até a configuração de equipamentos reais.


Tivemos dois assuntos semelhantes e ambos sobre redes. Um deles levou um professor preguiçoso da "arquitetura", mas o segundo nos disse coisas bastante úteis. Tentei extrair o máximo dessas aulas e fiz todo o trabalho que pude. Definitivamente como as disciplinas.

- Programação do sistema
Um curso de programação de sistemas abrange a programação em linguagem assembly de baixo nível. Na minha faculdade, era o MASM611. Um curso introdutório útil para quem deseja aprender ainda mais sobre o que está acontecendo no computador do ponto de vista do programador. Laboratório, teoria - tudo por "Feng Shui".


Bem, você sabe, por exemplo, por que em idiomas normais o índice do primeiro elemento em uma matriz começa do zero?

A resposta

Como o índice é apenas um deslocamento na memória pelo tamanho do tipo do elemento da matriz, e o primeiro elemento já está no início.


- programação de aplicativos
Este curso é obrigatório, mas o currículo é escolhido e conduzido por cada professor à sua maneira. Você pode escolher entre linguagens de programação completamente diferentes. Na verdade, o curso mais importante para um programador.


Temos uma história muito engraçada (triste). Fomos informados de que um novo professor com experiência na vida real ministrará este curso. Aconteceu que a última vez que ela (a professora) programou em montadora há 20 anos em alguma fábrica e não tinha absolutamente nenhuma idéia de como conduzir aulas. E então sugeri a realização de um curso em C # em vez dele. Preparando-se para as aulas (que foram ajudadas por um professor maravilhoso da Escola de Programadores Mytishchi), ele elaborou tarefas, laboratório, controle, trabalhos de casa. No primeiro semestre, eu também fiz um exame. Estou satisfeito!
UPD: De fato, se um aluno, em vez de um professor, lidera casais ao longo do semestre, então é uma situação muito ruim, porque fala sobre as baixas qualificações dos professores.

- Segurança da Informação
A dispersão é muito grande, portanto, não há um plano claro de como fazer isso (nas universidades isso geralmente é uma direção separada). As expectativas são redefinidas para zero.


Assuntos como: filosofia, economia, administração, documentação etc. não fazem sentido a considerar, porque não é absolutamente isso que eu gostaria de dedicar tempo ao treinamento. A propósito, fomos espancados com isso mais do que com assuntos especializados, e isso é terrível. Apenas um enorme menos no karma da faculdade.


: , – . I.e. ! - . , , , , - . , .


:


, ( - , ). ( ). ( ). . . . . . , . , . . , , , (, , .. ).


— , , , . , - front-end . , , — . .


UPD: . .


. . (, - ), , . , , - . 4 , , , CTF , - ( ) , (99%), , , .


3 – . .


. . , .


  1. – . , . , ( ).
  2. , . , , .
  3. . — .
  4. , .
  5. , .

:


  1. . (4-5 )
  2. .
  3. .
  4. .
  5. , .

, . Sim você pode. , , , , , , .
, .


UPD: : « » IT , .


. :


  • ( )

, — . .


: C# , , big data, . “” “” .


:


  • (01.03.02)
  • (02.03.01)
  • (02.03.02)
  • (09.03.01)
  • (09.03.03)
  • (09.03.04)

“” “”.
! . .


(01.03.02)


“”. : , , (. ), . , , , ( ).


, , , , .


, , . , , ,


, , , “ ” :


  • /
  • (50/50)

  • ( , ):
  • ,
  • -
  • Análise de dados
  • ( , )

, , . I.e. , data scientist ( ), ( ..). , , ( ) .
, . , , , .
2017 2018 (2017/2018/):
– 295/295/310 (+)
– 298/297/310 (+)
– 422/425/510 (+ , + )
. – 277/268/310 (+)
– 309/283/310 (+)
– 266/263/310 (+)
– 253/249/310 (+)
* , . (). , ( ) 2018 . , ( , , .. ).


“”. I.e. , , .


(02.03.01)


, : ( ).



  • -

. , , , , . , , . , .
2017 2018 (2017/2018/):
– XXX/273/310 (+)
– 251/246/310 (+)


“”. “”, .


(02.03.02)


— .


,


  • C++ ( )
  • XML, UML
  • ( , ..)

. , . , , . , , . , .
PS , , .
2017 2018 (2017/2018/):
– 267/264/310 (+)
– 258/254/310 (+)
“”, , “” .


, 9. , , — .


(09.03.01)


.


, , . ,


  • ( )
  • /
  • ,

? , , , . “” . , , , .

2017 2018 (2017/2018/):
– 389/410 (+, +)
– 257/263/310 (+)
. – 275/278/310 (+)
– 272/272/310 (+)
– 255/249/310 (+)
“” “”. . , , , “”.


.


(09.03.03)


— .


. ,


  • -
  • UML
  • Matemática
  • -

, . , ? .
2017 2018 (2017/2018/):
. – 272/274/310 (+)
– 285/282/310 (+)
“”, .. , ó , .
PS : , “ ” ( , ).


— .


(09.03.04)


— .


, . , , ,


  • -
  • -

  • :
  • Análise de dados
  • Mathlab
  • (Android / iOS) —

, " " , , , , . . . , , . , . , , , data scientist, , , / . .


2017 2018 (2017/2018/):
– 296/296/310 (+)
. – 275/287/310 (+)
– 282/284/310 (+)
– 282/281/310 (+)
– 259/262/310 (+)


"", , , .


: , , -2017 , () , , , IT


UPD: , . ! – . . .




. , "Computer Sceince", . , , .


, .
- "" . , , ( ), . - , "" .


PS , :


, .

, ( , 300/400 ) , , .


, , , . ( ). . .
, ( . )...


, IT


UPD: , .


,

, .

, , (, ), ?
, , , . , 10 , , ...


? ?
, , , ( ), . 9 , ( -).


?
, , .


?
, , ) 6 + 4


?
, :)


? , ?
, , , : 96+84+84+71, 80/100


? ?
, ( ( , -)), , . , .


, ?


? ? ?
*, . , – , ( ) – data science :) : ( Linux) – , , .


, , . , ( , , – ). ( , , , ).
– , .*


//?
, ( )


, , ?
— ( ), () . . , , , , , () .


, ?
, , , . , — , ( , — , ////etc. )


- ?
– ( 40 ), . , 40 . - , , – .


, , ?
* . , , , . , – ( , , – . , , , .
, ( , , , , // ) . , , , - . – ( - – , Samsung ), , , , , . , .
– ( https://cs.msu.ru/departments ) – , . , , .
, . , , - , ( , – , ( Bushwhackers ), ). , , .*


.
?
, 4 .


, , .


: ?
, , — , , ( ); , . - "", . , — , .


?
— (, ) . , , — , — , ; ( -, ). — , () .


, ?
, , , – , , .


!


, Booking.com

.
, , (, ), ?
-, 104 (1- ), 653( 2- 7- ), 664 ( , 8- 11- ). , . , .
? ?
1 1 , :)
(, )?
.


:
?
.
?
. 4.
? ?
( , ). .


...
?
, , – :)
, , ?
. , ( 10 ). , (, ). .. .
, ?
, . , . .
, ?
, , .
/ ? ?
, . .
?
2000-, :)
- ?
, :)
, , ?
, 11 . . , . - , .


:
? , ?
, . Booking.com. . 3 .
, /?
. , . , .
, ?
Computer Science, (Android ), .


:
: ?
, . .
, ?
. , .


, !


,

, , (, ), ?
, : , . , .
? ?
, , . , .
?
, .
(, )
. :


:
?
, .
?
, , . , )
? , ?
, . 75, , , . , — .
? ?
, . .


:
/?
.
, , ?
, , , .
, / ?
, . , .
, ?
, .
/ ? ?
, . , 3-5% , . , , . , , :)
?
.
- ?
. , , .
, , ?
, , . , . , . , . , .


:
? , ?
3 , , , .
, /?
.
, ?
.


:
: ?
. .
?
, , . , , .
, ?
, . .


,

:
, , (, ), ?
1563 .
? ?
, — .
?
.
(, )?
.


:
?
.
? , ?
, .


:
/?
.
, , ?
, , ( ).
, / ?
.
, ?
.
/ ? ?
3 .
?
.
?
, .


:
? , ?
, 2 .
?
.
?
, .


:
, ?
.
: ?
.
, ?
.


, : , , , . – . , .


, / . (PS : https://docs.google.com/spreadsheets/d/1utkv_GnvsU378ktW-Ztlcjdqb7zp8PCYShEBZOuLyjc/edit?usp=sharing )


Warning!


Perguntas frequentes

:


  1. . , - , - , .


  2. . , - , .


  3. - , , , !


  4. – . , !



: https://goo.gl/forms/W7DGa1htfFCZlzOD3
UPD: , !


  • " №xxx"
    imagem

, 4 5, : , /.


  • . , .
    imagem


  • , .
    imagem


  • .
    imagem


  • .
    imagem


  • , , .
    imagem


  • / ?
    imagem



, . , 01.03.xx 02.03.xx 09.03.xx. 17% , . , , . , ( ) , .. , , , .


: - , - HR , , – . (), C# . I.e. . : , Copter Express, , ( , ?), , Delta Solutions. , 3- . - , . . : !


- , , , .

Source: https://habr.com/ru/post/pt434908/


All Articles