Как стать автором
Обновить

Комментарии 130

Вы слишком прямолинейны.
Представьте области знаний в виде окружностей-множеств.
Старайтесь искать пересечения с вашими знаниями и по чуть-чуть их расширять.
Модель и цепи Маркова — теория вероятностей. Наиболее близкие аналоги в мире программирования — стеки и предсказуемые переходы.
Постарайтесь остаться на текущей работе и потихоньку у себя внедрять методы тестирования и покрытие тестами кода. Я не ратую за 100% покрытие тестами, но они вам пригодятся в последующем поиске проблем и узких мест.
Еще смотрите в сторону теории графов и практическому применению к окружающей действительности.
НЛО прилетело и опубликовало эту надпись здесь
Программ несколько. Задача — создать корпус китайского языка. Если более просто, то речь идет о базе данных, состоящей из нескольких миллионов устойчивых выражений. Область применения — чат-боты или автоматизированные колл-центры.

Предположим, что вы создали такой корпус. Как это вам поможет сделать чат-бота? Как его отсутствие помешает?

На ГитХабе есть британский корпус, можете посмотреть его содержимое, поймете что к чему. Корпус — это набор кратких диалогов на повседневном разговорном языке. Это очень важный момент, поскольку у собеседника бота не должно возникать сомнений в том, что с ним ведет беседу человек, а не кусок кода, напичканный фразами из литертурного языка. Теоретически можно обойтись и без корпуса, но тогда нужно будет создавать программу, которая будет проводить лексический и синтактический анализ запроса пользователя. Во-первых, это сложно, во-вторых, подобный анализ все равно потребует как минимум базовый словарь языка. У нас же все нацелено на сбор коротких диалогов, сортировку однотипных по смыслу выражений и комбинаций ответов. Всё. Чат-боту нужен будет только парсер, который будет работать с запросом клиента и отвечать в соответствии с коллекцией ответов, доступных в базе данных.
Это очень важный момент, поскольку у собеседника бота не должно возникать сомнений в том, что с ним ведет беседу человек, а не кусок кода, напичканный фразами из литертурного языка.

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

Всё. Чат-боту нужен будет только парсер, который будет работать с запросом клиента и отвечать в соответствии с коллекцией ответов, доступных в базе данных.

Может быть, в научных целях интересно заставить чат-бота вести разговор на любые отвлеченные темы, а в колл-центре у чат-бота очень узкие функции и определенные рамки, что он может говорить и на что отвечать, а на что нет. И важнее правильно интерпретировать вопрос клиента, касающийся услуги, чем выбрать заготовленный ответ среди миллиона имеющихся.
Проживающие в сельской местности китайцы очень не любят девочек. Во-первых, они бесполезны в трудозатратном хозяйстве, во-вторых, они только поглощают ресурсы, не давая ничего взамен. После бракосочетания они покинут дом навсегда, оставив стареющих родителей в полном одиночестве. Сын же сможет заботиться о стариках до их самой смерти. Поэтому девочек, особенно в условиях «политики одного ребенка», топят сразу же после рождения. Люди побогаче могут сделать аборт. Особо сердобольные могут отдать нежеланную девочку бабушке в деревню, где она будет использоваться в качестве раба до самой смерти.
В общем, в Китае наблюдается примерно 10-процентный перевес мужского населения в диапазоне от 20 до 60 лет. Это здоровые в физическом плане мужчины с нормальными естественными потрбностями. Они не особенно умны, но вполне работоспособны и готовы платить деньги за невест из Вьетнама и Бирмы. Невесты не говорят по китайски. Не ососбенно умные сельчане жаждут общения. Вот и весь бизнес.
Понял, спасибо
Люди побогаче могут сделать аборт.

Стоит упомянуть, что определение пола эмбриона в Китае незаконно (именно для того, чтобы предотвратить аборты девочек), так что этим «людям побогаче» придётся как минимум съездить за рубеж.
Монголия, Вьетнам, Лаос, Бирма. Китайцам туда можно без визы. Кстати, наибольшая плотность населения в стране приходится как раз на Кантон, им до Вьетнама можно можно за час на велосипеде доехать.

Ну, а если честно, то девочек чаще всего просто топят.
LucBertrand
На ГитХабе есть британский корпус, можете посмотреть его содержимое, поймете что к чему. Корпус — это набор кратких диалогов на повседневном разговорном языке. Это очень важный момент, поскольку у собеседника бота не должно возникать сомнений в том, что с ним ведет беседу человек, а не кусок кода, напичканный фразами из литертурного языка…

Хм. Что-то мне это напомнило:
Аналогично и тут, — человек в Китайской комнате, создаёт (программирует) сам ИИ или пользуется созданным другими ИИ (тут это неважно вовсе), и этот ИИ «натравливает» (обучает этот ИИ) на тексты (массивы текстов) китайского чата. — А затем этот ИИ и будет подсказывать человеку в Китайской комнате что и когда писать в китайский чат.

Но феномена «понимания» и тут НЕ возникает. (С)
Ни о каком «понимании» речи и нет. Поэтому я критично настроен по отношению к идее современного ИИ. Я вообще сомневаюсь в том, что мы спосбны создать «думающий» ИИ. Если люди еще не разобрались со своим собственным мышлением, так о каком ИИ вообще может идти речь?
Самолёт не машет крыльями, автомобиль не переступает ногами, и ИИ, когда будет создан, — будет действовать совсем не так, как биологические мозги.
Удачи, коллега.
Практически моя история успеха, если бы она состоялась )))
Сам полу-лингвист, полу-литературовед по образованию с тремя языками (два уже забыты за ненадобностью). В институте не остался по личным причинам, ушел работать по профессии, учителем в школу. Ну надо же было где-то опыт работы получать, без него никуда не брали, а уезжать в другой город или страну — не вариант тогда и не вариант до сих пор, опять же, дела семейные. Уже 15 лет получаю. Самому уже под сорок, лет пять тому перегорать начал, захотел в программирование уйти, всегда нравилось с компьютерами возиться. Фотошоп, вот, самостоятельно освоил до уровня «продвинутый пользователь» только для того, чтобы понять, что сидеть квадратики клепать для интерфейсов скучно, а на что-то иное — увы, таланту нема. Поучил PHP — не понравилось в конечном итоге, бэкэнд, как оказалось, абсолютно не мое, хотя сайты знакомым клепал на движках разных (HTML со школы знал неплохо) и знания все равно пригодились. Начал учить JavaScript — да, то, что нужно. Кнопочки, менюшечки — да, фронтэнд, это то, что мне было и надо. Но… в какой-то момент, как и вы, уперся в стену алгоритмов и математики. Понял, где и чего не хватает и… сломался. Так и не смог себя заставить повторить школьный курс математики, с ней и раньше не особенно-то и хорошо было. Так что, по хорошему завидую и жму руку. Молодец, сила воли плюс характер. Просто великолепно.
А мне изучение программирования помогло справиться с выгоранием. И я понял, что не смотря ни на что, я очень люблю свою работу и ни на что ее менять не буду. А буду сам себе маленькие простенькие программки писать, чтобы детей было легче учить.
Так что, желаю не спотыкаться о препятствия и идти к цели дальше. Кидаю челлендж: от джуна к миддлу за три года, от миддла к сениору — еще за три. И подробности в статьях на Хабре. Слабо?
Спасибо за пост. Ну, посмотрим. Кто знает, может подвернется еще более интересная работа из совершенно новой области?
Кстати, С является подмножеством С++, поэтому можно убить двух зайцев одним выстрелом.

Глубокое заблуждение — это два несовместимых языка со своими особенностями, хоть и общей историей и взаимными заимствованиями.


P.S. Да, можно написать код, который будет компилироваться и работать и как C, и как C++, но это будет плохой код: как минимум, он будет использовать неканонические конструкции.
P.P.S. Для изучения Си — только Керниган и Ритчи в последней редакции, плюс изучение нововведений С99 и С11.

В смысле несовместимых? Наоборот, Си++ сделан так чтобы иметь обратную совместимость c Си. В каком именно месте они несовместимы?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Почему нельзя было придумать что-нибудь более внятное наподобие ESI/EDI и квадратных скобок?

Так оно и есть же! *(2 + p) и p[2] — одно и то же. Более того, 2[p] — ровно то же самое. Только операции производятся в единицах размера объекта: нет полутора землекопов. И да, для многих архитектур на ассемблере тоже можно указать размер объекта при индексации.

Может автор имел ввиду вот такие конструкции?
int (*(*vtable)[])(); или вот такие char *(*(**foo[][8])())[];

То, что язык позволяет выстрелить себе в ногу, не значит, что в неё нужно стрелять. Да, тип в Си нужно читать тип справа налево, что несколько непривычно и неудобно. Но главное: не нужно так делать: нужно разделять абстракции. Именно поэтому есть typedef: и всё резко начинает быть простым и понятным.


P.S. Да, можно возразить, что описание типа в алголоподобном (паскале-/модула-/оберон- — и т.п.) виде слева направо удобнее читается и без разделения на абстракции. Но, скорее всего, вы очень быстро устанете от такого чтения и точно так же начнёте путаться. Почему оно так в Си получилось: по историческим причинам из-за совместимости с B и ранними диалектами K&R C.

Да-да, именно вот это и имел в виду! Я в свое время начак штудировать «Алгоритмы С++» Адама Дроздека, вот он там как раз и предлагал объяснить значение подобных записей.

А в ассемблере эквивалентное более читаемо ?

Возможно, что это просто вопрос привычки и опыта, но, тем не менее, я всё-таки хотел бы привести один очень маленький пример:

1) int z = 6; int *p = &z;
2) int z[] = {1,2,3}; int *p = z. (Знак амперсанда перед z вызовет ошибку компиляции)

Вот, маленький амперсанд где-то в глубине кода обязательно обвалит всю программу и потом вся команда полгода будет сидеть с дебаггером и рассматривать строчку за строчкой.
А в ассемблере всё просто и логично. Адрес величины — он и в Африке адрес. Поэтому запись

mov esi, [z]

одинаково валидна для матрицы и для одинокой дискретной величины.
Поэтому запись
mov esi, [z]
одинаково валидна для матрицы и для одинокой дискретной величины.

А с какой стати указатель на структуру равен указателю на её первый элемент? Для массивов в С это так, но даже матрица с адресом z может хранить по адресу z размеры, или смещения, или ещё что-то, необязательно первый элемент.


У нас тут ООП, типизация и всё такое. На язык С обычно даже плюются за то, что он недостаточно строгий. А в ассемблере будут долго искать все эти [z] по всему коду, когда потребуется что-то изменить в расположении полей структуры, или сменить float64 на uint64.

По-моему, одним из лучших в мире курсов, является старый курс от MIT: «Structure and Interpretation of Computer Programs» — при чём именно в изначальном его виде, с примерами и заданиями на Scheme.


Только не надо смотреть на Lisp/Scheme и убегать — это не учебник по программированию на каком-либо языке, это учебник по дисциплине «программирование». (К тому же, у вас явно не хватает в копилке функционального подхода.)


P.S. Лет восемь — десять назад MIT поддалась тренду и перевела сей курс на Python. Не ищите его, читайте оригинальный.
P.P.S. Нет, я совсем не любитель lisp-подобных языков: даже, скорее, где-то противник. Но здесь это именно то, что нужно.

Раз пошла такая пьянка про самообучение программированию, то вот эпичная, хотя и порядком устаревшая, копипаста:

Итак, салаги, вы пришли к старым морским волкам в /pr/ и хотите стать программистами. Надеюсь, вы знаете, что хотите, так как это нелёгкий путь. Позвольте разъяснить вам несколько моментов: а) Большинство людей, которые делают сайты – не программисты. Если вы хотите делать сайты, но не хотите быть программистом – берите в зубы учебник «PHP5 в подлиннике» и начинайте делать свою первую гостевуху. Вопросы решайте в гугле, /s/ и форумах. Здесь другая тематика. Эту пасту дальше читать не надо, мы будем долго разговаривать, а вам нельзя терять время. б) За 21 день освоить программирование не получится. Никак. Совсем. Если срочно нужны деньги, то присоединяйся к товарищам, которые встали и ушли после пункта а. Нормальный объём академических часов в высшем образовании – 8000 штук. Это три года хорошей учёбы. Для того чтобы освоить материал хорошо надо ещё больше. Если параллельно бухать в общаге, то можно и в пять лет не уложиться. в) Я не Попов, магических способов изучения программирования за два DVD-диска не знаю, и учить им не буду. Я худший наставник, чем Кормен или Ахо, и буду только указывать вам направления деятельности. Готовься искать информацию сами. В каждой книге читайте, по крайней мере, оглавление. Задавайте вопросы. г) Программирование не есть изучение языков программирования. Хотя мы начнём его изучение с нескольких языков, они не являются самоцелью курса. д) Если вам не нравится паста – пишите конструктивную критику и предлагайте лучшие решения. От пустословия паста лучше стать не сможет.

И так, надеюсь тут остались только те, кто хотят учиться. Если вам надо учиться, но вы не хотите, значит надо не вам. Наслаждайтесь. Вы станете настоящими программистами. Я надеюсь, что вы знаете математику и информатику на уровне 9 класса. Если не знаете, то перечитайте учебники. Курс от /pr/ состоит из модулей, каждый модуль состоит из двух частей: а) Матчасть. В матчасти перечислены моменты, которые надо изучить и книги, которые надо читать при изучении модуля. Все книги есть в Интернете. Если позволяют деньги, можно заказывать печатные варианты. Лучше читать на английском, но если не получается – используйте хороший русский перевод. Читайте так, как вам нравится. Если ничего не понимаете – читайте вперёд и перечитывайте после. Можно начать другой модуль. Можно заняться практикой. Можно почитать другую книгу похожей тематики. б) Практика. На практике надо писать программы. Ну, или, по крайней мере, составлять алгоритмы. Я буду предлагать небольшие проекты, которые охватывают материал из модуля. Но писать надо то, что нравится.

Модуль первый, введение. Задача: получить мотивацию и базовые знания, которые потребуются для освоения дальнейшего материала. Матчасть: информатика, программирование на языках высокого уровня, базовые понятия программирования: итерации, рекурсия, процедуры, функции, абстракции, классы, объекты, методы, переменные, присваивание, замещение, цикл, ветвление. Вначале советую читать SICP. Не весь. Вычисления на регистровых машинах можно отложить на потом. Нужно понять и прочувствовать принципы работы схемы (язык программирования, который используется в этой книге): это простой и одновременно мощный язык. Поначалу будет сложно, так как схема не похожа на бейсик, паскаль или что вы там изучали в школе. Но если вам удастся ухватиться по крайней мере за половину того, что написано в SICPе дальше будет легко и приятно. Писать на схеме сложные приложения невозможно. Это чисто учебный язык и вы никогда не будете его использовать на практике. Поэтому далее надо выучить кое-что посерьёзнее. Обычно первокурсники в России изучают язык си. Это не очень плохая идея в той части, что большинство языков имеют си-подобный синтаксис. В части байтосношения и плохого ООП на крестах (так я буду называть язык C++) это плохая идея. Поэтому откройте толстенный учебник Дейтелов и хорошенько изучите его ровно до конца шестой главы. Это где-то 1/3 часть учебника. Дальше можете не читать, так как рискуете навсегда испортить себе вкус. Но можете и прочитать. На си можно писать сложные программы, но так тоже никто не делает. Поэтому большинство программ из курса я рекомендую писать на Java и Python.

Отвечаю на недовольный гул в аудитории: Java потому, что java легче. Изучая что-то другое на этом этапе, вы просто запутаетесь в особенностях языка. Особенно это касается шарпа (хотя на нём можно писать, как на джаве, только вот ведь не захочется), крестов (там сложно не запутаться) и хачкеля. Python потому, что некоторые задачи легче решать на скриптовом языке. Кроме того, в питоне есть некое подобие функциональщины, и если рано припечёт, то можно будет посмотреть и её. Хорошо ориентируясь в этих языках (на это не нужно слишком много времени – это не кресты, которые нужно учить годами) можно потом достаточно быстро изучить другие языки. А можно и не изучать, так как оба этих языка (в сущности, плохих) широко применяются до сих пор. Не заворачивайтесь на IDE, компиляторах и прочем инструментарии: вы всё равно перепробуете все доступные. Не дожидайтесь, пока вас утомит первая рекомендованная среда, а сразу поставьте все распространённые и выберите понравившуюся.

Книги: Философия Java Эккеля, читать по мере необходимости. Не занимайтесь особым оверинжинирингом. По крайней мере многопоточность следует отложить до лучших времён. Не забивайте себе голову паттернами. Книга номер два — в глубь языка Python. Кстати, я знаю, как пишется «вглубь», просто использую русский перевод с официального сайта. Опять же – изучайте разделы по мере необходимости. Сомневаюсь, что тёлки будут ахать при одном упоминании каких-то ваших характеристик, но изучить основы этого языка можно очень быстро. Кроме того, попробуйте почитать «Конкретную математику». Пока не станет скучно. Я рассчитываю, что скучно станет весьма быстро, хотя книга (как и TACP Кнута) написана с характерным юморком. Асимптотику лучше отложить до алгоритмов. Если чувствуете, что идёт совсем плохо (не Кнут с Паташником, а вообще), то читайте школьные учебники. Лучше старые, советские. Можно почитать книги для совсем маленьких детей «А я был в компьютерном городе», «Занимательная информатика» и.т.п. – это просто весело. Вам должно быть интересно читать. Если на этом этапе вам скучно, то дальше будет вообще кромешный непролазный песец. Ещё не поздно пойти писать гостевуху. Да, это была самая сложная часть. Если вынести из неё ещё и знание английского, то всё остальное покажется лёгкой прогулкой.

Практика: из всех учебников, которые я перечислил, задачи есть только в SICP'е и Дейтелах (ну и в конкретной математике, конечно). Их нужно решать. Освойте все простые конструкции, напишите несколько несложных игр, для одной из них напишите ИИ. Порешайте задачи для школьников, которые просят сделать за них лабу в /pr/ — но обязательно пишите на другом языке.
Теперь можно перейти к дискретной математике. Задача: понимать язык, на котором написаны остальные книги. Нет, это не самый занудный раздел. Теория трансляции будет зануднее. Матчасть: Открываете любой учебник, в котором есть: множества, алгебры, отображения, графы. Хорошо подойдут университетские методички. Можете видеокурсы с интуита посмотреть. Учишь. Плюс нужна элементарная матлогика – кванторы, законы де Моргана, таблицы истинности. Семиотику пока трогать не надо. Практика: Выполняете задания. Доказываете теоремы.

Традиционно далее изучаются базы данных. Базы данных есть в любом мало-мальски сложном приложении. Даже в компьютерных играх есть. Даже в примитивных гостевухах, которые сейчас пишут оставившие нас несколько абзацев назад «коллеги». Поэтому базы данных надо знать. Сейчас используются исключительно реляционные базы данных. Некоторые люди поговаривают про key-value хранилища (непременно асинхронные и сверхбыстрые), ну так вот, они концептуально тоже реляционные. Но вы с ними обязательно разберитесь отдельно. Матчасть: идёте по учебнику Кристофера Дейта и изучаете темы. Идти до конца не надо: читайте выборочно и смело бросайте около 17 главы. Изучить надо реляционное исчисление, ER-модель, транзакции, SQL. SQL лучше изучать не по Дейту, а по какому-нибудь практическому учебнику – обратите внимание на книжку Моисеева и его сайт с задачами. Практика: проектировать базы данных. Быстро. В уме. Таблицы должны интуитивно получаться сразу в 3NF. Пишите запросы на сайте у Моисеенко. Напишите приложение, которое активно использует базу данных – многим студентам такое барахло нужно на курсачи и дипломы, можно даже найти заказчика за деньги. Посмотрите на ORM (SQLAlchemy, Hibernate и.т.п.), почитайте статейки. Узнайте, какие сейчас используются базы данных, и обязательно прикрути парочку к своим приложениям.

Архитектура ЭВМ. Задача: знать, как работает компьютер. Дабы не делать ляпов. По крайней мере, глупых ляпов. Матчасть: Читаете Таненбаума, про архитектуру ЭВМ. Лёгкое и интересное чтиво. Знать: что такое вентиль, что из них составляют: там очень подробно описано по разделам. Не путаться в шинах. Знать про адресацию памяти, прерывания. Практика: Спроектировать простейший «железный» компьютер из блоков. На бумажке. Чтобы выполнял программу, записанную в память. Спроектировать всякой ерунды в эмуляторе схем. Дешифратор для семисегментного индикатора, например. Ассемблер лучше особо не трогайте, познакомишься с ним для интересу у Кнута, а писать на нём вам всё равно не придётся. Во всяком случае, я до сих пор я пытался оградить вас от низкоуровневого программирования. Знаний там очень много, но они все совсем не фундаментальные и изучать их надо под конкретную должность. Начните читать Кнута, по крайней мере, разберитесь с его компьютерами (MIX и MMIX) и напишите для них несколько программ на бумажке. Сделайте свой виртуальный компьютер, но не такой старый и сложный, как у Кнута. Сделайте для него ассемблер и напишите пару простых программ.

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

Сети. Задача – научиться писать сетевые приложения. Матчасть: Таненабум наш друг и товарищ на все времена. Осиливайте модель OSI, читайте спецификации нескольких сетевых протоколов. Например, http и smpt. Особенно http – разберись с хедерами, сжатием и.т.п. Долго и хорошо почитайте в Википедии про современные системы связи. Посмотрите алгоритмы, которые используются в маршрутизации, разберись, чем пакет отличается от кадра. Практика: делаем сокет-сервер, например, для чата. Разберитесь с XML, HTML, JSON. XML особенно. Освойте XPath.

Операционные системы. Задача состоит не столько в изучении операционных систем, сколько в изучении принципов распределения ресурсов компьютера. Тут же надо разобраться с многозадачностью, которую я вам как-то отсоветовал изучать сразу. Матчасть: опять же Таненбаум. Разберитесь с алгоритмами для планирования процессов, организацией памяти, файловыми системами, ядрами. Есть толстенный учебник Дейтелов. Помните, вы по ним си изучали? Так вот, ещё есть и по ОС учебник. Отдельно изучаете многозадачность: синхронизацию, пайпы, семафоры, мониторы. В жабе всё это дело есть из коробки и писать программы, которые реализуют такую функциональность будет просто и приятно. Если вы бросили Эккеля на этом месте – самое время начать читать опять. Одного Эккеля мало, используйте гугл. Хотя, наверное, к этому времени вы уже сменили язык. Практика: многопоточные приложения. Сделайте свой компьютер многопоточным. Это весьма занимательно.

Формальные языки и методы трансляции. Да, вот она вершина, с которой видно весь остальной курс. Если вы досюда добрались, то у вас железные яйца. Жму руку. Хотя и написано, что теория трансляции, надо обратить внимание на синтаксически управляемую обработку данных вообще. Матчасть: начинаем разогрев с главы учебника по дискретке про семиотику. Продолжаем Ахо и Сети, Книгой Дракона. Введение по дискретке там есть, но бедное. Нужно осилить грамматики, языки, иерархию Хомского и соответствующие автоматы. Кстати, автоматы в конце SICPа есть. Изучаем работу компиляторов и интерпретаторов. Изучаем оптимизации. Отдельно про регулярные выражения. Что такое регулярное выражения вы поймёте при изучении иерархии Хомского. Но регулярные выражения – это уже прикладная область, и чтобы их составлять нужно быть знакомым с синтаксисом, обозначениями и.т.п. – учебник по дискретной математике вам этого не даст. Прочитайте книгу О'Рейли про регулярки. С совами на обложке. Практика: написать несколько сложных регулярок, компилятор, интерпретатор. Да, чёрт подери, настоящий оптимизирующий компилятор простого языка.

Стандарты в программировании: всё самое сложное вы уже осилили, осталась сущая малость. Во-первых, стили разработки. Юнит-тесты, UML, рефакторинг, всякие совершенные коды. Уже пора изучать язык, на котором будете работать, и изучать классические труды о его устройстве, стандартных библиотеках и методах. Для прихода к просветлению можно таки выучить модный хачкель. В книжках, которые я рекомендовал есть моря ссылок на другие труды. У вас уже должен быть большой кругозор. Думаю, к этому времени вы уже знаете, что делать.
Неплохая копипаста. Я бы всё-таки хотел добавить, что нужно искать учебники с упражнениями и с обязательным вводным курсом в среду разработки. Мне как нубу было бы совершенно неудобно учить даже тот самый Си по КиР, поскольку даже они не объясняют, как надо пользоваться гцц, как работатать с отладчиком. Я не зря упомянул Ирвина. Я уже пересмотрел немало книг по разным языкам, и, за исключением Ирвина, нашел только две полезных с педагогической точки зрения книги. Первая — Python for Unix and Linux. Отличный вводный курс в IPython. Вторая — Hacking: The art of exploitation. Все о GDB. Об ассемблере и о железе. Я соглашусь с тем, что большинству людей знание асма не нужно. Хард тоже знать ни к чему, потому что на любом предприятии всегда есть специализированный отдел, занимающийся апгрейдом и ремонтом системных блоков, настройкой сетки, етц. Но если человек всё-таки хочет расширить кругозор без погружения в дебри ассемблера, то «Code» Петцольда мне кажется более подходящим, чем книга Таненбаума. Есть еще более хардкорная The Art of x86 Assembly.

Копипаста в целом совпадает с вузовской программой специальности "программное обеспечение вычислительной техники" — и теория, и практика. Примерно это всё знает и умеет хороший студент к концу пятого курса.
Поэтому можно просто* поступить в вуз.


* проще будет потому, что будут наставники, а в абсолютном выражении всё равно потребуется очень много усилий.

Как освоить программирование за 21 день неделю месяц :)
Похоже Вы не читали интересную книгу :)
Л.Броуди «Cпособ мышления — Форт язык и философия для решения задач» archive.org/details/Broudie2
Потом прочтите и первую книгу этого автора объясняющую азы языка, и книгу Баранова, Ноздрунова с которой многие начали свой путь в мир Форт (Forth).
Изданых книг по Форту немного.

P.S. Программирование должно быть естественным продолжением мыслительных процессов.

Из лингвистики есть наследие Тузова С.А. cyberleninka.ru/article/v/postroenie-semanticheski-svyazannyh-informatsionnyh-obektov-teksta

Тузов С.А. «Языки представления данных» archive.org/details/tuzov_v_a_yazyki_predstavleniya_znaniy
В сети есть и его монография по языкам.

За книгу Броуди — спасибо! Таких уже почти не пишут.
Первое и самое важное: концептуальная модель должна описывать интерфейсы системы.
Сегодня книги не учат проектировать, думать и решать проблемы, не учат инженерному подходу, а больше учат работать по шаблону.

Лингвистка в сочетании с программированием кажется открывают путь в такую интересную область как разработка самих языков прогоаммирования

НЛО прилетело и опубликовало эту надпись здесь
Разработка ЯП специалистами по хардкорному матану привела к тому, что программисту приходится думать как машина.
Возможно, разработка ЯП специалистами-лингвистами приведёт к тому, чтоб машина начала думать как программист.
Фундаментальная лингвистика, внезапно, тоже завязана на математику.
А раскройте мысль пошире, пожалуйста. Мне, как профану в лингвистике, очень интересна связь математики и языков.
В современной лингвистике для изучения семантики и синтаксиса естественных языков используется теория групп, статистика, графы, предикатная логика; в фонетике используется цифровая и аналоговая обработка сигналов, акустика и т.п.

В общем-то, любая область науки, которая поддаётся формализации, так или иначе нуждается в математике.
НЛО прилетело и опубликовало эту надпись здесь
Шикарнейший слог (профдеформация! ;) и замечательная история!

Огромнейшее спасибо за истинно плавный текст! :)

И всё-таки… где у него кнопка сколько же падежей в русском языке на самом деле? :)))
сколько же падежей в русском языке

там же вам было написано в самом начале:
Итак, я поступил на лингвиста. Почему? Потому что в местном университете преподавали лингвистику и потому что на целевом факультете были бюджетные места. Лингвистика… Очень интересная специальность. Лингвистика – это наука о структуре языка, но, как правило, подавляющее большинство лингвистов с трудом владеет своим родным языком, не говоря об иностранных.


… а текст — да, интересный, только у меня обратная «профдеформация» — я-то в программировании с школьных лет (Электроника МК-61), поэтому всегда интересно почитать биографии тех, кто «к нам» добирался окольными путями…

Блин, ну ведь это же классическое прагматическое: "Чем больше я узнаЮ, тем меньше я знаю".


Неужели вы реально думаете, что человек с таким послужным списком и специальностью не разбирается на таком неглубоком уровне в своём родном языке к 40 годам?! :)

Мне что в голову пришло…

Лингвист, русский, французский, ИИ, опыт работы и во Франции, и в Китае, и одновременно — скепсис к самоходным экипажам. А скепсис — очень плодородная почва для прагматики.

LittleSquirrel — а ведь очень редкая и интереснейшая комбинация. Я ведь что подумал… ;)
И дальше? Продолжение мыслей, пожалуйста.
Сдается мне, эти судари хотят заманить вас в стартап.
НЛО прилетело и опубликовало эту надпись здесь
Суть вот в чем. Во-первых, современная реализация ИИ критикуется инвесторами. Есть такая известная статья, называется What happened to the future? Там подробно описано, что люди ждали от ИИ и что получили. Во-вторых… Вы наверняка знаете о споре между Норвигом и Хомски. Норвиг защищает интересы того самого ИИ, который распознает лица и занимается переводом текста. Это не ИИ, а всего лишь набор алгоритмов, которые позволяют вычленять паттерн из гигантского потока информации. Если «спросить» у ИИ, почему он выбрал именно это лицо, а не другое, он не сможет ответить. Потому что он не умеет думать. Об этом «думающем» ИИ как раз и говорит Хомски. Кстати, современный всплеск ИИ-технологий как раз и связан с дешевым доступом к big data. И даже у этого ИИ есть свои ограничения. Например, Гугл никогда не будет способен достойно переводить западные языки на русский. Почему? Просто потому, что не существует обучающего набора, состоящего из набора текстов на русском и переводов на английский.
Я бы с удовольствием продолжал заниматься ИИ, но только в интерпретации Хомского. Но его, к сожалению, не поддерживают крупные корпорации.
> Гугл никогда не будет способен достойно переводить западные языки на русский.

Достойно — это в какой степени и к каким текстам?
Если читающий, исходя из своего априорного знания может извлечь из технического перевода полезную с его точки информацию (с издержками диссонанса), то это достойно или обязательно до «буквы» применённой носителем языка?

P.S. И, кто то же и паттерны в Гугле редактирует и добавляет.
НЛО прилетело и опубликовало эту надпись здесь
Знакомую риторику вижу я :)
Сильный ИИ невозможен, он никогда не справится…
… с шашками!
… с шахматами!
… с го!
… с дотой!
<<вы сейчас здесь>>
… с управлением автомобилем!
… с переводом!
И так далее.
Насколько я помню, тест Тьюринга заключается в том, что человек в беседе не отличит машину? Так это давно случилось, боты обманывают людей постоянно. Я сам против шумихи вокруг мышиного обучения, но и заслуги прошу не отрицать :)

Нет, это не случилось. В тесте Тьюринга человек должен определить, кто из двух его собеседников машина. А боты могут обмануть человека, только если человеку будет не с чем сравнивать, либо если человек-собеседник будет отвечать как бот.

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

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

Другими словами, апелляция к авторитетам — разумный, но недостаточный довод. Авторитет может ошибаться, авторитет может вообще быть не авторитетом, а человеком, который рассуждает со стороны.

Есть такая известная статья, называется What happened to the future? Там подробно описано, что люди ждали от ИИ и что получили.
Есть в мире много чего, что не оправдало ожиданий. От медицины до общественного строя. Открываем научную фантастику 20-го века, что с коммунизмом, что без него, и считаем фейлы современности. Ни Великой теории воспитания Стругацких, ни всеобщего мира, ни космических кораблей бороздящих разные там просторы. Очень неожиданен, к примеру, попадос с медициной — прогресс в медицине приводит к тому, что здоровье населения ниже. Потому что выживают люди с разными патологиями. Живут все дольше, но и болячек у всех больше. Хотя планировалось всеобщее улучшение здоровья. И так со всем, что ни возьми. Кроме, разве что, антиутопий. Так что не драматизируйте этот провал. Вам просто не пришлась по душе эта область. Перейдёте в другую специальность, там тоже будет своя разница между ожиданием основателей и реализацией наследниками. Если она ляжет Вам на душу, Вам всё равно это будет.
Итак статья в целом не плохая, но автор лично мне показался обычным приспособленцем, который идёт туда где тепло и при этом не ценит то что было раньше, то работал несколько лет в порту и понял что не хочет быть червем на дне общества, а нечего что если ты специалист своего дела то ты везде будешь достойно зарабатывать и не будешь червем, я вообще не понимаю как можно такое слово использовать по отношению к рабочим людям, у меня отец простой шахтер и нечего вытянул семью в 90-е, друг сантехник а зарабатывает как я в ИТ, а возможно и больше. Потом автор пошел в лингвистику пожил за харчи чужого государства в чужой стране, но вдруг осенило это не мое, сейчас модно быть программистом, а что будет через пару лет? Автор скажет «ой не хочу быть задротом красноглазиком» и уйдет куда нибудь в другую отрасль? Я не против того чтобы менять сферу деятельности, но не нужно уходя из одной отрасли обсирать ее. У меня есть друг он круглый сирота, но он никогда и ни где этого не упоминает, со мной поделился уже после многих лет дружбы, он сам поступил на физ мат на грант, окончил его на красный диплом, а потом ушел в ИТ, сейчас «клепает сайтики» как вы выразились, только веб не только сайтики, сейчас 80% софта это веб, а он разрабатывает сложные системы типа документооборота или CRM. У вас прослеживается какая то обиженность на мир, все не так все не то, поймите мир он разный в этом то и его прелесть, каждый найдет что то своё.
Не приспособленец, а оппортунист. Люди выжили и стали умнее как раз благодаря тому, что умели приспосабливаться к меняющимся условиям. Я не имею ничего против рабочего люда. Червем человек начинает чувствовать себя после того, как его пару раз приведут в опорный пункт для проверки документов, разденут догола и попытаются «найти» пакет с травой или «белым». Реалии мира таковы, что человек на дне общества всегда будет уязвим перед произволом любого мелкого чиновника. Поэтому надо стремиться вверх. Не за заработком, а за непотопляемостью.
О, «харчи чужого государства». Я же не социальном пособии сидел и не искал себе жену с французским паспортом. Работал по контракту, получал зарплату не за красивые глаза, а в обмен за проделанную работу.
Понравилось как вы пишите, литературно. И может быть поэтому у меня тоже осталось впечатление как от метаний, переживаний лит. героя. Не увенчавшегося успехом поиска себя.

под оппортунизмом понимают «следование своим интересам, в том числе обманным путём»
wiki

И может быть тут как раз и проблема — с определением что же именно является тем самым своим интересом. Вот Вы пишите как выбрали новую профессию:
Вот он, тренд. Мир стремительно движется в сторону тотальной роботизации. Carrefour заменяет кассиров на автоматические сканеры. Cathay Bank реформирует отдел по работе с клиентами в том же духе. Парижские работники метро бастуют из-за открытия новой автоматизированной ветки. Я должен начать учить программирование или останусь навсегда за бортом.

С одной стороны я Вас понимаю, сам у себя легко могу найти подобные мысли. Но с другой — нельзя же искать своё опираясь только на глобальные тренды. Как будто в Ваших критериях выбора не подразумевается поиск интересного для себя занятия, или просто не стали делится этими соображениями.
Моё мнение — своё это те вещи, которые способны возбуждать и увлекать, заставят забыть про сон и для этого не потребуется сильной внешней мотивации, например требования родителей, зарплаты и т.п. Часто по-белому завидую способности детей(и некоторых взрослых) загораться. Рекомендую всем подглядеть, они делают это отрыто и искренне =). И это может оказаться что угодно, совсем за рамками модных направлений.
Поэтому я отчасти согласен с тем что писали тут ниже:
У настоящих рыбаков есть азарт к рыбе и понимание к выпивке (последнее опция). А у вас нет. Вы разбираетесь в лунках, удочках, мормышка а фигли толку.

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


P.S.
Не за заработком, а за непотопляемостью.

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

Знаете, вы с академическим подходом ассоциируется скажем с исследователем зимней рыбной ловли. Он честно сидит у лунки и употребляет по 50 грамм, через статистически обоснованные промежутки времени.


И не понимает смысла. Почему в голове шумно, в ногах холодно, а рыба мелкая и жрать её нельзя (я с мск).


У настоящих рыбаков есть азарт к рыбе и понимание к выпивке (последнее опция). А у вас нет. Вы разбираетесь в лунках, удочках, мормышка а фигли толку.


Я почти никогда не делал упражнения в учебниках по программированию. И почти никогда не дочитывал их до конца. Меня сразу тянуло что-то намутить, написать.


Поэтому я сеньор в нескольких стеках, а вы мечущийся джун. Не аналищируйте — используйте. И через год вас будут рвать на части. Тем более с несколькими языками

Об этом и идет речь. Вам повезло с тем, что выбор профессии совпал с естественной предрасположенностью к программированию. Я бы мог в 18 лет целенаправленно поступить в вуз на CS, к 30 стать senior'ом, и потом внезапно осознать, что всю жизнь занимался нелюбимым делом. С одной стороны зарплата в 10 000 уе и солидный пост, с другой стороны осознание того, что лямку придется тянуть еще как минимум тридцать лет до выхода на пенсию. Поэтому я пока что предпочитаю амплуа мечущегося джуна.
НЛО прилетело и опубликовало эту надпись здесь
И даже синдрома самозванца особо нет.

Не удивительно, после такого-то упарывания С++.

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

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

Читалось на одном дыхании. Надеюсь, всё описанное — не художественная выдумка, а реальная история реального человека. Удачи вам!
С большим интересом прочитал статью. Читается как роман, как сценарий к сериалу — с удовольствием бы посмотрел.

Мне кажется, вы ищите в программировании какое-то чудо, но берете для его определения критерии из мира не-программистов (хакеры, «настоящий ИИ» и тд).

В программировании много чудес, и мне кажется, вы пропускаете одно из важнейших. Это чудо создания сложных систем из крайне простого набора простых правил. Почитайте про языки, «полные по Тьюрингу». Почитайте про игру «Жизнь». Она называется игрой, но на самом деле ничего игрового там нет. Это удивительный пример, как из трех простых правил, в которые можно играть даже на листе бумаги, создается огромная, сложная и малопредсказуемая (невооруженным взглядом и умом!) система, которая развивается, и на базе которой можно создавать невероятные паттерны.

Если вы увлечетесь этим чудом, этой концепцией «создание сложного за счет минимальных действий», возможно, вам откроются врата к тысячам других чудес и вам будет намного интереснее заниматься любой деятельностью из числа изученных.
Сериал получился бы скучноватым. 20 лет за книгами. Я, кстати, периодически встречаюсь с людьми из заводской и управленческой среды, так они на меня как на прокаженного смотрят. Вот Вам описание карьерного пути типичного инженера на заводе по изготовлению полупроводников где-нибудь в Сычуане: 4 года в университете до бакалавра (22 года), 4-6 лет в должности process engineer на конвейере (в реальности весьма рабский труд, но молодым можно. К тому же зарплата весьма мотивирует). В 28 лет, если у человека не отвалилась печень, можно стать руководителем цеха или податься в продакт-менеджеры. Вообще-то Китай нацелен на завоевание мирового рынка во всех направлениях, поэтому можно избежать судьбы заводского инженера, просто получить бакалавра по языковой специальности и начать работу в селлс-департменте. К 28-30 уже можно стать тем же самым продакт-менеджером. К 40 при должном старании можно накопить на скромный «Майбах» и пару вилл в Австралии. Я утрирую, конечно, но суть Вы наверняка понимаете.
Судя по вашему пути, по картам таро вы Шут-Дурак. Это не оскорбление, а всего лишь тип личности, который по своей сути пустой, но может заполнить себя любым другим типом личности. И если не нашли свое призвание, попробуйте совершенно другу сферу. Если отойти от психологии и эзотерики то у меня вопрос: чем вы занимаетесь сейчас?

PS. Статья написана в минорной ноте полной разочарования в бытие, но путь впечатляет.
Сейчас занимаюсь разбором недокументированного кода, написанного n-цать лет назад. Я пока еще не думаю покидать сферу IT, хочу узнать, где мой предел роста.

Разбирая легаси код, можно не только програмизм разлюбить, но и всё человечество возненавидеть.
Держитесь! :)

Это именно что оскорбление. Хитрое, завуалированое оскорбление с попыткой снять с себя ответственность за его употребление. Но кто бы не придумал таро, оскорбление в дискуссию вставили именно вы, учитесь отвечать за свои слова.

Любопытно, куда бы прописали вам товарищи докеры за "Ну, и перспектива бытия червём на дне общества меня тоже особенно не прельщала."...

Докеры все давно спились или сели на систему. Речь идет о 90-х.
это опять же вопрос везения, связей и денег.
В общем, я бросил учебу в университете


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

Деньги нужны не для вуза, а для нормальной подготовки к вступительным экзаменам. Если человек уже в школе должен выбирать между подработкой и выполнением домашних заданий, то о каких МГИМО или Бауманке может идти речь?
я с 8го класса работаю. и мне наличие работы и учебы подготовиться к экзаменам не помешало почему-то.
зато сколько я отговорок от одноклассников наслушался… особенно нравилось «мы старались» и воспоминания как они бегали курили на переменных, да пробовали в тоом же 8 классе уже пить.
ни один из них сейчас не признает, что сам виноват в неудачах. кто угодно, но не они.
Если человек уже в школе должен выбирать между подработкой и выполнением домашних заданий, то о каких МГИМО или Бауманке может идти речь?

Если на нем помощь семье — да, это проблема.
Но если он просто из не особо обеспеченной семьи, то ему достаточно прилагать свои усилия.
Имею перед глазами пример ребят, которые не имея возможности учиться на платном или заниматься с репетитором, отчетливо понимали при этом, что никто, кроме них им не поможет, напрягались и достигали в учебе успехов. Вплоть до неоднократных побед на всероссийских олимпиадах с последующей возможностью выбора любого места учебы. Без денег, блата и везения — упорная работа каждую минуту.
Уважаемый! Надо писать правильно: не «дальше не стал читать» а «я не сумел закончить начатое» или «с юных лет имел привычку бросать дело на середине»
:D
то есть прочтение этого «опуса» и «смотри как надо» было бы столь же полезно, как окончание образования? вот тут я категорически не согласен. и если хоть один человек после этого решит, что образование ему не нужно под лозунгами «ну вот у этого же получилось» — за одно это статью я бы считал вредительской.
Автор через несколько лет, передумав, всё же поступил в ВУЗ.
Только не понятна связь с его позицией «ВУЗы = вопрос везения, связей и денег».
Тогда мои ему поздравления и полностью заслуженные аплодисменты.
Я поддерживаю людей, которые хотят что-то изменить и стараются для своего будущего. но я бы ни за что не стал работать наравне с человеком, который не получил высшее без объективных на то оснований. просто не готов доверять такому человеку.
Ну есть образование, а есть самообразование. Первое часто происходит не по инициативе обучаемого. Второе же всегда по инициативе того кто решил образовываться. Я, к примеру, аспирантуру бросил — самообразование оказалось ценнее, по той простой причине что ты сам решаешь чему учиться и когда учиться. Автор же не призывает бросать учёбу. Но и вовремя остановиться и понять что тебе нужно/не нужно это тоже уроки по выбору твоё/не твоё. А доделывать только потому что начал — это тренировка качеств характера — упорства в том числе. В них нету знаний.
ну так и у меня после 3го курса пришло понимание, что физикой я заниматься не буду.
тем не менее через «не хочу» я диплом получил. и работать на 5 курсе успевал по новой специальности. аспирантура не в счет. и я бы ее оставил или отложил. она не является в нашей стране таким уж обязательным атрибутом, в то время как сейчас даже охранники с дипломами вузов. некоторые мои однокурсники на бюджете выучились, но не ушли дальше торговли кондеями и другой лабудой. согласитесь, что наличием диплома сейчас мало кого удивишь и преподаватели тянут за уши распоследних троечников.

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

В них нету знаний.


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

Автор же не призывает бросать учёбу.

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

любая подобная статья, которая легко нагуглится, должна помогать молодежи, а не сбивать их.
Я не пытаюсь оскорбить людей, честно прошедших вступительные экзамены и поступивших в вуз благодаря своему таланту и умениям. Всем известно жизнеописание Ломоносова, который пешком до столицы дошел и стал отцом российской науки. Но нужно согласиться с тем фактом, что Ломоносов и ему подобные люди — это, скорее, исключение из правил. Миром правит случайность. Вы родились в относительно благополучной семье (а могли бы и где нибудь в Нигерии быть девятнадцатым ребенком), смогли избежать деградации в деградирующей стране (в 90-х провинция либо тихо спивалась, либо шла в бандитизм с предсказуемыми последствиями) и даже если вам нужно было подрабатывать, то речь наверняка шла о деньгах на новые кроссовки, а не на кусок хлеба. Кстати, в Замкадье денег от подработки только и хватит на кусок хлеба. Это все — следствие случайностей. Вы в этом не виноваты, но и косо смотреть на бомжей на помойке тоже не стоит. Их все еще можно отмыть и направить в нужное русло. И я не сомневаюсь в том, что один из них, став CEO, не преминет сообщить всем присутствующим о роли случайности, связей и денег в жизни.

Если мои доводы кажутся Вам неубедительными, то можно обратиться к независимым арбитрам. arxiv.org/abs/1802.07068. Эта статья написана серьёзными людьми, доказывающими математически, что случайность играет в нашей жизни предопределяющую роль. Научные открытия, корпоративные успехи, прибыль от продаж — это все следствие случайностей. Безусловно, упорный труд и мозг необходимы для успеха. Но без удачи, к сожалению, в этой жизни никак.
и даже если вам нужно было подрабатывать, то речь наверняка шла о деньгах на новые кроссовки, а не на кусок хлеба.


ну почти… я утром не знал что буду есть в обед. буквально.

Вы родились в относительно благополучной семье

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

только у меня до 5го курса дотянуло 60 человек с основной массой из лоботрясов. один парень за предложение сдать экзамен за деньги пересдавал экзамен 4 месяца пока не вызубрил предмет. так что в том, что поступали головой, сомнений практически нет.

без удачи, к сожалению, в этой жизни никак

за всю жизнь я видел только 1 случай, когда подготовившийся заранее человек не сдал. с температурой под 40 вырубился на экзамене. остальные… «я готовился, но успел только 10 билетов из 40». что, простите?! это стало называться подготовкой?
i never finish anyth
Я увидел у вас запрос на ЦЕЛЬ СО СМЫСЛОМ, и это увы, не разработка.
Спасибо, очень приятный и интересный текст!
Наверное меня ждёт что-то подобное, потому что вот сегодня мне одно очень интересно, а завтра оно уже скучно и интересно что-то другое.
История чем-то похожа на мою. Я в прошлом училась в физико-математическом классе, нравились английский и информатика, но потом я пошла учиться на ветеринара, закончила отлично учёбу, но ни дня по этой специальности не работала. Потом осознала, что необходима какая-то полезная профессия, пошла учиться в иняз на учителя английского, выучила между делом испанский язык, закончила институт, в школе немного поработала, но не захотела нервы тратить свои за копеечную зарплату. Работала предпринимателем, время от времени клепала сайтики, и вот наконец пару лет назад пришло понимание того, что я хочу заниматься программированием. Начала с С++, книги, курсы в интернете, не очень язык понравился, принялась за джаву, овладела базовыми знаниями по ООП и джаве, а затем захотелось мне написать свою программу на андроид (уроки английского, написанные мной для детей реализовать в приложении, получилось). Вот так я пришла в Андроид, чем и хочу заниматься ближайшие 10 лет. Как итог — есть уже 4 своих приложения в гугл плей, следующий шаг — поиск работы джуниором (андроид разработка), надеюсь всё получится.
Интересно, что автор занялся исследованиями возможностей человека, его духовных способностей.
Для меня тоже был такой опыт, и я понял, что могу изучить что угодно.
Я прошел курс «Основы обучения», и резко ускорил скорость своего обучения.
вот не хватало тут саентологов продвигать
В помощь рассуждениям о мотивации:

1. Сила логического мышления, или Пределы рационализации

Во-первых, хорошо бы оценить применимость формальной логики к психологическим задачам. Философы спорят на этот счет без малого 2500 лет, со времен платоновского «учения о душе» (и, похоже, по сих пор). Но сейчас, кроме гуманитарных, этим вопросом занимается точная наука – нейробиология.

Мозг человека имеет 8,6*10^10 нейронов с множественными связями между собой, образующих обширную клеточную сеть, которая каким-то образом делает нас способными мыслить. Это самая сложная в мире структурная система, и по-прежнему не слишком изученная. Есть большой совместный проект IBM и Швейцарского федерального технического института Лозанны Blue Brain Project (основан в 2005 году, моделирование неокортекса по биологическим данным). Вот его текущие достижения и планы:
  • 2006 год – создана первая модель одной колонки неокортекса мозга крысы (~10^4 нейронов);
  • 2015 год – создана полнофункциональная имитационная модель одной колонки соматосенсорной коры крысы (3,1*10^4 нейронов). Для эмуляции работы компьютерного аналога такого небольшого участка мозга крысы (объем 0,29 мм^3) понадобилась вся вычислительная мощность суперкомпьютера Blue Gene — 209 терафлопс;
  • план на 2020 год – осуществить полное моделирование одного отдела неокортекса крысы, с помощью нового суперкомпьютера Blue Brain 5, производительность которого составляет 1,06 петафлопс.
Это передовой проект, но между его результатами и человеческим мозгом пока что лежит пропасть.

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

Тем ни менее. Команда Blue Brain обнаружила, что различные стимулы вызывают в ответ разные паттерны активности, но все они демонстрируют одинаковую общую эволюцию. С помощью алгебраической топологии в этих с виду хаотических схемах запуска нейронов нашли высокоорганизованную математическую структуру: по образному выражению одного из авторов, «как будто мозг реагирует на стимул, строя, затем разрушая башню из многомерных блоков, начиная с стержней (1D), затем досок (2D), затем кубов (3D), а затем с более сложными геометриями с 4D, 5D и т.д. [по тексту статьи вплоть до 11D]. Развитие активности мозга напоминает многомерную песочную башню, которая материализуется из песка и затем распадается».

Известно, что акты проявления сознания ассоциируются со сложными («много D») паттернами активности нейросистемы. Судя по тому, что обнаружили нейробиологи и математики из Blue Brain, акту сознания предшествует существенная предварительная «вычислительная» работа нейросистемы, которая остается за кадром. И именно от нее зависит, что появится в сознании. Многие, если не большинство, откликов нейросистемы вообще не доходят до того уровня сложности, чтобы стать актами сознания.

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

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

Вывод 1
все говорит о том, что «разбор полетов» в сфере человеческой психики только с помощью умозаключений невозможен. «Бессознательное» проявляется через эмоции, неотделимо от мышления, и для него нет не то, что формальных правил, но даже самого языка, на котором правила могли бы формулироваться
Молодец! Нравятся мне такие люди, которые не опускают руки.
Удачи!
Автор, спасибо за мотивирующий текст!
Ах, я забыл: я же лингвист и все так же бесполезен на рынке труда. Где он, тренд? Что нужно учить, чтобы остаться на плаву?
Область компьютерной лингвистики очень перспективна: автоматический перевод, системы распознавания и синтеза речи, системы текстового и голосового чата — это все очень актуально как в настоящем, так и в будущем!
У вас серьезная профессиональная лингвистическая подготовка, добивайте пробелы в программистской\математической подготовке (если такие остались) и будете уникальным специалистом с двойной квалификацией в актуальной теме с очень большими перспективами! Самые прорывные вещи сейчас происходят на стыках наук и человек который спец в нескольких дисциплинах видит шире своих коллег и очень перспективен.
Был ли мой мозг изначально предрасположен к аналитической деятельности или же это результат жизненных обстоятельств?

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


Если дело в химии, то и должен быть изначально заложен некий базис способностей, я бы даже сказал, что с генами можно передать талант. Гены это или просто удача, вопрос открытый. Возможно, Вы именно это имели ввиду, когда формулировали свой вопрос. Но я все же раскрою мысль. Мозг и разум они как тело: их можно тренировать. А внешняя среда вынуждает искать подход к этим тренировкам, и я предполагаю, что у каждого этот подход носит уникальный характер. Допустим мы можем каким-то образом померить, как питание и упражнения влияют на наши мышцы, и даже можем осознанно это корректировать с целью улучшения качества тренировок (если Вы увлекались бегом, то должны знать, что нет универсальных рецептов тренировок). С мозгом чуть иначе, мы хоть и можем понаблюдать как меняется химия в зависимости от каких-то мыслительных процессов, но не можем найти как эти процессы в целом скажутся на аналитические способности, или, например, на музыкальный слух. По крайней мере пока.


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

как приятно читать не царапающий неграмотностью текст)) Спасибо))
Прочитал запоем, как будто выпил «Мускат белый красного камня»
Интересная история у автора, у меня похожая. Начинал свой путь в 2000ых дворником, разнорабочим, потом будни получения высшего на инженера-строителя, но несколько лет назад и с этого курса развернулся в IT.
Почти закончил 2 институт, матфак, уже несколько лет изучаю программирование.
LucBertrand, а к вам можно попасть не из академической среды? Очень интересна тема искусственного интеллекта в связке с китайским языком, который я как раз сейчас изучаю.
Моя нынешняя работа — следствие стечения удачных обстоятельств. Моя лаборатория ищет людей с образованием, не связанным с программированием, в надежде на то, что новички, не «испорченные» типовым мышлением, смогут создать новые алгоритмы и нестандартные решения. По вполне очевидным причинам у новоиспеченных программистов весьма скромная зарплата. В команде только китайцы. Меня взяли на работу только из-за того, что я уже был на месте и руководству лаборатории не нужно было заниматься бумажной волокитой и обменом депешами с посольством. Нужно было просто продлить визу, вот и все дела. В общем, если бы Вы учились в местном вузе, то можно было быпо пробовать. Если же Вы уже являетесь высококлассным специалистом, тем более со знанием китайского, то проще найти работу в Шенчжене или в Чэнду.
НЛО прилетело и опубликовало эту надпись здесь
Вот у нас как раз и есть постдоки, все из CS. Собрания раз в неделю, всех просят рассказать о текущем положении дел без демонстрации кода. Шеф следит за рациональной составляющей. Если идея кажется интересной, то постдок может проверить код. Код однозначно кривой, но заказчики покупают не его, а как раз идею. Частникам однозначно не выгодно держать у себя группу обезьян, поскольку их нужно обучать и платить деньги. В академической же среде зарплаты пониже и финансовое бремя лежит на государстве. И — еще раз — официально мы все research assistant, а не software engineer. Официально наша работа не связана с программированием.
Моя лаборатория ищет людей с образованием, не связанным с программированием, в надежде на то, что новички, не «испорченные» типовым мышлением, смогут создать новые алгоритмы и нестандартные решения.

У меня есть некоторый опыт работы с людьми, кто не связан с программированием, но пытается предлагать решения задач. Эти "новые алгоритмы и нестандартные решения" обычно в тысячи раз намного хуже "стандартных", потому как люди без "стандартного" программистсткого образования не имеют понятия ни о временной сложности, ни о структурах данных, ни о работе процессора, ни о наличии библиотек, ни о принципах создания GUI (и я уверен, что это всё будет полезно и вам).
Конечно, я не могу советовать расформировать лабораторию и ничего не делать — иногда новичок может предложить что-то стоящее, но на 99% это будут кривые "велосипеды".

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

Ух ты! Что это за основательница такая?.. Поищемс… «Основательницу Theranos обвинили в мошенничестве», «обмане инвесторов», «несуществующие технологии анализа крови», «Всё это длилось десять лет и в итоге оказалось мыльным пузырём. Однако этот пузырь с помощью агрессивного пиара, грамотной юридической помощи и тотальной слежки за сотрудниками умудрился построить вокруг себя такую защиту, что удивительным становится не столько его появление, сколько то, что он всё-таки лопнул.»

Ну… помоему, барышня склонна фантазировать преувеличивать свои достоинства :)
XAML прост в усвоении, однако идущие вместе с ним bindings и MVVM пока еще не поддаются пониманию.
Вы уверены, что на этот раз Вы выбрали правильную профессию, и действительно понимаете то, чем Вы пытаетесь заниматься? ;)

Ведь «это элементарно, Ватсон!». Если объяснять совсем упрощенно, «на пальцах», то binding — это когда Вы указываете имена переменных непосредственно в форме на XAML странице, а шаблон (то-бишь стиль) программирования Model + View + ViewModel — это старый добрый Model + View + Controller, где вместо контроллера, ответственного за запись данных в форму/страницу и чтения данных из нее, существует ViewModel, просто предоставляющий доступ к переменным, используемым на XAML странице в binding.

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

Понятное дело, что объяснение выше примитивно, как я написал, «на пальцах», а текущие реализации в WPF и UWP позволяют делать очень много достаточно сложных вещей, но это уже, так сказать, подробности и experience, набираемые в процессе работы.
Спасибо! Подняли очень важный вопрос — а тем ли я занимаюсь, чем хочу? Много людей идёт на поводу у того, что модно. Даже в программировании модно выбрать не свой язык, а модный и потом страдать. Очень важно в программировании, мне кажется, от начала и до конца осознавать то, что ты делаешь. Поэтому мне нравятся простые языки. И я считаю, что языки, обрастая библиотеками (фреймворками) потом в итоге умирают. Потому что уже даже в рамках одного языка невозможно просто разобраться, что написал человек на другом фреймворке, который ты не знаешь
НЛО прилетело и опубликовало эту надпись здесь
Интересно, где увидели у меня про «своё». Я написал, что фрейворки так сильно дистанцируются друг от друга со временем, что сами превращаются по сути в отдельные языки. Это не облегчает труд программиста. Весь этот зоопарк фреймворков и языков, нескончаемые холивары, что лучше — меня лично это реально сильно напрягает. В футболе есть такое понятие, как околофутбол, а здесь это околопрограммирование, которое замещает собой программирование
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Ваши задачи были — что-то подправить или написать на коленке. Простого чтения доков на полчаса недостаточно чтобы вести разработку на фреймворке большего проекта. Лично я считаю, что лучше знать одну вещь хорошо, чем много поверхностно. Обилие фрейворков заставляет разработчиков становиться эникеями программирования
Подскажите пожалуйста, конкретно что за SQL справочник Агарвала (нашел несколько книг индуса Agarwal Priyanka, если это он :), а также конкретно какой учебник болгаров Telerik (нашел их академию только).
— Beginning C# 5.0 Databases, Vidya Vrat Agarwal;
— Fundamentals of Computer Programming with C# (The Bulgarian C# Book), Svetlin Nakov et al.

Все на английском, надеюсь, Вас это не смущает.
Я бы порекомендовал для SQL эту подборку proglib.io/p/sql-digest

— Для понимания SQL — Алан Бьюли «Изучаем SQL»
— А по постгрям в принципе неплохо — А. Ю. Васильев «Работа с PostgreSQL: настройка и масштабирование»
Это одна из самых интересных историй, что я читал за последнее время!
Спасибо автору за такой мотивирующий очерк! Сам, являясь к.э.н., сильно разочаровался в академической деятельности (аграрная экономика и земельные отношения), и очень хочу углубить познания в пресловутой науке о данных, с возможной перспективой смены основного вида деятельности. В институте свободного времени предостаточно, базовые знания SQL (благодаря работе с ГИС) и опыт написания двух с половиной алгоритмов на Питоне присутствует, однако прокрастинация и боязнь того что я не смогу освоить матчасть и только впаду еще в более глубокую депрессию меня все останавливало. Такой бытовой жизненный опыт (автора) прибавляет уверенности, желаю вам успехов в реализации всех стремлений!
Коллега, здравствуйте! Я не разочаровался в научно-исследовательской деятельности как таковой. Проблема, скорее, в отношении общества к этой работе. Профессор (в России или на Западе), если он не академик 25-уровня и не занимается полезными бизнесу разработками, будет в финансовом плане находится на ступени чуть повыше кассира в «Карусели». Нас же во время учебы морально готовят к тому, что мы будем представлять собой интеллектуальную элиту страны. Поэтому, прежде чем Вы сделаете шаг в сторону от работы в академии, нужно будет пройти моральную ломку. Вас посадят в уютный теплый клетчатый офис в компании вчерашних выпускников вузов или даже стажеров-третьекурсников, и заставят писать код. И здесь самое главное вовремя оторваться от монитора и поймать пару ухмылок офис-менеджера. Это взбадривает.
Здорово! Спасибо, добавил себе в закладки. Это прям получается в Data science пробиваться как в Голливуд, только не через постель а через Kaggle :).
И здесь самое главное вовремя оторваться от монитора и поймать пару ухмылок офис-менеджера. Это взбадривает.

Совсем не понял этот момент, из-за чего ухмылки и как это подбадривает, пояснить плз.
Немного выше в комментариях пользователь movl указал ссылку на довольно интересную статью. Там обсуждается много интересных идей, в том числе и аморальное поведение человека. Вопрос: является ли CV с поддельными данными проявлением аморального поведения или нет? Мне пришлось откинуться на спинку стула. У меня богатый опыт рассылки резюме и богатый опыт получения отказов. Общение с людьми из разных кругов сделало меня умнее и я нашел способ заставлять людей хотя бы приглашать меня на собеседования. Суть: 40 лет, к.ф.н., пара иностранных языков, знание языков программирования, опыт работы в зарубежных компаниях. Это — в мусорку. Потому что уже стар. И стартовая зарплата к.ф.н. должна быть однозначно выше стартовой зарплаты магистра (по крайней мере так обстоят дела в крупных международных компаниях в Китае). Поэтому приходится вставать на сомнительный путь аморального человека и убирать из резюме строчки «40 лет, к.ф.н.». Ответят, пригласят на собеседование. На собеседовании придется сказать правду. Ухмыляться начинают уже HR (обычно молодые барышни лет до 30). Нет опыта работы в корпоративной среде. Нет способностей к работе в коллективе (потому что диссертации пишутся не всем колхозом, а являются плодом деятельности одного человека). Потенциальная конфликтность при общении с руководством (потому что слишком образованный и потому что привык к субординации в академической среде: бакалавр < магистр < PhD < assistant professor < professor. А в фирме наверняка придется ходить пешкой под бакалавром-карьеристом). Но у Вас есть языки и спосбность к программированию. Можем взять ассистентом к продакт-менеджеру, он как раз по-английски ни слова… И вот если я соглашусь на эту работу, то тут уж точно придется послушать немало шёпотов за спиной. Это взбадривает и сбивает спесь одновременно.
Для меня это статья не о программировании, а больше о адаптации к новым условиям жизни, когда скорость изменений в обществе только растет. Некоторые из профессий на грани существования. Другие — только развиваются, и неизвестно что дальше будет. И что делать — никто наверняка не знает, можем лишь предполагать. Предполагать, что программирование сейчас и в будущем (хотя бы на время моей жизни) будет относительно надежной сферой деятельности. Хорошо, когда интерес и способности к проф. области совпадают, и сама профессия может обеспечить человеку достаточно-комфортный уровень жизни. Но как быть тем, кому интересны не-трендовые проф. области: языки, обучение, философия и т.д. Похоже, в программисты.

Я вот сейчас, пишу вроде бы очевидные вещи, но для чего и для кого не совсем понимаю. Вроде бы, для вас, автор, но вы об этом и не просили. Конкретные вопросы остались в заключении:
Все вопросы, которыми я начал задаваться с того момента, когда впервые открыл самоучитель по французскому, так и остались без ответа. Можно ли развить способности к языкам или это врожденная особенность человека? Логика, абстрагирование и программирование — аналогичный вопрос. Нейрофизиологи утверждают, что левое полушарие мозга как раз и отвечает за языковые способности человека и его умение логически рассуждать. Был ли мой мозг изначально предрасположен к аналитической деятельности или же это результат жизненных обстоятельств? Почему я был апатичным ребенком без всяких интересов, а перешагнув за черту двадцатилетия, внезапно обрел усидчивость и умение усваивать довольно чувствительные объемы информации?

Что-то мы получаем еще до рождения, а что-то после: в процессе жизни. Генетика и физиология больше относятся к первой части и мало что могут сказать о второй. Интересно, что ответы на эти вопросы в какой-то мере дает психология, которая и изучает субъективное: человека и его существование.

Еще кое-что. У вас удивительно философский взгляд на вещи, особенно мне понравилось:
Вместе с первой решенной задачей пришло понимание того, что программированию нельзя обучить. Можно выучить пару сотен алгоритмов, но всё равно настанет тот день, когда нужно будет создать что-то новое. И тут уж никакой Дональд Кнут не поможет.

Этот тезис неплохо укладывается и глобально, на все существование человека, если слово программирование заменить. Не находите?)

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

Считаю это прекрасно, когда человек замечает, что ему чего-то не хватает и начинает искать то самое, чего не хватает. Из содержания статьи показалось, что у вас в этом деле что-то получается. Спасибо за интересную статью.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории