Как начать программировать?

Пока я учился программированию, у меня никогда не было четкой, осознанной картины того, что я делаю. То что-нибудь одно подучишь, то что-нибудь другое, но никогда не была видна картина «в целом». Все знания доставались как-то отрывочно. Не было понятно, откуда начинать и куда двигаться. Не было системности.

Для того, чтобы получить эту системность, я поступил в университет. Но, на самом деле, это не слишком помогает. Только пройдя некоторый путь, начинаешь что-то понимать.

Если вы так же не можете понять логики во всем этом сложном мире программирования — вам сюда. Итак, предположим, вы решили стать программистом.

Я расскажу, по какому принципу строится обучение в университете, а потом о том, как бы я советовал начинать изучать программирование.




Университет

Следует понимать, что в университете преподают «академическое» программирование. Как и ко многим другим наукам, преподаваемым в университетах, подход к обучению программирования очень обстоятельный.

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

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

И говоря «полностью», я имею ввиду, не только компонентный подход («Это видеокарта, а это процессор»), а и более глубокие уровни («Регистры процессора Intel 80386 можно разделить на такие группы»), вплоть до элементарной базы («Диод — это ...»).

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

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

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

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




Если учится самому

Первый шаг людей, которые хотят научиться программированию, это обычно покупка какой-нибудь книжки. Например, Бьерн Страуструп — Язык программирования С++. С++, вообще, почему-то самый популярный язык у новичков.

Разочарование наступает, когда прочитав такую книжку, человек понимает, что по-прежнему далек от программирования реальных программ. Книжка учит языку, но не учит программированию под Windows или любую другую систему.

Конечно, такая книга полезна. После изучения одного языка программирования, разобраться в других не составляет особого труда.

Однако, если бы я начинал учить кого-то программированию, я бы предложил начать с C#.

Еще было бы неплохо сразу задумать себе какую-нибудь цель — решить написать какую-нибудь определенную программу.

Знания без применения — плохо усваиваются. А когда по крупицам реализуешь какую-то сложную идею, это мотивирует и ты незаметно сам для себя осваиваешь новые вещи.

Основная причина, почему я бы рекомендовал С# — это возможность постепенного развития.

Знание языка программирования — не так важно. Важно то, к чему применять язык программирования — программный интерфейс той среды, где будет работать программа, различные библиотеки.

Я помню, у меня была проблема, когда после изучения С++ по одной из книг, я не мог перейти к программированию приложений под Windows. Это было ужасно. Я прочел книгу о языке. Переменные, конструкции языка, вывод строк на экран — все стало довольно просто.

А вот чтобы создать простое «Hello World» окно в Windows — надо было очень постараться. Сразу появляется множество новых непонятных вещей: оконные процедуры, хендлы, сообщения и прочие атрибуты WinAPI. Перестаешь понимать, как это все работает...и забрасываешь обучение.

С# сразу привязан к Windows и прикладному уровню. Начать — совсем просто. Окна программ создаются с помощью визуального редактора — это не сложнее работы в Ворде.

Потом программа постепенно обрастает кодом.

Кроме того, C# изначально объектно-ориентирован. Мне было сложно по книге понять, что вобще этот ООП такое. Но на практике понимаешь все довольно быстро.

Кроме того, С# — новый язык. C# программисты востребованы. Я не говорю, что C# — идеальный язык, у него есть свои недостатки, но по-моему с него очень хорошо начинать обучение программированию.

Впринципе, C# — не единственный язык, который удовлетворяет вышеперечисленным требованиям, но мне он нравится больше всех.




Практика

Чтобы начать программировать, понадобится среда программирования — Microsoft Visual Studio. Качать варез необязательно, Microsoft предлагает облегченную бесплатную версию — http://www.microsoft.com/express/vcsharp. То, что нужно для обучения.

Если опыта программирования нет вобще — лучше обзавестись книгой. Просто, чтобы познакомится с основными понятиями в программировании. Переменные, циклы, функции — все это мало отличается от языка к языку.

Необходимые примеры можно найти в интернете. В интернете вобще можно найти все необходимое. Основной источник информации для Windows программиста -- библиотека MSDN.

Удачи!

Также посмотрите:

  • Дамир

    Я спросить хотел, я недавно начал программированию обучаться но на delphi for win 32 2006 версия, хочу узнать насколько этот язык лучше c#, и счего мне лучше начинать, потамучто на дельфи помойму легче хотя у меня такаяже запутанность как и у вас, помогите пожалуйста.

    • http://openid-provider.appspot.com/crazytimon88 CrazyTimon

      Если о дельфинах, то лучше не лезть сразу в ооп, сначала попиши простые програмки(консольные). Как поймешь что можешь посложнее валяй создавай калькулятор(скорее всего это самая популярная «первая программа»), с +, — ,*,/. Напишешь такой калькулятор, усовершенствуй его, сделай инженерный из него. Далее следует изучать ООП, научишься создавать классы, объекты, методы и пр...Примени методику ООП к своему калькулятору.На все может уйти от 3-4 до 20 дней, в зависимости от твоего стремления к познанию.

      А вообще от Дельфы советую отказаться, больно грамоздкая и глючная.

  • m2yor

    В действительности, трудно определить какой язык программирования лучше, а какой хуже.
    ИМХО Delphi – хороший язык для первых шагов, так как более жесткая структурированность кода, требуемая языком, обеспечивает лучшую читабельность и понимаемость ). Я понял ООП именно на Delphi. Однако на ряду с этими достоинствами проявляются недостатки, главным из которых является – отсутствие толковой справочной системы и нехватка технической документации.
    И поскольку речь идет о программировании под win32, то я бы все-таки рекомендовал ознакомиться с принципами WinApi, без этого может возникнуть ситуация когда программист не понимает как работает его программа.
    Но опять — же все зависит от цели. Если вам просто хочется напасать к примеру, секундомер, то можно обойтись дизайнером Delphi не углубляясь в всякие там WinApi и регистры процессора.
    Советую для начала поискать какие-то готовые примеры, в том, что заинтересует – хорошо разобраться, понять как все работает, затем попытаться создать что-то не сложное самому и по мере энтузиазма совершенствовать программу. Когда более – менее разберетесь с делфи, то стоит попробовать другой язык программирования.

  • Дамир

    Спасибо вы мне очень помогли разобраться с этим вопросом. :)

  • Дамир

    Хотя если подумать то delphi for win 32 не очень отличается от Microsoft Visual Studio. Порядок выполнения действий в ней тот же самый что и в delphi for win 32.

  • Дамир

    Кстати сайт классный!

  • Дамир

    Скажите пожалуйста какую книгу я могу скачать для изучения языка c# желательно для чайников, просто в таких книгах по проще всё объясняют заранее спасибо.

  • anonymous

    Read it there:
    http://catb.org/~esr/faqs/hacker-howto.html#ski...

    1. Learn how to program.

    This, of course, is the fundamental hacking skill. If you don't know any computer languages, I recommend starting with Python. It is cleanly designed, well documented, and relatively kind to beginners. Despite being a good first language, it is not just a toy; it is very powerful and flexible and well suited for large projects. I have written a more detailed evaluation of Python. Good tutorials are available at the Python web site.

  • сергей

    И мне тоже нравится язык С# у меня к нему тяга душевная,но есть одно,но то работа то ещё что-то то устал,да и некому поднатаскать конкретно,а на курсах так гребут бабки что ё маё и зарплаты не хватит. спасибо!

  • Kosta1990

    Начинать программировать лучше с простого языка, например с
    PureBasic http://pure-basic.narod.ru

    • http://openid-provider.appspot.com/crazytimon88 CrazyTimon

      Неееееееееет...только не бейсик, я в школе начинал с него. ИМХО он ужасен. И вообще заметил за собой в последнее время что у меня рвотный рефлекс к тем языкам программирования, в которых переменные всегда нужно заранее объявлять, даже если она используется 1 раз. Гораздо удобнее объявлять переменные попути, и только в том случае если объявлять необходимо

  • Pingback: Как начать программировать? | Undsoft.com | Вадимир's blog

  • http://twitter.com/IT_vadimir Вадимир Хубларян

    Неплохая статья — главное правдивая: вот они реалии современного высшего образования!

  • Simon

    Пердлагаю взять настоящий и распрастраненный язык программирования python.

    Начать программировать можно здесь www.programming2.ru. На python.

    Бесплатно и достаточно весело. Если что-то не будет полуяаться, то подскажут и ответят на вопросы.

  • Darth Bane

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

    И говоря «полностью», я имею ввиду, не только компонентный подход («Это видеокарта, а это процессор»), а и более глубокие уровни («Регистры процессора Intel 80386 можно разделить на такие группы»), вплоть до элементарной базы («Диод — это ...»).»

    Подскажите, а есть ли книги, которые все это расскажут и объяснят? Очень хочется все это узнать, но учусь в техническом вузе (изучаю восновном машины для с/х и автотранспорт). А в библиотеке таких книжек нету.

    • http://openid-provider.appspot.com/crazytimon88 CrazyTimon

      в таких случаях обычно шлют на......google.com )

  • Lara W

    Мне случилось немного обучаться Линуксу, тогда я и узнала как устроена память, какие бывают операционные системы и как они работают.

    Но к сожалению, там решили взять специалиста, а не обучать стажеров.

    Скажите пожалуйста, где я могу прочитать про все это? Какую книгу порекомендуете?

    Надо сказать я не совсем новичок, с C++ и Delphi на уровне 2-связных списков знакома. Линукс мне не нужен, но уж больно тема заинтересовала.

  • Simple

    а что скажете про asemmbler? для начала

  • Simple

    assembler*

  • nacgull

    Скажу то, что до него есть микроассемблер и программирование на уровне машинных кодов. Ассемблер начать учить следует с 16-ти или 8-битных процессоров, там на порядок легче всё.

  • Dmt34

    программируя не понимая как все работает, все равно что пытаться управлять автомобилем не зная что такое руль ! Начинать надо с основ, советую язык низкого уровня ассемблер, конечно мне возразят, асм устарел и т.д... однако он позволяет понять механизм работы пк и написания под этот механизм программ. Зная как все работает, на порядок проще изучать языки высокого уровня. И кстати асм не заменим при отладке, что весьма важно !!!