Мы прочитали уйму книжек, которые вроде как какую-то идею передают, а инструментов реализации не предлагают. Это с одной стороны наша проблема, что мы не можем прочитанное перевести из разряда теории в практику, но с другой, авторы таких произведений могли бы и побольше внимания уделить описанию именно практической стороны дела.
Дабы такой ошибки избежать в этой книге мы Вам предлагаем уникальный пошаговый план развития программиста от новичка до настоящего гуру.
А область это широка неимоверно, и, соответственно, знаний всякого рода также огромное число. Так вот, здесь мы попытались расставить их в том порядке, в котором они по-настоящему необходимы программисту по мере его профессионального роста. То есть, к примеру, если Вы сейчас являетесь студентом, который подрабатывает на своей первой в жизни работе, Вам нет необходимости забивать голову материалами о риск-менеджменте в области ИТ-проектов. Это полезная информация, но сейчас есть нечто более важное, что Вам необходимо узнать. Со временем доберетесь и до этого, но только если преодолеете все предыдущие ступени развития.
Сразу оговоримся, шаги развития, приведенные ниже, не являются четко выделенными. Скорее всего, у Вас есть что-то от разных ступеней. Стоит обратить внимание на методы, предложенные в каждом из этапов. Сроки, которые я привожу здесь также очень условны. Иногда человек за короткий срок делает ТАКОЙ рывок вперед, что вместо рядового разработчика оказывается на уровне управленца. С другой стороны, как мы увидим позже, большинство специалистов, добившись незначительных успехов, наглухо застревают на своем месте.
Итак, вот он, уникальный пошаговый план развития программиста с нуля до заоблачных вершин.
Шаг 1. Новичок. Опыт работы = 0. Знания в рамках школьных и институтских курсов информатики.
Славный период, когда мы мало что знаем, ещё меньше умеем, но страстно желаем начать работать. Несмотря на то, что рано или поздно эту стадию преодолеют все (все же когда-то начинают работать), её можно назвать одной из самых сложных. Приоритеты здесь очень простые, главное - НАЧАТЬ что-то делать. Что-то, чем будут пользоваться другие люди. Заметьте, тут речь ВООБЩЕ не идет о деньгах. Если Вам за Вашу работу готовы платить – прекрасно, нет – ничего страшного. Сейчас намного важней, чтобы цифра ноль напротив опыта работы сменилась на нечто более привлекательное. Тем не менее, впадать в альтруизм не нужно, и стоит подготовиться к собеседованию на работу, чтобы показать себя с лучшей стороны и, как следствие, выбить большую з/п. О том, как готовиться к собеседованию, я отдельно напишу в следующей главе. Скажу только, что новичку необходимо собрать весь, какой есть, опыт, каким-либо образом связанный с программированием. Если надо, притянуть его за уши. Важно, чтобы было о чем сказать по поводу своего опыта. Если вы думаете, что сможете таким образом обмануть людей, которые будут Вас собеседовать, то нет, конечно же. Новичка видно невооруженным глазом. Но всё же информация о каком бы то ни было опыте в сто раз лучше молчания в ответ на вопрос собеседника.
Что прочитать. Ну, во-первых, нужно конкретизировать сферу того, что Вам интересно в программировании. Быть может для Вас представляет интерес веб-программирование, или Вам больше по душе прикладные программы, а возможно, Вам хочется заниматься низкоуровневым системным программированием. Определитесь, к чему Вы тяготеете больше всего, и смело приступайте к изучению предмета. Поищите на форумах, какие книги народ рекомендует по Вашей теме. Узнайте, кто считается экспертом в выбранной области, и какие книги у него есть.
Что попробовать. Читая книгу, старайтесь выполнять примеры и задачи, которые в ней описаны. Найдите в Интернете сайты, посвященные данной тематике. Там можно найти полезную информацию и ответы на часто возникающие вопросы.
Как перейти на следующий уровень. Подготовиться к собеседованию и получить свою первую работу. Тут не может быть никакой погони за деньгами. Ваша задача – максимально расширить свои знания и умения. Впрочем, это уже следующая ступень.
Шаг 2. Advanced Новичок. Опыт работы <= 0,5 года. Знания в рамках школьных и институтских курсов информатики + полученные на работе навыки решения конкретных задач.