xaxam: (Default)
[personal profile] xaxam

Пароль: BALR 13. Отзыв: USING *

Зная по опыту, что среди читателей "ХВ" есть много "программистов" (см. ниже), хотел бы задать несколько вопросов, в основном имея в виду малолетних родственников, рождённых уже в 21 веке.

Есть ли вообще такое понятие, как "программирование"? Понятно, что масса людей инженерных, технических и физических специальностей ежедневно использует компьютер в своей работе, но это скорее часть необходимой профподготовки инженера, физика, как умение пользоваться микроскопом или отвёрткой в лаборатории. Скажем, пользование каким-нибудь матлабом, даже если оно подразумевает написание довольно длинных скриптов, вряд ли можно отнести к "программированию". А существует ли оно, "бесцельное" программирование, вообще? Остальные вопросы подразумевают, что ответ на этот вопрос, - "да". Какие нужны оговорки?

Как люди приходят в эту область? В "наше время", когда компьютеры были большие, а мини-ЭВМ и персоналки только-только появлялись, было два потока: либо через факультеты математики/физики, где не учили никакому программированию (в лучшем случае, каким-то численным методам), но "тренировали мозги". Либо, наоборот, в программисты попадали выпускники "профильных" институтов, где конкретно учили бесконечные фортраны-PL/I-паскали-бейсики, позднее сишарпы, базы данных, сетевые протоколы и пр., имея в виду приложения в специальных областях (АСУ и пр.).  

Сейчас я в основном вижу, как в "программирование" приходят люди после университетов/колледжей со специальностью math/computer science (речь идёт о хеломских университетах), но это может быть из-за аберрации (то, что видно с моей кочки). Это в самом деле так?

Ну, и самый важный вопрос, с высоты вашего опыта и карьеры: где лучше учиться "на программиста"? Что учить? Особенно интересно (с практической точки зрения) мнение москвичей и/или знакомых с московскими университетами/институтами по состоянию на сегодня.

Date: 2017-07-20 11:36 am (UTC)
From: [personal profile] malobukov
Программирование - важный и полезный навык, но я не рекомендую делать его профессией. Человек должен уметь водить автомобиль и печатать слепым десятипальцевым методом, но не надо идти работать водителем или секретарём-машинисткой.

Программирование полезно в связке с чем-то ещё. Программирование плюс статистика = data science, плюс финансы = кванты и HFT, плюс биология = биоинформатика и так далее. Поэтому я рекомендую нащупать эту главную область и всерьёз изучать именно её. А программирование - в дополнение.

Date: 2017-07-20 12:04 pm (UTC)
signamax: (Default)
From: [personal profile] signamax
как человек который часто берет машины в прокат - я не всегда даже могу вспомнить я брал механику или автомат - мне все равно что водить

но по сути согласен - новое поколение будет кодить как мы водим машину не будучи ни шоферами ни гонщиками

если только какой то прыткий йуноша не решает стать именно гонщиком

учат ли на гонщика или это в основном самообразование?

Все сравнения хромают

Date: 2017-07-20 02:29 pm (UTC)
From: [personal profile] malobukov
Я видел результаты исследований, которые говорят, что у опытных пользователей практическая скорость набора текста вслепую и взрячую одинакова. Просто глаза освобождаются и могут при этом на что-то ещё смотреть. Я печатаю вслепую по-русски просто потому что нет русских букв на клавиатуре.

Ручная коробка передач традиционно используется в сравнениях как аналог программирования на C, автоматическая соответствует питону или Java.

Re: Все сравнения хромают

Date: 2017-07-20 02:40 pm (UTC)
From: [personal profile] jamhed
Imo C, Java и Python между собой не различаются.
dimview: (Default)
From: [personal profile] dimview
Для человека, который знает C, нет большой разницы между C и питоном. Так же как для человека, который умеет ездить на ручной коробке передач не представляет большой проблемы пересесть на автомат.

А вот в другую сторону возможны проблемы. Знаю людей, которые не понимают указатели, хотя это в общем совсем простая вещь. Просто не все так думают, многим неинтересно и некогда лезть в низкий уровень.
From: [personal profile] jamhed
> А вот в другую сторону возможны проблемы.

Это уже тут пояснялось словами вида программисты и "программисты". В РФ вот любят программистами вообще кого попало называть, типа если бумагу в принтер заправлять умеешь, то значит программист.
Edited Date: 2017-07-20 03:48 pm (UTC)

Не всё так однозначно

Date: 2017-07-21 01:38 am (UTC)
dimview: (Default)
From: [personal profile] dimview
Можно всю карьеру работать с SAP или SAS и никогда не трогать низкий уровень с указателями. Знаю программистов (без кавычек), которые легко меня обгоняют в разработке современных GUI на новомодных фреймворках или в органицации представления данных в реляционных базах, но при этом не знают разницы между red-black tree и skip list-ом.

Date: 2017-07-20 11:44 am (UTC)
signamax: (Default)
From: [personal profile] signamax
есть области человеческих знаний где с развитием отрасли надо знать все больше и больше и требования все выше и выше

"программирование" относится ровно к противоположной области

если в 60-70 в "программисты" шли университетские математики то сейчас "программированию" учат трех-месячные курсы на брайтон бич

я понимаю что кто-то скажет про разный уровень и разное программирование
я же скажу про зарплаты
так вот если чел street smart и продолжает сам учится разным языкам и умениям то зарплата программиста с трех-месячными курсами за спиной (без какого либо образования вообще) может запросто превышать зарплату программиста с очень высшим математическим программистским образованием и наивысшим образом мысли.

программирование вышло из области "университетских знаний" и превратилось в skill которым может овладеть пытливый и талантливый школьник или недоросль сам

поэтому я считаю что "программированию" как профессии учиться не надо

Date: 2017-07-20 12:01 pm (UTC)
signamax: (Default)
From: [personal profile] signamax
я не особенно кручусь в этой области но лично знаю людей с трех-месячным образованием на зарплате >$200K

при этом естественно их больше чем архитекторов процесса

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

поскольку это не моя область оценить из мастерство я не могу
но могу прикинуть как их мастерство оценено другими по их - приблизительно - зарплатам

Date: 2017-07-20 12:29 pm (UTC)
signamax: (Default)
From: [personal profile] signamax
как выше описали пипл тоже не особо видит корреляцию между умением программировать и дипломом

умение быть прорабом - это скорее другой скил

впрочем мой взгляд одновременно и интересен и не интересен
это взгляд человека со стороны

если мне нужно построить дом то да я приглашу архитектора а не рабочего

Date: 2017-07-20 02:41 pm (UTC)
From: [personal profile] jamhed
> Есть много примеров?

Да полно, на любом сайте вакансий, 2-3 года и типа senior developer. А уж что внутри корпораций делается.

Есть разница

Date: 2017-07-20 12:07 pm (UTC)
From: [personal profile] malobukov
Есть программирование, а есть "программирование". Совершенно необязательно знать, кто такой Кнут и что означает большая буква О, чтобы строгать интернет магазины и прочий CRUD. Но тогда придётся по цене конкурировать с подобного уровня "программистами".

Самостоятельно овладеть программированием занимает те самые пресловутые 10 тысяч часов. В университет при этом можно ходить, а можно не ходить. Я не наблюдаю корреляции между наличием диплома по Computer Science и умением программировать (без кавычек).

Date: 2017-07-20 01:51 pm (UTC)
nechaman: (Default)
From: [personal profile] nechaman
У меня дочь не хотела быть программистом, а хотела заниматься электроникой, кончила университет (иерусалимский), работу не нашла, уже много лет работает программистом.
Кстати, со мной больше сорока лет назад случилость то же самое.
(Правда уже лет тридцать я программистом не работаю, а в то что я когда-то писала в кодах никто не верит:)

Date: 2017-07-20 02:36 pm (UTC)
nechaman: (Default)
From: [personal profile] nechaman

А я поступала на мехмат в 68 году, но меня там завалили на физике. Проходной бал был 13. По письменной математике у меня было 4, по устной - 5, и поэтому тройка по физике вполне была достаточна, чтобы я прекратила мечтать об университете. А тем, кто получил 5 и 5 приходилось ставить двойку. Но некоторые все же добились на аппеляции изменении оценки и поступили. Может, если бы я пошла тогда на аппеляцию, у меня бы тоже что-то вышло, и жизнь сложилась иначе :) А так я кончила вечерний МИЭМ и все годы, пока в России работала писала программы. Такие программы сейчас, конечно не пишут. Я потом для всяких дел еще лепила програмки для сети, на флеше, PHP и пр. Но все они, при всем моем старании попахивали старинными методами программирования, должна честно признаться. Хотя и работали.

20 июля 2017 г., 17:01 пользователь xaxam - DW Comment < dw_null@dreamwidth.org> написал:

Date: 2017-07-20 02:36 pm (UTC)
From: [personal profile] jamhed
> Есть ли вообще такое понятие, как "программирование"?

Вообще есть, и бурно развивается, особенно когда удалось теорию категорий применить в качестве оснований. Вообще идей там несколько: как писать программы которые гарантированно работают (доказанные в математическом смысле), и как вообще не писать программ (типа нейросети сами научатся). Собственно программистов которые пилят годами что-то узкоспециальное большинство, и пилить это самое они будут ещё долго (если в упомянутых областях прорыва не будет, но пока что там только улучшения и первые подходы к предмету).

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

На самом деле можно, но думается мне сам mathlab этому не способствует. Но вот программирование в agda, isabelle/hol или coq местами от деятельности математика не отличается совсем, но тем не менее является программированием.

Date: 2017-07-20 03:18 pm (UTC)
cohenj: (Default)
From: [personal profile] cohenj
Первое утверждение - абсолютно верно.
Второе несколько спорно: да. Есть математики, которые разбираются во всяких там когомологиях, и имеют сильный "мозговой мускул". Но в народных глазах тот, кто умеет хорошо и быстро деньги считать, тоже математик.
Поэтому переиначивая вас "написание довольно длинных скриптов, ... можно отнести к "программированию"
А про третье - умолчу, т.к. понятия не имею про что речь.

Date: 2017-07-20 10:26 pm (UTC)
chaource: (Default)
From: [personal profile] chaource
Однако, есть и особое "программированiе какъ таковое", независящее отъ области приложенiя. Это обычно нелегко изучить самостоятельно безъ опыта работы въ коллективѣ, гдѣ можно перенимать опытъ, смотрѣть на уже существующiй кодъ, пытаться его улучшить и т.д. Типичная проблема "программированiя какъ такового" - какъ и когда надо переписывать существующiй кодъ въ видѣ библiотеки, и какiя части кода и какъ нужно включать въ такую библiотеку, чтобы было легко потомъ разрабатывать новыя функцiи программы, а также легко ихъ тестировать.

"Программированiе какъ таковое" до послѣдняго времени являлось чисто кустарнымъ занятiемъ вродѣ ремонта автомобилей. Изучать это дѣло лучше всего пару лѣтъ въ ПТУ (гдѣ полезно попрактиковаться въ такихъ технологiяхъ, какъ version control system, test-driven development, continuous integration & deployment, debugging & profiling, relational domain design, OOP architecture design, etc.) и дальше уже набирать опытъ непосредственно на рабочѣмъ мѣстѣ.

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

Однако, въ послѣднiя 20 лѣтъ развиваются языки программированiя новаго типа (ML, OCaml, Haskell, Scala etc.), использующiе functional programming и основанные на "functional type theory". Эта теорiя впервые даетъ программисту нѣкоторыя строгiя математическiя средства для написанiя программъ, когда программистъ сначала производитъ нѣкiя вычисленiя въ теорiи типовъ и лишь потомъ начинаетъ писать кодъ.

Естественно, теорiя покрываетъ далеко не всѣ практическiе вопросы программированiя, но такое положенiе естественно для инженерныхъ дисциплинъ. Напримѣръ, радiоинженеръ пользуется теоретической электродинамикой и вначалѣ дѣлаетъ нѣкiя вычисленiя, чтобы спроектировать антенну для новой радiостанцiи, но теорiя описываетъ далеко не всѣ аспекты такого проектированiя.
Edited Date: 2017-07-20 10:30 pm (UTC)
brevi: (Default)
From: [personal profile] brevi
Eщё один аспект, на мой взгляд, немаловажный. Человек, приходящий на работу "программистом" в современную большую компанию, скорее всего, сталкивается с ситуацией, когда от него требуется исправить/дополнить/улучшить что-то в уже существующей здоровенной системе, а не придумывать что-то с нуля на пустом месте. Поэтому навыки быстро разобраться в архитектуре, дизайне и мелочах написанного другими кода (чаще всего, кошмарно сляпанного) ценятся едва ли не выше способности производить свой собственный код.

Date: 2017-07-26 06:27 pm (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Я бы сравнил обычное программирование, которым занимается большинство (без категорий и даже знания алгоритмов) с работой переводчика.

Знаешь N языков программирования и переводишь ТЗ с человеческого языка на формальный.

Естественно, надеются когда-либо автоматизировать такой перевод.
Edited Date: 2017-07-26 06:29 pm (UTC)

Profile

xaxam: (Default)
xaxam

January 2026

S M T W T F S
     1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 2324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 23rd, 2026 08:59 am
Powered by Dreamwidth Studios