Обучение

Заметки начинающего программиста

Ключевые знания и заметки для начинающего программиста, неважно какой стек технологий вы выберите. Эти знания всегда пригодятся в разработке.

Начальные навыки и знание

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

  1. Высшая математика
  2. Алгоритмы
  3. Теория вероятности
  4. Дискретная математика
  5. Линейная алгебра
  6. Геометрия (для веб-дизайнеров и создателей игр)
  7. Информатика
  8. Уверенный пользователь ПК

Ценные качества для программиста

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

  1. Умение решать задачи
  2. Аналитический склад ума
  3. Упорство
  4. Умение работать в команде
  5. Хорошая концентрация
  6. Усидчивость
  7. Алгоритмизированный подход
  8. Ответственность
  9. Коммуникабельность
  10. Инициативность

Теперь уточним по литературе.

Топ-10 книг по программированию для начинающих

Программист-прагматик. Путь от подмастерья к мастеру (Эндрю Хант, Дэвид Томас)

Оригинальное название: The Programmatic Programmer from From Journeyman to Master by Andrew Hunt and David Thomas

Топ-10 книг по программированию для начинающих - 2

Если вы не читали эту книгу, скорее всего, на форумах и специализированных ресурсах вы неоднократно встречали цитаты из неё. Образ программиста-прагматика в этой книге настолько чёткий и идеализированный, что… его впору назвать романтиком, как бы парадоксально это ни звучало. Тем не менее, советы из книги — дельные и актуальные невзирая на её солидный возраст. Не знаю, с чем сравнить “Программист-прагматик” в мире книги по программированию. Ближайшие аналоги вне этого мира — “Ветхий завет” или какая-нибудь супер-крутая поваренная книга. В “Прагматике” всё очень конкретно и максимально применимо на практике. Порой доходит до банальностей (например, в разделе про эффективное общение собраны элементарные правила делового этикета), но порой советы из книги незаменимы, особенно если у начинающего разработчика нет терпеливого и внимательного ментора. Таковы подсказки о повторяемости кода, создании прототипов, оценках. Или напоминание о невозможности создать совершенную программу. Есть там и полезные технические моменты, касающиеся, например, отладки кода, модульного тестирования или скорости алгоритмов…словом то, что нужно для подготовки к карьере программиста.

Рефакторинг Улучшение существующего кода (Мартин Фаулер)

Оригинальное название Refactoring: Improving the Design of Existing Code by Martin Fowler, with Kent Beck

Топ-10 книг по программированию для начинающих - 3

Если вы попросите кого-то перечислить лучшие книги по программированию всех времён, которые помогли сделать карьеру, кто-нибудь обязательно упомянет “Рефакторинг”. Кто-то может сказать, что эта книга устарела, и в чём-то будет прав. Она писалась в те времена, когда рефакторинг ещё не был повсеместным правилом, и некоторые истины в ней очевидны для начинающих программистов сегодняшнего дня. Тем не менее, приёмы рефакторинга расписаны в ней настолько хорошо и подробно (местами, я бы даже сказал, многословно), что каждый новичок найдет в ней что-то полезное. Несколько лет назад вышло обновленное издание книги, и там были добавлены новые приемы, что просто отлично. К тому же примеры в этой книге написаны на Java. Из недостатков отмечу разве что многословность. Тем не менее, книгу рекомендую.

Чистый код (Роберт Мартин)

Оригинальное название Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

Топ-10 книг по программированию для начинающих - 4

Эта книга хоть и поновее предыдущей, но уже тоже стала классикой книг по программированию. “Дядя Боб”, как иногда кличут Роберта Мартина во всемирной программистской тусовке является одним из авторов манифеста Agile, а также некоторых принципов современного “чистого” программирования, например, SOLID. Одним из главных лейтмотивов книги можно считать…эмпатию или просто хорошее отношение ко всем, кому придется работать с вашим кодом (в том числе и вам самому в будущем). На этом простом принципе и здравом смысле строятся большинство правил “Чистого кода”. Большинство правил и советов кажутся очень правильными, из тех, которые интуитивно крутятся в голове, но четко сформулировать их непросто. Впрочем, с некоторыми мыслями автора можно поспорить: он порой чрезвычайно категоричен. Например, он пишет, что хороший код не нуждается в комментировании. Тем не менее книга обязательна к прочтению.

Эффективная работа с унаследованным кодом (Майкл Физерс)

Оригинальное название Working Effectively with Legacy Code by Michael Feathers

Топ-10 книг по программированию для начинающих - 5

К этому жизнь вас не готовила… Нет, правда: если вы только учитесь, то не представляете, какая это боль — работать с базами унаследованного кода, который, вероятно, писал ещё дедушка Билла Гейтса. Этот код часто написан совсем не так, как вы привыкли, а задокументирован настолько плохо, что иногда хочется найти его автора и… Увы: жизнь Java-программиста на больших проектах очень часто связана именно с поддержкой legacy. Эта книга может помочь с техническими аспектами работы с древним кодом, а кроме того, поможет вам смириться со своей участью. И да, я серьезно. Эта книга вам пригодится, если вы твердо нацелились на аутсорсинговую или продуктовую компанию с большими проектами.

Head First. Паттерны проектирования (Эрик Фримен, Берт Бейтс, Кэти Сьерра, Элизабет Робсон)

Оригинальное название Head First Design Patterns: A Brain-Friendly Guide by Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson

Топ-10 книг по программированию для начинающих - 6

Шаблоны проектирования, эти логичные правила хорошего тона, которые если их не изучать со временем и так придут в голову (или нет…) и которые превращаются буквально в суперсилу начинающего программиста, если к ним начать присматриваться как можно раньше. Да, на первых порах полезно покрутить относительно сложный персональный проект и попробовать разбить его на подзадачи самостоятельно… и в конце-концов найти тот самый паттерн. Однако когда речь идет о работе, времени на эксперименты не всегда хватает. Когда я попал на стажировку я очень мало знал о паттернах: учась на JavaRush я попросту проскочил все эти фабрики-синглтоны-инъекции-зависимости, сочтя, что и так разберусь, когда будет надо. Однако разобраться нужно было очень быстро, и именно книга “Head First. Паттерны проектирования” мне в этом помогла. Она легко написана, наполнена иллюстрациями и юмором… мне кажется что подача для темы “шаблоны проектирования” очень важна: ее можно подать оооочень скучно, а можно — так, как в Head First. Отличное дополнение к “Чистому коду” и/или “Рефакторингу”!

Архитектура компьютера и общие компьютерные науки

Насколько важно будущему программисту разбираться в архитектуре компьютера, знать, как устроены операционные системы, а как — базы данных? Не факт, что эти знания вам пригодятся в работе непосредственно. Но они определённо помогут вам продемонстрировать увлеченность ИТ-сферой и ИТ-эрудицию. И самое главное: если вы знаете, как всё устроено, это поможет вам решать задачи лучше. Инфа 100%. Так что вот вам ещё две книги в помощь.

Код (Чарльз Петцольд)

Оригинальное название Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

Топ-10 книг по программированию для начинающих - 7

Первое издание “Код” увидело мир ещё в начале двухтысячных, но на деле она могла появиться и раньше, и позже — и была бы всё так же актуальна. Дело в том, что в этой книге работа компьютера объяснена на очень-очень низком уровне, начиная с того, как работают те самые нули и единицы, и самый первый технический пример — это схема фонарика, который можно считать простейшим однобитным компьютером… Нет, вы не думайте, что в книге все очень примитивно. На самом деле ровно наоборот… Там описаны схемы компьютеров, с командами, работа памяти и операционных систем по самой сути. Пожалуй, именно после её прочтения я понял, как работают компьютеры. Пускай архитектура и набор команд процессора меняется, а пропускная способность памяти увеличивается, по сути вычислительные машины работают ровно так же. Нужны ли эти знания Java-программисту? Непосредственно в работе они пригодятся очень немногим. Но косвенно мне в работе часто помогало то, что я понимал как всё это работает на самом деле.

Введение в компьютерные науки (Гленн Брукшир, Деннис Брилов)

Оригинальное название Computer Science: An Overview by Glen Brookshear and Dennis Brylow

Топ-10 книг по программированию для начинающих - 8

Эта книга попала ко мне ещё в университете, когда я изучал основы компьютерных наук. Только мне достался перевод шестого издания, а в настоящее время актуальным является 13-е издание. Книга представляет собой базовый курс по компьютерным наукам, который уже много лет читается в университетах США и других стран. Охват материала в ней очень широк: архитектура машин, системы счисления, обработка данных, операционные системы, принципы построения баз данных, структуры данных, файловые структуры и так далее. Не все разделы книги написаны одинаково хорошо. Например, некогда меня очень смутил разделы про методы проектирования и базы данных, а вот разделы про системы счисления, побитовые вычисления, архитектуру ПК и структурам данных мне очень зашли. Самое классное в книге — огромное количество упражнений с ключами. Такая книга, помимо студентов, пожалуй, нужна в первую очередь самоучкам без технического образования, чтобы восполнить пробелы и получить представление о компьютерных науках в целом.

Алгоритмы и структуры данных. Та ещё напасть!

Учитывая насколько высокоуровневым стало современное программирование, знание алгоритмов утратило первостепенную важность. Теперь достаточно применить нужную библиотеку и не ломать голову над тем, как лучше отсортировать массив. Однако ломать голову в работе вам всё-таки придётся, и не раз. Помните пункт “умение выбрать лучшее решение из возможных” из требований к начинающему программисту? Так вот, что бы кто ни говорил, я считаю хорошую алгоритмическую подготовку отличной прокачкой для поиска оптимальных решений. Посему, следующие две книги — о них. Об алгоритмах.

Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих Адитья Бхаргава

Оригинальное название: Grokking Algorithms: An illustrated guide for programmers and other curious people by Aditya Y. Bhargava

Топ-10 книг по программированию для начинающих - 9

Сам автор в начале книги пишет, что алгоритмы дались ему не сразу, и он старался писать “Грокаем алгоритмы” так, чтобы она читалась просто. Рассчитана она на начинающих программистов, то есть тех, кто может написать “hello, world” и знает, что такое int, строка, цикл, ветвление и массив. Ну и может вывести массив на экран. Требуемое знание математики — приблизительно на уровне 6-7 класса средней школы без изысков. И это — первый серьезный плюс книги. Она не пытается представить читателя студентом-математиком, как многие издания на тему. То есть если вы боитесь математики, алгоритмов, уже пытались учить последние и ничего не поняли, эта книга прекрасно подойдет для вашей реабилитации в собственных глазах. Второй позитивный момент — в книге рассмотрено то, что вполне может пригодиться на практике (понимание этого — уж точно). Начинается она с объяснения сути бинарного поиска и эффективности — буквально на пальцах и со множеством картинок. Третий — в книге много вопросов и упражнений (примеры кода — на Python, но это не так уж и важно). Момент который для кого-то может быть позитивным, а для кого-то — негативным: книга не строит из себя всеохватный справочник. Скажем, из общепринятых для изучения алгоритмов здесь есть только два — неэффективный алгоритм вставки и эффективный алгоритм быстрой сортировки. Почему бы автору не рассмотреть другие алгоритмы, скажем, пузырька или слияния — не знаю. На самом деле алгоритм слияния в книге упоминается, но кратко, без разбора и только в сравнении с быстрой сортировкой. С остальными темами всё точно так же. Есть основы, которые разобраны очень хорошо, но порой очень хочется более углубленного продолжения, а его попросту нет. Одним словом перед нами очень базовая книга, после которой, скорее всего, захочется найти книгу, в которой всё расписано посерьезнее. Например, следующую.

Алгоритмы на Java (Роберт Сэджвик, Кэвин Уэйн)

Оригинальное название: Algorithms by Robert Sedgewick and Kevin Wayne

Топ-10 книг по программированию для начинающих - 10

На самом деле эта книга может как очаровать, так и отпугнуть. Отпугнуть хотя бы своим объемом в…очень много страниц и определённой академичностью. Поэтому если в к ней, академичности, не склонны, или не чувствуете себя уверенно в математике ( старшие классы, простейшие элементы высшей математики для инженеров), то с этой книги лучше не начинать. Математических терминов там не так уж и много, но сам подход предполагает такое мышление. А вот после предыдущей книги — почему бы и нет. Она даст ориентир. Первая глава местами — обобщение знаний по Java и определение некоторых структур данных. Её лучше читать выборочно, а вот вторую и третью главу не помешает изучить достаточно подробно. Остальные — также полны интересной и основательной информации о графах и строках. Я бы сказал, такие вещи ОЧЕНЬ помогают в формировании программистского мышления. Касательно изложения — чувствуется, что автор — преподаватель, но привык работать с людьми по большей мере заинтересованными и подготовленными. Так что наберитесь терпения и читайте. А также решайте задачи, их тут хватает. Кстати, на Coursera вы можете найти курс по алгоритмам, созданный авторами книги.

Знай свой фреймворк

И, напоследок еще одна книга. И снова — полезная.

Spring в действии (Крейг Уоллс)

Оригинальное название: Spring in Action by Craig Walls

Топ-10 книг по программированию для начинающих - 11

Очень известная книга с не менее известной обложкой с “мужиком в юбке”, который на самом деле не в юбке. Откровенно говоря, изучение Spring по одной только книге — очень непростая задача, даже если стараться сразу всё пробовать на практике. Кстати, понять, как это сделать после прочтения той или иной главы бывает крайне непросто. Я работал с этой книгой когда попал на стажировку в компанию, и вот при таком использовании она очень помогает. Мало того, я даже сегодня, уже работая программистом, постоянно к ней возвращаюсь. Короче говоря, получить общее представление о главном джавовом фреймворке с её помощью можно.

По опыту хочу сказать, что если ваш ребенок заинтересовался программированием то, лучше дать ему возможность попробовать. Ибо, с 13-ти лет, если бы я учился, уже давно жил бы заграницей и создавал топ-приложения на Android и iOs.

Вот ссылки на курсы для детей:
Если ваш ребенок любит майнкрафт то пусть попробует этот сайт.

Также есть:

Также есть и другие курсы уже для подростков и взрослых по программированию.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

1063