Тимофей Мартынов
Тимофей Мартынов личный блог
02 февраля 2016, 20:17

Программирование и я. Отчаяние

Хочу сразу поблагодарить всех, кто комментировал предыдущий пост. Вы знаете, тут на смартлабе люди жалуются, что срач и качество комментариев низкое. Но как я понял, срач всегда притягивается на соответствующие темы постов. Если ты пишешь о высокоинтеллектуальных вещах, то нежелательный контингент отваливается сам собой, поэтому в комментах сложилась очень теплая и конструктивная атмосфера. Ещё раз спасибо!

Итак, с момента публикации моего предыдущего поста про моё изучение C# прошло еще [42->57] 15 часов чистого времени. Я по-прежнему иду по книге Стиллмена Изучаем C#
Программирование и я. Отчаяние
Первые 250 страниц (которые уже прочел три года назад) прошли относительно легко. Но теперь, такое ощущение, что с каждой страницей я начинаю увязать в содержании всё сильнее и сильнее. Вещи становятся всё более абстрактными, они уходят всё дальше от жизни и пока не ясно, как это всё использовать.

Сейчас я на 304 стр. В частности я добрался до иерархии классов. Ладно бог с ним, когда один класс наследует какие-то свойства другого. Но когда вместо классов возникают ещё и интерфейсы, плюс параллельные классы начинают «тырить» друг у друга методы и свойства, становится совсем тяжко. Ощущение что с каждой страницей этой книги я увязаю в болоте всё сильнее и сильнее. Но я не отчаиваюсь, и все равно собираюсь прочесть её целиком, не пропустив ни одной странички, не упустив ни одного задания. Хотя честно говоря, я уже несколько не смог сам решить, потому что уже не совсем вдупляю).

Как бы вам это объяснить? Ну вот есть синтаксис у языка. Ты начинаешь его учить. Вместо того, чтобы начинать говорить помаленьку, на тебя сгружают все самые сложные языковые конструкции, которые перегревают твой мозг — ты просто не в состоянии удерживать всё усложняющуюся конструкцию синтаксиса у себя в голове… И в отсутствие обширной практики просто вызывают блокирование мозга). Вот так я себя чувствую углублясь в детали иерархии классов...

Понаблюдать за моим мучениями можно например тут (Я открыл видосики, которые записываю сам для себя, чтобы во время проговаривания, лучше усваивался материал):
 

Полный плейлист моих мучений тут.

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

p.s. всё ещё не курю ни одной.
144 Комментария
  • Chepell
    02 февраля 2016, 20:22
    Борьба с самим собой достойна уважения!
    • Антон Ш
      02 февраля 2016, 23:49
      Юрий Романов, Пол-года назад попытался начать учиться по этой книге — не пошло, такое чувство, что перевод корявый, что-то постоянно смущает в этой книге. (может то что, я уже давно не школьник))
  • Aberkromb Garell
    02 февраля 2016, 20:22
    ну, я всегда всем советовал изучать c# с книги Эндрю Троелсена. Легкая, понятная, содержательная.
    А после некоторых лет программирвоания почитать уже Рихтера.

    Серию этих книг знаю, они всегда казались какими-то странными и не оч содержательными.

    #Тиманездавайся
      • 0KDQuNC90LDRgg==
        02 февраля 2016, 20:56
        Тимофей Мартынов, дело не в страницах, дело в подходе. Не нужно учить синтаксис, нужно понять принципы и логику, все, после этого глубоко параллельно какой-то там синтаксис, и где и сколько страниц, если другой язык, просто смотришь справочник. И эта 1100 страниц не нужна, на практике все равно задачи примерно одинаковые.
      • Евгений Черных
        02 февраля 2016, 22:11
        Тимофей Мартынов, да и вообще после 30 крайне полезно изучать что то новое. Чтобы к 50 в бревно не превратится. Я вот для этого шахматы штудирую. Башка взрывается от дебютов примерно как у тебя сейчас. Ну и как от матана на первых курсах
      • Aberkromb Garell
        03 февраля 2016, 09:04
        Тимофей Мартынов, все 1100 не нужно, потому что там есть такие вещи как Энтити, АСП, Рефлексия — все это можно опускать на раннем этапе. Потом почитать про Энтити и после базового опыта будет на много легче и зайдет как по маслу. Рефлексия вообще может не скоро понадобиться, если вообще когда-нибудь пригодится. Асп это вообще веб. 
  • onlyfly
    02 февраля 2016, 20:22
    а интерфейсы нужны будут при программировании роботов?
      • Рустам TradeInWest.ru
        03 февраля 2016, 00:46
        Тимофей Мартынов, нужны будут.
        Просто для тебя интерфейс — это якобы визуальное взаимодействие человек — компьютер.
        А на самом деле это средство взаимодействия классов (объектов — экземпляров классов) друг с другом.
        Поэтому у тебя может быть консольное приложение, которое ни строчки на экран не выводит, но твои классы вовсю используют интерфейсы.
    • Сергей Гаврилов
      03 февраля 2016, 03:13
      onlyfly, будут..., но для начала на них можно не зацикливаться. Сразу и правда сложно понять зачем они нужны…
  • Hannes
    02 февраля 2016, 20:23
    p.s. всё ещё не курю ни одной

    а в планах когда начать?(шорт филлипа давит))
  • Свой Мужик
    02 февраля 2016, 20:26
    Я учился сам на примерах (язык был php) причем чем проще пример тем быстрее понимаешь что там...
    До этого правда был Basic и Паскаль (в школе было), а за ним Дельфи — ОО Паскать т.с. и немного Асма :)
    Но вот C и C# до сих пор для меня загадки :)
    Иногда правда на нем ковыряю, что надо по мелочи, но в 80% случаем лезу на форумы, т.ч. я хз как Тимофею это удается…
      • Stepan Romankov
        03 февраля 2016, 10:51
        Тимофей Мартынов, Послушай совета бывалого. Никогда просто так не читай книгу, всегда что-то делай. Придумай себе проект, например, попробуй делать свою собственную биржу. Только когда ты будешь пробовать применить знания ты начнешь усваивать материал. Просто читать и переписывать примеры из книги… толку не будет.
  • Владимир Парамонов
    02 февраля 2016, 20:29
    Есть такой совет для изучающих английский язык: «Цель обучения — практическая, а не академическая.» То есть страх совершить ошибку в разговоре — это парализующая, антисозидательная вещь. Думаю, справедливо и для языков. Говнокод — это нормально, вникать в каждую строчку, головой поехать можно. Хакеры взламывают неизвестные языки просто понимая общую задачу, которую код выполняет, а ньюансы понимаются потом. Перфекционизм — лучший друг невроза.
  • Femina
    02 февраля 2016, 20:29
    А может не надо гнать лошадей? Задача поставлена, все сделается в свое время. 
  • Андрей Касаткин
    02 февраля 2016, 20:30
    Тимофей, как мне кажется, ты напрасно начал с классов, с объектно-ориентированного программирования. Для нужд трейдинга вполне можно обойтись и без этого.

    Действительно, классы, наследование, инкапсуляция и т.п. на первых порах могут показаться слишком абстрактными и сложными понятиями. Можно, для начала, изучить процедурный «чистый» C. 

    Как говорят про трейдинг — это не спринт, это марафон. К программированию это относится в той же степени. 

    PS. Молодец!
    • Сергей Гаврилов
      03 февраля 2016, 03:19
      Андрей Касаткин, нельзя… Практически во всех API классы… Изучать сначала С, а потом С# — время терять... 
      • Андрей Касаткин
        03 февраля 2016, 10:00
        Сергей Гаврилов, ваше мнение понятно, но все же разрешите не согласиться с ним по следующим причинам:

        1) Вполне можно использовать API с классами не особенно разбираясь в их устройстве, а синтаксис для их использования подсмотреть в примерах из документации. Для такого применения вполне хватит понимания, что просто есть такая «штука» как «классы».

        2) Для начала, неплохо бы, изучить основные приемы программирования: операторы, типы данных, циклы, условия, функции и т.п. И попрактиковаться в них. Эти знания в любом случае пригодятся как в чистом C, так и в C++/C#/Objective-C. Да и в любых языках вообще.

        3) Ну и, разумеется, я не утверждаю, что изучать классы не нужно совсем. Просто их легче воспринимать, когда уже знаком с базовыми приемами в программировании. Впрочем это только из моего личного опыта, я учился довольно давно, когда ООП было в диковинку. Вполне допускаю, что для некоторых такой способ — избыточная трата времени.
  • Антон Денисков (Fry)
    02 февраля 2016, 20:31
    И в отсутствие обширной практики просто вызывают блокирование мозга
    так и есть. Вывод: начинай пляски от практики.
    До тех пор пока тебе не нужны сложные взаимодействия классов даже не забивай этим голову. Появится задача — будешь искать путь решения и голова заработает от правильных вещей.

    Вот тебе пример задачи, когда нельзя просто наследовать классы.
    Есть два ключевых объекта: «лимитный ордер» и «позиция».
    Позиция порождается ордером, значит подчинение «по простому» должно быть такое: объект «ордер» управляет объектом «позиция». На практике надо придумывать сложное двухстороннее взаимодействие. Возникают сложные ситуации (частичное исполнение ордера, позиция без ордера и т.п.) и появляется конкретный запрос в голове «как решить?». Вот тогда и надо читать учебник.
    • Cristopher Robin
      02 февраля 2016, 21:25
      Fry (Антон), большинство прогрессивных и модных технологий в программировании решают одну единственную задачу — притормозить всеускоряющийся рост цены/времени затрачиваемых на развитие проекта в будущем. Учитывая, что большинству проектов развитие в принципе не грозит, а особенно учитывая, что заказчик зачастую сам это оговаривает в ТЗ прямым текстом, большинство программистов можно сравнить с собаками павлова, которые делают то, чему научены, при виде монитора и клавиатуры. Неуважение к бизнесу очень распространено в среде разработчиков, а в среде преподавателей и авторов книг, думаю, еще более.
      • Антон Денисков (Fry)
        02 февраля 2016, 22:02
        Cristopher Robin, но и бизнес программистов за людей не считает. Например, как вообще можно называть опору своего дела «дятлами»? Тот кто это придумал… сам дятел. )
  • neophyte
    02 февраля 2016, 20:34
    Просто абстрактно изучать язык — тупиковый путь.
    Нужно параллельно браться и программировать, реашая конкретную задачу. Тогда изучение тех моментов, которые нужны при написании программы,  будет активным и будет усваиваться. Изучать весь язык и все его возможности на авось пригодится может и хорошо, но…
    • Андрей К
      02 февраля 2016, 20:47
      Николай Скриган, Тимофей параллельно пытается программировать примеры. Но там они крайне не удачные. Западные, не для российского интеллекта, что влечет полное отсутствие желания их делать.
        • Андрей К
          02 февраля 2016, 20:53
          Тимофей Мартынов, это для западного мышления. Для нас нужно что то поближе к реальности.
  • VpnS
    02 февраля 2016, 20:34
    так в этом и смысл ООП:
    наследование, инкапсуляция, полиформизм
    • Hannes
      02 февраля 2016, 20:40
      VpnS, нихера не понял, но +
      • SEREGA
        02 февраля 2016, 20:49
        Hannes, ))))))))))))))))))))
  • sergik99
    02 февраля 2016, 20:35
    Тимофей, уныние тяжкий грех.  Давай рубись.
    Это ты пока еще только книжку читаешь. Начнешь программировать там отдельные засады.

    Тут главное верить в себя. Считать себя крутым и могучим.

  • FZF
    02 февраля 2016, 20:37
    учиться программированию можно по разному. Я вот, например, прочитал книжку, нихрена не понял, но узнал о возможностях изучаемого языка. Потом сел и стал реализовывать простенькие задачки. Сначала очень тяжело( как переводить с китайского), потом через 4 месяца наступает качественный скачек. Начинаешь помаленьку что-то писать. Потом берешь не сложную реальную задачку. В принципе через год уже имеешь квалификацию «начинающего» и можешь делать почти все, но долго и мучительно. Через 5 лет начинаешь делать хорошие вещи.
      • FZF
        02 февраля 2016, 21:56
        Тимофей Мартынов,  Требуется время для наработки навыков. Мышление программиста — это немного специфическое мышление. :)))
  • Oleg Vazhnev
    02 февраля 2016, 20:43
    я ни одной ни курю и ни грамма ни пью! :)

    вообще не понятно зачем ты этим занимаешься, Тимофей, то что ты делаешь сейчас хорошо делать лет в 18-20, а лучше в 10 :) начинать учить программирование сейчас в твоём возрасте, ну только как хобби или для общего развития. проффесионалом ты не скоро станешь. конечно если очень захотеть можно через 10 лет вырасти в суперпрограммера и следующие 50 лет ещё фигачить )

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

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

    я вот тем чем ты занимаешься занимался в возрасте 18 лет, и потом ещё лет 8 писал говнокод, пока хоть чему-то научился.
  • bolo yong
    02 февраля 2016, 20:43
    главное не потерять мотивацию… ни в Си, ни в куреве… Продаст кто пут на первую папиросу ТС?
  • serg
    02 февраля 2016, 20:44
    Судя по видосу, у тебя нет понимания базовых понятий. Что такое объект, класс, метод, свойство, наследование, интерфейс и прочее.
    Читай книжки и зубри понятия для начала.
      • serg
        02 февраля 2016, 21:14
        Тимофей Мартынов, ну по видео этого не заметно.
        Удивляешься, что у тебя не выводится значение свойства ScaryThingIHave, но при этом ты ни разу это свойство не вызваешь.
        Свойства сами по себе обычно ничего не выводят. Чтобы вывести значение свойства, его значение надо сначала получить, а потом передать в метод, который выводит на экран или показывает MessageBox.
        Наследование тоже сделано не пойми как. Наследование — это выделение частного из общего. Т.е. если класс Б отнаследован от А, то можно сказать «Б» это «А», например ScaryClown это Clown и FunnyClown это Clown или «автомобиль» это «средство передвижения», а у тебя ScaryClown отнаследован от FunnyClown, т.е. у тебя ScaryClown это FunnyClown. Что не есть правильно.

        И книжка твоя — говно.
        Читай лучше C# in a nutshell (на англ vk.com/doc24300989_341954531?hash=58b24356316717c32d&dl=4dfb2713d0d3cd452d) на русском не знаю есть ли электронный вариант, бумажный вот www.ozon.ru/context/detail/id/19146325/
          • serg
            04 февраля 2016, 17:22
            Тимофей Мартынов, это конечно справочник, но, имхо, для изучения языка он подходит.
            Плюс справочника (не любого, а именно этого) в том, что он излагает информацию последовательно, не кидаясь сразу в ООП, как это делает стиллмен.
            Минус справочника в том, что он может не объяснять разные базовые моменты программирования. Но эти моменты не привязаны к языку, их можно изучать отдельно. Вот например плейлист с объяснением основ ООП (примеры там приводятся на жаве, но это не важно; да и жава похожа на C#)
            www.youtube.com/playlist?list=PL6LDsbZOeyrx462VmH18qS0a9Dw9LwpSu
          • serg
            04 февраля 2016, 17:33
            Тимофей Мартынов, вот еще хороший вариант (не справочник)
            adm-lib.ru/programmirovanie/h.-deytel-c-v-podlinnike.-naibolee-polnoe-rukovodstvo.html
  • izya kacman
    02 февраля 2016, 20:44
    Ну я учился на программиста, типа детская мечта и все такое… учить синтаксис — это то, на чем погорели толпы горе-программистов вроде меня и тебя. Я как-то раз, уже далеко после окончания ВУЗа взял, и по памяти расставил ключевые моменты объектно-ориентированное программирования у себя в голове, которые там должны были выстроены и опробованы еще до поступления в ВУЗ. Что-то вроде просветления за счет того, что повзрослел. Конечно, некоторые моменты были упущены, т.к. я усвоил не весь материал.

    Кстати, быть программистом это обалдеть какая скукота.
    • Андрей Касаткин
      02 февраля 2016, 20:54
      izya kacman, «Кстати, быть программистом это обалдеть какая скукота» — в период с 19 до 35 лет было очень даже интересно, только потом стало скучно. Но только потому, что не было интересных задач, все однотипное. Сейчас интерес вернулся, т.к. нашел применение знаний к новой области — к трейдингу.
  • vvs1941
    02 февраля 2016, 20:47
    тимофей, интересно сколько вам надо книг прочитать чтобы понять.

    «что истина в простом.»

    забьете себе мозг ерундой, а там и до палаты №6 не далеко
  • witwayer
    02 февраля 2016, 20:49
    Тимофей Мартынов! Есть два хороших самоучителя по С#, написанных отечественными специалистами.
    1. http://eknigi.org/programmirovanie/69771-samouchitel-c.html
    2. http://forcoder.ru/c-sharp/samouchitel-c-nachala-programmirovaniya-1257
    Отчаиваться не стоит, ибо вспомните школу как шло обучение тому или иному предмету у того или иного ученика.
    Кто-то вначале был в отчаянии, но продолжал грызть гранит науки(чаще всего под давлением родителей), кто-то не так сильно был «обременен» родительским вниманием. Результаты к окончанию обучения всегда были разными у этих двух групп.
    У вас похожий случай. Поэтому не сдавайтесь, но может нужно переключаться с обучения чаще и попробуйте два самоучителя, приведенных выше. Думаю с ними обучение пойдет веселее. 
    Удачи!
  • Magistr
    02 февраля 2016, 20:51
    (0) Целью любой работы должен быть конечный результат. Что вы хотите получить на выходе? Я когда начинал учить 1с хотел много денег, но при этом у меня уже был 25 летний опыт работы программистом на других языках, итак я написал конкретную программку учета путевых листов на предприятии, в конторе, куда пришел 1сить переписал ее на язык 1с. с этого все и пошло.
  • Magistr
    02 февраля 2016, 20:54
    Потом был переход с 77 на 81, потом с 81 на 82 потом с 82 на УФ 8.3  . Начинаешь тупо переносить какой-нибудь документ из 7.7 в 8.2, за это платят от 2 до 3 тыров рублей, далее пишешь макеты — это тоже несложно, потом пишешь работу с вордом, с экселем — всем нужно выводить  в шаблоны договоров информацию или скачивать цифирь с эксель таблиц и обрабатывать — вот и ниша…
    • Антон Ш
      03 февраля 2016, 00:09
      Magistr, Хороший пример четкой, практической задачи.
  • Алексей
    02 февраля 2016, 20:54
    Тимофей, вы сильно грузите мозг теорией, а программирование не математика. если что то не понимаете переводите на простой пример. По интерфейсам это же просто, берем пример из жизни: порт USB, если у вас есть устройство с этим портом то вы можете, заряжать устройства и передавать данные. так и с классами, если какой то класс наследник интерфейса, значит этот класс реализовывает эти функции и свойства.
    начинающему это вообще не нужны, если грубо то всё эти «надстройки» нужны только в больших проектах и используют для экономии времени.
  • Maaxee
    02 февраля 2016, 20:56
    просто тебе не умеют или некому обьяснить
    я бы легко и быстро обьяснил тебе всю эту хрень
      • Maaxee
        04 февраля 2016, 12:36
        Тимофей Мартынов, для расчёта гэпов по утрам мечтаю когда нибудь написать приложения под айфон. Но блин нет инвестора.
      • Maaxee
        04 февраля 2016, 12:35
        Тимофей Мартынов, кашу бабос в игровой индустрии пока косится. Easy money.

          • Maaxee
            05 февраля 2016, 07:45
            Тимофей Мартынов, на с++ программирую за денежку 
          • Maaxee
            05 февраля 2016, 08:06
            Тимофей Мартынов, а ты вкурсе что занявший 4ое место по смартлабу(по процентам) на лчи мой младший брат?
  • Nemo_2000
    02 февраля 2016, 20:56
    а нахрена это всё делается? Если цель стать программистом, то книжка как справочник в который лезешь когда мозг наработал практические навыки и готов воспринять инфу… программирование это ж не абстрактное знание, а куча всякой херни, придуманной для практических целей. Если нет практических задач, то зачем всё это нужно? Или нужно написать робота, но зачем для этого  что то больше, чем процедуры покупки, продажи  по условию < или > какого то уровня ))) Зачем для этого знать как программируют  космические спутники?

    )))
  • Magistr
    02 февраля 2016, 20:57
    Кстати о возрасте — полная чушь — я в 20 лет писал на коленке на ассемблере, а 1сить начал в 44 счас мне 54
  • Magistr
    02 февраля 2016, 20:58
     1с — один асс — как говорят викинги
  • Magistr
    02 февраля 2016, 20:59
     да на самом деле сейчас все гуглят и на форумах смотрят — книжки это отстой.
  • jk555
    02 февраля 2016, 21:03
    В программировании нет ничего сложного, я в 7 лет начал. Читать научился и начал программировать :)
  • Александр Муравьев
    02 февраля 2016, 21:03
    А я вначале научился писать всякие классные программки, а уже через год в институте узнал про типы, классы, ооп и прочую теорию, как там все это называется....)) Тимофей, отложи на месяц умную книжку, попробуй зайти с другой стороны, напиши какую-нибудь программулину при помощи справок из инета. Сразу в голове все устаканится.
  • Nordstream
    02 февраля 2016, 21:06
    «Программирование и я. Отчаяние»  ////Тимофей, перепрограммируйся!
  • helk3rn
    02 февраля 2016, 21:09
    57 часов — это, в общем, то, вообще ничего. Так, говна на вкус попробовать. Параллельно стоит прогать видео-уроки на ютубе, где в реал тайме русские авторы при тебе пишут прогу, давая понятные комментарии. 
  • Александр Зайцев (ocepiruki)
    02 февраля 2016, 21:11
    Тимофей, посмотри на досуге хоть один урок этого курса:
    youtu.be/x0udrpe_gZE?list=PLvItDmb0sZw-kmcZAZJ29eTtAV56D5dgW
    Все понятно и легко, мозги не закипают, вопросы исчезают.
    • Сергей Грошев
      03 февраля 2016, 11:11
      Александр Оцепируки, 

      а я вот не понял про эти курсы — они же вроде платные? Надо платить за месяц, 3, 6, год — по желанию. А на ютубе там что — обрезанные версии? А если не обрезанные, то чего они на ютубе, а не в торрентах? Куда авторы смотрят? Не могла бы Вы пояснить?
      • Александр Зайцев (ocepiruki)
        03 февраля 2016, 13:12
        tim, на ютубе они один-два урока из каждого курса выкладывают целиком бесплатно. Плюс выкладывают обрезанные уроки для того чтобы можно было составить представление о курсе. Потом уже нужно либо подписку покупать либо искать на торрентах.
  • Silent Hamster
    02 февраля 2016, 21:13
    Чем бы дитя не занималась- лишь бы не плакала)))))
    Вот я стал по субботам стрелять по тарелочкам- и публика вся интеллектуальная  и очень богатая… Один я на электричке приезжаю из Москвы)((((
    Каждый выстрел- батон нарезного+ каллорийка!
  • DmitryMX
    02 февраля 2016, 21:30
    Не знаю насколько скучно быть пограммистом в 35, но я начал изучать C# (из-за любимого QPILE, у которого, как известно нет графической оболочки) лет в 37 или 38 и был удивлен насколько это интересно, не так уж и сложно, и практически полезно. Но времени, конечно требует кучу…
    • Андрей К
      02 февраля 2016, 22:16
      DmitryMX, C# действительно, оказался безумно интересным.  Я около 15 лет себя уговариваю вообще перейти на C. Но c# с фреймворком и концепцией «все делаем через классы и коллекции» меня покорил.
    • Андрей К
      02 февраля 2016, 22:16
      DmitryMX, кстати на qlua можно развитую графическую оболочку сделать. 
  • Дмитрий ЕрМак
    02 февраля 2016, 21:30
    Мне кажется, что решать надо сразу свою конкретную задачу. Для абстрактного изучения программирование в полном его понимании потребуется не менее 3-5 лет. И половина из этого будет не нужна.
  • Дмитрий Власов
    02 февраля 2016, 21:32
    Я не совсем понимаю, зачем учиться на примерах из книги. Ведь программирование это прикладная вещь. На мой взгляд, легче всего изучить основы C# можно создавая коды торговых систем для Wealth-Lab и ТСЛаб. Так легко усваиваются и понятие класса и методы и свойства и прочие навороты. И уже получив практику (если на то есть необходиость) можно двигаться и дальше. Правда, если не хочешь стать профессиональным программером — непонятно зачем забивать голову избыточной информацией.
  • Макс
    02 февраля 2016, 21:47
    наследование, инкапсуляция, полиформизм — для первых роботов это не обязательно. Выж Тимофей не к собеседованию готовитесь, а извлекаете минимум вещей для очередного этапа практики.
  • DmitryMX
    02 февраля 2016, 21:50
    Насчет конкретной задачи абсолютно согласен. Я делаю простые программки вполне себе полезные уже года три хотя до сих пор, к стыду своему, не знаю что такое инкапсуляция. Но как то так потихоньку живу с этим.
      • DmitryMX
        03 февраля 2016, 22:51
        Тимофей Мартынов, насчет полезности знания простого программирования (и C#, как одного из самых популярных) для своих нужд, у меня сделано несколько простых программ типа вот такого таймера vk.com/photo309046862_402289946 (фотка для прикола такая, к делу не относится), также всякие напоминалки, будильники и т. п.
        Ну а для трейдинга я уже обвешался программами по уши. Большинство из них героически борются со мной лично, когда я пытаюсь отключить ограничение по дневному лимиту. Борются с переменным успехом, но сейчас уже побеждают в большинстве случаев. Ну и конечно автостопы и другие помогалки, это, в основном на QPILE.
        Кстати когда я начинал программировать, одна из первых программок, которую я сделал, это программный вариант твоей, Тимофей идеи с фишками, — в каком то интервью слышал: кладешь на стол фишку в случае отрицательной сделки (я предпочитаю это делать в случае любой неправильной сделки), три фишки — закрывай терминал. Вместо фишек кнопки и индикатор на видном месте, третья фишка блокирует лимит. Кому то может покажется глупым, а мне реально помогло. И сейчас такие «фишки» входят в мой комплекс.
  • 🗝Багатенький Буратина
    02 февраля 2016, 22:15
    Тимофей, придумай для себя маленькую реальную задачу, которую мог бы решать компьютер и попробуй её запрограммировать.
    • Андрей К
      02 февраля 2016, 22:18
      Багатенький Буратина, около 18 лет назад я себя так уговаривал начать учиться программировать. Пытался взять все с наскоку и решить реальную задачу. Но чтобы я не придумывал, все упиралось, что у меня не хватает знаний и интерес пропадает (а как школьнику, терпения не хватало).
      Думаю программирование все таки познается через последовательное изучение материала. По кирпичикам.
      • DmitryMX
        02 февраля 2016, 22:37
        Андрей К, 18 лет назад не было одной фигенно важной вещи — Интернета. Сейчас изучать программирование или, к примеру иностранный язык одно удовольствие и не требуется ни каких (ну в принципе) учителей. И, что важно, ни каких упоров в отсутствие знаний.
        А если не ограничиваться одним Рунетом, то вообще нет пределов совершенству.
        • Андрей К
          02 февраля 2016, 22:53
          DmitryMX, это даааа. Хорошо подметили.
          Зато был бейсик и паскаль =))
      • 🗝Багатенький Буратина
        03 февраля 2016, 02:06
        Андрей К, я так начинал изучать программирование. Ничего, выучился. Если Мартыныч будет просто мусолить книжки, то ему надоест и в конце-концов он это бросит.
  • П М
    02 февраля 2016, 22:39
    Отчаяние это значит победа близка. Рост это боль.
  • Андрей К
    02 февраля 2016, 22:54
    Тимофей, решите типовую задачу. Вычислите программно, сколько счастливых билетов в пачке из 100 000 штук.
    На таких задачках программисткая логика развивается.

    Потом могу еще подкинуть.
    • ves2010
      02 февраля 2016, 23:12
      Андрей К, крестики нолики можно написать... 
      • Андрей К
        02 февраля 2016, 23:23
        ves2010, тоже вариант. Причем с созданием класса =))
      • Chepell
        03 февраля 2016, 00:45
        ves2010, на api тслаба не перешел? )
        • ves2010
          03 февраля 2016, 06:53
          Chepell, неа лениво в багах копаться… я лучше 400 часов в фолаут4 поиграю… хоть удовольствие получу… в крайнем случае, если прижмет, закажу программистам болванку бота без логики… логику запрограммирую сам легко…
      • Андрей К
        04 февраля 2016, 00:54
        Тимофей Мартынов, получается?
  • iuiu
    02 февраля 2016, 23:29
    Плач гуманитария, соберись тряпка, читай дальше!:)
    • Андрей К
      02 февраля 2016, 23:32
      iuiu, ну а что делать, когда цена не подчиняется тех анализу? =) Рвать когти, недоумевать и продолжать учиться
  • Goreloff
    02 февраля 2016, 23:41
    Действительно, зачем такие дебри? Чтобы начать писать роботов, можно взять Lua. Очень просто, логично и весьма быстро работает все.
  • Niktesla (бывш. Бабёр-Енот)
    03 февраля 2016, 00:16
    Изучить C#  - это еще херня...
    настоящая жопа начнется, когда попытаешься сделать что-нибудь надежно работающее… )
  • alexds
    03 февраля 2016, 02:23

    Интерфейс — это как вывеска банк. Типа в законе написано, что банки — это финансово кредитные учреждения, делают примерно то-то и то-то.

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

  • Schmeichel
    03 февраля 2016, 05:39
    Ух ты я оказывается по этой же книжке (м)учился))) это та, где всё на примерах с подрисовочками и картинками? в районе 250 стр. то же самое отчаяние. В итоге перешел на другую книжку, где всё не так игриво но более выверенно и структурированно, пока нового отчаяния не наступило)
      • Schmeichel
        04 февраля 2016, 07:04
        Тимофей Мартынов, с новой пока всё хорошо, я её сначала начал читать, но там примеры попроще и не обязательно их все кодить. Плюс сначала что-то уже можно диагонально читать. Но в целом структура такая, что постепенно всё встаёт на свои места. 
        Рекомендацию кстати в твоей же ветке взял. Пол и Харви Дейтел «Как программировать на Visual C# 2012. „
  • Hannes
    03 февраля 2016, 13:35
    Тима, для начала начни с вот этого: http://www.ozon.ru/context/detail/id/5531965/
    Очень доступно обьясняетя.Правда на c++, но я думаю, что ты разберёшься.
  • anatolyutkin
    03 февраля 2016, 13:50
    Желание писать роботов самому--это правильное желание, но не факт, что своевременное. Вначале надо понимать, что торгуется, зачем и почему. К примеру, для того, чтобы купить B&H, робот на C# не нужен. А вот чтоб котировальню сделать--вот тут и C# уже не всегда подойдет. 

    Изучение же C#--я бы сказал так: должно быть умение управляться с заявками и сделками. Кидать заявки, следить за ними, то, се. И простейшая задача, на примере которой все нужное и выучится--это кинуть заявку на биржу и понять, что она исполнилась. Тут сразу выучатся и интерфейсы и обобщенные классы и еще много чего. Причем выучатся сами собой, в нужное время нужные вещи. А все подряд учить--непродуктивно. Базовые вещи, которые надо сразу отя бы немного понимать: переменные (public и private надо понимать), классы, методы. Еще бы желательно делегаты и события, но это и позже можно. И хватит, в дженерики сразу лезть не надо. 

    Вот моя практика всего этого:
    anatoly-utkin.livejournal.com/27105.html

    anatoly-utkin.livejournal.com/27206.html

      • anatolyutkin
        03 февраля 2016, 19:26
        Тимофей Мартынов, Ну это тоже хорошая задачка. Для начала--выудить последнюю котировку. Чтоб в окошечке отображалась. У меня такая задачка являлась одной из базовых тренировочных в свое время. Все это делается, причем быстрее, чем кажется. 
  • Суперхимик
    03 февраля 2016, 14:50
    Тимофей, интерфейсы — это, как бы, контракт который должен соблюдать класс наследующийся от него. Т.е. это просто объявление всего что должен уметь делать класс. Они абстрагиркют от конкретных экземпляров классов в коде.  
  • VladMih
    03 февраля 2016, 16:25
    Мученик науки © (из песни)

    Тимофей, пройди курсы АПИ русалго в исполнении Родиона (ra81) и будет тебе счастье — этого будет СВЕРХдостаточно для того, чтобы сделать хорошего робота почти по любой идее.
    За то время, что ты принимаешь вселенские мучения, уже склепал бы 5-10 роботов прямо в процессе учёбы.

    А потом, при желании, дорабатывал бы уже и до профессорского звания. )))
    • Niktesla (бывш. Бабёр-Енот)
      04 февраля 2016, 00:03
      VladMih, нет в мире совершенства...
      и гарантий что оно само влёт наклепается, и при этом будет еще и работать — тоже никаких. в прямом смысле слова — нельзя заранее проверить, как на реалье будет работь то что ты наклепал на API и отладил в тестере TSlab
      • VladMih
        04 февраля 2016, 11:47
        Бабёр-Енот, зато то, чего НЕ «наклепал», точно работать не будет.

        На то человеку и дана способность выбора — одни пробуют, ошибаются и снова пробуют, другие ждут когда им на голову упадет совершенство. Я желаю им (и вам) удачи.
  • MS
    03 февраля 2016, 16:47
    Применим к неспособности овладеть языком программирования пять известных стадий ...

    отрицание
    гнев
    торги
    депрессия
    принятие

    )

     
  • MS
    03 февраля 2016, 21:57
    Приблизительно представил о чём речь у топикстартера.
    Как бы действовал я?
    Надо попросить у кого-либо самого простого работающего робота с исходным кодом. Например, у anatolyutkin. Открыть его в среде разработки и разобрать каждый оператор. Что делает, у кого берёт данные, кому передаёт. Можно схему взаимодействия блоков нарисовать.
    Или скачать из бесплатных у kb.robot. Если там код виден в нём.
    Потом можно модернизировать, добавлять в код своё. Каждый раз проверяя, что работает после изменений.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн