• Какие требования к С# джуниору?

    @FoxInSox
    Умение быстро гуглить.
    Ответ написан
    Комментировать
  • Как по-настоящему научиться программировать?

    Разработай то, что должно работать у людей - т.е приложение которым будут пользоваться люди. Тебе прийдется часами пилить исправления/обновления и тем самым ты много раз по переписываешь свой код, добавляя что то новое, исправляя что то на более разумное.
    Ответ написан
    Комментировать
  • Как по-настоящему научиться программировать?

    dosya97
    @dosya97
    Fullstack web-developer
    Просто начать сложно, нужна идея(толчок). Начинать с простого. Если это веб то с html+css+js(Для понимания) Начните после этого bootstrap. Порог вхождение минимален и самое главное результат на глазах, что важно для начинающего программиста. Далее переходить на бэкенд, если кончено это интересно. Тут советую начать изучать python для понимания вообще что такое программирование(Прям по книге сядьте). Никакие видео не дадут вам полного объема данных. Конечно видео для начала это хорошо. Но "супер программистом" вы станете благодаря хорошо написанному мэнюалу. Далее можно связать навыки html+css+js(фронтенд разработак) и навыки программирования(python). Настоятельно рекомендую Фреймуорки для python, такие как Django, Flask или pyramid. Но если не хочется на python то можно на ruby lang(Ruby on reals framework), .NET, на крайняк PHP.
    Не забывай все программисты не рождались программистами. Все мы были зелеными я и сейчас себя таким считаю. Но самый главный экспириенс это ГРАБЛИ. Чем больше ошибаешься и решаешь больше проблем то будут плодороднейшие результаты. И надо реально сидеть и кодить. Опыт самое важное. Удачи в начинаниях))
    Ответ написан
    Комментировать
  • Как по-настоящему научиться программировать?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Вы путаете понятие "научиться программировать" и "стать хорошим специалистом, уровня сеньор архитектор".

    Неужели вы действительно считаете, что для того, чтобы стать крутым специалистом достаточно почитать 5-10 книжек?
    Нужны годы практики, ошибок, и стремления понять и эти ошибки исправить.
    Ответ написан
    2 комментария
  • Как по-настоящему научиться программировать?

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

    А действительно требуется? И вообще его нужно писать? Деньги платят?
    Будет нужно - сможете.
    Ответ написан
    Комментировать
  • Как по-настоящему научиться программировать?

    @kstyle
    берите реальный проект и разбирайте код. затем пишите аналогичный с нуля. затем выкладывайте для критики. затем переписывайте. так несколько итераций. параллельно подпитывая все это теорией из умных книг. это если нет возможности в команду попасть. в целом, не более 20 процентов могут преодолеть этот барьер самостоятельно (данные из книги Шаталова).
    Ответ написан
    Комментировать
  • Как по-настоящему научиться программировать?

    @deliro
    Придумать себе проект и реализовать его, как сумеешь.
    Почитать про шаблоны проектирования.
    Переписать, опираясь на шаблоны.
    Понять, что вышло не очень.
    Переписать ещё раз.
    Ответ написан
    Комментировать
  • Как по-настоящему научиться программировать?

    @Neonoviiwolf
    Flutter developer
    я раз 5-6 переписывал код своего первого приложения, чудо-таблетки нет, просто пиши код
    Ответ написан
    Комментировать
  • Как по-настоящему научиться программировать?

    @Caitiff_One
    Обычный человек, начинающий разработчик:)
    На мой взгляд тут есть два выхода. И их в идеале нужно совмещать:
    1. Работа над своим проектом, пробы/ошибки и т.д. Можно даже выложить на гитхаб, чтобы получить советы/критику.
    2. Работа:) на работе, как правило, есть более опытные коллеги, которые подскажут, есть КУЧА примеров кода, на которых можно поучиться.
    Ответ написан
    Комментировать
  • Какие требования к С# джуниору?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Джун джуну рознь. Чем больше знаний - тем лучше.
    Троелсен и правда очень медленно и педантично повествует. Он удобен как настольная книга джуниора, как справочник - по конкретным задачам копать. Но, ИМХО, Шилдт будет приятнее.


    Основные контейнеры - преимущества и недостатки. Сложность алгоритмов поиска и вставки, сортировки. Хэш-таблицы, хэш-код объектов, equality и как это все устроено. Неплохо бы знать про многопоточность и примитивы синхронизации (в общих чертах).
    Хорошо бы знать кое-что про платформу .NET - типы-значения и ссылочные типы (про стек и кучу), про GC с поколениями, SOH/LOH, как можно устроить утечку памяти -> IDisposable.
    Уметь делать запросы к базе через голый ADO.NET.
    По базам данных: владеть основными запросами SQL, писать и вызывать хранимые процедуры. Знать что такое и зачем нужны индексы, нормализация, View, где смотреть query execution plan.
    Суметь рассказать о том, что такое MVC, ориентироваться в основных паттернах.

    Если курс на веб, то понимать работу HTTP, REST, знать основы фронта (приоритет селекторов в CSS, "всплывающие" объявления переменных в javascript, разницу "==" и "===", чем отличается асинхронность от параллельности и чем это грозит).

    Вызовет уважение в глазах интервьюера: понимать и применять IoC/DI, уметь писать тесты, работать с ORM (EntityFramework допустим), async/await и SynchronizationContext.
    Ответ написан
    11 комментариев
  • Какие требования к С# джуниору?

    Rou1997
    @Rou1997
    В первую очередь надо научиться программы разрабатывать, те, которые вы будете на работе.
    Ответ написан
    Комментировать
  • При помощи чего можно создать нестандартные GUI?

    Rou1997
    @Rou1997
    Скажите, можно ли на c# написать нестандартные gui?

    Нельзя, придет Ростехнадзор, и оштрафует за несоответствие ГОСТу, потребует выплатить пользователям компенсации за лишнюю загрузку ОЗУ, ЦП, GPU!

    дайте ссылки на лучшие библиотеки

    WPF, на нем все можно "кастомное" сделать, на WinForms тоже можно, но рамку с тенями или прозрачностью вы адекватно не сделаете на WinForms, еще в WinForms аппаратного ускорения графики нет, но зато приложение запускаться будет быстрее.
    Еще одно направление - SkinFeature, SkinCrafter.
    А также готовые библиотеки, от DevExpress и Telerik, в них это одна из функций, вместе с прочими "наворотами".

    можно ли скомпилировать программу написанную на c# под системы отличные от windows

    Можно, но далеко не всё будет работать на других системах, WPF не будет, ему DirectX нужен, на Линукс и OS X его нет...
    Ответ написан
    5 комментариев
  • Размер и координаты в процентах?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Юзайте вьюпорт еденицы (vw/vh) для такого.
    caniuse.com/#feat=viewport-units
    https://developer.mozilla.org/en/docs/Web/CSS/length
    Ответ написан
    Комментировать
  • Это и есть полиморфизм?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Нет.

    Полиморфизм, как следует из названия, это когда что-то маскируется под что-то другое. Это свойство системы типов языка на котором вы пишите, он может позволять вам делать вещи, маскирующие свой внешний вид ("названия") но все же это не та же вещь. Ну и стоит заметить что у полиморфизма есть еще разные виды. Например:

    Параметрический полиморфизм. Это когда мы можем написать один код, с одним набором имен, которые работает с разными типами аргументов. Пример - шаблоны из C++ или дженерики в Java. То есть "имена" методов одинаковые, потому что они в одном экземпляре. Реализация одна, одно поведение. А вот аргументы могут отличаться.

    Ключевое отличие от ad-hoc полиморфизма, про который будет ниже в том, что наша реализация понятия не имеет что придет на вход. Может придти что угодно и с этим нужно будет работать, однако работать с любым типом мы будем абсолютно одинаково.

    Полиморфизм подтипов. При этом у нас как раз таки будет одни и те же имена и может быть совершенно разное поведение. Например мы можем создать какой-то базовый тип, который, к примеру, отправляет email-ы, и создать его подтип, который вместо отправки email-ов записывает в лог то что мы хотели отправить, после чего уже отправляет данные дальше другому объекту этого типа (шаблон проектирования декоратор).

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

    Ну и еще есть одно серьезное ограничение. Если мы хотим заменить в системе объект какого-то типа на объект подтипа (грубо говоря наследника), то система не должна сломаться. То есть "другое" поведение нашего подтипа должно быть совместимо в плане интерфейса с базовым типом. Об этом можно почитать загуглил "Принцип подстановки Барбары Лисков".

    Ad-hoc полиморфизм - это пожалуй самый интересный вид полиморфизма с которым можно долго холиварить. По сути при этом виде полиморфизма, у нас одинаковые имена, а поведение зависит от входящих аргументов. Пример - перегрузка методов в C++. Интересен этот вид полиморфизма в основном тем, что он не является "настоящим".

    При динамической системе типов не требуется никаких дополнительных возможностей вроде той же перегрузки методов для достижения ad-hoc полиморфизма. Тупо кидаем что хотим в функцию, а там уже if-ами рагребаем или же приводим к какому-то одному варианту. Отдельные конструкции нужны в языках со статической системой типов. То есть нам нужно еще на этапе компиляции кода знать какие именно типы могут приходить в наши методы, и в зависимости от оных вызывать тот или иной код.

    Среди PHP-разработчиков немало тех, кто мечтает увидеть в этом языке с динамической системой типов честную перегрузку методов как например в Java или C++. Просто так, потому что if-ы это плохо и лучше уж пусть они будут неявные на уровне компилятора/рантайма.

    Полиморфизм с приведением типов - еще один вид "не настоящего" полиморфизма. Мы "эмулируем" полиморфизм за счет того, что на уровне рантайма языка происходят касты действительного в желаемое. Например в PHP мы можем выставить у функции тайпхинтинг string, и можем внутри иметь одно и то же поведение для всех входящих аргументов. Передать же в качестве аргумента мы можем все что можно скастить в строку.

    Собственно, это очень похоже на параметрический полиморфизм по смыслу, но далеко не так гибко и не дает того контроля за системой.
    Ответ написан
    Комментировать
  • Функция в математике?

    @zahardzhan
    Если смотреть на вещи проще, то функция в программировании - это правила, по которым из чего-то одного получается что-то другое (причем это что-то другое всегда одинаковое для одного и того же).

    Например, правила по которым из одних правил получаются другие правила - это и есть пример функции в программировании в общем виде.
    Ответ написан
    Комментировать
  • Как разобраться с записью и чтением из БД?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) В базу будет добавляться, тк условием для добавления является существование переменной $res, а она всегда у вас создается, что в нее записывается - другой вопрос.
    2) поле id не выводится по причине того что вы его не выбираете, выборка происходит только поля ip, для всех полей используйте "*".
    Ответ написан
    Комментировать
  • Как разобраться с записью и чтением из БД?

    axaxa_man
    @axaxa_man
    web developer
    С конца,
    1. Чтобы показать id, нужно id в селекте попросить, меняем запрос:
    $res = mysqli_query($conn,"SELECT ip FROM user WHERE ip='$ip'");
    на
    $res = mysqli_query($conn,"SELECT id, ip FROM user WHERE ip='$ip'");
    2. И чтобы одним запросом вставлять, надо выполнять какой-то такой запрос:

    IF NOT EXISTS
    ( SELECT ip
    FROM user
    WHERE ip = '$ip'
    )
    BEGIN
    INSERT INTO USER (ip)
    VALUES ('$ip')
    END;

    Надеюсь, чем-то помог
    Ответ написан
    Комментировать
  • Как разобраться с записью и чтением из БД?

    @entermix
    Используйте INSERT IGNORE
    Ответ написан
    Комментировать
  • Что изучать C# или С++?

    Daniro_San
    @Daniro_San
    Программист
    C# не то что бы легче, просто язык многое делает неявно за тебя, многие вещи сложны внутри, но простые для использования.
    C# усваивается легче, идет сразу с библиотеками почти на все случаи жизни.

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

    Понимание C++ дает лучшее понимание как устроена та или иная фишка из C#.

    Вот пример "неявности" C#:
    struct StackWork {  
            public Int32 Value;
        }
    
       class HeapWork {
           public Int32 Value;
       }
       
       // ...
       StackWork sw1 = new StackWork();
       StackWork sw2 = sw1;
       sw2.Value = 475;
      
       Console.WriteLine( sw1.Value.ToString() ); // 0
       
       // ...
       HeapWork hw1 = new HeapWork();
       HeapWork hw2 = hw1;
       hw2.Value = 475;
    
       Console.WriteLine( hw1.Value.ToString() ); // 475


    То есть, область выделяемой под обьект памяти (куча или стек) зависит от типа, причем при одинаковом синтаксисе ( "new TypeName()" ).
    Конечно, это сделано для удобства, но в C# ты не можешь выбирать в какой области памяти разместить свой обьект!

    А вот пример на "страшных и неинтуитивных плюсах":
    struct MyWork {  
            int Value = 0;
        }
        
       //...
       // Явно, выделяем память в стеке
       MyWork sw1;
       MyWork sw2 = sw1;
       sw2.Value = 475;
       
       cout << sw1.Value; // Как и ожидалось, 0
       
       // Явно, выделяем память в куче
       MyWork * h1 = new MyWork;
       MyWork *h2 = h1;
       hw2 -> Value = 475;
       
       cout << hw1 -> Value; // Как и ожидалось, 475


    Интересные вещи есть и там и там.
    Для бизнеса конечно выгоднее C# (никаких заморочек, поддержка, библиотеки).
    Но все же C++ интереснее для саморазвития.
    Ответ написан
  • Что изучать C# или С++?

    @Hydro
    C#/.NET Developer
    Поскольку не указана область применения, буду субъективен - c#
    Ответ написан
    Комментировать