Вход
Регистрация
НОВОЕ
ОБЩЕСТВО
Настройки Настройки Ваши группы Ваши группы Ваш блог Ваш блог Обмен Обмен Выход
Группы Группы Блоги Блоги Форум Почта
Введение в работу программиста

Мы предлагаем качество

Качество - наша философия. Мы понимаем, что без качества мир не способен развиваться и в итоге скатывается в каменный век, хоть и с ядерной дубиной. Поэтому мы позиционируем себя как своего рода университет на фоне колледжей и технических училищ. Менее основательно подходящие к программе обучения курсы учат названиям кубиков и тому, как конкретные кубики складывать в стандартное (и простое) приложение. Мы даём понимание смысла кубиков, зачем они нужны, как они работают, как их разрабатывать, и конечно же, как их потом складывать в нечто полезное. Поэтому вы сможете вписаться в разработку любой системы, очень быстро освоив её узкую специфику. А выпускникам альтернативных курсов придётся надолго застрять в рамках одного единственного подхода, хоть и нередко полученного заметно быстрее, чем на наших курсах, но не дающего человеку реально выбирать его жизненный путь. Куда бы он ни попробовал развиваться, везде ему не будет хватать качества знаний. Закончившим же наши курсы будет открыта любая дорога в области разработки, потому что мы даём систему знаний, а не разрозненный набор названий технологий. Обладая такой системой, освоить что-то новое будет несложно. Хотя часто вы обнаружите, что новые и модные технологии решают очень небольшой набор задач, который, вполне возможно, вообще бесполезен в вашей конкретной теме. То есть понимание даст возможность почти полностью исключить затраты времени на то, что при отсутствии понимания другие будут изучать и пытаться как-то использовать без реальной потребности в такой новой игрушке.

Оптимальность затрат

Когда вы начинаете изучать программирование, можно пойти по многим путям, можно двигаться быстро, можно не торопясь. Но в конце вы надеетесь на какой-то приличный результат. И если результат нужен приличный, а путей к нему много, то перед вами встаёт проблема выбора - который из путей приведёт вас именно к тому, что вы ожидали? И вторая немаловажная часть - а как быстро можно получить результат?

С точки зрения программирования вы задаётесь вполне стандартными вопросами, которые каждый программист, возможно неявно, но решает каждый день. Коротко ваши вопросы переформулируются так - вас интересует оптимальный по критерию стоимости (денежной и временной) маршрут, гарантированно приводящий вас к цели. Именно в этой фразе скрывается вся суть программирования. Хорошим программист быть не может, если он не понимает эту суть. Поэтому мы далее будем ориентироваться на подготовку именно хороших программистов.

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

Можно быть технически грамотным и хорошо решать сложные задачи. Такие люди востребованы и получают хорошие зарплаты. Но для достижения состояния, когда вы умеете решать сложные задачи, потребуется интерес, технический склад ума и выделение достаточного времени. Если у вас нет интереса, тогда скорее всего вы пойдёте по другому пути. Если вы не готовы выделять достаточно времени, значит опять вам придётся искать что-то другое. И этим другим могут быть два варинат - можно быть узким специалистом с меньшими возможностями на рынке труда, и можно быть "успешным" программистом.

Узкий специалист может относительно быстро изучить какую-то небольшую область, например - как использовать какое-то готовое решение, вроде какого-нибудь наиболее модного конструктора сайтов или чего-то подобного. Для начала будет достаточно лишь базового понимания и умения искать ответы в сети. Но далее расти будет сложно, потому что у вас не будет базы, которая могла бы позволить решать такие задачи, которые не решаются поиском в интернете. А раз вы не сможете решать что-то вне уже кем-то решённых проблем, то и оплата за такую работу вряд ли будет большой. То есть так вы получите перспективу со скромным доходом, но относительно быстро.

Ещё есть вариант "успешный" программист. Это сильно отличающееся направление развития. В мире технических систем вам достаточно уметь находить маршруты из отправной точки в целевую, а потом оптимизировать выбранный путь. Но в социальных системах количество маршрутов резко увеличивается, вплоть до таких пределов, которые неподвластны даже для современных компьютеров, не смотря на все их гигабайты и гигагерцы. Поэтому в социальных системах вы выбираете путь на основе привычек, сформированных ещё в детстве. Эти привычки неоптимальны, но они задают направление, в котором вы будете искать свой путь. И некоторые в результате находят быстрый путь в "успешные" программисты за счёт психологических навыков, выработанных ранее.

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

Таким образом, развиваться в разработке ПО можно по таким направления - через взаимодействие людей к высоким должностям и зарплатам, либо через погружение в теоретические глубины и, в результате, к способности решать сложные задачи, которые обычно не под силу предпочитающим первое направление. Но так же доступен и третий вариант - можно надолго застрять с одной узкой специализацией. Но эмоционально и психологически человек готов только к чему-то одному. Именно поэтому вам в первую очередь нужно сделать выбор - вы человек с языком или вы человек с умом. Первое направление, это вертикальная карьера в сторону больших начальников, она трудна, конкуренция там высока, а спрос не очень балует. Второе направление - карьера специалиста. Здесь на вашей стороне и спрос на рынке, и гораздо менее жёсткие требования по части умения взаимодействовать с людьми. Но требуется глубина погружения и способность решать задачи. Узким же специалистом обычно быть не хотят, но так уж получается, что нехватка времени или отвращение к математике, не дают развиваться в более широко мыслящего программиста. Но не смотря на сложности, надеемся, что вы сможете осилить один из вариантов более успешной карьеры.

И лишь после того, как вы определитесь с выбором направления, вам стоит думать об обучении. Учиться на "успешного" или "узкого" разработчика можно поверхностно и довольно быстро, поскольку от вас не потребуется глубина в навыках и понимании сложных задач. В результате вы относительно быстро сможете продемонстрировать базовые навыки разработки, и, при условии наличия хорошо подвешенного языка, дальнейшая карьера будет зависеть в основном именно от коммуникативных навыков. На этом этапе мы вам более помочь не сможем, а потому сразу объявляем об этом факте и предлагаем вам поискать более подходящие коммуникативные тренинги.

Если же вы выбрали путь погружения в предмет, то на таком пути мы могли бы вам серьёзно помочь. Но снова предостережём от "быстрых" решений. Быстрые решения дают быструю возможность начать что-то зарабатывать. А качественные решения дают возможность зарабатывать больше и дольше, хотя и с более поздним стартом. По срокам можно ориентироваться на что-то вроде полугода для быстрых решений и до пары лет для качественных. Если вы ограничены во времени (вы работаете, свободны только вечера и выходные), тогда вы вряд ли сможете выделять много больше времени, чем 2-3 часа по рабочим деням. В таком темпе качественный результат вряд ли достижим быстрее, чем за полтора-два года. Если вы менее ограничены во времени (например - студент), то, увеличив ежедневную нагрузку, есть шанс получить качество через год. Но, к сожалению, человеческий мозг так устроен, что полезные обобщения он выводит после довольно длительного периода работы, поэтому какое-то время вы работаете не замечая многих важных моментов, по привычке, не напрягаясь на дополнительное осмысление. И это "какое-то время" может затянуться на годы. Отсюда вытекает простое следствие - успех на пути к качеству всего за год - не такое частое явление, потому что мозг большинства не успевает одновременно учить новое и к тому же самостоятельно выводить на этой основе полезные закономерности. Хотя попробовать вы, разумеется, можете, но предостережение мы вам дали - не спешите - быстро и качественно освоить такую большую область, как программирование - задача не из лёгких.

Но в любом случае на выходе вы обязательно получите набор знаний, который условно можно определить как "уверенный middle". Такая классификация была заимствована у нас с запада, где для обозначения уровней оценки работников принято использовать английские слова junior, middle, senior. Эти слова переводятся как молодой, средний, старший. Обычно в английском языке их применяются для указания разницы в возрасте или опыте (он старше меня на 20 лет - He's twenty years my senior). В программировании же эта классификация условно делит разработчиков на три градации по опыту и навыкам. Верхняя градация позволяет рассчитывать на лучшие зарплаты, но средняя, да ещё и с глубоким уровнем погружения в предмет, востребована существенно больше в количественном отношении, а платят за неё отнюдь не в разы меньше, здесь разница будет не намного больше нескольких десятков процентов.

Имея такой набор знаний, вы окажетесь лучше подготовленным, чем "успешные" программисты, в том числе работающие на должностях сеньоров. В этом будет ваше конкурентное преимущество. Останется только суметь себя правильно преподнести, ведь не стоит забывать, что разговорный навык может повысить вашу стоимость гораздо больше, чем мог бы получать неразговорчивый разработчик уровня senior. Плюс вы можете попасть в самые разные команды, со средним уровнем ниже вашего, где-то около вашего или выше вашего. Обычно средний уровень команд не очень высок, поэтому имея качественную базу вы вполне могли бы проявить себя, но не забывая о психологии. Например, не стоит недавно устроившись на работу настаивать на изменении привычных в данной компании подходов - вас не поймут и не оценят, потому что подходы часто формируются далеко не по признаку наибольшей эффективности. Хотя и скромничать тоже не нужно, заявляйте о себе, но не переусердствуйте, и постепенно обязательно заслужите более уважительное отношение и соответствующее вознаграждение.

Итак, мы вам предлагаем программу для достижения качественного результата. С вами будут работать хорошие специалисты со стажем разработки 20+ лет. Но полагаться только на специалистов и программу нельзя - вы тоже должны прилагать усилия. Вам предложат набор упражнений, без которых невозможно закрепить полученные знания. Только самостоятельная работа над задачами и применение полученных знаний на практике позволяют качественно осваивать профессию. Если только прочитать курс, но не уделять внимания упражнениям, в голове останется очень мало, прочитанное неделю или месяц назад уверенно забудется, а новые знания не лягут в голову нормально из-за их зависимости от того, что вы уже забыли. Поэтому от вашей готовности работать самостоятельно зависит очень многое.

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

Мы надеемся на дух сотрудничества. С нашей стороны для этого есть не просто готовность и желание, но целая идеология опоры на общество из грамотных и потому свободных граждан. Остальное дело - за вами!


Глоссарий Глоссарий О сообществе О сообществе Конфиденциальность Конфиденциальность Работа с сайтом Работа с сайтом