• Как научиться писать самостоятельно код?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    В конкретно Вашем случае:
    Сделайте себе такую табличку:
    Название функции => выполняемое действие => Общий вид => Пример(ы) вызова
    Затем рассортируйте по тематикам (сгруппируйте).
    Как появляется вопрос - сразу смотрите в табличку, находите нужную и применяете.

    Такое можно делать даже тем, кто очень хорошо помнит только один язык, но работает сразу с несколькими: это помогает "сводить концы с концами" (в плане подобия функций в разных языках, если что-то нужно подобное сделать на другом).
    Язык программирования => Название функции => выполняемое действие => Общий вид => Пример(ы) вызова
    Ответ написан
    Комментировать
  • Как научиться писать самостоятельно код?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В школах и институтах учили строить алгоритмы, еще когда рисовали блок-схемы.
    Это не зависит от языка программирования - нужно просто составить алгоритм для решения задачи. Изучая различные аспекты языка программирования, различные библиотеки, фреймворки и так далее вы просто приобретаете знания о дополнительных инструментах, которым нужно пользоваться для решения задачи.

    Но само решение придумывает программист, а не язык программирования.

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

    Например, взять какую-нибудь игрушку с множеством товара и найти самый выгодный или дешевый товар. Вам будет понятна цель - найти нужный вам товар
    При этом не будет важно в каком виде - в виде веб-странички, в виде простого текста на экран, или в виде заполненной таблички в базе данных.
    При этом не будет важно какими инструментами вам нужно воспользоваться.
    Главное, что вы осознаете что именно хотите получить. И пишете программу, которая выдает вам результат, используя имеющиеся знания.
    Чем больше знаний, тем удобнее в конечном счете пользоваться тем что вы написали и тем быстрее и проще вам это писать.
    Ответ написан
    Комментировать
  • Какой язык программирования выбрать под винду?

    @bnytiki
    Интерфейсы:

    Под Windows - флагман сегодня это C#, .Net.

    QT и Delphi - работоспособно. Но не столь мощно развиваются. Несравнимо с C#.

    Формулы и простейшие параметры - не требуют навороченных интерфейсов.
    Если интерфейсы - вторичны и нет жесткой завязки на Windows, то имеет смысл смотреть кросс-платформенные: Go, Python, Java.
    Ответ написан
    Комментировать
  • Как избавиться от привычки усложнять задачу?

    romy4
    @romy4
    Exception handler
    Этот процесс называется определение milestones. Вы сперва определяете MVP (minimal valuable product) — то есть тот уровень завершённости (без рюшечек и плюшек), при котором можно получать выгоду и дальше вы уже строите отталкиваясь от MVP
    Ответ написан
    Комментировать
  • С#/Unity с нуля. Так много вакансий по С# и Java, но одновременно программисты пишут, что тяжело с работой, особенно без опыта...В чем подвох?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    "привлекает, что будучи программистом каждая освоенная тобой новая программа, яп, инструмент делает тебя все более дорогим и дорогим специалистом и эти знания у тебя уже не отнять"

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

    По поводу вашего вопроса, уделять нужно не время, а усилия. Все зависит от вашего бэкграунда, склада ума (к 30 сложно его менять) и умении эффективно тратить эти три часа в день.

    Совершенно несложно потратить три и даже 10 часов, но крайне сложно тратить 3 часа в течение хотя бы 2-3 месяцев, и при этом не терять темп и эффективность.

    Объективно - ничего невозможного тут нет. Даже наверное ничего сверх-сложного нет.
    А субъективно - сможете ли вы?
    Ответ написан
    4 комментария
  • С#/Unity с нуля. Так много вакансий по С# и Java, но одновременно программисты пишут, что тяжело с работой, особенно без опыта...В чем подвох?

    @di23
    ИМХО. Менять профессию нужно на ту которая нравится и к той которой душа лежит. Но судя по вашему тексту вы о з/п и деньгах думаете. Стройте свой бизнес - больше заработаете при меньших усилиях.

    Отвечая на вопрос: Подвох в том что никто не хочет брать людей без опыта. Всем нужны спецы с опытом от года минимум. А где его взять?
    Ответ написан
    4 комментария
  • Как получить список методов, свойств, полей, событий, классов, структур, интерфейсов в C#?

    impwx
    @impwx
    Разработчик
    Есть еще Mono.Cecil - альтернативная реализация рефлексии, позволяющая "расковырять" любую сборку, или создать свою. В том числе можно получить IL-код методов. Конечно, исходного кода на С# не получите, но проанализировать все равно можно. На основе Mono.Cecil сделан, например, декомпилятор IlSpy.
    Ответ написан
    Комментировать
  • Как организовать парсинг?

    Rou1997
    @Rou1997
    Код может запрашиваться по ajax с сервера и потом размещаться в нужном блоке джаваскриптом. (подозреваю что так и есть)

    Так вам про это и говорят!
    AJAX-запросы - это HTTP-запросы, поэтому изучайте HTTP и учитесь его сниффить, то что в DevTools это тоже сниффер, но не очень удобный, лучше Fiddler, Wireshark или Charles, чтобы не только удобно перехватить тот запрос, но и симитировать его и сверить чтобы он был правильным.

    Selenium и Phantom.js лишь облегчат работу в некоторых случаях, а без основ (HTTP) вы все равно будете надеяться на авось.

    Есть люди, которым просто не дано стать реверс-инженером, написано "осваивай сниффер", а они читают "сиди ровно, не осваивай ничего и продолжай забивать гвозди микроскопом", надеюсь это не про вас, но если так, то просто займитесь чем-то другим, каждому свое.

    Потому что один и тот же jquery запрос (в devtools хрома) до клика по кнопке ничего не находит, а потом находит.

    Возможно, стоит симитировать все запросы последовательно, начиная с GET-запроса к самой странице (html), нормальный сниффер позволит вам это сделать, а также в нем самом есть конструктор запросов для тестов.
    Ответ написан
    Комментировать
  • Какое направление перспективней на C#: .Net или Unity3D?

    Rou1997
    @Rou1997
    .NET - это не направление, а множество направлений, и между прочим, Unity3D в него тоже входит.

    И как в РФ относятся к игрушкам, которые собираются на Unity3D?
    Так же, как и ко всем остальным, пользователям без разницы, правда, игры, написанные на C# (и на XNA и на Unity) чаще вылетают, чем на C++, но это скорее связано с культурой программистов, чем с языком, в конце-концов даже будь баги в самом "движке", всегда можно что-то придумать, если пытаться.
    Ответ написан
    Комментировать
  • Какое направление перспективней на C#: .Net или Unity3D?

    @GreatRash
    .Net конечно, игры - очень узкая ниша, опять же с шарпа не трудно пересесть на яву, а это уже банковская сфера - следовательно работа будет всегда.

    А игры... сегодня есть, завтра нет... 4 конторы на всю страну более менее крупных.
    Ответ написан
    Комментировать
  • Куда выкладывать свои работы?

    Schullz
    @Schullz
    =^.^=
    На сайтах типа вопрос-ответ (например, здесь, или на зарубежном stackoverflow.com ) можно задать вопрос, и самому на него ответить. Но это если решалась неболшая задача. Для большой программы это не подходит
    Ответ написан
    Комментировать
  • Какие книги посоветуете для начального изучения программирования?

    Язык программирования это как женщина).
    У каждого свои вкусы.

    Если бы я решил программерствовать дальше, я бы Python вспомнил. Но на нем не все задачи решаются!!!

    Не для начала, но хорошо бы потом:
    1. "Паттерны проектирования", это которая в соавторстве Гамма, Хелм, Джонсон, Влиссидес
    2. Рефакторинг Мартина Фаулера (эта книга нужна не чтолько, что бы рефакторинг делать, а что бы сразу хороший код писал, что бы другим за вами не пришлось рефакторить)))
    Ответ написан
    Комментировать
  • Какие книги посоветуете для начального изучения программирования?

    Посмотрите на этот список от создателей hexlet.
    Советую прочитать хотя бы по 1 книге в каждой категории. Вне зависимости от направления в котором вы будете развиваться дальше.
    Ответ написан
    Комментировать
  • Какие книги посоветуете для начального изучения программирования?

    @Neonoviiwolf
    Flutter developer
    frontEnd/BackEnd/Android/iOS/Win/Linux/DataBase - с этим определитесь с начало, а то и 3-х жизней не хватит выучить
    Ответ написан
    1 комментарий
  • Какой алгоритм использовать для определения минимального числа перестановок карт в колоде?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Мои мысли на тему и получившийся алгоритм:
    - обозначим для простоты карты их порядковыми номерами в отсортированной колоде, Ai;
    - каждой карте сопоставим расстояние до её конечной желаемой позиции, равное i - Ai;
    - перестановка карты с позиции i на позицию j меняет её расстояние на j - i, и одновременно на sign(i - j) меняет расстояния карт между i и j;
    - перестановка выгодна если она уменьшает суммарное расстояние, которое потребуется пройти картам после неё;
    - для текущей позиции существует по меньшей мере одна наиболее выгодная перестановка -- такая, которая максимально уменьшает оставшееся расстояние; найти её можно тупым перебором исходной и конечной позиции переставляемой карты (но, может быть, можно и быстрее);
    - совершая на каждом шаге наиболее выгодную перестановку мы, скорее всего, упорядочим карты за минимальное число перестановок.

    Код на c:
    #include <limits.h>
    #include <stdio.h>
    #include <string.h>
    
    #define N (sizeof(a) / sizeof(a[0]))
    
    inline int sign(int d)
    {
            if (d == 0)
                    return 0;
            return d < 0 ? -1 : 1;
    }
    
    inline int abs(int v)
    {
            return v < 0 ? -v : v;
    }
    
    int main()
    {
            int a[] = {2, 1, 3, 4, 0};
            int q[N];
    
            for (;;) {
                    int best_profit = INT_MIN;
                    int best_src = -1;
                    int best_dst = -1;
                    int i, src, dst, tmp;
    
                    for (i = 0; i < N; ++i)
                            q[i] = i - a[i];
    
                    for (src = 0; src < N; ++src)
                            for (dst = 0; dst < N; ++dst) {
                                    int d = sign(dst - src);
                                    int profit = abs(q[src]) - abs(q[src] + dst - src);
    
                                    //printf("...%d -> %d: profit = %d", src, dst, profit);
    
                                    for (i = src + d; i != dst + d; i += d) {
                                            if (sign(q[i]) == d) {
                                                    ++profit;
                                                    //printf(" + 1");
                                            } else {
                                                    --profit;
                                                    //printf(" - 1");
                                            }
                                    }
                                    //printf(" = %d\n", profit);
                                    if (profit > best_profit) {
                                            best_src = src;
                                            best_dst = dst;
                                            best_profit = profit;
                                            //printf("... -- new best!\n");
                                    }
                            }
                    printf("%d -> %d (profit = %d)\n", best_src, best_dst, best_profit);
                    if (best_profit == 0)
                            break;
                    tmp = a[best_src];
                    if (best_dst < best_src)
                            memmove(a + best_dst + 1, a + best_dst, (best_src - best_dst) * sizeof(int));
                    else
                            memmove(a + best_src, a + best_src + 1, (best_dst - best_src) * sizeof(int));
                    a[best_dst] = tmp;
    
                    for (i = 0; i < N; ++i)
                            printf("%d ", a[i]);
                    printf("\n");
            }
            return 0;
    }
    Ответ написан
    Комментировать
  • Как нарабатывать мышление "правильного" программиста?

    radio_fox
    @radio_fox
    Начинающий программист С++
    По информатике есть неплохой курс на степике: https://stepik.org/course/%D0%92%D0%B2%D0%B5%D0%B4...
    и по алгоритмам (ну тут есть небольшой уклон в несложную математику): https://stepik.org/course/%D0%90%D0%BB%D0%B3%D0%BE...
    Ответ написан
    1 комментарий
  • Как нарабатывать мышление "правильного" программиста?

    BBmike
    @BBmike
    Вообще-то, если ты буквально вчера решил стать разработчиком и выбрал C#, так и занимайся им.
    Зачем тебе забивать голову тем, что не поймешь на данном этапе?
    Ответ написан
    Комментировать
  • Как нарабатывать мышление "правильного" программиста?

    @evgeniy_lm
    Специально "для самых маленьких" есть книга "Конкретная математика", это адаптация для школьников первоисточника всех книг по алгоритмам "Искусство программирования" Д. Кнута
    Ответ написан
    2 комментария
  • Как нарабатывать мышление "правильного" программиста?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    Вот очень неплохая книга для введения в алгоритмы. Так же у Кормена есть другая книга по алгоритмам, но она уже на более сознательных пользователей рассчитана.
    Ответ написан
    Комментировать
  • Как нарабатывать мышление "правильного" программиста?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Можете попробовать посмотреть книжку Роберта Седжвика - Алгоритмы на С++. Темы в целом пересекаются с тем, о чем пишет Кнут (фундаментальные вещи не меняются), но меньше математики и больше картинок и примеров кода с "сишным" синтаксисом. Субъективно кажется, что эта книжка читается куда проще и занятнее.

    Но это только про общие алгоритмы и структуры данных. Мышление как вы выразились "правильного" программиста - это ведь не только теория - это и практика, практика и еще раз практика...
    Ответ написан
    Комментировать