JavaRush /Blogue Java /Random-PT /Como passar de um programador comum a um desenvolvedor le...

Como passar de um programador comum a um desenvolvedor legal? Aprendendo Ciência da Computação

Publicado no grupo Random-PT
O mundo moderno de TI e desenvolvimento de software é bastante difícil - altos requisitos para a qualificação dos codificadores, mudanças constantes e a crescente concorrência forçam os especialistas que trabalham nesta área a se educarem e se desenvolverem constantemente. O aprendizado contínuo é necessário até mesmo para simplesmente permanecer um especialista requisitado, porque “ficar para trás na vida” é tão fácil quanto descascar peras. Como passar de um programador comum a um desenvolvedor legal?  Aprendendo Ciência da Computação - 1Nas publicações sobre JavaRush, tentamos ajudar os leitores a se desenvolverem e se autoaprenderem plenamente para se tornarem o mais competitivos possível no tentador mundo do desenvolvimento de TI. No artigo de hoje falaremos sobre autoeducação em uma disciplina muito ampla - Ciência da Computação. Veremos o que exatamente está incluído no conceito de ciência da computação (CS) um pouco mais tarde, mas por enquanto vamos tentar responder à pergunta: por que, de fato, um programador deveria aprender disciplinas de CS e se esforçar para melhorar nesta área .

Ciência da Computação – por que ensinar?

“Programar não é algo que você conhece. É algo que você pode descobrir. Chris Pine, especialista em programação, autor de livros e tutoriais. “De certa forma, programar é como desenhar. No início você só tem uma tela em branco e materiais. Você precisa usar uma combinação de ciência, arte e artesanato para descobrir o que fazer com tudo isso.” Andrew Hunt, autor do livro best-seller The Pragmatic Programmer e coautor do Manifesto Ágil. Não é difícil entender para onde estamos indo. Para se tornar um programador realmente bom, ou simplesmente subir pelo menos um degrau acima de um codificador comum, você precisa ter o conhecimento mais amplo e ao mesmo tempo bastante profundo em diversas áreas, além das próprias linguagens de programação. E o domínio das disciplinas incluídas no conceito de CS é um dos primeiros lugares aqui.

Disciplinas de Ciência da Computação

Vejamos quais disciplinas estão incluídas no campo da ciência da computação. Às breves descrições das disciplinas com os motivos para estudá-las, adicionaremos recomendações do melhor livro e da melhor série de videoaulas gratuitas sobre o assunto, talvez do melhor guia de ciência da computação em inglês, escrito por Oz Nova e Myles Byrne, professores da Escola de Ciência da Computação Bradfield, em São Francisco.
  • Programação

    A programação é a base e a disciplina básica da ciência da computação; a maioria dos alunos começa a estudar o curso de ciência da computação com ela. Os melhores cursos de programação CS serão úteis não apenas para iniciantes, mas também para programadores experientes que podem ter perdido certos conceitos e modelos de programação ao aprendê-los pela primeira vez.

    Лучшая книга: “Структура и интерпретация компьютерных программ” (Structure and Interpretation of Computer Programs). Authorы: Джеральд Сассман (Gerald Sussman) и Хэл Абельсон (Hal Abelson).

    А на JavaRush, кстати говоря, всем желающим доступен для изучения легендарный гарвардский курс “CS50. Основы программирования”, fully переведенный на русский.

    Лучшая видеолекция: Brian Harvey’s Berkeley CS 61A

  • Алгоритмы и структуры данных

    Знание наиболее распространенных алгоритмов и структур данных помогает решать разного рода задачи, а это очень важно в любой из областей компьютерных наук, включая, конечно, и разработку программного обеспечения.

    Лучшая книга: The Algorithm Design Manual. Author: Стивен Скьена (Steven Skiena).

    Лучшая видеолекция: лекции Стивена Скьены

  • Компьютерная архитектура

    Знание компьютерной архитектуры, то есть понимание того, How на самом деле работает компьютер, является еще одной важной частичкой пазла, без которой попытки построения программных конструкций и моделей часто оказываются неудачными.

    Лучшая книга: “Архитектура компьютера и проектирование компьютерных систем” (Computer Organization and Design). Authorы: Дэвид Паттерсон (David Patterson) и Джон Хеннеси (John Hennessy).

    Лучшая видеолекция: Berkeley CS 61C

  • Операционные системы

    Практически весь code, написанный программистом, будет выполняться операционной системой, поэтому знание принципов работы ОС также является важным элементом.

    Лучшая книга: “Введение в операционные системы” (Operating Systems: Three Easy Pieces). Authorы: Андреа Арпачи-Дюссо (Andrea Arpaci-Dusseau) и Ремзи Арпачи-Дюссо (Remzi Arpaci-Dusseau).

    Лучшая видеолекция: Berkeley CS 162

  • Компьютерные сети

    Мало что в современном ИТ может обойтись без использования Интернета, поэтому ИТ-специалистам важно понимать, How Всемирная сеть работает, чтобы использовать ее потенциал по полной.

    Лучшая книга: Computer Networking: A Top-Down Approach. Authorы: Джеймс Куросе (James Kurose), Кит Росс ( Keith Ross).

    Лучшая видеолекция: Stanford CS 144

  • Математика для computer science

    Поскольку компьютерные науки, по сути, являются ответвлением прикладной математики, знание этого предмета тоже будет очень полезным практически в любой профессии, связанной с программированием. А также даст вам конкурентное преимущество перед теми, кто этой дисциплиной не владеет.

    Лучшая книга: Mathematics for Computer Science. Authorы: Альберт Р. Мейер (Albert R. Meyer), Эрик Леман (Eric Lehman) и Фрэнк Томсон Лейтон (Frank Thomson Leighton).

    Лучшая видеолекция: Tom Leighton’s MIT 6.042J

  • Базы данных

    Bancos de dados são um campo relativamente novo na ciência da computação e ainda não existem muitos especialistas no assunto. Os dados são outro elemento-chave da CS porque sustentam os programas mais importantes, mas poucas pessoas entendem como os sistemas de banco de dados realmente funcionam.

    Melhor livro: Leituras em Sistemas de Banco de Dados. Autores: Joseph M. Hellerstein e Michael Stonebraker.

    Melhor vídeo-aula: Berkeley CS 186 de Joe Hellerstein Как из обычного codeера стать крутым разработчиком? Изучаем Computer Science - 2

  • Linguagens e compiladores

    Compreender como as linguagens de programação e os compiladores funcionam tecnicamente permite que você melhore seu código e suas habilidades de programação. Também torna mais fácil aprender novos idiomas, o que também é extremamente importante para qualquer desenvolvedor a longo prazo.

    Melhor livro: Compiladores: Princípios, Técnicas e Ferramentas. Autores: Alfred Aho, Monica S. Lam, Ravi Sethi, Jeffrey Ullman.

    Melhor vídeo-aula: curso de Alex Aiken sobre Lagunita

  • Sistemas distribuídos

    Hoje em dia, a maioria dos sistemas é distribuída. Computadores e programas estão se tornando mais complexos, e o conhecimento de sistemas distribuídos será útil para garantir que seu software funcione corretamente e sem problemas.

    Melhor Livro: Sistemas Distribuídos, 3ª Edição. Autores: Maarten van Steen e Andrew S. Tanenbaum.

    Melhor Vídeo Palestra: CS 436: Sistemas de Computador Distribuídos

Dicas para estudar ciência da computação

E por fim, alguns conselhos para quem está planejando começar a estudar disciplinas de Ciência da Computação. Как из обычного codeера стать крутым разработчиком? Изучаем Computer Science - 3
  1. Desenvolver habilidades práticas em disciplinas de CS

    Uma das vantagens do CS, assim como de outros cursos de informática, é que as competências teóricas que você acabou de adquirir podem ser imediatamente aplicadas na prática. Não se esqueça disso e alterne a teoria com a prática para obter os melhores resultados.

  2. Não procrastine

    A informática é um assunto bastante complexo, cujo estudo é fácil para poucas pessoas, principalmente no início. É por isso que, ao começar a estudar disciplinas de ciência da computação, você precisa evitar a procrastinação - não adie o domínio da teoria, da resolução de problemas e da prática para mais tarde, pois isso não só tornará o aprendizado muito longo, mas provavelmente não será tão eficaz.

    Как из обычного codeера стать крутым разработчиком? Изучаем Computer Science - 4
  3. Não se limite a um curso

    Não espere obter todo o conhecimento necessário em um assunto em um curso, por melhor que seja. É sempre melhor consultar pelo menos várias fontes de informação para obter uma compreensão mais ampla do assunto.

  4. Encontre pessoas que pensam como você

    Parece um pouco brega, mas aprender de forma eficaz, assim como fazer muitas outras coisas na vida, é melhor quando se faz parte de um grupo de pessoas que pensam da mesma forma. Encontrar um grupo para estudar ciência da computação pode ser benéfico por vários motivos. Isso o ajudará a aprender de forma mais eficaz, a resolver tarefas e problemas em conjunto, a comparar seu progresso de aprendizagem e habilidades na aplicação de novos conhecimentos com outros.

  5. Aprenda a escrever palavras, não apenas códigos

    Outro conselho comum de muitos especialistas para os programadores que estudam CS para aprimorar suas habilidades e melhorar seu nível profissional: aprenda a escrever (não a codificar), ou seja, colocar palavras em frases e redigir textos a partir de frases. Essa habilidade é muito importante para qualquer desenvolvedor, e sua ausência dificultará o progresso não só no estudo da ciência da computação, mas também em outros aspectos da programação como profissão.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION