|
|
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
День добрый! За последнее время все больше убеждаюсь в том, что как-то не на том делаю упор в самообучении. По специальности я не программист, но жизнь заставила. Поэтому все приходится изучать самостоятельно. Но, изучая, Java, Oracle, C++ понял одну вещь. Нужно делать акценты не на конкретике, а на принципах. Т.е. в итоге нужно иметь такое мышление, чтобы язык программирования стал всего лишь удобным инструментом для воплощения задуманного. Исходя из этого есть одна просьба ко всем присутствующим: порекомендуйте, пожалуйста, литературку для формирования соответствующего образа мышления. Ну, может, еще какие-то рекомендации будут. За все, заранее спасибо. с уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 10:33 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
Structure and Interpretation of Computer Programs это учебный курс MIT еще мно понравилось по ООП книжка Шлеер, Меллор по метолодогиям книжка алистера коберна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 11:07 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+Т.е. в итоге нужно иметь такое мышление, чтобы язык программирования стал всего лишь удобным инструментом для воплощения задуманного. Исходя из этого есть одна просьба ко всем присутствующим: порекомендуйте, пожалуйста, литературку для формирования соответствующего образа мышления. Вы абсолютно правы. Рекомендовать достаточно сложно.... как мне представляется, Вам нужны фундаментальные труды - книги с названиями типа "Алгоритмы" и "Структуры данных", методологические пособия. Конкретно.... конечно, советуя вслепую велика вероятность ошибиться, но я бы посоветовал попробовать "Искусство программирования" Кнута, с первого тома. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 11:22 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+Т.е. в итоге нужно иметь такое мышление, чтобы язык программирования стал всего лишь удобным инструментом для воплощения задуманного. Язык программирования - это ничто. Все они, на самом деле, идентичны (SQL - это не язык программирования). А все поведенческие/мировоззренческие модели идут больше из библиотек, и знания общих принципов, принятых в том или ином сообществе. По поводу Java и C++ ничего советовать не буду (тем более, я отчаянный критик их идей и подходов, впрочем, колокольня у меня строго своя, от задач подобранная). А вот по поводу Oracle +/-грамотное мышление даёт: а) вдумчивое прочтение Concepts (полезно данный кирпич прочитать даже в... довольно внятном переводе от РДТЕХ-а, если совсем с нуля, т.е. оригинал штудировать в данном случе - не обязательно). Все что не понял сразу - лучше пометить закладками (не лучше, а обязательно). б) в обязательном порядке прочтение всех изданий некого Томаса Кайта (и никого больше) в) и уже в качестве окончательной доводки и шлифовки п.а и п.б (т.к. концепции - это общее бла-бла-бла и терминология, а Кайт больше бъет по сути практических методов) - чтение Oracle University (эти бьют больше по площадям), причём последние - как общего назначения (тома Dxxxxx), так и мегасуперпуперспециализированного (так называемые DSI - главное, чтоб вот от них крышу не сорвало). д) а потом можно уже и всяким разным баловаться - к примеру - почитать Льюиса по вопросам CBO, отдельно Миллсапа и Хольта (по вопросам общего Perf Tunig-а), ну и так далее, вплоть до http://www.ixora.com.au/resources/ (кстати Oracle 8i Scaling - актуален и абсолютно на заслуженно забытый толмуд) --- Гы, только по Oracle - теория и практика приведения себя в спортивную форму (чисто как DBD) может занять минимум пять-десять лет. Как после этого смотреть на Java и C++ (ресурсы головного мозга - имеют таки ограниченность) - без понятия (многие и не смотрят - EJB и Hibernate - вообще абсолютно безграмотная, с т.з. Oracle RDBMS, хрёнь, и в теории, и в практике, появившаяся исключительно для того, чтобы можно было строгать поделки на коленке, не вникая в п.а) - п.в)). А на практике... каждый практик просто вырабатывает для себя десяток другой паттернов, и строго по ним строит свои решения (не всегда мегаоптимально, но хоть работоспособно, и ладно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:16 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+ , а кто ты по образованию и специальности? ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:29 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
softwarerРекомендовать достаточно сложно.... как мне представляется, Вам нужны фундаментальные труды - книги с названиями типа "Алгоритмы" и "Структуры данных", методологические пособия. Конкретно.... конечно, советуя вслепую велика вероятность ошибиться, но я бы посоветовал попробовать "Искусство программирования" Кнута, с первого тома. Это полезно только с точки зрения общей образованности, которая, на практике - довольно бесполезна, хоть и является основой (кого сейчас интересуют реализации собственных двусвязных списков, хешей и прочего, если есть уже готовые?) Впрочем, чего греха таить - прочесть это все нужно, вот только Кнут (с его академическими заскоками на изложение материала в виде математической "клинописи"), как мне представляется - далеко не лучший вариант (особенно для самообразования). P.S. Кстати, бытует мнение, что лучшие программисты-разработчики получаются, как правило, отнюдь не из бывших математиков-физиков (больше из гуманитариев, к примеру - лингвистов, либо людей, психо-соматически склонных к данной професии). И более того, с этим мнением - я даже абсолютно согласен (есть ряд практических наблюдений и выводов и на этот счет). Т.е. математическая школа (построенная, как водится, от засилья физико-технических моментов) - и бесполезна, и даже вредна (т.к. прививает несвойственный для computer science базовый аппарат мышления). Т.е. декларативно-описательные моменты vs (что там принято у математиков, особенно в аналитических направлениях)? Но опять же, безусловно - это смотря с какой стороны направлений IT смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:34 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
krvsa 30+ , а кто ты по образованию и специальности? ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT Первое н/высшее - медицинское. Вовремя понял, что не мое. Второе высшее - радиотехническое. Специальность - проектирование и технология РЭС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:41 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
krvsa 30+ , а кто ты по образованию и специальности? ---------- ? К примеру - у меня образование CAПР (CAD/CAM/CAE), специальность - инженер-системотехник(конструктор/технолог/прораммист). Работаю как программист (не совсем по изначальной специальности, больше IS в чистом виде, даже без MES (хоть есть желание)). В бытность математику-физику-теормех... кхм.. с очень большим трудом осиливал (не моё оно, да и учили (и учат) - паршиво, т.е. учат решать задачки с известными условиями (это вторично), а не ставить/видеть решения (это первично при проектировании, особенно в условиях изначельной неопределенности/неполноты описаний)). Зато с удовольствием ходил (будучи уже программистом практиком и даже со стажем) на инженерную графику, теорию машин и механизмов, детали машин и даже сопромат (в части МКЭ). т.е. туда, где были принципы системности и именно - декларативно-описательные модели, как основа. Многое, кстати, почерпнул полезного из "старой школы" (т.е. из общей инженерной деятельности), что в виде аналогий было перепроецированно на IT (к примеру - методы и принципы оптимизации конструкций, метод технологической базы, принципы эргономичности, инжереного дизайна в целом, ну и так, всякое разное). Программированию (как водится) в ВУЗ-е никто серьёзно не учил, не учит, да и не будет учить (нет у нас школы в постсовке, хоть тресни). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:43 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
grexhideЭто полезно только с точки зрения общей образованности, которая, на практике - довольно бесполезна, хоть и является основой (кого сейчас интересуют реализации собственных двусвязных списков, хешей и прочего, если есть уже готовые?) Это полезно именно с точки зрения постановки мышления - как подробный пример уже решенных задач, над которыми "лучшие умы" провели более чем достаточное количество времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:43 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
grexhide softwarerРекомендовать достаточно сложно.... как мне представляется, Вам нужны фундаментальные труды - книги с названиями типа "Алгоритмы" и "Структуры данных", методологические пособия. Конкретно.... конечно, советуя вслепую велика вероятность ошибиться, но я бы посоветовал попробовать "Искусство программирования" Кнута, с первого тома. Это полезно только с точки зрения общей образованности, которая, на практике - довольно бесполезна, хоть и является основой (кого сейчас интересуют реализации собственных двусвязных списков, хешей и прочего, если есть уже готовые?) Впрочем, чего греха таить - прочесть это все нужно, вот только Кнут (с его академическими заскоками на изложение материала в виде математической "клинописи"), как мне представляется - далеко не лучший вариант (особенно для самообразования). P.S. Кстати, бытует мнение, что лучшие программисты-разработчики получаются, как правило, отнюдь не из бывших математиков-физиков (больше из гуманитариев, к примеру - лингвистов, либо людей, психо-соматически склонных к данной професии). И более того, с этим мнением - я даже абсолютно согласен (есть ряд практических наблюдений и выводов и на этот счет). Т.е. математическая школа (построенная, как водится, от засилья физико-технических моментов) - и бесполезна, и даже вредна (т.к. прививает несвойственный для computer science базовый аппарат мышления). Т.е. декларативно-описательные моменты vs (что там принято у математиков, особенно в аналитических направлениях)? Но опять же, безусловно - это смотря с какой стороны направлений IT смотреть. Неужели совсем беполезна? Недавно, читая учебник по дискретной математике, в разделе описания операций над множествами обнаружил, что эти самые операции я уже применял при составлении запросов в SQL. Это, так, для примера. Но, вообще, хотелось бы знать, к примеру, как составить алгоритм в том или ином случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:50 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
softwarer grexhideЭто полезно только с точки зрения общей образованности, которая, на практике - довольно бесполезна, хоть и является основой (кого сейчас интересуют реализации собственных двусвязных списков, хешей и прочего, если есть уже готовые?) Это полезно именно с точки зрения постановки мышления - как подробный пример уже решенных задач, над которыми "лучшие умы" провели более чем достаточное количество времени. Он (Кнут) не даёт системное мышление. IMHО - вообще. Кстати, насчёт системного мышления я бы таки посоветовал OOD Буча (ранние издания, не зашоренные рекламой "рациональной розы"), и... очень даже незаслуженно забытых стариканов Шлеера и Меллора (я в бытность утерял их книжку по OOA, хоть перечитал раз пять, не меньше). Имхо, это (ООА и ООД) куда полезнее, чем старина Кнут (хоть его тоже никто не отменял, но он - излагает только "алгебру"). Опять же, в качестве альтернативы - уметь видеть задачи в целом vs уметь решать частные задачки известными методами (соответственно). P.S. Есть, правда, масса изданий на этот счёт (системный подход) в смежных направлениях (вообще не IT), куда более серьёзных (особенно у архитекторов/строителей). Но советовать не стану (последнее утверждение довольно спорно, да и под рукой у меня их нет, хотя, в период студенчества я читал их в библиотеке - просто взахлеб, как развёрнутое практическое дополнение к принципам ООД и ООА, которые, по сути, ничего то нового в общую инженерию и не внесли). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:53 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+Первое н/высшее - медицинское. Второе высшее - радиотехническое. Эко тебя метало! Просто меня также интересовал тот факт что у некоторых программирование получается на "ура", у кого-то это титанический труд... А есть те, которые так и не поймут что "тут пора делать цикл"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:54 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+ Недавно, читая учебник по дискретной математике. Ах, да, извиняюсь, дискретка - это must read в любом случае. Кстати - она вовсе не математика в чистом виде (собственно математического аппарата там очень мало, разве в направлении упрощения логических выражений... которые (упрощения) можно упрощать и графическими методами в т.ч.). Но, кстати, множества, автоматы, логика, графы - это все суть именно - декларативно-описательные модели (а не зашоренно бесполезный матан, которым до потери вменяемости пичкают на специальностях Прикладная математика). Автоматы - так вообще - основа построения компиляторов (т.е. формальных грамматик) - направление лингвистики, по сути (которая бедняга, правда, с живыми языками совладать с его помощью не в состоянии (неподъёмные объёмы конструкций), исключительно по причине неформальности идиоматичности, но это уже лирика, и к IT имеет отношение вон только в направлении автоматического перевода, проверки грамматики и прочего). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 13:00 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+Но, вообще, хотелось бы знать, к примеру, как составить алгоритм в том или ином случае. В общем случае это всего три конструкции (Законы алгоритмизации): а) последовательное выполнение б) логическое ветвление в) возврат (цикл) Вот и весь общий случай, все остальное - уже следствия (вариации). Ну и плюс - память - линейный массив и любые вычисления можно сделать сложением и операцией изменения знака (т.е. все IT построенно на машине фон Неймана). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 13:11 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
grexhide 30+Но, вообще, хотелось бы знать, к примеру, как составить алгоритм в том или ином случае. В общем случае это всего три конструкции (Законы алгоритмизации): а) последовательное выполнение б) логическое ветвление в) возврат (цикл) Вот и весь общий случай, все остальное - уже следствия (вариации). Ну и плюс - память - линейный массив и любые вычисления можно сделать сложением и операцией изменения знака (т.е. все IT построенно на машине фон Неймана). Вот, я как раз о том, что "все" программирование построено на каком-то математическо-логическом аппарате, который нужно изучить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 13:25 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+Вот, я как раз о том, что "все" программирование построено на каком-то математическо-логическом аппарате, который нужно изучить... Вот еще ссылочга: http://russian.joelonsoftware.com/index.html Как раз по теме мышления программистов (Лорд Палмерстон в программировании, Закон Дырявых Абстракций - обязательны к прочтению, IMHO). Кстати, новые переводы вот здесь: http://local.joelonsoftware.com/mediawiki/index.php/Russian Спольски - один из немногих блогов, которые полезно читать (многое спорно, но пишет он по сути, в отличии от). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 13:48 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+Ну, может, еще какие-то рекомендации будут. проект имеет стадийность: анализ, проектирование, реализация, тестирование я бы рекомендовал специализироваться на первых двух. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 14:05 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
Почитайте Гради Бутча. Про основы объектно-ориентированного подхода. Это не столько концепции практики программирования - это помогает понять, что нужно вам/заказчику, разложить на части и классифицировать, выделить общности и т.д. Следуя методам объектно-ориентированного анализа и проектирования можно преодолевать сложность изучаемых и создаваемых систем поэтапно, иерархически. Базовые понятия объектно-ориентированного анализа помогут вам работать с ОО языками не на уровне знания - а на уровне понимания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 14:57 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+День добрый! За последнее время все больше убеждаюсь в том, что как-то не на том делаю упор в самообучении. По специальности я не программист, но жизнь заставила. Поэтому все приходится изучать самостоятельно. Но, изучая, Java, Oracle, C++ понял одну вещь. Нужно делать акценты не на конкретике, а на принципах. Т.е. в итоге нужно иметь такое мышление, чтобы язык программирования стал всего лишь удобным инструментом для воплощения задуманного. Исходя из этого есть одна просьба ко всем присутствующим: порекомендуйте, пожалуйста, литературку для формирования соответствующего образа мышления. Ну, может, еще какие-то рекомендации будут. За все, заранее спасибо. с уважением.решайте олимпиадные задачки по информатике + чтиво по алгоритмам, эти вещи сильно голову ломают... хотя имхо надо хотябы склонность к этому иметь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 16:06 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+ wrote: > Ну, может, еще какие-то рекомендации будут. В продаже была неплохая книжечка "Жемчужины программирования" - там было несколько очень оригинально решнных задач, может быть полезно. Касательно книг. По-моему, нужный образ мысли можно получить если 1) хорошо изучить два языка высокого уровня. (даст базовые знания) 2) ознакомительно посмотреть ещё 4 или более языков. (даст знания о схожести языков/общих принципах) 3) пообщаться с ассемблером/машиной на низком уровне. (даст знания о том, "как оно работает") 4) Почитать про design patterns. (полезно для ООП мышления, плюс самому до этих идей доходить придется дольше) 5) все это обильно применять на практике пару лет. (закрепить и запомнить) 6) любить программировать. Это долго, но других вариантов не могу посоветовать, хотя они могут существовать. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 16:26 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
Благодарствую! Информации море, теперь буду разбирать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 18:46 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+Благодарствую! Информации море, теперь буду разбирать. не надо программирование - фанатам нормальным - жизнь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 21:43 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+ Но, изучая, Java, Oracle, C++ понял одну вещь. Нужно делать акценты не на конкретике, а на принципах. Т.е. в итоге нужно иметь такое мышление, чтобы язык программирования стал всего лишь удобным инструментом для воплощения задуманного. то есть, что же надо задумать программировать? мой ответ примерно такой: нужно задумать программу, где было бы побольше юзеров, юзеры бы платили что-то, программа бы и компьютер работали, а ты бы отдыхал это АРМ-Магазин, и интернет-проект, мне так каажется нужно стать провайдером постоянных услуг Лондонская биржа 40% доходов имеет от предоставления информации о ценах, о коньюнктуре нужно понять в какой информации есть потребность и просто стать провайдером этой информации меня в своем АРМ-Магазин на 60тыс.строк SQL кода странным образом кормит всего 1 процесс - работа с прайсами поставщиков - робот сканит интернет каждый час и закачивает новые цены и все видят - Дима ежедневно работает, хотя Дима уже 4 года делает другой интернет-проект, но в том же ключе - провайдер услуг+юзеры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 22:17 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
ve301 то есть, что же надо задумать программировать? Не совсем так... В идеале, мне это видится следующим образом. Заказчик (начальник и т.п.) описывает мне софтину простым человеческим языком. Типа, нужно чтобы софтина делала то-то и то-то и выглядело это (внешне) так-то. Я составляю алгоритм и реализую его, причем делаю это не только на Java (потому что я знаю, скажем, только Java), а на том языке, который больше всего подходит для решения данной задачи (в пределах разумного, естественно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 09:47 |
|
||
|
Мышление программиста???
|
|||
|---|---|---|---|
|
#18+
30+В идеале, мне это видится следующим образом. Заказчик (начальник и т.п.) описывает мне софтину простым человеческим языком. Не-а. Простым человеческим языком - можно только на заборе неприличное слово написать. Если заказчик невменяем, и не может оформить нормальное ТЗ (не говоря уже о Техпроекте) - то нужно нанимать аналитиков и проектировщиков, которые сделают диагностику заказчику, напишут много всякого разного (схем, формул, графиков, табличек-формочек), на что Заказчик посмотрит- и скажет: "О крута (хоть я ничего не понял". Ну а программисты тоже, должны всю эту хрень переварить, сказать свое громкое фи, и сделать так, как считают нужным. И это есть правильно и хорошо. 30+ Типа, нужно чтобы софтина делала то-то и то-то и выглядело это (внешне) так-то. Я составляю алгоритм и реализую его, Фигня полная. Даже Фредерик Брукс (ха, классика - мифический человеко-месяц, тоже, обязательно к прочтению) говорил примерно следущее: - Нафиг мне Ваши алгоритмы, покажите мне Ваши структуры данных (таблицы). И тут он - абсолютно прав. Алгоритм - это ничто, его любой недоученный студент слабает. А вот правильно спроектировать схемы данных - это нужно уметь-с. 30+ причем делаю это не только на Java (потому что я знаю, скажем, только Java), а на том языке, который больше всего подходит для решения данной задачи (в пределах разумного, естественно). Еще раз, для тех кто на бронепоезде (без обид) - язык это ничто. Все определяют библиотеки, фреймворки. Язык это основа. Это лишь средство. То, что ты обладаешь русским языком - не даст тебе возможность написать новую Войну и мир (хоть в мире Java и .NET бытует иное мнение, в известной притче о тысяче кодирующих обезьян). --- Кстати, а про паттерны GoF тебе еще никто не рассказывал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 10:39 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=34757635&tid=1345865]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
239ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
98ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 638ms |

| 0 / 0 |
