Советы для начинающих

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by scrat, 7 Mar 2010.

  1. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    В избежании размножения различных вопросов, хотел бы опубликовать перевод первого поста от сюда. Перевод не дословный, вкраплял от себя.

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

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

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

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

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

    И не нужно спешить
     
    #1 scrat, 7 Mar 2010
    Last edited: 17 Mar 2010
    4 people like this.
  2. zeppe1in

    zeppe1in Elder - Старейшина

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    Perl во втпрой пункт, а то и в первый.
     
  3. lukmus

    lukmus Elder - Старейшина

    Joined:
    18 Nov 2009
    Messages:
    404
    Likes Received:
    118
    Reputations:
    23
    Ruby во второй пункт, а то и во все
     
  4. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    считаю абсолютно неправильным сначала изучать процедурные языки програмирования как c и pascal, а потом переходить на c++, c# и тд., так как после процедурного очень трудно осваивать ооп концепт. об этом постоянно говорят все и вся, и мой опыт говорит о том же. с таким же успехом можно сразу приступать к ооп языкам, ведь они так-же имеют свои азы. особенно .net в виде c# и vb идет с нуля как по маслу.
     
    #4 BrainDeaD, 7 Mar 2010
    Last edited: 7 Jun 2010
    3 people like this.
  5. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    BrainDeaD +1

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

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    Ой какие плохие советы... Особенно первые три пункта.
     
    1 person likes this.
  7. St0nX

    St0nX Elder - Старейшина

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    Как язык разметки мне поможет в освоении алгоритмов и специфики программирования? =\
     
  8. admink1

    admink1 Member

    Joined:
    12 Jun 2009
    Messages:
    63
    Likes Received:
    21
    Reputations:
    1
    ну вот, кому теперь прислушаться новичку?
     
  9. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Да просто писать хоть на чем-нибудь, постоянно усложнять задачи, так и придете в итоге к выбору, имхо. Если сидеть и читать теорию только (пускать слюни) - ничему не научитесь. Если в процессе перейдете от PHP к C++ - прекрасно, больше опыта. Главное, чтобы вам самим интересно было, имхо
     
  10. Nelzone

    Nelzone Banned

    Joined:
    12 Apr 2008
    Messages:
    172
    Likes Received:
    134
    Reputations:
    6
    согласен с пашкелой =\
     
  11. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    Лучше тогда от C# к С++, потом к PHP. Если идти от PHP, разовьётся дурной стиль. В этом плане C# оптимален, т.к. прогрессивен и прост (по сравнению с C++).
     
  12. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    упссссссссс forth для начинающих???? :eek:

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

    ... я обычно засыпаю под описание структуры словаря форта (лучше всякого димедрола) :cool:
     
    #12 Delimiter, 16 Mar 2010
    Last edited: 16 Mar 2010
  13. lukmus

    lukmus Elder - Старейшина

    Joined:
    18 Nov 2009
    Messages:
    404
    Likes Received:
    118
    Reputations:
    23
    я согласен.
    Не большая поправка: Pascal - ООП язык, просто мало кто знает об этом.
     
  14. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    lukmus o_O Turbo Pascal ООП?
     
    _________________________
  15. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    http://ru.wikipedia.org/wiki/Паскаль_(язык_программирования)

     
  16. Vernal Equinox

    Joined:
    15 Mar 2010
    Messages:
    27
    Likes Received:
    3
    Reputations:
    0
    с самого простого html,php и т.д
     
  17. Tigger

    Tigger Elder - Старейшина

    Joined:
    27 Aug 2007
    Messages:
    936
    Likes Received:
    527
    Reputations:
    204
    Согласен. Я начала изучать PHP, сейчас с C# борюсь. Трудно перейти на ООП. По привычке все делаю строками, а не объектами и т.д...
     
  18. lukmus

    lukmus Elder - Старейшина

    Joined:
    18 Nov 2009
    Messages:
    404
    Likes Received:
    118
    Reputations:
    23
    признаю свою ошибку, Turbo Pascal. однако, в современном мире врят ли кто-то говоря Pascal имеет ввиду Pascal образца 70-го года
     
    1 person likes this.
  19. XAKAmaDA

    XAKAmaDA New Member

    Joined:
    15 Mar 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    точно, главное начать.
     
  20. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    добавил про php