PDA

Просмотр полной версии : Советы для начинающих


scrat
07.03.2010, 03:02
В избежании размножения различных вопросов, хотел бы опубликовать перевод первого поста от сюда (http://forum.osdev.org/viewtopic.php?f=13&t=3320). Перевод не дословный, вкраплял от себя.

Для начала, хочется посоветовать взглянуть на программирование в целом. Программирование — это не просто написание кода на каком-то языке программирования. Программирование — это решение задач, наиболее оптимальными путями. Использование в нужном месте нужного языка или платформы имеет колоссальную роль.

Не стоит начинать с каких-то практических языков, таких как C или VB. Не понимая основных идеологий, вы можете просто впасть в прострацию и не понимать куда и что применять. Начните лучше с языка, который подходит для начинающих, который позволит вам понять основные концепции программирования.

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

Итак, вот небольшой учебный курс:

Начните с изучения HTML перед тем как приступать к языкам программирования. Структура HTML аналогична многим программным структурам, и её довольно просто можно изучить.
Изучите язык, с которым можно работать интерактивно, вбивая команды в интерпретаторе и получая ответ. Это отличный способ поиграться и понять что к чему. Подходящие языки: Python, Scheme, FORTH, ML, Smalltalk.
На этом этапе стоит попробовать компилируемый язык, вроде Pascal или C. Со вторым лучше повременить, пока вы не изучите как следует низкоуровневое программирование. На этом этапе лучше не использовать IDE, а понять, как происходит сборка программы, что такое компилятор и отладчик, и как их запускать из консоли.
Изучите ассемблер. Нет, не нужно брать winapi и пытаться писать шеллкоды, здесь важно понять, как устроены программные компоненты(адрессация, строки, стэк, ...) внутри, чтобы знать что к чему.
Все нужные знания для изучения и понимания C уже есть. Так чего же вы ждёте?
Далее у вас уже появится достаточно много опыта, чтобы решить, что вам предпринять дальше. Автор советует попробовать Perl, а затем Scheme и Smalltalk, если не пробовали ранее, после чего переходить к production-языкам типа C++/Java/C#(.net). Я бы советовал двигаться в сторону .net


Также хочу добавить, что изучение PHP не разовьёт никаких программистких качеств.

И не нужно спешить (http://www.williamspublishing.com/21-days.html)

zeppe1in
07.03.2010, 04:14
Perl во втпрой пункт, а то и в первый.

lukmus
07.03.2010, 05:09
Ruby во второй пункт, а то и во все

BrainDeaD
07.03.2010, 06:04
считаю абсолютно неправильным сначала изучать процедурные языки програмирования как c и pascal, а потом переходить на c++, c# и тд., так как после процедурного очень трудно осваивать ооп концепт. об этом постоянно говорят все и вся, и мой опыт говорит о том же. с таким же успехом можно сразу приступать к ооп языкам, ведь они так-же имеют свои азы. особенно .net в виде c# и vb идет с нуля как по маслу.

Gar|k
16.03.2010, 12:32
BrainDeaD +1

я уж лет 6 программирую на процедурных яп и ООП понять я вообще не могу да и не хочу...

Qwazar
16.03.2010, 14:16
Ой какие плохие советы... Особенно первые три пункта.

St0nX
16.03.2010, 14:58
Как язык разметки мне поможет в освоении алгоритмов и специфики программирования? =\

admink1
16.03.2010, 22:17
ну вот, кому теперь прислушаться новичку?

Pashkela
16.03.2010, 22:44
Да просто писать хоть на чем-нибудь, постоянно усложнять задачи, так и придете в итоге к выбору, имхо. Если сидеть и читать теорию только (пускать слюни) - ничему не научитесь. Если в процессе перейдете от PHP к C++ - прекрасно, больше опыта. Главное, чтобы вам самим интересно было, имхо

Nelzone
16.03.2010, 23:06
согласен с пашкелой =\

Qwazar
17.03.2010, 00:02
Если в процессе перейдете от PHP к C++ - прекрасно, больше опыта. Главное, чтобы вам самим интересно было, имхо Лучше тогда от C# к С++, потом к PHP. Если идти от PHP, разовьётся дурной стиль. В этом плане C# оптимален, т.к. прогрессивен и прост (по сравнению с C++).

Delimiter
17.03.2010, 00:13
упссссссссс forth для начинающих???? :eek:

... ничего сибе .... крутые новички получатся если перед изучением языков 3-го поколения начнут с 4-го :D

... я обычно засыпаю под описание структуры словаря форта (лучше всякого димедрола) :cool:

lukmus
17.03.2010, 00:50
считаю абсолютно неправильным сначала изучать процедурные языки програмирования как c и paskal, а потом переходить на c++, c# и тд., так как после процедурного очень трудно осваивать ооп концепт. об этом постоянно говорят все и вся, и мой опыт говорит о том же. с таким же успехом можно сразу приступать к ооп языкам, ведь они так-же имеют свои азы. особенно .net в виде c# и vb идет с нуля как по маслу.
я согласен.
Не большая поправка: Pascal - ООП язык, просто мало кто знает об этом.

Gar|k
17.03.2010, 00:55
lukmus o_O Turbo Pascal ООП?

BrainDeaD
17.03.2010, 01:05
я согласен.
Не большая поправка: Pascal - ООП язык, просто мало кто знает об этом.
http://ru.wikipedia.org/wiki/Паскаль_(язык_программиров ния)

Класс языка:
императивный, структурированный

Vernal Equinox
17.03.2010, 01:37
с самого простого html,php и т.д

Tigger
17.03.2010, 01:47
Лучше тогда от C# к С++, потом к PHP. Если идти от PHP, разовьётся дурной стиль. В этом плане C# оптимален, т.к. прогрессивен и прост (по сравнению с C++).

Согласен. Я начала изучать PHP, сейчас с C# борюсь. Трудно перейти на ООП. По привычке все делаю строками, а не объектами и т.д...

lukmus
17.03.2010, 01:48
признаю свою ошибку, Turbo Pascal. однако, в современном мире врят ли кто-то говоря Pascal имеет ввиду Pascal образца 70-го года

XAKAmaDA
17.03.2010, 19:27
точно, главное начать.

scrat
17.03.2010, 20:16
добавил про php

Pashkela
19.03.2010, 05:30
Также хочу добавить, что изучение PHP не разовьёт никаких программистких качеств.

добавил про php


Не будете рубить в PHP - забудьте про хек, по крайней мере на ближайшие лет 10. И насчет программистких качеств несогласен. Да, есть полно более оптимальных языков для того же веба, но...это такой же язык, как и все остальные, что-то можно, чего-то нельзя. А ТС стереотипен до безобразия. Пахнет ортодоксом. Правда, как не странно, этим страдают все профессиональные программисты, давно заметил.

PS: Просто мне смешно становится, когда сишник и ассемблерист, который решил заняться взломов, пишет мне в осику с просьбой написать локальный дампер данных из MySQL с функцией расшифровки паролей налету на PHP, потому что перла там тоже нет и ничего другого тоже. Вывод - нельзя с пренебрежением относится к самому распространенному (наиболее часто используемому) веб-языку

Qwazar
19.03.2010, 13:16
Pashkela, мне становится смешно, когда я вижу 90% php кода на веб проектах. Не путай понятия - стать программистом, и выучить инструмент. Планете индусских программистов хватает, незачем новых плодить.

GhostOnline
06.06.2010, 20:16
Бред сцуко.
"Научитесь программировать за десять лет"
А если я гений и все схватываю на лету?
Автор статьи по ссылке всех подводит под свою гребенку

scrat
06.06.2010, 20:40
Бред сцуко.
"Научитесь программировать за десять лет"
А если я гений и все схватываю на лету?
Автор статьи по ссылке всех подводит под свою гребенку
Дерзай, научись быстрее. Из того, что в программировании понимаю я, всё приведённое выглядит наиболее логично.

RedFern.89
06.06.2010, 23:14
ну как вам сказатиь =) кароче... ковыряйте простейшие сорсы, пишите калькуляторы и тд)) ну и за**выйте умеющих =)) мне помогло =)) щас я уже быдлокодер =))

Gar|k
07.06.2010, 00:15
ну и за**выйте умеющих =)) мне помогло =))
плохой совет
лучше пусть учатся пользоваться поисковыми системами!!!

ErrorNeo
07.06.2010, 08:53
когда-то я хотел стать прогарммистом, читал учебники, писал всякие там калькуляторы и прочую лабуду (здания из учебников)...
все, что мне это дало:
осознание того факта, что первую программу, которая еще никем до меня не написана, я смогу написать минимум года через 3 изучения программирования, а на то, чтобы написать хоть 1 по-настоящему нужную и востребованную программу - у меня уйдет лет 5 практики и изучения...

так что я бы посоветовал новичку вообще не читать книжек и ставить перед собой интересные задачи - типа "написать программу, которая удалит все файлы на винте" или там... сделает 10000 запросов к какому-нибудь сайту в минуту, или... которая перехватит нажатия клавиш пользователя и отошлет репорт на емейл :rolleyes: :D ну или как вариант, написать бота к какой-нибудь (онлайн или не очень) игре.
ну или что-угодно интеерсное и кажущееся полезным.

(помню своего первого бота для браузерки я писал - непрерывно 2-3 суток - спал всего часа по 4 - такой был азарт. и это при том, что я вообще не умел программировать!=) Зато написав - научился, и дальше уже умел всё то, что использовал в первой программе. и так далее)

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