Что нужно изучить, чтобы знать «Основы программирования»?
Летом открываются курсы, и в одном из пунктов было важно знать основы программирования. Я знаю, что такое основы и даже знаю и понимаю. Но конкретно, что надо знать, — нет. Не ясно, на каком языке мы будем работать, но знаю, что будет на блокчейн-системе. Я знаю азы Питона, в данный момент на нём хочу кодить. Так что нужно знать, чт бы я мог сказать, что знаю основы программирования?
Основы программирования это книга Д. Кнута "Искусство программирования".
Но тот кто осилит эту книгу хотя бы на половину ни в каких курсах не нуждается.
PS Запомни раз и навсегда: курсы это один из множества способов "честного отъема денег у населения" и не более
В корне с вами не согласен. Мало того, что для прочтения и понимания хотя бы первой части (да, многие и не подозревают, что это несколько книг) необходима неплохая математическая подготовка, так вы ещё и этими знаниями вряд ли в скором времени сможете воспользоваться, если вообще сможете. Книга в большей степени для CS-теоретиков. Т.е. реально стоит её прочитать примерно 1% программистов. Для понимания алгоритмов есть более практичные книги: Седжвик для совсем практиков и Кормен для немного математиков.
Тот кто осилит эту книгу в большинстве случаев просто потратит время зря и даже близко не изучит основы разработки программного обеспечения.
Пипец!
Мне эта книга попала в очень поздно и когда я ее читал то понимал, что самому пришлось изобретать кучу велосипедов и тратить на это массу драгоценного времени. Что касается понимания первого тома, то тот кто не понимает что там написано писать программы неспособен.
Возможно я вас удивлю, но компьютер это не более чем "калькулятор на стероидах" и как любой калькулятор может только складывать, вычитать, делить и умножать. Т.е. компьютер это математика в чистом виде.
Правильно говорят, что среднестатистический программист в 40-60-е это ученный-математик; 70-90-е - инженер; 2000-е - бухгалтер, экономист. В наше время программист это тупой прыщавый подросток.
Что касается понимания первого тома, то тот кто не понимает что там написано писать программы неспособен.
Бездоказательно, что бы вы не понимали под программой.
Возможно я вас удивлю, но компьютер это не более чем "калькулятор на стероидах" и как любой калькулятор может только складывать, вычитать, делить и умножать. Т.е. компьютер это математика в чистом виде.
Основы арифметики вы хотели сказать? Ну так Кнут тут не нужен, хватит и начальной школы :)
Правильно говорят, что среднестатистический программист в 40-60-е это ученный-математик; 70-90-е - инженер; 2000-е - бухгалтер, экономист. В наше время программист это тупой прыщавый подросток.
Со временем сфера развивается и усложняется, появляются новые уровни, а следовательно и чётче формируются обязанности и появляются специализации. Те самые учёные-математики никуда не делись, просто их нужно существенно меньше сравнивая с прикладной сферой. Возможно 1 учёный на 10к рядовых программистов. Учёные в IT и разработчики работают совершенно над разными вещами и я бы не стал сравнивать их интеллект, основываясь на этом. По моему опыту, там где учёный спроектируют немасштабируемую и в целом печальную архитектуру, напишет неподдерживаемый код и т.п., программист справится намного лучше. И наоборот, программист часто может долго биться над простейшей для учёного вычислительной задачкой. Это означает лишь то, что разные специалисты должны работать вместе и отвечать за разные вещи чтобы получился качественный продукт.
Ну так Кнут тут не нужен, хватит и начальной школы :)
Кнут не учит арифметике, он учит писать программы
Со временем сфера развивается и усложняется,
Чудо, кто по твоему все "развивает" и "усложняет"? 99.999% так называемых современных "программистов" тупо используют сейчас то что когда-то было создано умными людьми.
По моему опыту грамотный специалист (не обязательно ученый) делает то что нужно (нужно масштабируемое - делает масштабируемое, не нужно - не делает), а тупой подросток тупо кидает понты
Я и не писал, что он учит арифметике. Но и с утверждением о том, что он учит разработке ПО я не согласен. Если очень кратко сформулировать то, что я написал выше: современная разработка ПО это далеко не только знание алгоритмов и фундаментальных основ информатики. Что не значит что эти знание не нужны, но и не говорит об их обязательном наличии.
Чудо, кто по твоему все "развивает" и "усложняет"? 99.999% так называемых современных "программистов" тупо используют сейчас то что когда-то было создано умными людьми.
Тут нет различий с обществом любого времени. Довольно-таки глобальное наблюдение, что научно-технический прогресс делает ~1% общества, а остальная его часть просто потребляет. Это не слишком-то и зависит от сферы. Однако же, нельзя не заметить, что прогресс невозможен без базы и накопленных знаний. А вот вклад в базу знаний, без которого прогресс был бы в принципе невозможен, делает уже не только тот самый 1%. Учёный N не делает открытие/изобретение K на пустом месте, ему обычно предшествуют множество мелких открытий, выводов и наблюдений. Но вот, допустим, нобелевскую премию получает только учёный N :)
По моему опыту грамотный специалист (не обязательно ученый) делает то что нужно (нужно масштабируемое - делает масштабируемое, не нужно - не делает), а тупой подросток тупо кидает понты
Я полагаю, что состояние "тупой подросток" никак не связанно с тем, читал ли человек Кнута или не читал, есть ли у него фундаментальные знания в информатике или нет. Человек может быть хорошим специалистом (выполнять свои обязанности с должным качеством) в области разработки ПО без вышеописанных знаний, а может быть и плохим специалистом имея их. Слишком много факторов и невозможно ничего сказать без конкретики.
Мало того, что для прочтения и понимания хотя бы первой части (да, многие и не подозревают, что это несколько книг) необходима неплохая математическая подготовка
А первую и не надо.
Достаточно том про сортировки прочитать.
Нужно общие основы изучить, историю языков, структуры данных и алгоритмы:
основания программирования - непейвода скопин
основы программирования - иванова
базы данных, разработка приложений - рудикова
базы данных - хомоненко циганков мальцев
То что создатели курсов подразумевают под основами программирования надо выяснять у них.
Рекомендую прочитать книгу Чарльз Петцольд Код + любой язык на базовом уровне. Этого должно хватить.