Андрей Столяров выложил в свободный доступ второе издание книги «Программирование: введение в профессию»



    1 марта 2021 года автор-программист Андрей Викторович Столяров выложил в свободный доступ второе издание книги «Программирование: введение в профессию». Трехтомник можно скачать бесплатно в формате pdf (том 1 «Азы программирования», том 2 «Системы и сети», том 3 «Парадигмы»), так и купить в бумажном варианте.

    Автор пояснил, что учебник «Программирование: введение в профессию» ориентирован на самостоятельное изучение и предполагает использование систем семейства Unix (в том числе Linux) в роли сквозной среды для обучения. Объем второго издания составляет 2112 страницы.

    В учебнике описана история программирования, языки Pascal, ассемблер, Си, C++, LISP, Scheme, Prolog, Tcl, операционные системы, ядро ОС, создание сетевых приложений и параллельное программирование, создание графических интерфейсов с помощью библиотеки FLTK на C++ и фреймворка Tcl/Tk.
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

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

      +7
      Здорово и спасибо за работу!

      P.S. Еще бы epub/fb2 — не всегда полезно иметь отформатированный вариант книги, порой нужен и под читалку файл.
        0
        Не выйдет. Автор пишет все свои книги в LateX + есть собственное руководство по нему. Поэтому ждать появления в fb2/epub не приходится. Если только просить исходники и их как-то конвертировать.
        –4

        Pascal, Lisp и Scheme — всё то, что поможет найти работу.


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


        Обычно, если я смотрю на навыки программирования у человека и там упоминается pascal, то это признак, что ничего другого в резюме не написать. (Может быть есть исключения, на дельфи без гуёв крутейшие штуки в своё время писали, но в целом — pascal в резюме, это как "опытный пользователь Office 2000").

          +1
          Я бы взял на работу человека, который упомянул в резюме, что он написал компилятор паскаля или оберона.
            –1

            Наверное, да, но у вас бы возник вопрос "что они ещё делали?". Если выяснится, что "ничего", то будет проблема. Потому что git что? Какой такой http?

              +12
              Человек, способный сам разобраться как написать компилятор или интерпретатор, или даже просто прочитавшивший SICP и успешно выполнивший все упражнения освоит гит и поймет http за пару часов.

              В особенности ценно, если этот человек сделал это не потому что получил такую задачу, а из любопытства. Это показывает энтузиазм и умение достигать цели.

              Совсем идеально, если при этом он достиг этой цели в области, где нельзя взять руководство и сделать все по нему. Есть еще места, куда мануалов не завезли.

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

              -----.

              Нанимать за знания бессмысленно, это требует точного попадания в предметку. Нанимать за способности извлекать, осваивать и применять знание — гораздо разумнее
                +1

                океей. Но я хочу сказать, что вы сильно переоцениваете "способности" человека, который прослушал курс про компиляторы в институте и налабал свой парсер-лексер с каким-то кодогенератором.


                Он может спокойно называть все перменные по буквам алфавита (с индексами, если надо), и из "освоенного за пару часов" гита вы потом долго будете вычищать строчки вида


                x = b(y * aa2).i(j)


                (в лучшем случае).


                Повторю, вы себе представили Вирта 2.0, а я описываю человека (условные 30+), который семь лет сидит на кафедре информатики педагогического университета посёлка городского типа Верхние Грязи, и который написал компилятор паскаля (на паскале), и сейчас ищет новую работу, потому что кафедру расформировали.

                  0
                  Если бы я сидел на кафедре информатики ПГТ «Верхние Грязи», да еще и с интернетом или просто хорошей библиотекой, то за 7 лет без отвлекающих факторов (вроде индустрии) я бы стал богоподобным инженером. Да еще и тестируя все идеи на студентах…

                  И при прочих равных я бы предпочел 30+ чем 23-летнего сеньора )

                  А чтобы понять насколько такой человек хорош я бы предложил ему прямо на собесе реализовать в своем компиляторе оператор, который был бы обратным к GOTO — человек без фантазии даже не сможет вообразить подобное. И если он справится — можно брать не раздумывая: его существование — это просто редкая флуктуация, такой человек в принципе может достичь практически любых целей
                    0

                    Обратный goto это переход с лейбла на goto?

                      0
                      хотелось бы более подробного описания — как работает такая идея?
                        0
                        Если goto — это безусловный переход, то обратный оператор — это или условное или безусловное оставание на месте. Просто бесконечный цикл в один оператор что ли?
                          +1
                            +1
                            Эх, вся интрига разрушена )
                              0
                              Я так понимаю, для ответа требовалась какая-то совершенно конкретная фантазия.
                              0
                              Любопытная конструкция, если использовать номера строк, то так можно сделать ещё более неочевидный код, чем с goto :)
                                0

                                Да обычный ret, как по мне...

                                  0
                                  Не-не-не. GOTO, longjmp, ret — это все очень просто и понятно работает в одном потоке исполнения. А вот у COMEFROM возникает один интересный нюанс — а что если их несколько штук расставить?
                                  Например
                                  10: input X
                                  20: noop
                                  30: print "X is ", X
                                  40: ret

                                  50: COMEFROM 20
                                  60: print "X^2 = ", X * X
                                  70: ret

                                  80: COMEFROM 20
                                  90: print "X^3 = ", X * X * X
                                  100 ret


                                  В каком порядке будут выведены строки?
                                  На COMEFROM можно сделать многопоток, и каждый COMEFROM будет запускать новый тред; а можно сделать event-loop, и тогда, это будет однопоток с событиями.
                                    0

                                    Ну, в Вашем варианте это больше похоже на hook (обработчик прерывания). Если вспомнить, как традиционно писались обработчики прерывания (таймера, например), то по моему видению, отработает сперва хук строки 50, затем он передаст по цепочке обработку хуку строки 80, а затем исполнение вернётся на строку 30. Но всё зависит от реализации хуков в данном псевдо-бэйсике ;-)

                                      0
                                      Ну так то было давным-давно, в эпоху одноядерных процессоров. А сейчас надо многопоток делать ;)
                                      Отдельная история с хуками, конечно. Сейчас системы с хуками можно расширять только там, где есть вызов этих хуков. Умелое сочетание COMEFROM с GOTO и глобальными переменными позволит расширять системы в любой точке. Счастливой отладки, как говорится!
                                      Блин, аж захотелось такое написать… Кажется я знаю, чем займусь на выходных.
                                  +1
                                  Верно. Но еще более интересно, что можно предложить несколько совершенно разных способов реализовать это, работающих на разных уровнях — от сплайсинга до call-with-current-continuatiuon. Я вот думаю интересно ли будет, если я напишу об этом статью?
                                    0

                                    По сути это примитивный вариант аспектно-ориентированного программирования.

                              0
                              Если бы я сидел на кафедре информатики ПГТ «Верхние Грязи», да еще и с интернетом или просто хорошей библиотекой, то за 7 лет без отвлекающих факторов (вроде индустрии) я бы стал богоподобным инженером. Да еще и тестируя все идеи на студентах…

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

                                +7
                                Вот так сидишь часами, строчишь нафиг не нужные комменты и type hintы, а к тебе в проект никто не хочет так как уверен, что их там нет.
                                  0

                                  Понимаешь, это как сидя на необитаемом острове учить по свмоучителю японский язык. Скорее всего, ты даже его выучишь. Только это будет какой-то твой собственный японский, который к японскому японскому будет имеет очень слабое отношение :)

                                  +1

                                  Полгода не так много… Да и зависит от того, что за человек. Если это годный синьор, который пилит по общепризнанным бестпрактисам, то проект проще для понимания, чем если бы был сработан пачкой джунов.

                                    0

                                    Это да, но, лично я первое что спрашиваю на интервью про проект:
                                    1) Покрытие юнит-тестами
                                    2) Процесс ревью кода
                                    3) CI
                                    И если отсутствие #3 это тревожный звонок, #2 это звонок погромче, то #1 это уже конкретный сигнал тревоги. В моем случае не было всех трех :) Может быть разработчик всего этого это реинкарнация Э.Дейкстры, но я на всякий случай лучше откажусь :)

                                      +1

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

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

                                        А ещё забавнее будут попытки внедрить бест практицес при взаимодействии с сервисом, у которого некая сущность, назовём её Lead, может иметь разные допустимые наборы значений для полей, то есть в поле AccountType в сущности HHF000950 может лежать XXXX, YYY, и ZZZ, а в HHF000850 лежало ещё и AAA и BBB. И способа получить все возможные наборы значений для AccountType для всех Lead'ов просто нет. А ещё есть разные окружения и разные тенанты.

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

                                          Как же все у вас, наверное, запущено… Про тестирование с моками ничего не слышали?


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

                                          У меня уже есть свое жилье :)

                                          0
                                          хех… у моих студентов часто покрытие юнит тестами двойное или тройное, но от этого их программы не становятся работающими.
                                            +1

                                            Ну, кто-то всю жизнь ездит по понятиям ПДД и все равно попадает в аварию. Это ведь не значит, что ПДД не нужны и их можно нарушать.

                                      0
                                      И при прочих равных я бы предпочел 30+ чем 23-летнего сеньора )

                                      Лично знаю экс-препов которых брали сеньорами даже в 45+. Методологичности еще надо научить. И это часто занимает больше времени чем изучение известных техник программирования.


                                      Относительно Goto. Если вы имеете ввиду свёртки, то да я хорош. Но там не всё так однозначно. Хотя к однозначности надо стремиться.


                                      Tsimur_S Ага, по итогу плюнуть некуда в архитектора-проектировщика попадешь. А код писать некому.

                                      Строго наоборот. Г/к полно.

                                        0
                                        Г/к полно.

                                        А говнопроектировщиков?
                                          0

                                          Рахитекторов

                                      +2
                                      Но я хочу сказать, что вы сильно переоцениваете "способности" человека, который прослушал курс про компиляторы в институте и налабал свой парсер-лексер с каким-то кодогенератором.

                                      У меня один очень пожилой родственник (сооавтор самого первого в СССР компилятора FORTRAN) когда-то работал в этой теме чуть ли не с 60-х годов. Он как-то в разговоре на то, что это дико сложно, посмеялся и сказал мне, что на самом деле это давно уже задача уровня студенческого курсовика для которой достаточно одного-двух семестров соответствующего предмета. Тут вопрос не в сложности каких-то знаний, а просто в их специализации.

                                        0

                                        У меня то ли на 3, то ли на 4 курсе провинциального технического вуза был предмет "Основы трансляции", где все это преподавалось. И, в качестве курсача как раз требовалось написать компилятор си/паскаля. Конечно, не всей грамматики языка, а какого-то ее подмножества. Не помню, чтобы с этим были какие-то проблемы. Конечно, никто не требовал оптимизации и промышленного качества кода, как и во всех остальных студенческих курсачах.

                                          0

                                          А у меня с этим всегда одна и та же проблема: не могу понять, надо ли использовать bison/flex или нет. Вроде как говорят, что нет, что без них проще. Но тогда непонятно, зачем они вообще существуют. Только для прототипирования при изначальной разработке собственно языка? Сомневаюсь: слишком узкая ниша. Непонятно.

                                          0
                                          Ну, я бы не стал на это мнение опираться:
                                          — Пожилой родственник может быть уже доктор наук в этой теме, для него все — просто, с таким-то опытом. Он на этом, быть может, собаку сьел и все статьи прочитал.
                                          — Уровень студенческого курсовика вполне позволяет делать экспоненциальную сложность, или выкинуть все сложно обрабатываемые конструкции языка, забыть об оптимизациях, да мало ли где можно упростить…

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

                                            Я вас умоляю

                                              0
                                              Написание компилятора != заюзать llvm для С++
                                                +2

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

                                                  0
                                                  Компилятор и уж тем более язык — это не только задача разбора
                                      +2
                                      Смешно подобное слышать от человека, в профиле которого написано «Оператор ЭВМ»…
                                        +2

                                        Если я у себя в профиле напишу "ночной сторож", то что-то изменится? :)

                                          +6
                                          Обмен шутками — это поединок, правда бескровный; однако, подобно настоящей дуэли, он вынуждает нас быть сдержанней и учтивей ...
                                          0

                                          Но в слове devops — ops — это operator/operations, нет?

                                      +2

                                      Пажалста — https://hh.ru/vacancy/39588030
                                      В ключевых навыках пкскаль и мс дос

                                        0

                                        Спасибо. Это пример или контр-пример?

                                          +1

                                          А хз, я не звонил. Пример, наверное. Чтобы строчка в дипломе не зря была написана.

                                        +8
                                        Да вряд ли автор позиционирует книгу как «прочитаю, докурю и пойду резюме подавать».

                                        Бегло проглядел первые несколько страниц, автор топит за pascal как язык удовлетворяющий двум условиям
                                        1) минимум магических строк в helloworld которые выглядят «тут так принято» для начинающих. Типа сигнатуры main и инклюдов.
                                        2) Указатели и адресная арифметика. Тут отваливаются Python и прочие managed memory языки.

                                        и похоже что он заточил эту книжку под студентов младших курсов у которых вопрос трудоустройства стоит не так остро. Как по мне вполне разумный подход.
                                          +1
                                          Вопрос трудоустройства у младших курсов вполне себе встречается, а из-за таких вот подходов к обучению это самое трудоустройство обычно происходит в области производства гамбургеров.
                                            0

                                            Ну, я книгу не видел, реагирую на пост.


                                            Алсо, это вопрос интересный, что лучше — паскаль или Rust. Лично мне rust выглядит более гармоничным, во-первых никто ни где не мухлюет (магические операторы, волшебные int'ы), во-вторых, до обнаружения borrowck и lifetimes можно писать не думая про них (вот пример простой демки с условно-красивым шумом на экране — https://github.com/amarao/sdl_random/blob/main/src/main.rs, и мне кажется, что на pascal получилось бы более запутанно).

                                            +3

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


                                            И я, при прочих равных, обращу внимание на специалиста, который знает Lisp и Scheme — это говорит о многом понимающим людям.

                                              0

                                              Я так думаю, что книга "Введение в профессию" рассчитана на тех, у кого профильное резюме девственно чистое. И конкурировать они будут с типовыми студентами. А помогая сегодняшним МГУшникам, которые пишут на C89 страшное спагетти, используя wgcc и FAR в качестве IDE, я бы однозначно выбрал тех, кто прочитал эту книгу. Хотя бы за то, что там в первом же томе идёт система типов, которая в Паскале одна из наиболее красивых. Такого человека гораздо проще внедрять в type-oriented разработку, пересаживать на диалекты ADT в современных Rust/TypeScript/Haskel|ML-семействах и т.п., да и просто, как правило, приятно работать с его кодом в большой команде. Даже если этот код потом будет на Си. А если есть хотя бы базовое понимание LISP/Scheme, то считай большая удача.


                                              Добавил бы и про опытных подателей резюме. На дельфи огромное количество энтерпрайз-софта было написано. Когда веб-фреймворки только поднимались с колен, помимо него и, прости меня господи, 1С ничего более эффективного не было. И скрывать этот факт человеку, который годами автоматизировал круное производство, банки и т.п. только потому, что там фигурировал Pascal...

                                              0

                                              Del

                                                +2

                                                Вы бы лучше оглавление опубликовали. Я почитал наискосок — книга хорошая, а описание в вашей статье получилось скудное и унылое.

                                                  –17
                                                  «Программирование» — даже по названию серии уже понятно, что книга — древнота. Современный программист уже давно мигрировал в разработчика и непосредственное программирование иногда занимает небольшое количество времени и часто состоит из копипасты или сгенерировано из IDE. Разработчику надо уметь проектировать, интегрировать огромное количество тулзов и сервисов, дебажить, управлять техдолгом и легаси-кодом, курить доки/stackoverflow, оптимизировать и прочее. Поэтому чистые программисты я даже не знаю, где сейчас нужны, может в каком-нибудь задрипанном НИИ, который на оборонку работает.
                                                    +10
                                                    Что бы стать разработчиком сначала нужно стать программистом. Если в обучение поставить телегу впереди лошади то получим «спеца» по фигурному написанию yaml конфигов и скоростному копированию с SO, падающего в обморок от слова указатель.
                                                      –7
                                                      Если в обучение поставить телегу впереди лошади

                                                      А зачем ставить телегу впереди лошади, в чем смысл Вашей тирады? Речь о том, что чистые программисты на рынке почти не востребованы, а изучение стэка порой занимает намного больше времени, чем изучение алгоритмов и конструкций языка.
                                                        0
                                                        А зачем ставить телегу впереди лошади, в чем смысл Вашей тирады?

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

                                                        А вот это уже очень спорно.
                                                          –5
                                                          Я где-то написал, что разработчик не должен уметь программировать? Разработчик — это следующая ступень эволюции программиста. Умение программировать подразумевается по умолчанию.
                                                            +3
                                                            Умение программировать подразумевается по умолчанию.

                                                            Тогда о чем вообще верхний комментарий? О том что книга с названием «Программирование» учит программированию а должна учить разработке ПО?
                                                              –6
                                                              Тогда о чем вообще верхний комментарий?

                                                              Может стоит внимательно его прочитать? Такие книги для программистов писали 25 лет назад, потом стали постепенно вводить современные инструменты для разработчика и проектирования. Сейчас чисто кодинг занимает небольшое количество времени в разработке. Ну и выбор Паскаля для обучения программиста 2021-го года тоже выглядит, мягко говоря, несовременным. Вот прочитал человек эту немаленькую книгу, а в большинство компаний его не возьмут даже джуном, ну и смысл тратить время?
                                                                +3
                                                                Такие книги для программистов писали 25 лет назад, потом стали постепенно вводить современные инструменты для разработчика и проектирования.

                                                                Ага, по итогу плюнуть некуда в архитектора-проектировщика попадешь. А код писать некому.
                                                                Сейчас чисто кодинг занимает небольшое количество времени в разработке.

                                                                Сами же говорили что «Умение программировать подразумевается по умолчанию.» Откуда это умение взять если не учится программировать?
                                                                Ну и выбор Паскаля для обучения программиста 2021-го года тоже выглядит, мягко говоря, несовременным.

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

                                                                Согласен, нужно было мангу про микросервисы читать.
                                                                  –4
                                                                  Сами же говорили что «Умение программировать подразумевается по умолчанию.» Откуда это умение взять если не учится программировать?

                                                                  Учиться-то можно по-разному, например, с изучением инструментария и основных методов проектирования. Книжек таких полно сейчас.
                                                                  В первом томе автор описал почему выбран Pascal

                                                                  В 2021-м поводов выбрать Pascal для обучения просто нет, потому что его банально не применяют в коммерческой разработке. Я в 90-х его в универе изучал и уже тогда он нахер нигде не нужен был. Все, что автор про Паскаль писал, можно переделать на тот же Python или Go. После прочтения такой книги молодой разработчик вполне может на джуна устроиться.
                                                                    +1
                                                                    Я не знаю в чем паскаль хорош. Но вот семикласснику другие ЯП не зашли. А паскаль легко. Мне кажется это самый удачный ЯП, с которого можно начинать обучение.
                                                                      0
                                                                      Он, на мой взгляд, за счет несколько избыточного синтаксиса (за что его многие не любят) более человеческий и легко читаемый (что наоборот хорошо для обучения).

                                                                      Живому человеку куда проще понять «начало» и «конец», чем нагромождение скобочек, и так далее.
                                                                        0

                                                                        Он, как я помню, и создавался именно как язык для обучения.

                                                                        +2
                                                                        Учиться-то можно по-разному, например, с изучением инструментария и основных методов проектирования.
                                                                        Предлагаете абсолютно не знакомому с программированием человеку вкатываться с книги «Совершенный код» или «Паттерны проектирования»?
                                                                        Все, что автор про Паскаль писал, можно переделать на тот же Python или Go.

                                                                        Если вы будете обучать студента начиная с Питона, то все связанное с указателями в памяти и адресной арифметикой пройдет мимо него. Не то что бы это было совсем плохо но это закроет для него ветку связанную с embedded, HFT, геймдевом да и кучей еще всего, теми же нативными модулями для Python. Тяжело объяснять устройство ОС, архитектуру процессора и кучу других вещей если все что студенты знают это Python. Хорошо это или плохо? Если ты в 30+ лет меняешь
                                                                        профессию на IT то наверное хорошо, времени в обрез и важен фокус на практических навыках. Если ты 17 летний лоб в универе, еще не определившийся с тем чем будешь заниматься то лучше выбирать максимально общие курсы. Не даром синонимом хорошего образования является слово фундаментальное.
                                                                        Ну опять же все относительно, если в 17 лет нужно кормить себя/семью или уже есть четкое понимание что всю жизнь хочешь посвятить Data Science(или получать 300к в наносекунду) то да, берем книжку по питону.
                                                                          0

                                                                          Да, но при этом в книге есть LISP, Scheme и TCL. Я думаю в современном мире стоит студента ознакомить с Python, не вместо паскаля, а дополнительно.

                                                                            –4
                                                                            это закроет для него ветку связанную с embedded, HFT, геймдевом да и кучей еще всего, теми же нативными модулями для Python

                                                                            Не закроет. Разработчики постоянно учатся и постигают новые знания. Знать устройство ОС, архитектуру процессора для разработчика совершенно не обязательно — это мало где востребовано в коммерческой разработке. Зачем тратить время на невостребованные вещи, если можно его потратить на те же базы данных и паттерны проектирования? Я, как наниматель, выберу того, кто больше в базах сечет, чем того, кто знает низкоуровневое устройство ОС и регистры процессора.
                                                                              0
                                                                              Знать устройство ОС, архитектуру процессора для разработчика совершенно не обязательно — это мало где востребовано в коммерческой разработке.

                                                                              Если исключить из выборки ИТ гигантов с проблемами хайлоада то да совершенно не обязательно. Если не хочется создавать инструменты для других разработчиков то не нужно. Есть много стартапов где вы с этим не столкнетесь и энтерпрайза где это вообще не актуально.
                                                                              Когда же стартап начнет расти то всегда можно вовремя уйти на +500$ в другой. Все верно.
                                                                              Я, как наниматель, выберу того, кто больше в базах сечет, чем того, кто знает низкоуровневое устройство ОС и регистры процессора.

                                                                              Вы смотрите со своей колокольни. То что на ней нету места embedded или геймдеву я уже понял. Все место заняли базы и паттерны. Через 10 лет бывший студент решит что перекладывание json из адаптера в фабрику ему больше не мило и хочется работать в каком-то research проекте или уйти в забористый хайлоад с тем же Растом. Тут и окажется что его знаний недостаточно, а паттернами эту дыру не закроешь. Нужно учить с нуля и окажется что в 30 лет абсолютно новые вещи и учатся не так легко как в 18 и обязательств уже побольше. А был бы у него фундамент, пускай и почти забытый, было бы гораздо проще.
                                                                                0
                                                                                Вы думаете, я таких не собеседовал, кто со знаниями 20-летней старости приходил? Таких немало разработчиков, кто засиделся где-то, вышел на рынок, а тут уже все поменялось и весь тот «фундамент» уже давно не актуален. Хочешь иметь востребованные знания и умения на рынке труда — нужно держать нос по ветру и постоянно учиться. Либо придется как программистам на Коболе — сидеть в своей узкой нише.
                                                              0
                                                              Если в обучение поставить телегу впереди лошади то получим «спеца» по фигурному написанию yaml

                                                              Прям до слёз, учитывая, что я сейчас как раз с Home Assistant разбираюсь…
                                                              +8
                                                              Самое страшное, что люди с таким мнением могут оказаться моими нанимателями :)

                                                              Раскрою:
                                                              — когда знание инструментов важнее знания принципов
                                                              — когда копипаста — нормальное явление в проекте
                                                              — когда менеджерство и софт скиллы (управление тех. долгом и легаси кодом) — важнее элементов computer science.

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

                                                              Процитирую бессмертное:

                                                              «Где же работает типичный настоящий программист? Какие программы достойны таких талантливых индивидумов? Вы можете быть уверены, что настоящий программист не умрет за написанием программы „Зарплата“ на Коболе или сортируя список почтовых отправлений журнала People. Настоящий программист желает задачи с важностью землетрясения.

                                                              Настоящие программисты работают на национальную лабораторию в Лос-Аламосе, создавая программы на супер ЭВМ Cray-1, моделирующие атомную бомбу. Они так же работают на Агенство по Национальной Безопасности, расшифровывая передачи русских.»
                                                                –8
                                                                Как-то мудрено и непонятно Вы излагаете свои мысли. Кстати, для разработчика говорить ясно и кратко — это большой плюс, экономит массу времени и денег для компании.
                                                                +13

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


                                                                А вот эти вот ужасы современных ИТ, когда драйвер мышки занимает гигабайт, а для того, чтобы просто отобразить без тормозов на экране таблицу из пары тысяч записей, нужно покупать многопроцессорные ПК, написали, в основном, вот эти разработчики, которых вы упоминаете. Которые копируют из SO и подключают 10 тысяч библиотек на JS, чтобы отобразить 2 строчки текста.


                                                                Автор этих книг — наш отечественный Столлман, такой же техноманьяк-параноик. Что нисколько не умаляет его заслуг.


                                                                P.S. Приведу простой пример программистов и разработчиков: возьмите любой современный мессенджер типа Skype или любую другую дрянь на Electron. Это гигантские, невероятно кривые и тормозные комбайны, которые сжирают все ресурсы компа, чтобы просто отобразить пару строк текста на экране и смайлик. В 90-е годы такие программы занимали несколько десятков килобайт и работали мгновенно на древнем железе.


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


                                                                Недавно был только первый релиз, пока только что-то одно он подключил. Но все равно этот проект стоит упоминания и помощи: https://volt-app.com/
                                                                Я смотрю на скорость прокрутки сообщений и понимаю, что это писал именно программист и именно таким это и должно быть — и скорость работы и размер программы. А большинство современных разработчиков нужно перепрофилировать в более полезных специалистов, потому что они кроме энтропии ничего не увеличивают в этом мире.

                                                                  0
                                                                  А где можно посмотреть на этот язык и его компилятор?
                                                                    +5
                                                                    Там все ссылки:
                                                                    volt-app.com
                                                                    vlang.io
                                                                    github.com/vlang/ui
                                                                    Ну и всякие github.com/vlang/doom

                                                                    Стоит прочитать всё на этих сайтах (там немного), чтобы понять, насколько Alex крут и насколько далеки от него все эти «разработчики». Люблю таких ребят, сам таким так и не стал, но всегда ими восхищался.
                                                                      0
                                                                      Спасибо, очень интересно. Есть ли еще информация о Alex-е и его проектах?
                                                                        +2
                                                                        Это всё, что я про него знаю: github.com/medvednikov
                                                                        Не удивлюсь, если он тут тоже зареган :)

                                                                        Думаю, все хотели бы быстрый, удобный, мультипротокольный и мультиплатформенный мессенджер. Так что стоит помочь его проекту, рублем или другим вкладом.
                                                                        Ну и в целом языку V и его библиотекам.
                                                                          0
                                                                          Думаю лучше всего контрибютить кодом — это и проект продвигает и способствует самообучению
                                                                            0

                                                                            зареган :)

                                                                          +1
                                                                          www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=plaintext
                                                                          pico.v на этом языке еще и топ 1 в plaintext benchmark. Не знал что этот язык проект одного человека.
                                                                            +2
                                                                            в языке очень много проблем, а также много высказывайний автора, которые на самом деле не являются правдой. автор языка банит всех несогласных.
                                                                            например, чистые функции на самом деле имеют побочные эффекты, заявлено что бинари V не зависят от динамических библиотек (как в GO), но это также неверно.
                                                                            подробнее тут:
                                                                            news.ycombinator.com/item?id=25511073
                                                                            christine.website/blog/vlang-update-2020-06-17
                                                                              +1
                                                                              Я бы скорее удивился, если бы он так себя не вел. Такие люди обычно с примерно похожим поведением, даже автор этих книг из поста тоже очень своеобразный человек, можно на linux.org.ru почитать полемику с ним, весьма занимательно.
                                                                              Такой себе Виталий Луговский на минималках, если тут еще кто-то помнит, кто это такой :)
                                                                                +1
                                                                                Тут другое, Луговский был эталонным троллем из любви к искусству и весь его троллинг было социальным проектом, спасибо ему за это большое — я с его подачи записал себе изучить форт и лисп.

                                                                                Когда же автор блочит нескогласных, или просто откровенных диллетантов — это уже другая мотивация…

                                                                                Жаль, таких как Виталий сейчас не делают )
                                                                                0

                                                                                никто не банится, очень открытое коммьюнити, заявлений про независимость от dynamic libs не было, и системная libc (system api) такая себе зависимость

                                                                              +3
                                                                              Компиляция своего же компилятора на V — меньше секунды.
                                                                              Автоматически сконвертированный из C в V Doom — компиляция меньше секунды.
                                                                              Блин, ну почему все программисты не такие? :)
                                                                                +3
                                                                                Потому что они «разработчики» ))
                                                                                  +2
                                                                                  Блин, ну почему все программисты не обманывают людей и не делают беспочвенных заявлений, которые не имеют ничего общего с реальностью?

                                                                                  Поправил

                                                                                +2

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

                                                                                  –1
                                                                                  Т.е. он не работает? Или как-то не так работает?
                                                                                    +3

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

                                                                                      0
                                                                                      Я не знаю этот язык, просто решил погуглить у него исходники. То, что вы упомянули про curl, у него, оказывается, было: /vlib/net/http/download_nix.c.v (но он закомментировал этот код в 2019 году).
                                                                                        0

                                                                                        Даже если "исправил", это всё равно не отменяет того факта, что дата релиза 0.2 постоянно сдвигается.

                                                                                          0
                                                                                          0.2 зарелижен 3 месяца назад.
                                                                                        0
                                                                                        проблема управления памятью "решена" тем, что память никогда не освобождается

                                                                                        "Настоящие программисты" выше того, чтобы беспокоится о такой ерунде. Это удел "разработчиков". :))

                                                                                          0
                                                                                          Компилятор не поддерживает больше 50 тысяч операторов в main

                                                                                          а зачем?


                                                                                          лексер проглатывает непарные скобки

                                                                                          нет


                                                                                          память никогда не освобождается

                                                                                          https://www.youtube.com/watch?v=gmB8ea8uLsM


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

                                                                                          нет, используются openssl/schannel


                                                                                          это ж надо такую дизинфу продвигать

                                                                                            0
                                                                                            Простите, больше 50 тысяч операторов всего в программе, или именно в функции main?
                                                                                              0
                                                                                              в одной любой функции
                                                                                        0

                                                                                        спасибо, приятно :)

                                                                                      +1
                                                                                      Странный сайт у автора. Чёрный текст на тёмном фоне.
                                                                                        +1
                                                                                        Столяров крутой мужик! Не то чтобы я прям сильно пользую те знания, что он дал, но всё равно много стало понятнее в общем. Спасибо за новость!
                                                                                          0

                                                                                          Забавно, все три тома состоят из одинакового количества страниц.

                                                                                            0
                                                                                            Неплохие книги и бесплатно, автору надо только спасибо за это сказать, а не хейтить. Не нравится — напиши и выложи свои.
                                                                                            Знания никогда и никакие лишними не бывают. Если ты освоил любой язык программирования на отлично, то и любой другой, при необходимости его на работе, освоишь быстро и без больших проблем.
                                                                                              +1
                                                                                              Не нравится — напиши и выложи свои.

                                                                                              То есть критиковать нельзя, а я должен пойти писать свои книжки? Интересная у Вас логика. Вот представьте, Вы приходите в ресторан и заказываете еду. Вам не нравится, Вы говорите официанту, а он такой — «Ну не нравится, открывайте свой ресторан и там готовьте». Это нормально?
                                                                                                +1
                                                                                                Аналогии — такие аналогии. Скорее: вы приходите в «кулинарный техникум», говорите, что вас неправильно учат, а вам: «Ну не нравится, открывайте своё ПТУ и там учите готовить».
                                                                                                Учебник — не готовая еда.
                                                                                              0
                                                                                              Содержание книг очень интересно, обязательно буду читать. И выражу пожелание, чтобы автор написал ещё и 4 том — про JVM-языки, функциональный подход и параллельное выполнение.
                                                                                                0

                                                                                                Про функциональный подход написано в третьей книге

                                                                                                  0

                                                                                                  А лисп и схема это не про функциональный подход?

                                                                                                  +1
                                                                                                  Книги отличные! Помню, читал первую часть, автор очень хорошо объясняет.
                                                                                                  И начинает именно с азов, с Ассемблера, Си, устройства ОС.

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

                                                                                                  Самое читаемое