Один знакомый, называющий себя "хорошим" программистом, говорит: "Я знаю основы, поэтому легко могу правильно написать любую программу, быстро освоить новую технологию и т. д...". Вот я и думаю, что есть эти "основы"? Ассемблер; умение решать алгоритмические задачи вроде ханойской башни ("алгоритмы и структуры данных"); Visual C++ с вездесущими объектами и копанием в устройстве Windows... или что-то ещё — я не знаю.
Интересно узнать ваше мнение с аргументами.
06.11.05 04:10: Перенесено модератором из 'Философия программирования' по просьбам участников — Alex Fedotov
Здравствуйте, kilonet2, Вы писали:
K>Один знакомый, называющий себя "хорошим" программистом, говорит: "Я знаю основы, поэтому легко могу правильно написать любую программу, быстро освоить новую технологию и т. д...". Вот я и думаю, что есть эти "основы"? Ассемблер; умение решать алгоритмические задачи вроде ханойской башни ("алгоритмы и структуры данных"); Visual C++ с вездесущими объектами и копанием в устройстве Windows... или что-то ещё — я не знаю. K>Интересно узнать ваше мнение с аргументами.
Не претендуя на полноту... первое, что взбрело в голову.
Циклы. If. Подпрограммы/функции. И тд. и тп. Общие конструкции всех (императивных?) языков программирования.
Что такое строка. Что такое символ. Чем они отличаются от числа. Что числа бывают целые и дробные. Что точность их ограничена. А если неограничена — значит, там внутри мегапрослойка кода.
Что такое компилятор/интерпретатор.
Знание, что компьютер — это вычислительная машина.
Однажды моя бабушка спросила, можно ли считать на компьютере. Она была сильно удивлена, когда я сказал, что _только_ это и умеет делать — считать.
Знание, что на низком уровне все данные предствленны в виде байтов. В том числе и сама программа. Что такое бит.
Что такое память. Что такое иерархия памятей — регистры/кеш/память/жесткий диск. Что такое машинный код.
Что изображение состоит из (чаще всего, прямоугольных)пикселей. Что звук — последовательность чисел-выборок. Что фильм — последовательность картинок. Что по сети передаются электрические сигналы, потом байты, потом пакеты, потом потоки, потом .html страничеки и уже потом это превращается в то, что вы видите на экране.
Что такое операционная система.
Вообщем, многие вещи, о которых пользователь не знает.
Правильно работающая программа — просто частный случай Undefined Behavior
Здравствуйте, kilonet2, Вы писали:
K>Один знакомый, называющий себя "хорошим" программистом, говорит: "Я знаю основы, поэтому легко могу правильно написать любую программу, быстро освоить новую технологию и т. д...". Вот я и думаю, что есть эти "основы"? Ассемблер; умение решать алгоритмические задачи вроде ханойской башни ("алгоритмы и структуры данных"); Visual C++ с вездесущими объектами и копанием в устройстве Windows... или что-то ещё — я не знаю. K>Интересно узнать ваше мнение с аргументами.
Для меня "основы" — это логика разработчиков конкретной системы, если в нее въедешь, то потом все становится легко и просто.
...добивая ногами психиатра: "Это кто нервный?! Это я нервный?!!"
Здравствуйте, kilonet2, Вы писали:
K>Один знакомый, называющий себя "хорошим" программистом, говорит: "Я знаю основы, поэтому легко могу правильно написать любую программу, быстро освоить новую технологию и т. д...".
Посоветуй ему быстро освоить, ну, скажем, Пролог.
... << RSDN@Home 1.2.0 alpha rev. 615 on Windows XP 5.1.2600.131072>>
AndrewVK wrote:
> K>Один знакомый, называющий себя "хорошим" программистом, говорит: "Я > знаю основы, поэтому легко могу правильно написать любую программу, > быстро освоить новую технологию и т. д...". > Посоветуй ему быстро освоить, ну, скажем, Пролог.
Осваивал его в условиях надвигающего деда Лайна за неделю
Здравствуйте, _Winnie, Вы писали:
_W>Циклы. If. Подпрограммы/функции. И тд. и тп. Общие конструкции всех (императивных?) языков программирования.
+ рекурсия. Стек, список, хеш.
_W>Что такое строка. Что такое символ. Чем они отличаются от числа. Что числа бывают целые и дробные. Что точность их ограничена. А если неограничена — значит, там внутри мегапрослойка кода.
+ булева алгебра, множества там...
Поступай так, чтобы максима своей воли в любое время могла стать принципом всеобщего законодательства.
Здравствуйте, kilonet2, Вы писали:
K>Один знакомый, называющий себя "хорошим" программистом, говорит: "Я знаю основы, поэтому легко могу правильно написать любую программу, быстро освоить новую технологию и т. д...". Вот я и думаю, что есть эти "основы"? Ассемблер; умение решать алгоритмические задачи вроде ханойской башни ("алгоритмы и структуры данных"); Visual C++ с вездесущими объектами и копанием в устройстве Windows... или что-то ещё — я не знаю. K>Интересно узнать ваше мнение с аргументами.
Здравствуйте, kilonet2, Вы писали:
K>Один знакомый, называющий себя "хорошим" программистом, говорит: "Я знаю основы, поэтому легко могу правильно написать любую программу, быстро освоить новую технологию и т. д...". Вот я и думаю, что есть эти "основы"? Ассемблер; умение решать алгоритмические задачи вроде ханойской башни ("алгоритмы и структуры данных"); Visual C++ с вездесущими объектами и копанием в устройстве Windows... или что-то ещё — я не знаю. K>Интересно узнать ваше мнение с аргументами.
Здравствуйте, kilonet2, Вы писали:
K>Один знакомый, называющий себя "хорошим" программистом, говорит: "Я знаю основы, поэтому легко могу правильно написать любую программу, быстро освоить новую технологию и т. д...". Вот я и думаю, что есть эти "основы"? Ассемблер; умение решать алгоритмические задачи вроде ханойской башни ("алгоритмы и структуры данных"); Visual C++ с вездесущими объектами и копанием в устройстве Windows... или что-то ещё — я не знаю. K>Интересно узнать ваше мнение с аргументами.
подожди пару деньков пока существует данных топик, после проанализируй все ответы и ты поймешь, что знать надо всё, и чем больше ты знаешь, тем лучше для тебя в первую очередь
Логическое, абстрактное мышление. Его же гибкость. Дружба с математикой, физикой, русским языком и литературой. Объясню два последних пункта: я считаю, что умение четко и ясно выражать свои мысли для хорошего программиста просто необходимо. И это умение нужно постоянно развивать. А чем же еще его развивать как не?
Здравствуйте, AndrewVK, Вы писали:
K>>Один знакомый, называющий себя "хорошим" программистом, говорит: "Я знаю основы, поэтому легко могу правильно написать любую программу, быстро освоить новую технологию и т. д...".
AVK>Посоветуй ему быстро освоить, ну, скажем, Пролог.
Лучше Хаскелл .
Здравствуйте, kilonet2, Вы писали:
K>Один знакомый, называющий себя "хорошим" программистом, говорит: "Я знаю основы, поэтому легко могу правильно написать любую программу, быстро освоить новую технологию и т. д...". Вот я и думаю, что есть эти "основы"? Ассемблер; умение решать алгоритмические задачи вроде ханойской башни ("алгоритмы и структуры данных"); Visual C++ с вездесущими объектами и копанием в устройстве Windows... или что-то ещё — я не знаю.
Алгоритмы и структуры данных и задачи вроде ханойских башен — разные вещи.
Первое — дисциплина, изучающая узкий класс фундаментальных структур данных и алгоритмов (списки, деревья, двоичный поиск и т.д.), второе — задача на применение рекурсии.
Здравствуйте, Joker6413, Вы писали:
... J>звучит по крайней мере смешно.
Знание не есть ум, а только эрудиция. Ценно лишь знание, полученное, как результат личного опыта, а не знание приобретенное. Можно заучить кучу алгоритмов, языков программирования, паттернов ООП и т.д., но по настоящему хороший программист и вообще умный человек должен уметь мыслить сам. Это и есть та основа на кототой можно что-то строить. И это мое твердое убеждение. И что же здесь смешного?
Здравствуйте, Глеб Алексеев, Вы писали:
ГА>Здравствуйте, AndrewVK, Вы писали:
K>>>Один знакомый, называющий себя "хорошим" программистом, говорит: "Я знаю основы, поэтому легко могу правильно написать любую программу, быстро освоить новую технологию и т. д...".
AVK>>Посоветуй ему быстро освоить, ну, скажем, Пролог. ГА>Лучше Хаскелл .
Нет, Coq!