Коротко о математике и преподавателях
На лекции по дискретному анализу, лектор выдал вещь, которая, как мне кажется, лучше всего описывает всю математику: “Я, честно говоря, не знаю, почему это равенство верно, но я вам это сейчас докажу”
На лекции по дискретному анализу, лектор выдал вещь, которая, как мне кажется, лучше всего описывает всю математику: “Я, честно говоря, не знаю, почему это равенство верно, но я вам это сейчас докажу”
Делфи ничем не отличается от других языков ООП, кроме, разве что, синтаксиса. Если ты умеешь программировать - ты умеешь программировать на любом языке, ибо программа - это в первую очередь алгоритм, а только потом уже синтаксические костыли на понятном компьютеру языке.
Ага, написал ты код на плисину для управления гироскопом за неделю, а потом месяц сидишь ищешь костыли. Всего - то.
Главное помнить, что всегда есть несколько способов описать тот или иной алгоритм, но работает всегда только один. Но не всегда один и тот же)
Это то чему я научился в первую очередь)
Может ты с багами перепутал, которые ты месяц будешь отлавливать? Любой язык программирования - это глобальный костыль для того, чтобы компьютер понимал человека.
Если ты знаешь как работает гироскоп - тебе не составит труда написать алгоритм для обработки его работы чисто в голове. А после придумывания и обсасывания алгоритма, ты уже начинаешь писать программу с помощью интерфейса-костыля - языка программирования.
Почему работает только один?
Я вот могу знак у числа поменять двумя простыми способами: умножить на -1 или отнять от 0, и оба этих способа работают.
Я к слову, раньше чисто под десктоп писал, год назад перебрался на ардуины - мгновенно все понял, а сейчас вот спокойно перешел на стм32, немного углубившись в микросхемы. До ПЛИСа с ассемблерами мне еще далеко (да и не надо мне, я все таки не инженер супер сложных и точных конструкций), но как работает МК я более-менее понимаю.
Когда-нибудь студенты будут говорить компьютеру "хочу чтобы ты находил знаки на загружаемых фото, и автоматически пересылал их в ГИБДД" и комп такой "Ок, братан, понял! Все готово. Запусти вот_эту_фигню.ехе и загрузи фото, а еще можешь создать активное подключение к айпи камере и я сам все буду автоматом обрабатывать, а еще я тут фичу одну сделал...".
суть в том, что все языки имеют свой набор косяков. И важно знать эти косяки и уметь их быстро исправлять.
Ну так в том то и дело, что пишешь не на логичном-русском, а на костылях конкретного языка. Я как раз об этом и написал в начале:
синтаксические костыли на понятном компьютеру языке
Низкоуровневые вещи в любом языке одинаковы просты и правильны (исключая эзотерические языки), а косяки обычно в либах, которые неправильно делают те или иные вещи.
сравни self, apl, prolog, haskell.... мало что общего - алгоритм одной и той же задачи может кардинально отличаться при попытке решить её на этих языках.
Если ООП программиста припрет писать на функциональном языке программирования - ему потребуется пару ночей, чтобы понять как это все работает и изменить алгоритм под конкретный случай, а не придется учиться заново полгода перепечатывая примеры из книжек, чтобы понять, что "a = a + 1" перезаписывает переменную "a" числом на 1 больше.
Глянул примеры Erlang (никогда его раньше не изучал), и сразу понимаю, что делает следующая конструкция (где то в центре на вики-странице):
try math:sqrt(-1) catch error:Error -> {error, Error} end.
Попробуй выдрать корень, если не получилось - выведи ошибку.
Clojure же использует какие-то непонятные мне слова, и пока я не знаю что они делают - объяснить код сложно.
Читаю статью про ерланг - функциональный язык программирования, и там куча присваиваний. Разве что присваивания не обычные, но они есть, и как вообще что-то можно решить не присваивая исходных значений?
Замена формальных параметров фактическими это все же не присваивание в классическом смысле. Присваивание - это перезаписывание значения переменной. А в функциональном программировании такой операции нет.
И как по твоему это происходит? Новое значение результата функции просто подвешивается в воздухе? Нет. Так же присваивается в обозначенную область памяти. Может называется это по-другому, но действие остается прежним.
Роза пахнет розой, хоть розой назови ее, хоть нет.
Это только частный вид присваивания. Как и при вызове функции в обычном языке. Но вот изменить присвоенное значение уже нельзя. Оператора присвоения в общем виде нет. Больше того, нет даже такой структуры, как последовательное выполнение.
Если ты умеешь программировать - ты умеешь программировать на любом языке
А если ты умеешь водить - то умеешь водить что угодно. Автобус, экскаватор, мотоцикл - пофигу.
Ну, типа да. С мотоциклом, конечно немного сложнее - там надо равновесие держать.
А в остальном да, автобус, машина, экскаватор. Все управляется примерно одинаково.
А в чем проблема водителю со стажем имея мануалы за недельку разобраться с управлением экскаватора?
А экскаваторщик за недельку подготовится к соревнованиям по мототриалу?
Во-первых, языки различаются не только синтаксисом, иначе их не было бы так много. Ладно ООП везде примерно одинаковый, но это же не единственная в мире парадигма. И потом, на работе не дадут спокойно сидеть и разбираться. Обычно требуется человек, который примерно представляет стек технологий в данной области и ориентируется в основных фреймворках. Сишника-железячника никогда не возьмут в проект на каком-нибудь Ruby on Rails.
Тут два варианта:
1. Потому что HR идиот. Самый частый вариант.
2. Потому что разрабатываемый проект требует углубленных знаний языка, вплоть до конкретных версий библиотек.
Потому что работодателю нужен разработчик на конкретном языке и он не готов оплачивать то время которое ты будешь привыкать к новому синтаксису. Но если ты прям адово крутой кодер на одном языке и хорошо разбираешься в алгоритмах, то шанс того что тебя возьмут на вакансию с другим языком довольно велик.
Учусь в школе. В этом году пришёл новый препод по информатике. Лет 60-70, склерозный и с онемевшими пальцами уже. Стал готовить к ЕГЭ. А у нас только паскаль. Так препод объясняет, что хрен поймёшь как это делать. Я ему как-то снова говорю, что не понимаю, как это делать, на что он говорит, что сам не знает "этот ваш паскаль".
Вот так и сидим, приходится просить объяснять одноклассников, которые это изучали ещё в средней школе.