Можно ли печь программистов как пирожки?
Добрый день.
Я практикующий программист, который уже более 5 лет также занимается IT-образованием. За это время я
— год вел спецкурсы на механико-математическом факультете Харьковского Национального Университета («Многопоточносе программирование», «Distributed algorithms»)
— год преподавал Java в Харьковском отделении EPAM, отвечал за построение системы образования (отбор слушателей, анализ и составление учебных программ, отбор преподавателей)
— три года владею, руковожу и преподаю на собственных курсах. За это время 7 раз прочитал курс «Core Java», 3 раза «Junior Java Development», 2 раза прочитал в режиме вебинаров курс «Multithreaded Programming in Java». Так же разрабатыватываю MOOC-курс «Scala for Java Developers» (127 студентов) и создал два откровенно кривых сайта kharkovitcourses.blogspot.com и golovachcourses.com. На моем youtube-канале 12.000 подписчиков. Писал на dou и habrahabr (самый популярный пост — набрал 400.000 просмотров).
Сейчас IT-образование в Украине — это hot topic. Мне часто приходится отвечать на одинаковые вопросы друзей, знакомых и просто пришедший из скайпа. Хотелось бы тут ответить на некоторые из них (а на один особенно развернуто — про пирожки).
0. «Зачем ты нас обманываешь, хитрый продавец курсов?»
1. «Образование должно быть бесплатным?»
2. «Как мне найти ментора? Вы ведете индивидуальные занятия?»
3. «После хороший курсов я точно найду работу?»
4. «А курсы XYZ трудоустраивают?»
5. «Можно ли стать программистом в 40 лет?»
6. «Могу ли я в 27 лет переквалифицироваться из баяниста в программисты?»
7. «Как пролезть в IT с нуля?»
8. «Можно ли попасть в IT без английского?»
9. «4.000 (3.000, 8.000 ...) гривен — это дорого»
10. «Склонен ли я к программированию?»
11. «Устроюсь ли я в Кремниевой Долине в Google/Facebook/Twitter/Microsoft/...?»
12. «А что нельзя просто сделать действительно качественные курсы и сарафанное радио приведет толпы людей? Ну все по-честному?»
13. «Как уверенно долго говорить на людях?»
14. «Ну и что ты понял о предпринимательстве теперь?»
15. «Что я думаю о Академии ШАГ?»
16. «Что я думаю о JavaRush?»
17. «Что я думаю о других конкурентах?»
18. «Ха-ха! Бесплатная Coursera/EdX/... скоро сделает отличное западное образование доступным, удобным и БЕСПЛАТНЫМ. Ты — труп!»
19. «Программист — это элитарная профессия, требующая особенного склада ума, значительного интеллекта, таланта, прирожденного дара?»
20. «Парни таки круче девушек в программировании?»
21. «Каково будущее украиского IT-образования?»
22. «Почему отбор на курсы — плохая экономическая идея?»
23. «Можно ли печь программистов как пирожки (поставить эффективное образование на поток)?»
0. «Зачем ты нас обманываешь, хитрый продавец курсов?»
Я уже более 9 месяцев не веду курсы в оффлайне.
Поэтому — мне Вам просто нечего продавать.
Товара — нет.
Программа из
Я вернулся в программирование. Меня вполне устраивает моя текущая специальность = back-end on JVM of high-loaded servers (Netty, Akka, Scala, Multithreading), от 3К-5К запросов на одну машину в секунду.
Причина достаточно проста — за программирование отлично платят и не треплят нервы. Вас не волнует реклама, сотрудники, клиенты, учебные программы. Не надо в аудиторию завозить воду и договариваться с уборщицей.
На курсах в реале можно заработать в двух случаях
— Вы берете с людей действительно много, скажем по 1.000$-2000$ (магические 3х месячные iOs-курсы «где-действительно-учат-и-вы-потом-на-вес-золота») и с помощью какой-то магической рекламы набираете группы по
— Вы строите промышленный конвеер, берете по 5.000 гривен за курс, у Вас 5 аудиторий забитых по
На курсах в онлайне все может быть веселее: предположим, что JavaRush набирает ежемесячно 100 человек по 100$. 10к — хорошие деньги. А если 300 человек в месяц? Совсем сладко.
Ключевое словосочетание — «может быть».
1. «Образование должно быть бесплатным?»
В такой формулировке вопрос вообще не имеет смысла. Совершенно непонятно Что и Кому должно. Образование должно Вам? Собственник образования должен Вам?
Образование МОЖЕТ быть бесплатным ДЛЯ ВАС? Да, может. В двух случаях. Во-первых, если оно создается на волонтерских началах. Во-вторых, если за него заплатит кто-то другой, а не вы (IT-компания, государтсво, университет). Шара, скидка — это потрясающе. Но это везение, а не чье-то обязательство. И уж точно Вам никто ничего не должен на рынке. Да, я знаю, что Вы платите налоги, но, кажется, на выборах никто не обещал бесплатное IT-образование. А если и обещали, то это Вам должны депутаты и Президент.
2. «Как мне найти ментора? Вы ведете индивидуальные занятия?»
Нет, не веду. По причинам исключительно финансовым. Профессиональному программисту НЕ ВЫГОДНО вести индивидуальные занятия. Даже за 100$ в час.
Тут нужно небольшое уточнение, за 100$ в час при заказе двух часов в виде 6 кусочков по 20 минут в течении месяца — не выгодно (а это типичная форма предложения, обычно помочь сделать тестовое задание за 200$). При заказе 50 часов по 50$ за час в течении 1 месяца — выгодно.
Поймите, Вам необходимо ПЕРЕБИТЬ программистскую зарплату, а у человека со скилами Senior Developer это порядка 2.500$-4.500$ в месяц.
Просто поймите, что обучающийся медицине не может себе позволить нанять на индивидуальные занятия практикующего нейрохирурга, изучающий топографию — полковника из АТО, а ученик музучилища — известного гастролирующего музыканта. Ну если он конечно не сын депутата.
Это больно. Понимаю. Но взрослый чужой дядька, который потратил уйму времени и усилий, что бы достичь какого-то уровня и сейчас зашибающий бабло совершенно не горит желанием повторно тратить свои ресурсы, что бы бабло зашибали Вы. Вы ведь, скорее всего, не помогаете незнакомым шестиклассникам разбираться с квадратными уравнениями? Даже за 50 гривен в час?
3. «После хороший курсов я точно найду работу?»
Да, хз. Работа — это как любовь. Тут одного знания «Камасутры» недостаточно. Личные качества, подвешенный язык, гибкость.
Но САМОЕ ГЛАВНОЕ — НАСТОЙЧИВОСТЬ (упорство, постоянство)!
Никто же не спрашивает после танцевальных курсов — «А я точно найду свою любовь?». Или, «после курсов танцев я уже 4 раза сходил на дискотеку — а никого не встретил».
4. «А курсы XYZ трудоустраивают?»
На сегодня гарантию ТРУДОУСТРОЙСТВА могуть дать только курсы компании (не 100% даже для отличников). Или курсы, у которых какие-то ну уж очень тесные связи с компанией (и компания должна непрерывно набирать людей, монстры типа GlobalLogic/EPAM/SoftServe/Luxoft/...). Я лично таких курсов не знаю.
Но! Курсы могут устраивать СОБЕСЕДОВАНИЯ в компании. Когда я вел курсы в реале, то удавалось устроить собеседования в
Итог: есть знания, а есть трудоустройство. И это достаточно независимые параметры курсов. Хорошо получить оба, но знания — тоже неплохо. Естественно, существуют курсы с отвратительным преподаванием.
5. «Можно ли стать программистом в 40 лет?»
Да, можно.
Мой опыт показывает, что мозги 40 летних СОВЕРШЕННО НЕ ХУЖЕ ЧЕМ У 20 ЛЕТНИХ. Они ОДИНАКОВЫЕ. Разница в другом. Преимущество «зрелых» — понимают чего хотят, более сосредоточенные в основной массе, выносливые, настроены на долгий заплыв. Преимущество молодых — они расходный материал истории. Это хорошо усвоили армии всего мира. Их время и жизнь ничего не стоит. Именно так. Его не цените Вы (подумаешь, какой-то 18 летний пацан учился играть на гитаре год и не научился), его не ценят они (3 месяца ковырял JavaScript, потом три месяца — Linux, потом влюбился и уплыл на байдарках). «Зрелые» же носятся со своим временим как с писанной торбой. Понимаю — семья, ребенок, кредит ... Взрослые не могут «просто так ковырять Linux» три месяца. Вот тут преимущество «молодежи», а не в мозгах.
6. «Могу ли я в 27 лет переквалифицироваться из баяниста в программисты?»
Так, первое. Давайте ослабим «программистов» до «ITшников». Сюда входят также QA, переводчики, сисадмины, бизнес-аналитики. Вотретесь в тусовку, а там посмотрите. Может вам хорошо и бизнес-аналитиком. А можете позже и переквалифицироваться (Йоу! Вы УЖЕ в IT!). Второе — можете, если вы сосредоточенны, имеете ресурсы и вам это в целом нравится.
Сосредоточенны — Вам прийдется самостоятельно исследовать и систематизировать огромную массу материала. Чем Linux отличается от Unix? UTF-8 от UTF-16? Flash от ActionScript? JavaScript от TypeScript? Прийдется совать в свою голову тонны данных в надежде, что оно там все уляжется. Тут у бухгалтера обычно больше шансов, чем у клоуна в цирке.
Имеете ресурсы — Вам потребуется время (порядка 12 месяцев). Время — это зачастую деньги (что-то надо кушать и где-то жить, сложнее если кого-то еще надо кормить и давать ему жилье).
Должно нравиться — иначе оно Вам и не надо. И не получится.
А баян? Баян не мешает.
7. «Как пролезть в IT с нуля?»
Тут надо понимать, что у Вас очень невыгодная позиция. Отечественные ВУЗы выпускают каждый год сотни тысяч таких же безработных технарей, готовых работать за опыт. Знание основ языка программирования — это не конкуретное преимущество. Все знают.
Есть два способа.
Первый — это пролазить в контору с максимально низким входным порогом. Их называют «кузницы кадров», или «гуаноконторы». Будете «формошлепом». Эти компании работаю на том, что набирают малоквалифицированную рабочую силу за копейки (от 100$ в месяц). Но они набирают много и без разбора. Вам потребуется Core Java (Core PHP, Core ...) и английский.
Второй — всесторонне подготовиться. Т.е. быть уже не trainee, а Junior. Для этого надо знать не только основы языка, но и то, как решать на нем типичные бизнес-задачи (ходить в базу, рендерить html, типичные фреймворки, если это server side, написать развитое мобильное приложение, если это мобильная разработка). Для server side также надо знать основы Linux, сети, SQL, базы данных и английский. В таком случае, Ваше резюме будет выделяться среди остальных.
8. «Можно ли попасть в IT без английского?»
Да, можно.
Но знание английского сейчас это ожидаемая норма. Неприятно. Сам его не люблю. Такую бессмысленную ересь как грамматика (времена, падежи, склонения, ...), пунктуация, ударения могли выдумать только гуманитарии в попытке создать систему правил.
Скажу только, что проверка на английский зачастую простая — поговорить 5 минут. Трехмесячный интенсив — вполне тут вас подтянет. Только разговорный. Без грамматики. Произношение, стандартные фразы. Вы просто инженер.
9. «4.000 (3.000, 8.000 ...) гривен — это дорого»
Опять двадцать пять. Дорого в сравнении с чем? Со стоимостью десятка яиц? Месячной зарплатой продавца в ларьке? iPhone-ом? Поездкой в Черногорию? Квартирой в Киеве? Годовой зарплатой в Кремниевой Долине? Это Вы хотите получить высокооплачиваемую профессию и зарабатывать десятки тысяч долларов в год. Это Вы прос**и свое время, не получив нужное Вам образование с 13 до 22 лет. По американским меркам, например, образование стоит порядка годичной зарплаты после выхода на полную мощность (программист зарабатывает порядка 80к-160к в год, столько, примерно, стоит и хорошее образование). Так что если Вы до выхода на сениорскую зп потратите 5к$-10к$ — это не так уж и много по мировым меркам. У Вас их нет? Займите. У Вас нет друзей с деньгами? Вы плохо организовали свою жизнь, взрослый человек, а живете в каком-то гетто. Вы не уверены (в Вас не уверены), что вы станете программистом и «отобьете бабло»? Фигово. Вы фигово провели 10 лет в школе, потом 5 лет фигово в институте. Вполне возможно что Ваша жизнь — сплошная фигня.
10. «Склонен ли я к программированию?»
Сложный вопрос. Очевидно, существуют люди ОДАРЕННЫЕ в программировании. Но Вам нет необходимости иметь дар. Для начала Вы будете просто педалить за деньги. Тут аналогия такая — искусство любви. Вы, скорее всего, не станете Казановой или Дон-Жуаном. Нужен особый склад психики, мотивации, склонность. Но размножаться то всем надо! Вторую половинку же как-то ВСЕ находят. Т.е. какой-то то уровень «искусства любви» все таки каждый осваивает.
В целом, людям с математическим складом ума — проще в программировании. Именно со складом. Математика особенно не нужна. Вот Вам простой тест: почему sin(x)*sin(x) + cos(x)*cos(x) = 1 для всех x? А не, например, sin(x) + cos(x) = 1 или sin(x)*sin(x) + cos(x)*cos(x) = 2. Еще вопрос — центр вписанной или описанной окружности лежит на пересечении биссектрис углов треугольника? Просто люди, которые правильно ответят на эти вопросы демонстрируют, что способны запоминать системы формальных правил и помнить их годами. Это более-менее важно. А тригонометрия — нет.
11. «Устроюсь ли я в Кремниевой Долине в Google/Facebook/Twitter/Microsoft/...?»
Туда попадают двумя путями.
Первое — это наличие таланта и развитие его вовремя (в
Второе — тяжелый упорный труд. Если Вы стартуете в 28 лет и до этого были менеджером по продажам 6 лет — трудом Вы можете уехать в Америку программистом. Это вполне реально. Я Вам точно говорю. Но топовые компании Вам скорее всего не светят, не пробъете конкурс.
12. «А что нельзя просто сделать действительно качественные курсы и сарафанное радио приведет толпы людей? Ну все по-честному?»
Не в этом бизнесе.
Человек действительно принимает решение опираясь на общественное мнение (камменты на форумах).
Но
1. курсы — это не товар постоянного пользования. Вы их берете ОДИН раз. Стиральный порошек и пиво — постоянно.
2. Плотность потребителей пива и моющих средств очень высокая, и они советуют друг другу. Пример тех, кто всецело держится на сарафанном радио — дантисты. Тут вообще все — по совету друзей. Гинекология, урология.
Но относительно курсов, тем более со сменой специальности (у многих людей есть круг друзей желающих изменить специальность? тем более на одну и туже? у рыбака обычно друзья — рыбаки, а не мечтающие переквалифицироваться на программиста), оказывается, что 100 Ваших покупателей не приходят повторно сами и приводят только 20 новых слушателей.
Так что «продвижение товара» — неизбежно.
13. «Как уверенно долго говорить на людях?»
Короче, есть такая штука — харизма. Точнее — ее не существует. Это модный термин обозначающий непонятно что. Существует компетентность + честность.
.
Люди согластны долго слушать других людей, если они интересуются сферой компетенции говорящего (а говорящий за нее не выходит). Все мы с удовольствием послушает рыбака, охотника или тамаду. Посему — будьте компетентны. Толстый или патлатый, рыжий или гундосый — говори о том, в чем сечешь.
.
И будьте честны перед аудиторией. Намного проще просто сказать — «тут я не знаю» и идти дальше. Передавайте эмоции. Современным людям очень не хватает, что бы сними просто поговорили по-честному. Солдаты вполне доверятся тому командиру, кто скажет что «колечко» замкнется завтра, мосты взорвут саперы, уходить будем болотами, собирайте харчи, берегите патроны, собирайте своих.
14. «Ну и что ты понял о предпринимательстве теперь?»
Самое главное, хорошие услуги, предметы, вещи — это хорошо, но это еще не товар. Товар — это вещь или услуга, которую продают. Вещь на рынке. И как бы Вы хорошо не преподавали, помните, что образование — это услуга, которую вы можете оказывать. Ее еще не купили и даже никто и не собирается покупать. Мои бабушка с дедушкой конечно не смогли бы понять, как это — не можем продать картошку, хороший дом, корову? Т.е. всякая вещь в их владении являлась товаром. Ликвидным товаром.
Тут полная аналогия с разработкой ПО под заказ. Способность программистов писать код — это услуга, но товаром ее делают нетехнари (менеджмент, маркетологи, сейлзы). И обязателен момент обмена человеко-часов, которые есть у вас, на денежные знаки заказчика.
И тут понимаешь, что товар/услуга отличного качества (Французкий ресторан) и продажа его (Всемирная сеть французких ресторанов) — это две независимые компоненты. Конечно, хороший товар проще и веселее продавать.
Короче говоря, моя вера пошатнулась и я признаю существование важнейших для существования цивилизации видов дейтельности никак не связанных «технарством».
15. «Что я думаю о Академии ШАГ?»
Тут надо различать несколько независимых моментов:
А) есть бизнес на образовании, а есть качество образования
Б) есть система, а есть люди в ней
По бизнесу — это великолепная система, огромная, отмасштабированная. 14.000 студентов, свой
По качеству образования — меня смущает то, что 600 преподавателей не нагенерировали никакого материала «наружу». Ни видео, ни технических постов на сайте, ни методичек. Это более чем странно (все закрыто кгб? цру? массонами?). Вот по каким материалам они обучают 14.000 студентов? Все же курсы имеют общие материалы, проходят верстку, основы html.
По бизнесу + качеству одновременно — система годная. Не знаю как это выразить. Вот пример. Я только что устраивал ребенка в детский сад. Теперь он пойдет в садик без английского, без бассейна и прочих буржуазных извращений (я живу в центре полуторамиллионного Харькова, садиков с изысками полно). Но при этом всем — садик ХОРОШИЙ. Он недалеко от нас, расположен в парке, добрые нянечьки. Вот так и ШАГ — это удобное решение у дома.
По студентам — с одной стороны один из
16. «Что я думаю о JavaRush?»
С одной стороны — 400.000 подписчиков! Когда покупают, например, социальную сеть, то за юзера платят 5$ (слышал такое). Т.е. оценочная стоимость проекта — 2.000.000$! С другой стороны — я понимаю, что за проектом стоит около пяти взрослых человек, которым каждый месяц надо кушать. И я не знаю какой cash flow генерит этот проект. 5 человек,
Да, мир взрослых, с зарплатами, доходностью и производительностью труда — он такой унылый ...
17. «Что я думаю о других конкурентах?»
Честно говоря, не занимаюсь анализом конкурентов. Нет времени и желания. Да и какая цель?
Обращаю внимание только на тех, кто достиг РЕШИТЕЛЬНЫХ успехов. Сейчас для меня ориентиром является John Purcell. Это ОДИН программист, который написал около 10 курсов, обучает около 500.000 студентов и, при этом, 40.000 на ПЛАТНЫХ курсах.
Он выложил несколько бесплатных курсов
«Java Tutorial for Complete Beginners» — 420.000 студентов
«Java Multithreading» — 50.000 студентов
Java Design Patterns and Architecture — 60.000 студентов
И среди них продает (платформа позволяет) платные курсы (на udemy.com два раза в месяц среди студентов можно делать рассылку объявлений о твоих платных курсах, т.е. он рекламирует свои платные курсы среди полумиллиона студентов)
The Java Spring Tutorial: Learn Java’s Popular Web Framework — 12.000 по 39$
Servlets and JSPs Tutorial: Learn Web Applications With Java — 11.000 по 49$
Java Swing (GUI) Programming: From Beginner to Expert - 6.000 по 49$
---
В реальности авторы на юдеми имеют порядка 5$-10$ со студента. Но все равно, цифры — внушительные.
18. «Ха-ха! Бесплатная Coursera/EdX/... скоро сделает отличное западное образование доступным, удобным и БЕСПЛАТНЫМ. Ты — труп!»
А) Во-первых, у Coursera, EdX и прочих есть минус в том, что они ТЩАТЕЛЬНО ОТБИРАЮТ преподавателей. Берут выдающихся. Тут я верю скорее в Udemy.com, Linda.com — где курс может стартовать КАЖДЫЙ (на udemy около 15.000 преподавателей и 30.000 курсов, каждый месяц добавляется несколько ТЫСЯЧ курсов). Решительно ни из чего не следует, что выдающийся ученый — лучший преподаватель для масс. Лучшим преподавателем может оказаться учитель из индийской провинции. Гении точно нужны, что бы обучать гениев.
В) Во-вторых, преподаватели должны быть заинтересованы в успехе курса среди студентов. Это сложно сделать в случае бесплатных курсов.
Пример: у Мартина Одерского есть великолепная платная книга по Scala (уже два издания) и намного худший бесплатный курс на курсере (он носит ознакомительный характер, это курс-обзор). Если ты можешь получать 50.000$ в год с книги или курса, то зачем стараться сделать это бесплатно? По Java есть платные книги от «отцов» — Гослинга, Блоха, но нет бесплатных курсов.
С) В-третьих, значительная часть успеха кроется в мотивации и поддержке. При занятиях в аудитории — Вы видите группу, ее прогресс, видите что не только Вы «тормозите», ленитесь, не вьезжаете. Вы «движетесь в потоке», как говорят автолюбители.
В понедельник все учим массивы.
Все.
В понедельник.
Массивы.
А строки — все учим во вторник.
Д) В-четвертых, обучение с учителем таки очень эффективно. А как только ты выделяешь индивидуальное время преподавателя на каждого из сотен тысяч студентов — у тебя в счетах появляются миллионные суммы на зарплату.
19. «Программист — это элитарная профессия, требующая особенного склада ума, значительного интеллекта, таланта, прирожденного дара?»
Нет.
Бред сивой кобылы.
Доказательство от противного на пальцах.
Любой программист подтвердит, что из тех, кто стал Junior — 75% через
Да, «эстеты от программирования» могут плеваться и говорить, что среди «украинских сениоров» только 10% достойны этого «высокого звания». Но рынок говорит обратное.
20. «Парни таки круче девушек в программировании?»
Нет.
Из
На более-менее «официальном пути» в ЕПАМ ПОЛОВИНА слушателей — девушки. Но вот на «полуподпольных» курсах — 20%-30%, они не такие рисковые.
Почему крутых программистов больше парней? Мое мнение — девушки не так сильно стремятся к вершине. Они тоже хотят туда, но у них меньше агрессии, самомнения, вероломства, жажды наживы. Для них процесс также важен, как и результат. Даже, скорее, важнее. Некоторые парни просто одурманены желанием получить заветный статус (мидла, сениора, руководителя, ...).
21. «Каково будущее украинского IT-образования?»
Будущее — это государственно-частное партнерство.
И будущее уже наступило.
Кафедры украиских IT-специальностей в ВУЗах уже просто лопаются от бесплатных курсов IT-компаний. В Харьковском ХИРЭ (кажется процентов 7% украиских программистов отсюда) — порядка !10! разных компаний имеют свои курсы.
Они работают только для студентов ВУЗа и только с входным тестированием.
Скажете человек «со стороны» не может получить достойное IT-образование? Именно! А что он вообще может получить? «Человек со стороны» без особых денег в удобное время, без конкурса может получить достойное образование в области медицины? Юриспруденции? Международных отношений? Естественно, нет.
Сейчас каждая контора, которая имеет или планирует дорасти хотя бы до
Вот пример, харьковский AltexSoft (120 человек) имеет СВОЮ группу в ВУЗе в Кременчуге!.
Курс «Базовый»
— Основы создания интерактивных Web-приложений
— Desktop приложения на основе WPF и ADO.NET
— Изучение технологий HTML5, CSS3 и ASP.NET MVC
— Основы Javascript, jQuery, jQuery UI
— Применение MVC и MVVM в AngularJS и Backbone
Курс «Углубленный»
— Углубленное изучение архитектуры .NET, технологии ADO.NET и Entity Framework
— Коллективная разработка: Agile и Scrum
— Семантическая верстка, особенности CSS/HTML
— Основы создания WCF сервисов
— Тонкости Javascript, jQuery и Ajax
---
Еще раз.
Харьковская
Микроскопическая компания в 120 человек
Имеет свои 2 курса
В другом регионе
ПРОСТО ПРОЧИТАЙТЕ ЭТО ВСЕ ВМЕСТЕ!
---
Но ни крошки этого пирога не попадет в рот «обычных украинцев».
Харьковский ЕПАМ в 2011 брал людей со стороны. Конкурс 80 человек на 16 мест (5:1). Сейчас они построили еще одну ступень в ХИРЭ и практически не берут со стороны, берут студентов со своих собственных подкурсов.
22. «Почему отбор на курсы — плохая экономическая идея?»
Потому, что она предполагает отказы клиентам с деньгами!
Господи, мне кажется, что это же элементарно!
Частные больницы, кафе, лодки на прокат, авиаперелеты, корм для животных, стрижка, перевод документов, ... продавцы всего этого не отказывают клиентам с деньгами на том основании, что «Ваш уровень нас не устраивает»!
Святая Мария, помоги мне донести эту ЭЛЕМЕНТАРНУЮ мысль.
Итак.
Контрольный вопрос для адептов «отбора-на-курсы-берем-самых-сильных-и-достойных-растим-программистов»: должны ли курсы английского отсеивать желающих на основе их слабой склонности к языкам? А курсы массажа? А бухгалтерские?
Нет, не должны? Так а в чем разница-то между английским/массажем/бухгалтерией и программированием?
ЕПАМ отсеивает, так он же ПЛАТИТ ЗА ВАС! Он намерен Вас потом эксплуатировать. Вы же не платите за «учебку» в Армии?
23. «Можно ли печь программистов как пирожки (поставить эффективное образование на поток)?»
Исключительно мое мнение: да, можно. У нас есть большой массив отрицательного опыта (иституты, академия ШАГ, ...), но если сделать следующее
1. Собрать группу мотивированных людей
2. Каждый день читать одну лекцию на
3. Прочитать
4. «Принудить» прочитать и обсудить около
5. По результату написать тестовый проект. И жестоко его проинспектировать.
.
То весь мой опыт свидетельствует, что
В силу имеющегося опыта, я могу предложить / предположить только программу по server side Java (6 предметов за 5 месяцев при преподавании каждый день).
Да, это не самый короткий способ попасть в IT. Предполаю, что легче (меньше предметов) заходить через front-end (JavaScript-programming) или мобильную разработку (Android или iOs).
1. Программа курса «Аппаратное обеспечение, операционные системы и сети»:
....Аппаратное обеспечение
........компоненты: процессор, память, шины, контроллеры
........регистры, биты/байты/слова
........архитектура системы
........роль операционной системы
....Операционная система Linux
........ядро, устройства, драйверы
........файловая система
........процессы, сигналы, потоки
........безопастность, user management
........понятие о программировании на bash
........сети, удаленный доступ, ssh
........кластер, облако, виртуализация
....Сети
........IP, TCP, UDP
........telnet, FTP, DNS, SMTP/POP3
2. Программа курса «Основы программирования на Java (Core Java)»
....Основы Java (терминология, управляющие конструкции, числа, битовые операции, массивы, строки)
....Базовые алгоритмы (итеративные алгоритмы, рекурсия, рекурсивные алгоритмы, динамические структуры данных, память в Java)
....Исключения (try-catch-finally, проверяемые / непроверяемые, стратегии обработки, try-with-resources, важные исключения в JDK)
....Ввод/вывод (кодировки, I/O Streams ,Serialization API, файловая система, NIO, NIO.2)
....Многопоточность (физический уровень, Thread / Runnable, JMM, volatile, synchronized, wait/notify, прерывание потока, java.util.concurrent.*, CompletableFuture, Executor)
....Коллекции (O-нотация, Базовая иерархия (сollection, Set, List, Map), Iterable/Iterator, foreach, ArrayList/LinkedList, equals(), HashMap/HashSet, hashCode(), TreeSet/TreeMap, Comparable/Comparator)
....ООП (понятие о типе (ClassCastException, instanceOf, java.lang.Class), конструирование объектов, сущности (class, interface, abstract class, enum), методы (overloading, overriding, hiding), области видимости (модификаторы доступа, пакеты), внутренние/вложенные, анонимные классы)
....Основные шаблоны проектирования (Builder, Singleton, Factory Method, Adapter, Decorator, Composite, Facade, Proxy, Command, Iterator, Listener, Strategy, Template Method).
....Продвинутые возможности (Reflection API, аннотации, генерики, загрузка классов)
....Java 8 (методы в интерфейсах и ссылки на методы, Лямбды (Project Lambda), Stream API, функциональные алгоритмы)
3. Программа курса «Server-side Java programming (Junior Java Developer)»
....протокол HTTP 1.1
........Methods, status codes, headers
........Persistent connection, pipelining
........Chunked encoding
........Caching, encription, compression
........основы REST
........Архитектура простейшего многопоточного HTTP-сервера на Java
....Servlet API 3.0 (Tomcat)
........шаблон MVC
........HttpServlet, HttpServletRequest, HttpServletResponse
........Dependency Injection / Inversion-of-Control framework (Spring)
....Доступ к реляционным базам данных (JDBC 4.1)
........соединяемся с базой данных (JDBC URL, Driver, Connection, DriverManager, DataSource, Типы JDBC драйверов)
........делаем запрос (Statement, ResultSet, SQLException, SQLWarning, SQLTransientException, делаем SELECT, INSERT, UPDATE, DELETE)
........шаблон DAO (cуть шаблона, generic-предок, рекурсивное объединение, альтернативы (Transaction Script, Active Record, ORM))
........PreparedStatement (оптимизация, SQL injection)
........Трюки (Пакетное обновление (batch update), извлечение сгенерированных ключей, режимы работы ResultSet (прокрутка (scroll), обновление (update)))
........Транзакции (свойства ACID, Connection.commit()/.rollback()/.setAutoCommit(), savepoint)
........Уровнип изолированности транзакций (READ UNCOMMITED, «феномен» Dirty Read, READ COMMITED, «феномен» NonRepeatable Read, REPEATABLE READ, «феномен» Phantom Read, SERIALIZABLE)
........Менеджер транзакций (Transaction manager)
........Пул соединений (JDBC connection pool)
....основы ORM (Hibernate или OpenJPA)
........Objects vs Relations
........Caching
....Test-driven development
........JUnit
........Mockito
....Инфраструктура
........система контроля версий Git
........логгирование с помощью Log4j
........сборка проекта, зависимости, тестирование с помощью Maven
4. Программа курса «Базы данных (MySQL, MongoDB, Riak)»
....Реляционные базы данных (MySQL)
........MySQL
............Устанавливаем, администрируем
............Физическая организация данных
........язык SQL
............реляционная алгебра, реляционное исчисление
............SQL types, CREATE/ALTER/DELETE table
............INSERT, UPDATE, DELETE
............SELECT, HAVING/GROUP BY, подзапросы,
........Логическое проектирование
............ER-моделирование
............Нормальные формы, денормализация
............Целостность данных
............Транзакции
........Физическое проектирование
............Индексы
............Блокировки
....Документно-ориентированные (MongoDB)
........архитектура и особенности MongoDB
........работаем с MongoDB на Java
....Key-value хранилища (Riak)
........архитектура и особенности Riak
........работаем с Riak на Java
5. Программа курса «Основы front-end разработки» (тут программу надо проработать)
....HTML
....CSS
........структура и организация CSS
........CSS frameworks
....JavaScript
........основы языка JavaScript
........работа с DOM
........библиотека jQuery
6. И я бы добавил разговорный интенсив по английскому на
На все вопросы отвечу в камментах, в личку или по контактам.
skype: GolovachCourses
email: [email protected]
-------------------------------------------------------
UPD 1
Добавил
12. «А что нельзя просто сделать действительно качественные курсы и сарафанное радио приведет толпы людей? Ну все по-честному?»
UPD 2
Добавил
13. «Как уверенно долго говорить на людях?»
UPD 3
Добавил
14. «Ну и что ты понял о предпринимательстве теперь?»
UPD 4
Добавил
15. «Что я думаю о Академии ШАГ?»
UPD 5
Добавил
16. «Что я думаю о JavaRush?»
UPD 6
Добавил
17. «Что я думаю о других конкурентах?»
UPD 7
Добавил
18. «Ха-ха! Бесплатная Coursera/EdX/... скоро сделает отличное западное образование доступным, удобным и БЕСПЛАТНЫМ. Ты — труп!»
UPD 8
Добавил
19. «Программист — это элитарная профессия, требующая особенного склада ума, значительного интеллекта, таланта, прирожденного дара?»
UPD 9
Добавил
20. «Парни таки круче девушек в программировании?»
UPD 10
Добавил
21. «Каково будущее украиского IT-образования?»
Найкращі коментарі пропустити