Как лучше осваивать программирование?
От: registered  
Дата: 22.04.04 20:06
Оценка: 4 (1)
Несколько дней уже слоняюсь по вашему форуму, как мне кажется здесь действительно много
профессиональных программистов, в т.ч. и преподавателей (программирования естественно)
столичных вузов. Поэтому прошу помочь советом.

Вопрос не о том что надо знать чтоб стать програмистом, какие книжки читать и т.п. Таких тем я видел предостаточно, я не об этом. С тем что считаю нужным знать тоже давно определился, и впринципе уже знаю какую то часть этого, но не так хорошо как хотелось бы.

А вопрос вот какой: Как максимально эффективно + с минимальными затратами времени заниматься
самостоятельным изучением языка (не важно какого)) ?

На мой взгляд банальное перечитывание литературы (имею ввиду читать все подряд) не самый удачный вариант, во первых — время летящее с невероятной скоростью, во вторых на одной теории далеко не уедешь. Еще как вариант, где то встречал такую мысль что язык хорошо осваивается по необходимости, т.е. перед человеком стоит задача и хочешь не хочешь ее решай и здесь уже ищешь и осваиваешь только тот материал который необходим для конкретной задачи (ищешь ответы в факах, форумах и т.д.) и постепенно так опыта и набираешься. Это на мой взгляд хороший но тоже не идеальный вариант.

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

Вот подскажите, насколько по вашему такое изучение может оказаться эффективным? И как эту эффективность можно повысить? Или может есть другие мысли по этому поводу? Очень нужен в этом плане дельный совет

И еще такой вопрос, стоит ли осваивать несколько (два-три) языка параллельно, или больше чем за один сразу браться не стоит?

Буду невероятно благодарен за помощь и советы, и прошу прощения за длинный пост

ps: речь идет об advanced изученнии языка, а не так чтоб поверхностно нахвататься
ps: видел тут темку "как учить программированию", туда меня просьба не отправлять, имхо это совершенно разные вещи
Re: Как лучше осваивать программирование?
От: bkat  
Дата: 22.04.04 21:04
Оценка:
Попробуй поискать по сайту по ключевым словам "Хочу стать программистом"
Вот из последних обсуждений как раз в этом форуме.

http://www.rsdn.ru/forum/?mid=599050
Автор: Vismut
Дата: 08.04.04
Re[2]: Как лучше осваивать программирование?
От: registered  
Дата: 22.04.04 21:17
Оценка:
Здравствуйте, bkat, Вы писали:

B>Попробуй поискать по сайту по ключевым словам "Хочу стать программистом"

B>Вот из последних обсуждений как раз в этом форуме.

B>http://www.rsdn.ru/forum/?mid=599050
Автор: Vismut
Дата: 08.04.04


Спасибо, первым делом перед постингом искал такие темы, и этот топик прочел, но там вопросы на мой взгляд другие. В том топике (и во многих других), человек патается определиться что ему надо знать. А у мня вопрос как лучше|эффективнее определенный язык|технологию освоить
Re[3]: Как лучше осваивать программирование?
От: bkat  
Дата: 22.04.04 21:29
Оценка: +1
Здравствуйте, registered, Вы писали:

R>Здравствуйте, bkat, Вы писали:


B>>Попробуй поискать по сайту по ключевым словам "Хочу стать программистом"

B>>Вот из последних обсуждений как раз в этом форуме.

B>>http://www.rsdn.ru/forum/?mid=599050
Автор: Vismut
Дата: 08.04.04


R>Спасибо, первым делом перед постингом искал такие темы, и этот топик прочел, но там вопросы на мой взгляд другие. В том топике (и во многих других), человек патается определиться что ему надо знать. А у мня вопрос как лучше|эффективнее определенный язык|технологию освоить


Так же как и другой язык. Надо на нем говорить и активно пользоваться.
Других способов нет.
В общем только реальный проект поможет тебе реально почувствовать язык или технологию.
Re[4]: Как лучше осваивать программирование?
От: registered  
Дата: 22.04.04 21:50
Оценка:
Здравствуйте, bkat, Вы писали:

B>Так же как и другой язык. Надо на нем говорить и активно пользоваться.

B>Других способов нет.
B>В общем только реальный проект поможет тебе реально почувствовать язык или технологию.

C этим я согласен, скорее всего даже не один проект. Только вот к серьезным проектам надо сначала подойти, не начнешь же с нуля. Вот как подойти, с учетом того что время критично? Начать читать все подряд книги пока не почувствуешь себя готовым для серьезного проекта? Или освоить основы, и пытаться что то делать, уже выискивая только недостающую инфу? Вот в этом то вся и загвозка...
Re[5]: Как лучше осваивать программирование?
От: Twirl Швеция  
Дата: 22.04.04 21:55
Оценка:
Здравствуйте, registered, Вы писали:

R>C этим я согласен, скорее всего даже не один проект. Только вот к серьезным проектам надо сначала подойти, не начнешь же с нуля. Вот как подойти, с учетом того что время критично? Начать читать все подряд книги пока не почувствуешь себя готовым для серьезного проекта? Или освоить основы, и пытаться что то делать, уже выискивая только недостающую инфу? Вот в этом то вся и загвозка...


ну допустим есть opensource проекты. выбираешь какой тебе больше нравится и пробуешь что-то делать для него. не самый лучший вариант, но он тоже имеет право на существование.
Re[5]: Как лучше осваивать программирование?
От: bkat  
Дата: 22.04.04 22:06
Оценка:
Здравствуйте, registered, Вы писали:

R>Здравствуйте, bkat, Вы писали:


B>>Так же как и другой язык. Надо на нем говорить и активно пользоваться.

B>>Других способов нет.
B>>В общем только реальный проект поможет тебе реально почувствовать язык или технологию.

R>C этим я согласен, скорее всего даже не один проект. Только вот к серьезным проектам надо сначала подойти, не начнешь же с нуля.


Конечно к серьезным проектам сразу не подойдешь.
Готовся на несколько лет лет пути
Есть и проверенные способы, типа учеба в ВУЗе с последующим трудоустройством.
Учебу с работой можно и совмещать.
В общем быстро не получится. Опять же, в серьезных проектах
язык программирования — это не самая важная вещь.
Re: Как лучше осваивать программирование?
От: Leonid V. Volnin Россия  
Дата: 23.04.04 04:48
Оценка:
On Thu, 22 Apr 2004 20:06:02 GMT, registered <forum@rsdn.ru> wrote:

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

--
best regards, Leonid V. Volnin.
Posted via RSDN NNTP Server 1.7 "Bedlam"
best regards, Leonid
Re: Как лучше осваивать программирование?
От: INTP_mihoshi Россия  
Дата: 23.04.04 06:14
Оценка:
Рекомендую метод шоковой терапии

Скачай, установи и напиши что-нибудь в С-- (здесь)
В процессе освоишь (или хотя-бы краем глаза увидишь) и функциональное программировоние, и скриптование, и literate programming, и ассемблер, и Yacc и хз знает что еще И UNIX заодно. По крайней мере, не будешь считать, что программирование — это только C++, С# и Delphi.
Re: Как лучше осваивать программирование?
От: Pavluha Россия  
Дата: 23.04.04 06:44
Оценка:
Знание языка и свободное им владение — это всего лишь одно из необходимых требование для создания качественных программ. Для того, чтобы выучить язык, особых премудростей не надо, гораздо сложнее научиться правильно его применять. Общие принципы построения программ, за исключением технических ньюансов, не зависят от применяемого языка.
Поэтому, я бы посоветовал поставить перед собой задачу создания безупречной во всех отношениях программы (с точки зрения проектирования, используемых алгоритмов, проработки пользовательского интерфейса и т.д.). А для этого понадобятся не только книги по конкретному языку... Задачу придумываешь сам, но это должно быть что-то стоящее, а не просто какой-то примерчик использования языка. Кстати, если пойдешь по дороге программиста, работающего на кого-то, возможности делать то, что хочешь, может уже и не быть Так что, наслаждайся жизнью, пиши то, что хочешь и пусть это будет супер-прога. По ходу сам поймешь, что есть что, на что надо обратить особое внимание.
Re[2]: Как лучше осваивать программирование?
От: INTP_mihoshi Россия  
Дата: 23.04.04 06:48
Оценка:
Здравствуйте, Leonid V. Volnin, Вы писали:

LVV>Затем дается для решения какая-нибудь не слишком тривиальная задачка

LVV>(в смысле программу написать и отладить).
LVV>После этого учебник по языку читается как детектив .
LVV>Ну и усваивается соответственно лучше .

Этот способ обучения вроде еще Кнут внедрял
А вообще его надо уметь использовать. Задачи должны быть такие, чтобы приходилось использовать все фичи языка.

Например, для С++ должна быть задача на написание модуля, который невозможно свалить извне. Тогда придется использовать и const, и protected, и исключения...

И обязательно задачку на обобщенное программирование, чтобы без темплейтов не решалась...


Кстати, кто-нибудь видел готовые такие наборы задач?
Re: Как лучше осваивать программирование?
От: Mink Россия  
Дата: 23.04.04 06:50
Оценка:
Здравствуйте, registered, Вы писали:

R>А вопрос вот какой: Как максимально эффективно + с минимальными затратами времени заниматься

R>самостоятельным изучением языка (не важно какого)) ?

Один из моих преподавателей английского сказал в свое время: "There are three ways to learn English: talking, talking and talking". С языком программирования то же самое. Ты сможешь его освоить тоько применяя, в противном случае, все, что ты прочитаешь, будет достаточно быстро забываться — то есть, изучить язык впрок не получиться.
Потому возникает вопрос — а зачем ты его хочешь изучить?

R>ps: речь идет об advanced изученнии языка, а не так чтоб поверхностно нахвататься


По моему, не может быть адвансд _изучение_ языка, может быть адвансд использование оного. Об этом очень хорошо сказано у Элджера в предисловии к его "C++: Библиотека программиста". В обоих случаях используются одни и те же синтаксические конструкции, но вот как они используются — в этом и разница.
Сила, она в ньютонах
Re[2]: Как лучше осваивать программирование?
От: registered  
Дата: 23.04.04 12:04
Оценка:
Здравствуйте, Все ответившие и не ответившие тоже

Большое спасибо вам за советы, есть над чем подумать. Пока в вашем форуме не разобрался, не знаю как принято отвечать, по веткам или одним постом, попробую одним

B>Есть и проверенные способы, типа учеба в ВУЗе с последующим трудоустройством.


Это все замечательно, вот только есть уже ВУЗ, технический, но не программерский, второго скорей всего не будет, остается лишь вариант самостоятельного осваивания

INT>Рекомендую метод шоковой терапии


INT>Скачай, установи и напиши что-нибудь в С-- (здесь)

INT>В процессе освоишь (или хотя-бы краем глаза увидишь) и функциональное программировоние, и скриптование, и literate programming, и ассемблер, и Yacc и хз знает что еще И UNIX заодно. По крайней мере, не будешь считать, что программирование — это только C++, С# и Delphi.

Знать не знал что существует С-- Посмотрю обязательно

LVV>>Затем дается для решения какая-нибудь не слишком тривиальная задачка

LVV>>(в смысле программу написать и отладить).
LVV>>После этого учебник по языку читается как детектив .
LVV>>Ну и усваивается соответственно лучше .

INT>Этот способ обучения вроде еще Кнут внедрял

INT>А вообще его надо уметь использовать. Задачи должны быть такие, чтобы приходилось использовать все фичи языка.

INT>Например, для С++ должна быть задача на написание модуля, который невозможно свалить извне. Тогда придется использовать и const, и protected, и исключения...


INT>И обязательно задачку на обобщенное программирование, чтобы без темплейтов не решалась...



INT>Кстати, кто-нибудь видел готовые такие наборы задач?


Я тоже к этому больше склоняюсь, когда то также осваивал делфи, прочитал лишь азы, дальше само пошло. Вот только делфи и рядом не стоит по сложности с более серьезными языками. Пытался также поступить с С++ — не выходит Решил пока продолжить чтение книжек И присоединяюсь к вопросу, где бы раздобыть таких задач? было бы здорово

R>>А вопрос вот какой: Как максимально эффективно + с минимальными затратами времени заниматься

R>>самостоятельным изучением языка (не важно какого)) ?

M>Один из моих преподавателей английского сказал в свое время: "There are three ways to learn English: talking, talking and talking". С языком программирования то же самое. Ты сможешь его освоить тоько применяя, в противном случае, все, что ты прочитаешь, будет достаточно быстро забываться — то есть, изучить язык впрок не получиться.

M>Потому возникает вопрос — а зачем ты его хочешь изучить?

Ну ответ в твоем же посте чуть ниже (ничего что я на "ты"?) Естественно, только для активного использования. Цели лишь при удобном случае показать свои "невероятные" знания не стоит

Жаль только никто не высказался по поводу:

R>>И еще такой вопрос, стоит ли осваивать несколько (два-три) языка параллельно, или больше чем за один сразу браться не стоит?


Что думаете по этому поводу? И хотелось бы узнать как это проходило у вас?
Re: Как лучше осваивать программирование?
От: Tan4ik Россия  
Дата: 23.04.04 12:25
Оценка:
Здравствуйте, registered, Вы писали:

R>А вопрос вот какой: Как максимально эффективно + с минимальными затратами времени заниматься

R>самостоятельным изучением языка (не важно какого)) ?
Практика, практика и еще раз практика.
Придумай себе задачу. Большую, но не особо сложную. Сделай. Почитай книги. Пойми, что все можно было сделать в два раза проще. Переделай. Почитай книги... (повторить N раз). Придумай себе другую задачу. Сделай. Почитай книги...

R>В целях эксперимента пытаюсь сейчас поступать следущим образом: половину свободного времени (

R>допустим 3 часа в день) читаешь теорию, вторую половину выдумываешь сам себе неочень сложные,
R>но незнакомые задачи и пытаешься их реализовать, через гугл, факи, форумы и т.д. В результате и практика и теория
И в результате прочитанное в книге не запоминается, т.к. сейчас ненужно, а за время чтения мысль от практики уходит... Я бы так не смог.

R>И еще такой вопрос, стоит ли осваивать несколько (два-три) языка параллельно, или больше чем за один сразу браться не стоит?

Когда что-то пишешь, надо окунаться в процесс... На двух-трех языках такое плохо получается, разве что один из них скриптовый и служит для оптимизации написания программы на другом.
---
С уважением,
Лазарев Андрей
Re[3]: Как лучше осваивать программирование?
От: INTP_mihoshi Россия  
Дата: 23.04.04 12:38
Оценка:
Здравствуйте, registered, Вы писали:

R>>>И еще такой вопрос, стоит ли осваивать несколько (два-три) языка параллельно, или больше чем за один сразу браться не стоит?


Да, надо, но лучше в рамках одной задачи. Например, написать программу со суриптами на Lua (или другой скриптовалке) или что-нибудь работающее с SQL запросами или, наконец, конвертилку из одного языка в другой, написанную на третьем

Вообще, концентрироваться на одном языке ИМХО вредно. Изучая несколько языков ты будешь понимать каждый из них лучше, чем если бы ты изучал все это время только один этот. Ты будешь понимать, чем обосновано каждая фича языка и что было бы, если бы ее не было

Вот основные типы языков с которыми стоит познокомиться. Традиционный императивный (С++, С#, etc), объектный (Smalltalk, Self etc.), функциональный (Haskell, OCaml, MoscowML etc.), логический (Prolog, HOL etc/). Это обязательно.
Кроме того: регулярные выражения, скриптование (Lua, Perl etc.), основы ассемблера, лексические анализаторы (Yacc/Lex etc/), стековые языки (MSIL, joy etc.). Это тоже обязательно, но можно отложить на потом.
Еще надо иметь представление о том, как программы компилируются/интерпретируются.

Не нужно вдаваться в дебри (читай — прикладный библиотеки) каждого языка. Главное — понимать, какого типа задачи лучше всего решились бы именно на этом языке. Тогда ты сможешь лучше понимать сами задачи и реализовывать их более правильно на любом другом.
Re[4]: Как лучше осваивать программирование?
От: bkat  
Дата: 23.04.04 12:57
Оценка:
Здравствуйте, INTP_mihoshi, Вы писали:

INT>Не нужно вдаваться в дебри (читай — прикладный библиотеки) каждого языка. Главное — понимать, какого типа задачи лучше всего решились бы именно на этом языке. Тогда ты сможешь лучше понимать сами задачи и реализовывать их более правильно на любом другом.


А вот с этим можно немного и поспорить...
Доступные библиотеки и вообще среда программирования еще как влияют
на процесс программирования и итоговый результат.
Так что на это тоже стоит тратить время и обращать внимание.
Re[4]: Как лучше осваивать программирование?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.04.04 13:06
Оценка:
Здравствуйте, INTP_mihoshi, Вы писали:

INT>Вообще, концентрироваться на одном языке ИМХО вредно. Изучая несколько языков ты будешь понимать каждый из них лучше, чем если бы ты изучал все это время только один этот. Ты будешь понимать, чем обосновано каждая фича языка и что было бы, если бы ее не было


Не согласен. Изучение спектра языков полезно когда ты уже прочно стоишь на ногах. Сразу хвататься за изучение всего подряд не зная хорошо хотя бы одного языка чревато зазря потерянным временем.
... << RSDN@Home 1.1.3 stable >>
AVK Blog
Re[5]: Как лучше осваивать программирование?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 23.04.04 13:08
Оценка:
Здравствуйте, registered, Вы писали:

R>Здравствуйте, bkat, Вы писали:


B>>Так же как и другой язык. Надо на нем говорить и активно пользоваться.

B>>Других способов нет.
B>>В общем только реальный проект поможет тебе реально почувствовать язык или технологию.

R>C этим я согласен, скорее всего даже не один проект. Только вот к серьезным проектам надо сначала подойти, не начнешь же с нуля. Вот как подойти, с учетом того что время критично? Начать читать все подряд книги пока не почувствуешь себя готовым для серьезного проекта? Или освоить основы, и пытаться что то делать, уже выискивая только недостающую инфу? Вот в этом то вся и загвозка...

А что в вузе нет задач по математике, физике итд. Там расчетов непочатый край. Заодно освоишь кучу алгоритмов. Котрые затем тебе сильно пригодятся.
... << RSDN@Home 1.1.0 stable >>
и солнце б утром не вставало, когда бы не было меня
Re: Как лучше осваивать программирование?
От: TheBeard Россия  
Дата: 23.04.04 13:44
Оценка:
Есть замечательная книга, ставшая, кажется, библиографической редкостью:
Уэзерелл, Ч., "Этюды для программистов", М.,"Мир", 1982
Posted via RSDN NNTP Server 1.8
Re[3]: Как лучше осваивать программирование?
От: LaptevVV Россия  
Дата: 24.04.04 09:58
Оценка:
Здравствуйте, registered, Вы писали:

R>Спасибо, первым делом перед постингом искал такие темы, и этот топик прочел, но там вопросы на мой взгляд другие. В том топике (и во многих других), человек патается определиться что ему надо знать. А у мня вопрос как лучше|эффективнее определенный язык|технологию освоить

Ну, сам же знаешь! Писать, писать и еще раз писать!
А что — уж тут сам себе задачу по вкусу выбираешь.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.