Estou em um curso de CS. O que a programação assunto que eu devo focar? [fechadas]

StackOverflow https://stackoverflow.com/questions/641553

  •  22-07-2019
  •  | 
  •  

Pergunta

O que é mais importante neste momento? Eu sei que eu posso adquirir experiência de programação mais tarde. Qual das seguintes devo estudar para se tornar um bom programador ou analista depois de me formar?

  • estruturas de dados
  • algoritmos
  • engenharia de software
  • aspectos de baixo nível
  • padrões de projeto e análise OO

[Edit]

Obrigado pelas respostas. Eu gostaria de incluir outros temas importantes para servir como referência para outros estudantes:

  • programação councurrent
  • sistemas operacionais

[/ Edit]

Nota: Eu acho que o primeiro item da lista shold ser aprender Inglês

Foi útil?

Solução

Todos eles. Tudo na sua lista é importante.

Outras dicas

Eu, pessoalmente, iria estudar o seguinte:

  • Um C como a linguagem (C / C / C ++ / C # / Java)
  • Uma linguagem de script
  • Uma linguagem de programação funcional
    • Especialmente porque estamos nos movendo para um mundo múltiplo core, isso virá a calhar uma vez que permite parallelisation além do que outra linguagem pode fazer atualmente. infra-estruturas de telecomunicação inteiras são executados em Erlang por exemplo.
  • estruturas de dados
    • Você vai usá-los em todos os lugares. Eles estão programando agnóstico língua, você vai precisar deles em toda a sua carreira
  • Algoritmos
    • Estes provavelmente vai ir com o item acima indicado. Certas estruturas de dados têm determinados algoritmos para acessá-los.
  • Os padrões de design
    • Sim, fora do curso aprendem os vários padrões de design, mas sei, ao mesmo tempo que eles não são o fim de tudo é tudo em engenharia de software.

Tudo o resto na sua lista é muito importante também, por isso, enquanto eu sugiro que os itens acima, eles não são mais importantes do que os outros que você tenha listado. Estes são os itens que gostaria que eu saí da minha educação e eu estou triste de dizer que eu não levá-los oferecido como classes, mas teve que aprender-los eu mesmo ao lado de todos os meus outros trabalhos do curso.

Eu acho que você já está no caminho certo, uma vez que você não mencionou quaisquer idiomas específicos na sua lista. Eu acho que é o erro número um feito por estudantes CS -. Concentrando-se em uma língua ou um paradigma

A sua lista inteira é muito importante; a única coisa que eu gostaria de acrescentar é um estudo bastante aprofundado de multithreading. Ele vai se tornar cada vez mais importante no futuro: ( Ars Technica artigo )

Parece apropriado para ligar Joel aqui; -)

http://www.joelonsoftware.com/articles/CollegeAdvice.html

Todos eles são obrigatórios !!

O que você está pensando? Eu esperava que você fosse escolher entre a concentração (por exemplo, design de jogo vs segurança e criptografia).

Você não pode escolher entre "algoritmos, oop, datastructures, engenharia de software, etc". Estes são os princípios! Você tem que aprender todos eles.

Gostaria de começar com estruturas de dados e algoritmos, nenhuma competição lá. projeto OO é útil. Pouco de baixo nível, sim. S / W engenharia pode ser ignorado (is ok com grãos de sal).

Além disso, aqui estão algumas idéias:

  • básico banco de dados relacional (não apenas "como usar Oracle", mas álgebra relacional real)
  • sistemas operacionais
  • compiladores + intérpretes
  • algo em IR (/ algoritmos genéticos / redes neurais)

Sim, eu estou inclinado para "hard core" coisas CS. trabalho ocupado, processos extra-pesados ??e outros PM porcaria que você começa a aprender na indústria em breve, há necessidade de desperdiçar seus recursos educativos sobre eles. : -)

Vamos ver ..

Você precisa entender estruturas e algoritmos de complexidade e de dados, de modo que você pode fazer as escolhas importantes. Infelizmente, você terá de compreender realmente estes tópicos e resolver quebra-cabeças complexos, porque eles desempenham um papel maior tanto em entrevistas de emprego do que em seu trabalho real mais tarde. Assim, estes são os mais coisas importantes para se concentrar em por razões práticas.

A engenharia de software, padrões de projeto e análise são muito importantes (embora eu estou inclinado). Infelizmente, com a exceção de padrões de projeto, você não pode realmente aprender estes tópicos sem praticar ativamente em grande projecto. Concentre-se em compreender as noções de programação orientada a objeto e a noção de funções virtual / ligação dinâmica, uma vez que eles são muito importantes e muitas pessoas não entendem-los adequadamente. Faça o seu melhor para obter um bom estágio.

Todas as coisas que você listou são componentes básicos de uma educação de Ciência da Computação decente, embora você realmente deve adicionar o seguinte:

  • Sistemas operacionais
  • Rede
  • Matemática (Introdução cursos para Discrete, cálculo, álgebra, Provas, Stats)
  • Bases de dados
  • Fundações (Finite Automata, Expressões Regulares, máquinas de Turing, etc.)

Essas duas listas juntos lhe dará um bom núcleo de compreensão de Ciência da Computação, após o qual você deve escolher alguns tópicos mais especiais (os que estão mais interessados ??em).

  • Inteligência Artificial
  • Crypto / Segurança
  • Imagem / Signal Processing / reconhecimento
  • Compiladores
  • Gráficos
  • Game Design
  • etc.

Você vai descobrir que uma vez que você começar a ficar profundamente em um tópico, todos os cursos básicos, incluindo matemática, tudo vai começar a entrar em jogo! Por exemplo, eu estou estudando atualmente reconhecimento de imagem e tiveram de usar e entender coisas de estatísticas, AI, cálculo, provas, álgebra, algoritmos, estruturas de dados, OOP, etc.

Todos em sua lista é importante, mas você também precisa da atitude certa. Você precisa cavar em detalhes suficientes sobre como cada coisa que você estudar obras e por que foi feito desta forma, não basta fazer a atribuição de classe. Isto é o que vai realmente dar-lhe uma vantagem como um especialista futuro.

  1. Multi threading e sistemas distribuídos.
  2. Como construir aplicações de fácil utilização com uma interface gráfica agradável.

Todos esses são muito bom, mas algoritmos são um bom lugar para começar. Talvez você deve mesmo olhar para uma matemática discreta primeiro curso para a teoria.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top