Что нужно знать программисту

Знания и навыки, которых может не хватать разработчикам-самоучкам

  • алгоритмы, О-обозначения, структуры данных
  • шаблоны проектирования
  • компиляторы (реализации)
  • теория языков программирования
  • дискретная математика, конечные автоматы
  • система типов (wiki) и теория категорий (wiki)
  • знание общих понятий, жаргон и конвенции
  • системная архитектура
  • операционные системы
  • многопоточность
  • численные методы (это поможет объяснить, например, почему при вводе в интерпретаторе Python числа 2.03, он трактует как 2.0299999999999998)
  • функциональное программирование
  • машинное обучение, искусственный интеллект

Если вы создаете приложение на Java для web

В теории вы должны знать Java, CSS, HTML, уметь работать в режиме командной строки, заниматься хостингом, понимать REST и HTTP.

Этапы обучения Java

1. HTML, CSS, Bootstrap

Изучаем HTML, CSS (head first)

Дополнительный материал

w3school.com Bootstrap tutorial

2. JavaScript

Изучаем JavaScript (head first)

Дополнительный материал

Изучаем JQuery (head first)

3. Java Core

Изучаем Java (head first)
Философия Java
Java Core (Oracle tutorial)

Дополнительный материал

Java. Эффективное программирование
Изучаем JSP (head first)
Изучаем EJB (head first)

4. Spring

Spring 4 для профессионалов -Шефер К., Хо К., Харроп Р.

5. Алгоритмы

Stepik Алгоритмы: теория и практика.
Алгоритмы и структуры данных – Никлаус Вирт
Алгоритмы построение и анализ - Томас Кормен

6. Многопоточность

«Multicore programming in Java» на русском
лекции (Multithreading) Ивана Головача - плейлисте видео 73-91

7. Computer Science

Path to a free self-taught education in Computer Science!

Пока не указано иное, содержимое этой страницы распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 License