Pull to refresh

Comments 39

Вашу бы статью да многим новичкам. Честно у меня в группе очень много людей ходят и думают с чего им начать, как им найти того с кем начать и все тому подобное. Спасибо вам за хорошую статью.
а что у вас за группа? у меня как раз другой вопрос, где найти тех с кем хотят начать те кто хотят начать ))
Пункт первый человек со стороны самостоятельно не осилит. Что ему выбрать? PHP? C++? О, на хедхантере за C++ от двух килобаксов дают, пойду-ка я туда!

Пункт второй нужно делать совместно с пунктом третьим, иначе толку от него не будет. В советской педагогической школе была такая триада знания (ваш пункт 2) — умения (пункт 3) — навыки. Так вот, первое без второго не тренируется, ровно как и второе без первого. А третье получается после доведения до совершенства двух первых, и используется на следующем круге обучения.

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

По поводу
проработать основы языка переводя, конспектируя и проганяя примеры

От конспектирования тренируется зрительная память и моторика. То есть чтобы ускорить набор на клавиатурке, можно и понабирать примеры. При этом в них внесутся опечатки, а также баги от авторов учебника, которые потом можно будет задорно половить. Знание алгоритмизации, формализации, декомпозиции останутся за бортом. Конечно, кому нужна эта теоретическая чушь?

быть устойчивыми к любым сомнениям в себе и негативным отзывам.

Негативные отзывы и критика — это отрицательная обратная связь, альфа и омега автоматического управления. Это управляющее воздействие, которое буквально необходимо при обучении, оно не дает успехам кружить голову и заставляет думать обучаемого над тем, что он делает.
Положительная обратная связь обычно творит веселое.
найти эталонный исходник, который:
сделан признанным мастером в области
широкого назначения, широко охватывает возможности вашего языка программирования
автор придерживается простого стиля программирования и хорошо поясняет свой код
относительно маленький размер исходника ( до 3000 строк)
должен быть достаточно популярным, чтобы было легко находить ответы на возникающие вопросы

Приведите пожалуйста пример, очень интересно.
Начну с конца.
Пример — Underscore.js и Backbone.js.

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

насчет прогона примеров, имеется ввиду «поиграть» с ними.

насчет перевода, то наоборот: это будет качественнее, чем прочитать на русском, если конечно у человека хватит терпения переводить каждое слово, потом пытаться вникнуть в смысл, потом поискать аналог в рунете, чтобы точнее понять, потом обдуманно выполнить примеры.

насчет выбора, то конечно сложно. Тут советовал бы танцевать от «удаленной работы» и «объекта». К примеру, какой объект в полном моем доступе? Браузер. Достаточно «на браузер» удаленной работы? Достаточно. Какой там самый популярный язык разработки? Javascript.

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

Тогда вы вводите читателя в заблуждение. Прогон на то и прогон, чтобы запустить, посмотреть, забыть. «Поиграть» — это разбор примера, анализ и синтез.

С переводом — вы ставите перед человеком задачу «с двумя звездочками» — это когда решающий не владеет ни инструментом решения, ни предметной областью задачи. То есть — вот мешок отмычек, вот сейф — открывай. Какой отмычкой — не скажу. Однако открывание сейфа даже одной отмычкой — уже задача «на грани» для новичка.

«Вера в себя» — это не оно, это сразу на филфак. Программисту нужно объективное знание, а не вера в магические коды, по которым магический компьютер магически считает.
Если перевод в виде экзамена: типа, вот тебе книжка на английском, который ты не знаешь, по javascript, который ты не знаешь и пол часа времени на перевод 10-го чаптера, то вы абсолютно правы. А если человек дома, с доступом к Хабру, Тостеру, разным переводчикам, неограниченным временем, то не так уж и сложно. Ну а если он всем этим пользоваться не умеет, то пусть сначала станет хорошим пользователем, а уже потом программистом.

Насчет «веры в себя» имеется ввиду, что надо ставить задачу таким образом, чтобы было меньше угнетающих факторов и больше вдохновляющих и заинтересовывающих. Тогда мозг меньше устает и лучше работает. Не знаю почему, просто так есть.
К примеру, если я поставлю себе задачу типа: «А сделаю ка я сервер на Node.js такой, чтобы всем на Хабре понравился и заработаю себе много кармы», то в результате промучаюсь кучу времени, выкачу какое-нибудь убожество и заработаю кучу минусов. Или даже пусть это будет не убожество, но все равно, «негативное ожидание будет» и работа будет как мучение.
А вот с формулировкой: «Сделаю ка я себе сервер на Node.js и базой Mongo, чтобы из любого места получить доступ к своим любимым анекдотам и страничку на клиенте с базой WebSql, чтобы добавлять анекдоты, а потом синхронизировать с базой и еще страничку, чтобы друзья могли добавлять анекдоты, а еще...». С такой формулировкой работа превратится в развлечение, мозг будет довольный, счастливый и работать хорошо и долго, а потом также на следующий день и на следующий месяц, пока не дойдет до пункта 4. Там на пару месяцев придется включить терпение и силу воли.
Не совсем так ответил, извиняюсь. Насчет филфака вы тоже правы. Программисту нужно объективное знание. «Вера в себя» какое-то слишком расплывчатое словосочетание надо будет подобрать поточнее, но, мне кажется, вы поняли, что я имел ввиду.
>Пример — Underscore.js и Backbone.js.
А для C# пример не подскажете?
Хорошие и правильные мысли в статье, но я слабо представляю тех, кому они действительно пригодятся.

Я уже больше 15 лет в коммерческой разработке ПО, как говорят, «состоялся». Мне часто задают вопрос «как стать программистом?». Из моего опыта — если человек не пишет хоть что-то сам для себя «на коленке», то программистом он или она не станет.

Зато эта статья более-менее дает ответ на другой вопрос: «Как совсем начинающему программисту обучиться и дорасти до уровня, с которого уже берут на работу». Это отлично, буду теперь на нее ссылаться. Спасибо!
Есть ещё один способ. Участвовать в серьёзном отраслевом конкурсе. Например, вот — www.dialog-21.ru/evaluation/2015/tonality/ или аналогичном — habrahabr.ru/search/?q=родная+речь

Это сложные задачи, которые интересно решать. И под эти задачи нужно подтягивать и владение языком, и алгоритмы. Ну и, разумеется, даже последнее место в таких мероприятиях — это сильный бонус в разговорах с работодателями. Студент ВУЗ'а вполне справится.
Даже если бы слово «ВУЗ» было аббревиатурой, оно бы склонялось. Но слово «вуз» — уже словарное, имя существительное, мужской род, второе склонение. Ровно то же самое, например, относится и к слову «конкурс», которое вы употребили выше.
UFO just landed and posted this here
Какой-то грустный путь для новичков, по моему мнению. Прочитать книгу, для того чтобы сделать коммит в проект с горой формальностей. Куда интереснее, как мне кажется, придумать себе pet-project и сделать его, одновременно читая про технологию.
UFO just landed and posted this here
В контакте есть сообщество с замечательным названием «берешь и рисуешь» и всех новичков задающих вопросы «как мне научиться рисовать» вышибают одним ответом «Читай название!».

Все эти «подпорки» и методики, необходимые, чтобы перебороть страх — результат нашего отмороженного и античеловечного образования, когда воруют десять лет жизни ребенка и наказывают за ошибки в заведениях именуемых школами.

Я огромное количество времени потерял из за этого страха и в итоге пришел к золотой формуле «если тебе интересно, к чёрту всё, берись и делай!» как поступают еще не испорченные образовательной головомойкой дети. Берутся и делают.
Еще нужно добавить, как бы вы не планировали и линеечкой не мерили свою будущую жизнь и увлечение многое уже определено. Истинная натура как ручеек найдёт дырку и промоет русло. Выбор невелик, либо вы с огромной любовью будете делать что по-настоящему любите или через силу выгодное занятие, так тщательно спланированное но не приносящее ничего кроме усталости (иногда и весьма неплохих денег). Можно ли балансировать между двух полюсов? Если осознанно то вполне можно, по крайней мере будет четкое понимание где вы ремесленник забабло, а где отрываетесь «для души». Но истинное счастье сделать так чтобы хобби приносило доход. А на этом пути будут стоять с приготовленными палками и битами предостерегающие родственники, «добрые» советы друзей не рисковать, страхи «а вдруг не получится» и прочие гадости.

Звучит красиво. Было б интересно узнать, как это реально реализовать.
Хобби — это, когда вы делаете то, что хотите, так как вы хотите, а работая на себя или дядю — то, что хочет дядя(клиенты), так как хотят они. Ну да, иногда бывают совпадения. К примеру, если вы светило мирового масштаба, за гранью конкуренции, с непререкаемым авторитетом. Или бывают ситуации с «промыванием мозгов», когда человеку навязывают, что мол «твое хобби приносит тебе доход». Это позволяет требовать большой отдачи, а платить человеку минимум, а тот ходит радуется: «Вау, я делаю то что мне нравится, и мне еще и платят!».
Любое хобби при достаточном (и не обязательно затратном) пиаре и усердии можно превратить в заработок. Даже оно заключается в приготовлении горчицы, собирании монет или круглосуточном игрании на приставке. Засилье летсплейщиков как нельзя лучше подтвердит мои слова. По крайней мере, если вы не заработаете на дорогущую квартиру, на жизнь хватит точно. Есть, правда, категория людей с начисто вышибленной «искрой», но таких на хабре немного, надеюсь. Для них гостеприимно распростерты двери госучереждений и других не особо творческих организаций типа армии, полиции и т.п.
>светило мирового масштаба, за гранью конкуренции, с непререкаемым авторитетом.

Как раз в такие светила и выбиваются те, кого как сказал Тёма Лебедев, общество не гомогенизировало в своих жерновах. Возьмите много личной смелости идти за мечтой, пару капель таланта и щепотку удачи и вот рецепт гения.
Про родственников соглашусь:
— дорогая, вот не зря мы учились в академии, я вот сейчас апроксимировал экспоненту четырьмя линиями на verilog…
— мне не интересно
<img src=″но я же...″>
А хотели, чтобы:
Скрытый текст


ГРУБИЯН! ЭКСПОНЕНТУ НАДО АППРОКСИМИРОВАТЬ
ПОЛИНОМОМ ПОРЯДКА НЕ НИЖЕ ТРЕТЬЕГО!

Конечно можно, только тогда хобби превратится в работу и уже не будет приносить такого удовольствия, как раньше. Добавятся обязательства, договоренности, сроки, критерии качества, чьи-то очень ценные мнения и так далее. Хотя, если у человека хобби «разводить кого-нибудь на бабки», сами бабки для него не важны, потому что он любит сам процесс, то все просто замечательно.
p.s. ответил не туда, извиняюсь
В современных условиях проблема новичка даже не в том, чтобы начать что-то писать для себя, а в том, чтобы суметь собрать необходимую «инфраструктуру» для написания программ.
Да, была такая проблема. Собирал, собирал — потом выкинул все нафиг, оставил Notepad++ и Firebug и больше нет проблемы.
Javascript в этом плане еще более-менее либеральный. А вот запуск какого-нибудь связки spring+hibernate+security для новичка может превратиться в непреодолимое препятствие. Слишком много всего надо в разных местах настроить. Большой шанс ошибиться. Очень сложно по началу понять, что пошло не так.
Да. Потому я в свое время и отказался от самостоятельного изучения java. Фактически небыло доступа (никто меня не пустит к рабочему объекту и не даст полной документации). Непонятно как мне создать с помощью вышеуказанного что-нибудь для моего личного пользования. Даже издалека не видел что и как люди делают с конечным продуктом на данных технологиях. И телефона с Андроидом у меня небыло, чтобы мобильную джаву учить. А на десктопах смотрится неорганично и конкуренция заоблачная. А вот знакомый выучился на программиста в Харькове и выбрал как раз джаву для смартов.
Мобильную java и java EE можно считать совершенно разными вещами. Синтаксис у них конечно и совпадает( не сильно отличаясь от остальных подобных). Только вот синтаксис и стандартные либы это малая часть айсберга. Основная проблема в фреймворках, которых надо вместе собрать и запустить.
Они позволяют делать очень многие вещи быстро и просто, но вот порог вхождения из-за них сильно повышается.
Ну да, я примерно так и думал, просто не так выразился, писатель из меня х*новый. Имел ввиду что ЕЕ новичок сам не освоит вообще. А, если будет очень очень стараться, иметь телефон с Андроидом и делать что-то, что нужно лично ему, то есть шансы освоить самостоятельно МЕ, ну точнее не совсем МЕ, но вы поняли.
Первые два пункта спорны.
Во-первых, ориентироваться на самую массовую технологию не совсем правильно. Не всегда нужно подражать толпе. К тому же, массовость некоторых сфер IT обусловлена низким порогом вхождения, а не «крутостью» данной области.
Во-вторых, новичку сразу учиться по англоязычной литературе будет тяжело. Да и зачем конспектировать книгу? Вполне можно читать переводную литературу или даже «наших», но обязательно выполнять упражнения в конце каждой главы.
Ну, там как бы не написано, что область должна быть массовой. Например C# очень массовый, там есть открытое сообщество, но в основном это коммерческий корпоративный язык.
Порог вхождения можно вычислять по предложениям удаленной работы во фрилансе. Например C++ очень хороший язык, но удаленной работы по нему относительно мало и требования там обычно очень высокие, поэтому вывод — порог вхождения слишком высокий, начинать осваивать его лучше в институте или даже в школе.
Насчет перевода, то да, если человек слишком далек (не знает что такое массив, объект, функция, переменные, циклы), пусть сначала читает русскую книжку. Что касается английской книжки, то нас там в первую очередь интересуют куски кода. Можно даже просто брать код и искать аналоги с пояснениями на русском, можно выполнить код и самим посмотреть, что он делает. Необязательно переводить каждое слово, надо переводить ровно столько, чтобы понять, что происходит в коде. По ходу этого процесса сформируется достаточное знание английского, чтобы достаточно комфортно понимать документацию, которую не всегда переводят на русский.
Не понял как вам институт поможет в изучении С++. В «очень высоких требованиях» же не просто знание чистого С++ требуют.
Обычно там проходят только основы, которые и самому не сложно освоить.
Ну и еще всякое фундаментальное типа ООП и алгоритмов (обычно не особо углубленно), которое не особо связано с конкретным языком.
Ну тут как-бы по времени. Если человек серьезно настроен, то может заниматься дополнительно, а 5 лет вполне хороший объем времени, а если еще и институт хороший, то можно найти у кого поучиться с кем проконсультироваться, есть разные программы стажировки для студентов. То есть любитель, который начал лет в 29 может не захотеть тратить лишние 5 лет, чтобы выйти на нужный уровень.
У меня была задумка создать сайт, на котором как раз можно было бы найти ментора из разработчиков открытых проектов.

Суть вот какая: допустим, у меня есть проект, в котором есть разные задачи: запилить подсистему, добавить какое-то форматирование, переделать интерфейс на новой супербиблиотеке javascript, переделать взаимодействие с файловой системой, дописать некоторые тесты. Но сделать все это надо время.

Поэтому можно было бы часть задач отдать новичку, который разберется с технологией, с задачей и запилит фичу. А я как ментор, подскажу подводные камни, проверю все ли ок и в итоге добавлю в свой проект. У меня развитие проекта, у новичка прокачка скиллов.
Было б отлично.
Я готов быть первым новичком.
Могу работать 2 — 4 часа в день, в свободное от основной работы время.
Сегодня опубликовал статью habrahabr.ru/post/246981/ по одному из дополнительных проектов.
Как раз попробовал работать с коллегой в плане прокачки скиллов. Как вывод могу сказать, что чужая голова не своя, много энергии уходит на взаимодействие.
Уходит. Из своих наблюдений могу заметить, что прокачивать скилы полезно нормальным людям, тогда можно перекинуть на них часть своих задач или обратиться при необходимости, да и сами догадаются подстраховать, когда надо. А вот свинтусы наоборот будут тупить, пока за них все не сделают и так по несколько раз, есть еще особо «хитрые» свинтусы, которые полученные знания используют против тебя же.
С наставниками — аналогично. Есть свинтусы, которые множеством разных способов самоутверждаются за счет более неопытных, списывают на них все косяки, демотивируют разной идиотской философией. А есть нормальные, которые быстро определят твой уровень, подберут под него задачи, покажут в какую сторону и как лучше прокачиваться. Пять минут общения с такими заменяет сутки гугла, кажется, что все просто, появляется хорошее понимание сути вопроса.
Мне кажется, перевод тонны текста убьет весь интерес и мотивацию. Первые шаги должны быть простыми и завершенными, и приводить к измеримому и видимому результату. Кто сказал, что новичок, еще не «понюхав пороху» реальных разработок, вообще останется на этом пути и не забьет на идею стать программистом?
Могу сказать лично за себя: появилось желание выучить ЯП (Win-based -> C#, Asp.Net MVC) — взял и вечерами начал читать доки и за пару лет вечеров написал маленькую домашнюю бухгалтерию. Да, в 28 лет имея огромный админский стаж с 96го я не умел программировать ничего сложнее пару-строчных скриптов. (да, засев за Bash вплотную, я таки написал статью тут).

Пришёл к клиенту в начале года, у которого юникса, а надо написать решение, взялся за изучение Perl (до этого знал Bash Powershell), Mojolicious (Посоветовали) и postgresql. и где-то за 2 недели написал вполне функционально-похожий клон Wordpress'а (статья готовится, исходники готовятся к Github'у).

Главное — желание, с выбором технологии уже сложнее.
Sign up to leave a comment.

Articles