Жду комментарий комментариев:
— «очередной программист учит нас тому, как надо жить»
— «пустая болтология»
— «автора, наверное, кто-то в детстве очень сильно обидел»
Комментарию не хватает ссылок на первоисточники. А если их приводить, тогда будут не лестно упомянуты многие компании, в том числе Google(вдруг я там захочу работать), доклады из различных конференкций. А то, что касается outsource-компаний, работающих в Украине — это отдельная боль.
P.S:
Вы можете прочитать о немного другой точке зрения.
В любой профессии есть люди, которые выполняют работу профессионально и те, которые никогда не упустят возможности полениться.
Не стоит никого обижать, называя «недопрограммистами». Просто компаниям стоит тщательнее отбирать сотрудников. Эти недопрограммисты могут качественно вести переговоры с заказчиком, оформлять финансовые бумаги, объяснять простым языком то, что вы бы объяснили математической моделью.
На мой взгляд, такой должности внутри компании сущестовать не должно (тестовое задание на hackerRank, а после успешного выполнения техническое интервью + испытательный срок(если возникает потребность)).
«Программирую на ассемблере за еду», — никогда не любил эту шутку.
Сам был 3 года назад школьником, — у меня всё началось с комбинаторики и в районе 6-7-го классов переросло в программирование.
Сначала хотел написать короткий комментарий о том, что у математика в голове, как правило, порядок, ибо он умеет раскладывать вещи по полочкам и называть сущности своими именами и никогда не скажет: «Эту задачу нельзя решить, ибо что я не нашел подходящей библиотеки».
В итоге получилась некая смесь крика души и эссе, которое скорее адресовано всему миру, нежели кому-то индивидуально
В общем случае программист переживает за такие вещи, как:
алгоритмическая корректность
расширяемость
масштабируемость
производительность
эффективность
О сроках сдачи он не переживает до того помента, пока они не наступают.
Любой может научится пользоваться конкретной технологией(набором технологий) за 4 месяца на уровне достаточном, чтобы это занятие стало приносить прибыль.
Если это владелец магазина, который понял, что существует nginx, mysql, php, html, css, javascript и Magento — пожалуйста; круто, — он сможет сократить затраты на Интернет-магазин и, наверное, разберется с тем, как его раскрутить, чтобы получать от него прибыл, а не дополнительные расходы.
Но после этого ни экономист, ни владелец уже Интернет-магазина, не стали программистами.
Если ты закончил музыкальную школу по классу фортепиано, — это не означает, что ты можешь называть себя пианистом.
Быть проофессионалом в определенной сфере деятельности — это тяжкий труд. Одним он приносит удовольствие, другим — нет. Я с улыбкой на лице объясню человеку все преймущества и недостатки метода "Backpropagation" не написав ни одной формулы, после чего на вопрос «Как мне им воспользоваться?», я сошлюсь на Matlab backpropagation, а не отошлю человека на github.
Но я с трудом удержусь от соблазна «дать в лицо человеку», который будет кричать, что его многопоточная программа работает и выдает ± нужный результат и ему плевать, что в его коде есть data-race. Я скажу: «Я предупредил, а дальше твое дело. Ты не прав и я сказал почему. Мне с такими, как ты, еще работать, — пойди и исправь.»
Длинное не лирическое отступление
Я ненавижу, когда программист на С++ использует голые циклы, явным образом управляет ресурсами. Я ненавижу наблюдать в коде std::map<std::vector<std::map>> collection. Я ненавижу, когда кто-то бросает исключения, вместо, того, чтобы просто «не сделать ничего». Я не люблю, когда используют find вместо lower/upper_bound при поиске элемента в отсортированном векторе. Я не люблю, когда слышу, что вектор из 400 000 элементов — это огромная коллекция. Я не люблю, когда пользовательские типы ведут себя, не подобно встроенным. Я не люблю, когда все деструкторы становятся виртульными. Я не люблю, когда под отдельную фунецию создают новый файл. Я не люблю, когда в цикле for пытаются в условие прерывания написать все, что только поместится. Я не люблю, когда лямбда-функция занимает больше двух строк. Я не люблю, когда в заголовочных файлах в глобальном простанстве имен используется директива using. Я люблю С++, — он говорит мне: «ты берешь на себя ответственность за то, что ты пишешь, а я даю тебе тот уровень контроля, который ты захочешь и довольно дешевый способ построения абстракций». Я люблю С потому что он — не большой язык программирования, который дает возможно быть близким к железу, не прибегая к Ассемблеру. Мне не нравится, когда люди говорят, что ядро Linux должно быть переписано на C. Мне не нравится, когда кричат «мы должны писать на языке x вместо, языка y, ибо у языка y в стандартной библиотеке есть нужная функция». Мне не нравится, когда говорят, что мы должны использовать Rust потому что на языке С писать код трудно. Я ненавижу, когда говорят: «Хотите сделать фичу x, — пользуйтесь только технологиями множества Y».
И еще одно:
«Ненавижу, когда обижают одно из не безизвестных творений Никола Вирта». Возможно, этому языку программирования не стоит учить студентов на протяжении целого года, но 2-х часовой рассказ о его влиянии на языки программирования не повредит никому.
— Почему я хочу иметь дело с человеком, который знаком с математикой помимо всего прочего?
— Потому что в голове есть дисциплина. Я всегда смотрел на математику, как на приятную игру, в которой победить иногда бывает трудно. А, когда говорят о не нужности математики, — я Римскую империю.
Крик души
Меня трясет, когда я вижу Senjor Java-программиста, который знает только Java. Я морально готовлюсь к тому, что мне предложат написать HelloWorld, а потом заплюют, ибо для вывода сообщения я не создал отдельного класса с методом приветствия; жду еще рассказа о том, как хороша абстрактная фабрика(огромный кусок куда, который не делает ничего), о тысяче способов написать Синглтон, о том, как сказачно хорош Java EE, а Spring — вообще сказка, а те, кто пользуется PlayFramework — находятся на де, которое состоит из людей, которые любят RubyOnRails, но не согласны с его производительностью. А еще спросят о том перадаются ли параметры по значению, или по ссылке. Запоют песню о том, что нет указателей в Джаве и расскажут, что С++ — дрянь потому что он взял указатели из С. Потом сделают вывод, что мне нравится С++(так оно и есть, но это не мешает мне сказать то же самое о R, Python, Ruby, Rust и о некоторых других технологиях, свзязанных с этими языками… я умолчу о том, что для некоторых, задача я предпочту воспользоваться Java || Scala, ибо этот человек уже для себя решил, что Java я не знаю и ничего не смыслю в проэктировании, — да он ведь прочитал хорошую книгу, которую на Амазоне оценили в 4.5 звезды из 5, ее оценили бы в 5 балллов, но всё испортили такие зловреды, как я. Я ведь не говорю, что паттернам нет места в реальном мире, я только хочу, чтобы поменьше людей превращали их в религию).
P.S.:
Студент Стенфорда, получивший максимальный балл по всем предметам тоже не всегда может называть себя программистом. Почему? Он может вести себя, как физик, который недоученный физик, который знает все законы такого, что происходит в мире. Вот только есть одна беда: в физике остались вопросы, на которые не даны корректные ответы. На мой вгзляд самое страшное, что может случится с человеком — это утрата любопытства.
Вместо вывода
Вы можете подумать, что я слишком доволен собой(это не так, — у меня к себе всегда есть притензии). Русский язык слишком не однозначен. Дорогой читатель этого сообщения, вы можете меня не правильно понять, я мог описать свои мысли в слишком резкой форме. Я могу быть не правым; вы тоже можете ошибаться в своих убеждениях.
Мне нравится то, что я делаю и то. То, чему уделяю внимание, я считаю важным.
Как сказал маленький паж:
«Я не волшебник, я ещё только учусь, но любовь помогает нам делать настоящие чудеса.»
Мм! На сколько я понял, то вы говорите о КПИ и КНУ. Соглашусь.
Главная проблема в том, что студенту нельзя(трудно) объяснить, что есть список из «он должен»:
— «To know something about everything and everything about something»
— любить то, что он делает и стараться делать это лучше других
— уметь писать работающий код на бумаге
— знать математику и алгоритмы (благо, Дональд Кнут написал замечательную монографию)
— знать, как устроен современный компъютер и как это связано с ЯП, на котором он пишет
— уметь реализовывать протоколы и аглоритмы
Для школьников, зачитывающегося Драйзером, пример с акциями вполне хорош. Очень важно не перейти к сюсюканию при поиске примеров и автору это удалось. Присоединяюсь к предложению усложнять темы и примеры с сохранением текущего отличного стиля изложения.
Все больше убеждаюсь, что увидеть и предоставить то новое, что на данный момент готово воспринимать общество — причина успеха технологического продукта.
— «очередной программист учит нас тому, как надо жить»
— «пустая болтология»
— «автора, наверное, кто-то в детстве очень сильно обидел»
Комментарию не хватает ссылок на первоисточники. А если их приводить, тогда будут не лестно упомянуты многие компании, в том числе Google(вдруг я там захочу работать), доклады из различных конференкций. А то, что касается outsource-компаний, работающих в Украине — это отдельная боль.
P.S:
Вы можете прочитать о немного другой точке зрения.
В любой профессии есть люди, которые выполняют работу профессионально и те, которые никогда не упустят возможности полениться.
Не стоит никого обижать, называя «недопрограммистами». Просто компаниям стоит тщательнее отбирать сотрудников. Эти недопрограммисты могут качественно вести переговоры с заказчиком, оформлять финансовые бумаги, объяснять простым языком то, что вы бы объяснили математической моделью.
На мой взгляд, такой должности внутри компании сущестовать не должно (тестовое задание на hackerRank, а после успешного выполнения техническое интервью + испытательный срок(если возникает потребность)).
«Программирую на ассемблере за еду», — никогда не любил эту шутку.
Сначала хотел написать короткий комментарий о том, что у математика в голове, как правило, порядок, ибо он умеет раскладывать вещи по полочкам и называть сущности своими именами и никогда не скажет: «Эту задачу нельзя решить, ибо что я не нашел подходящей библиотеки».
В итоге получилась некая смесь крика души и эссе, которое скорее адресовано всему миру, нежели кому-то индивидуально
В общем случае программист переживает за такие вещи, как:
О сроках сдачи он не переживает до того помента, пока они не наступают.
Любой может научится пользоваться конкретной технологией(набором технологий) за 4 месяца на уровне достаточном, чтобы это занятие стало приносить прибыль.
Если это экономист, который научился пользоваться sklearn, ipython, pandas, scipy, numpy для анализа данных — отлично.
Если это владелец магазина, который понял, что существует nginx, mysql, php, html, css, javascript и Magento — пожалуйста; круто, — он сможет сократить затраты на Интернет-магазин и, наверное, разберется с тем, как его раскрутить, чтобы получать от него прибыл, а не дополнительные расходы.
Но после этого ни экономист, ни владелец уже Интернет-магазина, не стали программистами.
Если ты закончил музыкальную школу по классу фортепиано, — это не означает, что ты можешь называть себя пианистом.
Быть проофессионалом в определенной сфере деятельности — это тяжкий труд. Одним он приносит удовольствие, другим — нет. Я с улыбкой на лице объясню человеку все преймущества и недостатки метода "Backpropagation" не написав ни одной формулы, после чего на вопрос «Как мне им воспользоваться?», я сошлюсь на Matlab backpropagation, а не отошлю человека на github.
Но я с трудом удержусь от соблазна «дать в лицо человеку», который будет кричать, что его многопоточная программа работает и выдает ± нужный результат и ему плевать, что в его коде есть data-race. Я скажу: «Я предупредил, а дальше твое дело. Ты не прав и я сказал почему. Мне с такими, как ты, еще работать, — пойди и исправь.»
Длинное не лирическое отступление
Я ненавижу, когда программист на С++ использует голые циклы, явным образом управляет ресурсами. Я ненавижу наблюдать в коде std::map<std::vector<std::map>> collection. Я ненавижу, когда кто-то бросает исключения, вместо, того, чтобы просто «не сделать ничего». Я не люблю, когда используют find вместо lower/upper_bound при поиске элемента в отсортированном векторе. Я не люблю, когда слышу, что вектор из 400 000 элементов — это огромная коллекция. Я не люблю, когда пользовательские типы ведут себя, не подобно встроенным. Я не люблю, когда все деструкторы становятся виртульными. Я не люблю, когда под отдельную фунецию создают новый файл. Я не люблю, когда в цикле for пытаются в условие прерывания написать все, что только поместится. Я не люблю, когда лямбда-функция занимает больше двух строк. Я не люблю, когда в заголовочных файлах в глобальном простанстве имен используется директива using. Я люблю С++, — он говорит мне: «ты берешь на себя ответственность за то, что ты пишешь, а я даю тебе тот уровень контроля, который ты захочешь и довольно дешевый способ построения абстракций». Я люблю С потому что он — не большой язык программирования, который дает возможно быть близким к железу, не прибегая к Ассемблеру. Мне не нравится, когда люди говорят, что ядро Linux должно быть переписано на C. Мне не нравится, когда кричат «мы должны писать на языке x вместо, языка y, ибо у языка y в стандартной библиотеке есть нужная функция». Мне не нравится, когда говорят, что мы должны использовать Rust потому что на языке С писать код трудно. Я ненавижу, когда говорят: «Хотите сделать фичу x, — пользуйтесь только технологиями множества Y».
И еще одно:
«Ненавижу, когда обижают одно из не безизвестных творений Никола Вирта». Возможно, этому языку программирования не стоит учить студентов на протяжении целого года, но 2-х часовой рассказ о его влиянии на языки программирования не повредит никому.
— Почему я хочу иметь дело с человеком, который знаком с математикой помимо всего прочего?
— Потому что в голове есть дисциплина. Я всегда смотрел на математику, как на приятную игру, в которой победить иногда бывает трудно. А, когда говорят о не нужности математики, — я Римскую империю.
Крик души
Меня трясет, когда я вижу Senjor Java-программиста, который знает только Java. Я морально готовлюсь к тому, что мне предложат написать HelloWorld, а потом заплюют, ибо для вывода сообщения я не создал отдельного класса с методом приветствия; жду еще рассказа о том, как хороша абстрактная фабрика(огромный кусок куда, который не делает ничего), о тысяче способов написать Синглтон, о том, как сказачно хорош Java EE, а Spring — вообще сказка, а те, кто пользуется PlayFramework — находятся на де, которое состоит из людей, которые любят RubyOnRails, но не согласны с его производительностью. А еще спросят о том перадаются ли параметры по значению, или по ссылке. Запоют песню о том, что нет указателей в Джаве и расскажут, что С++ — дрянь потому что он взял указатели из С. Потом сделают вывод, что мне нравится С++(так оно и есть, но это не мешает мне сказать то же самое о R, Python, Ruby, Rust и о некоторых других технологиях, свзязанных с этими языками… я умолчу о том, что для некоторых, задача я предпочту воспользоваться Java || Scala, ибо этот человек уже для себя решил, что Java я не знаю и ничего не смыслю в проэктировании, — да он ведь прочитал хорошую книгу, которую на Амазоне оценили в 4.5 звезды из 5, ее оценили бы в 5 балллов, но всё испортили такие зловреды, как я. Я ведь не говорю, что паттернам нет места в реальном мире, я только хочу, чтобы поменьше людей превращали их в религию).
P.S.:
Студент Стенфорда, получивший максимальный балл по всем предметам тоже не всегда может называть себя программистом. Почему? Он может вести себя, как физик, который недоученный физик, который знает все законы такого, что происходит в мире. Вот только есть одна беда: в физике остались вопросы, на которые не даны корректные ответы. На мой вгзляд самое страшное, что может случится с человеком — это утрата любопытства.
Вместо вывода
Вы можете подумать, что я слишком доволен собой(это не так, — у меня к себе всегда есть притензии). Русский язык слишком не однозначен. Дорогой читатель этого сообщения, вы можете меня не правильно понять, я мог описать свои мысли в слишком резкой форме. Я могу быть не правым; вы тоже можете ошибаться в своих убеждениях.
Мне нравится то, что я делаю и то. То, чему уделяю внимание, я считаю важным.
Как сказал маленький паж:
Главная проблема в том, что студенту нельзя(трудно) объяснить, что есть список из «он должен»:
— «To know something about everything and everything about something»
— любить то, что он делает и стараться делать это лучше других
— уметь писать работающий код на бумаге
— знать математику и алгоритмы (благо, Дональд Кнут написал замечательную монографию)
— знать, как устроен современный компъютер и как это связано с ЯП, на котором он пишет
— уметь реализовывать протоколы и аглоритмы
Приятно читать статьи, которые соприкасаются с реальностью! Пусть и переводы.