• Вы бы назвали этот алгоритм пузырьковой сортировкой?

    Winsik
    @Winsik
    сис.админ, недопрограммист :)
    основной принцип пузырьковой сортировки это обмен двух близлежащих элементов массива проходя по всем элементам.
    А вы сами как думаете ?

    UPD1:
    const
        maxn = 100;
    var
        a: array[1..maxn] of longint;
        i, j, r, n: longint;
    begin
        readln(n);
        for i:= 1 to n do
            read(a[i]);
        for i:= 1 to n-1 do
            for j:= i+1 to n do
                if a[j] > a[j-1] then
                begin
                    r:= a[j]; a[j]:= a[j-1]; a[j-1]:= r;
                end;
        for i:= 1 to n do
            write(a[i], ' ');
        writeln;
    
    end.


    UPD2: но вот так правильнее:
    const
        maxn = 100;
    var
        a: array[1..maxn] of longint ;
        i, j, r,n : longint;
    begin
        readln(n);
        for i:= 1 to n do
            read(a[i]);
        for i:= 1 to n do
            for j:= 1 to n-i do
                if a[j] > a[j+1] then
                begin
                    r:= a[j]; a[j]:= a[j+1]; a[j+1]:= r;
                end;
        for i:= 1 to n do
            write(a[i], ' ');
        writeln;
    
    end.
    Ответ написан
    Комментировать
  • Как включить поддержку python в vim?

    sharlatan
    @sharlatan
    IT engineer, warehouse operative
    Привет,

    1.0 Найди другой пакет
    Попробуй установить другой пакет из репозитория.
    Предполагаю, ты работаешь в Debian/Ubuntu Linux.

    $: apt-cache search vim | grep vim-
    Покажет все доступные пакеты

    1.2 Скомпилируй
    Скачай исходники с GitHub
    и собери с нужными тебе примочками.

    2.0 Ссылки
    [2.1] How to install vim.full in Ubuntu?
    [2.2] Vi IMproved - enhanced vi editor
    [2.3] Building Vim from source
    [2.4] Building Vim
    Ответ написан
    4 комментария
  • Не могу понять кое-что про замыкание. Можете помочь?

    bobrovskyserg
    @bobrovskyserg
    Более разумно вопрос звучит так: почему последнее значение i?
    Потому что это - переменная замыкания, и она хранится в специальном месте, одном на всех:
    print(acts[0].__closure__)
    print(acts[1].__closure__)
    print(acts[0].__closure__[0].cell_contents)


    Изменить ситуацию можно, например, так:
    def makeActions():
        acts = []
        for i in range(5):
            def f(x, a=i):
                return a ** x
            acts.append(f)
        return acts

    или даже так (сам не знал, что с лямбдами работает)
    acts.append(lambda x, a=i: a ** x)
    Ответ написан
    2 комментария
  • Не могу понять кое-что про замыкание. Можете помочь?

    vittly
    @vittly
    Оптимизатор, любитель удалять лишний код
    В массиве acts лежат по-сути одинаковые лямбды - каждая захватила себе в замыкание переменную i и возвращает ее удвоенное значение. Последним значением i было 4. Соответственно любая из лямбд возвращает 16. На переменную надо смотреть как на область памяти, для переменной i - это одна и таже область, из какой бы лямбды вы к ней не обращались
    Ответ написан
    2 комментария
  • Чем отличается код дилетанта от профессионала?

    alexiusp
    @alexiusp
    senior frontend developer
    Код профессионала может прочитать и понять любой дилетант. Код дилетанта иногда даже профессионал понять не может.
    Ответ написан
    Комментировать
  • Где можно научиться Python для веб-разработки?

    Jump
    @Jump
    Системный администратор со стажем.
    Насколько я понял вы знаете язык, но не разбираетесь даже в основах работы с линуксом, и не представляете как работает веб. Верно?

    Поэтому вам нужно-

    После чего берете какой-нибудь фреймворк типа джанго, и начинаете вдумчиво его ковырять.
    Ответ написан
    2 комментария
  • Поздний старт в ИТ - есть ли шансы?

    beardedjack
    @beardedjack
    Ничего не бойтесь, дружище! Понимаю Ваши опасения. Ваш возраст - это ерунда.
    Самому уже 33. Всего-лишь пару месяцев назад получил должность, связанную с управлением проектами в области разработки ПО.
    До этого 11 лет в госконторе. Там начинал с эникейщика. Компы таскал. Админил все что можно. Много работал с людьми. Дорос до нач. отдела. Свободное время тратил на самообучение, фриланс. Потом добавилось получение второго высшего образования заочно по ит-специальности (голая математика, программирования было мало).
    Уже давно стало понятно, что надо менять сферу деятельности. Причем очень быстро. Мозг "закисает" на работе совсем... Вот и решился на экстренные меры.
    Да, здесь актуален вопрос психологического характера...
    Мотался по собеседованиям. Претендовал на должность Java junior-developer (выбрал джаву как ниболее интересную для меня в тот момент, хотя опыт был в иной области). Из этих собеседований вынес много нужного и интересного для себя. За это время подучился основательно. Мало спал. Много читал/писал/пробовал...
    Да, я был готов так поступиться со своим самолюбием: уйти с "престижной" должности и начать все "с нуля".
    На одном из ранних проваленных мною собеседований, интервьюер (технический специалист) задал вопрос: "А не поздновато ли ты, парень, решил резко так сменить сферу деятельности? Уйти с такой должности. Да на такую низкую должность... Возраст уже... Вот я б не рискнул...". На что получил ответ: "Это мои проблемы, парень. И мне решать как мне с этим жить".
    Все мои долгие попытки трудоустройства все-таки привели к положительному результату. В результате - имею очень интересную и хорошо оплачиваемую работу. И готов тратить свободное время на самообучение.
    Ответ написан
    Комментировать
  • Чем отличается код дилетанта от профессионала?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Самый базовый уровень -- консистентность форматирования: одинаковые отступы, одинаковые кавычки.
    Чистота в коде: отсутствие гигантских кусков закоментированного кода, вообще ненужных комментариев типа имени автора (это все можно посмотреть в системе контроля версий), грамотное именование сущностей (нет однобуквенных переменных, сущности названы по-английски, а не транслитом, и т.д.).
    Знание стандартной библиотеки, отсутствие велосипедов типа array[array.length] = elem вместо array.push(elem).
    Использование очевидных и явных путей, вместо «умных» хаков.
    Отсутствие копи-пейста и дублирования кода (это всегда, всегда аукнется багом).

    Вообще почитайте «Совершенный код», все это ценится во всех языках.
    Ответ написан
    3 комментария
  • За кем следить на GitHub?

    JSinga
    @JSinga
    Итак попытаемся разобраться и сделать это логично:
    Мы любим фронтенд значит нам нужно что то на языке JavaScript - ищем на гитхабе проекты с большим кол-вом звездочек и все еще "живые":
    github.com

    Смотрим неколько проектов и смотрим там на контрибьюторов которые внесли много коммитов результат:
    pazguille
    getify
    spicyj
    hhaidar
    nolimits4web

    То же самое для html:
    PaulKinlan
    hubgit
    Ms2ger
    LeaVerou - обратите внимание это девочка и еще и из MIT
    davelab6
    enaqx

    Попутно смотрим в какие группы эти ребята входят и отмечаем инетересные
    reactjs
    html5rocks
    GoogleChrome

    Ну алгоритм вам надеюсь понятен, дальше можно просматривать бесконечно!
    Ответ написан
    1 комментарий
  • Поздний старт в ИТ - есть ли шансы?

    @TheRishka
    Андроидоводоведовод
    Чувак, наберись уверенности. Я сам проучился 6 лет на инженера, понял, что это не мое, перешел на it. Год занимался сам, по учебникам, никто мне знаний просто так не давал, как в универе. Ботал и занимался, прошел около 50 собеседований, где меня размазывали по стенке, но все же попал на работу обычным Junior Android-разработчиком, хотя раньше к Java вообще не прикасался. Проваленное собеседование - это опыт. В конце концов, умение принимать правильные решения приходит с опытом, а опыт - с неудачными решениями. Все были новичками. Запоминай что спрашивают, подучивай эти "дыры" и однажды пройдешь и попадешь в классную команду. Попадешь на работу - дальше пойдет как по маслу, будут конкретные задачи, будут сроки, перестанешь метаться "о куда мне ткнуться, что делать", будет гораздо проще.

    Что реально нужно - это свои проекты. У тебя они, судя по всему, есть. Вот только нужны ЗАКОНЧЕННЫЕ проекты. Умение доводить проект до хоть какого-то состояния очень важно. Если у тебя все висит в стиле: "ну я вот тут делал, но вот это не работает, вот тут баг и т.д." - это херня. Лучше урежь функционал, но сделай, чтобы работало. Это реально важно и этому надо учиться.

    Если ты из города Казань, можешь посмотреть и почитать про Иннополис. Хотя, возможно, сможешь и так туда поступить, там реально круто, может подумаешь о переезде:)
    Ответ написан
    1 комментарий
  • Поздний старт в ИТ - есть ли шансы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Если для того, чтобы кем-то стать, вам нужно сидеть и ждать чьего-то совета, и вас все время пугает то, что окружающие знают больше и они моложе - можете уже спиваться. С таким отношением и взглядами ничего не поменяется.

    Какая разница сколько кому лет, и так далее? Он вас подсиживает или что? Вы неспособны найти работу или научиться чему-то?

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

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

    Если Вы боитесь, что у Вас нет знаний, а Ваши проекты были Вашими и делались на коленке(без обид, просто предполагаю) и когда Вам дадут реальную задачу - Вы не справитесь, то это другой вопрос - "Где взять знания?".
    Ответ написан
    1 комментарий
  • Поздний старт в ИТ - есть ли шансы?

    valerium
    @valerium
    Изобретая велосипед
    У меня похожая ситуация, правда я просрал не 5, а в сумме все 6 лет. Сейчас мне 25, я работаю дежурным админом. Успел поработать в техподдержке, потом младшим админом, сейчас дежурным.

    Да, само собой, чувствую, как не хватает теоретической базы и опыта. Да, потерянного времени жалко. Но IT - это та сфера, где, к счастью, опыт и знания ценятся выше бумажек. А набраться их может любой, кто умеет думать головой. На работе каждую минуту пытаюсь провести с пользой. Если нет текущих задач - пишу скрипты и изучаю систему. На досуге регулярно читаю учебники по интересующим меня темам.

    Тут правильно bobrovskyserg написал, надо показать себя, сообразить "портфолио". У Вас есть свой проект? Отлично, на гитхаб его! Дружите с русским языком? Катайте статью в песочницу Хабра о своём проекте, ждите инвайт. Есть IT-шная эрудиция? Тостер всегда рад Вам.

    Ах да, если хотите расти профессионально, не советую идти работать офисным админом. Лучше в техподдержку небольшого интернет-провайдера или хостера. Они всегда рады растить кадры самим себе и всегда с радостью делятся опытом.

    Успехов!
    Ответ написан
    Комментировать
  • Поздний старт в ИТ - есть ли шансы?

    zo0m
    @zo0m
    full stack developer
    какой-то вы неуверенный слишком
    я собеседовал достаточно много студентов и возраст скорее играет на вас
    "Что делал? тебе столько лет, а где опыт?", конечно спросят, только не для того чтобы вас топить, а для того чтобы понять что за человек сидит.
    Если на собеседованиях будете хорошо отвечать -- у вас нет причин не попасть куда-угодно.

    псц, ПОЗДНИЙ СТАРТ в 26 ??? я видел взрослых мужиков за 40 полностью меняющих работу на IT, а вам 26...

    чувак иди проспись
    Ответ написан
    6 комментариев
  • Почему innerHTML не работает?

    SerzN1
    @SerzN1
    Challenge me!
    для начала нужно понимать что jQuery объект это не массив элементов

    то есть обращение напрямую к дом элементу без обертки возможно как $('#grid-cell'+i)[0]; выдаст первый элемент

    если там много элементов то их нужно фильтровать $('.grid-cell').eq(3)[0];

    в вашем случае ссылка на элемент складывается в массив, что не очень правильно потому что лучше использовать коллекцию элементов $('#grid-cells') , которую создать заранее

    поэтому в вашем реальном случае нужно писать так cells[0][0]
    Ответ написан
    1 комментарий
  • Почему innerHTML не работает?

    а зачем вам JQuery если вы его не используете?
    .html(0)

    Рабочий код
    var n = 3;
    var n4 = n*n*n*n;
    var cells = [];
    
    function declare_grid()
    {
        document.writeln('    <div class="grid-container">');
        for (var i = 0; i < n4; i++)
        {
    	document.writeln('        <div class="grid-cell" id = "grid-cell'+i+'"></div>');
        }
        document.writeln('    </div>');
            for (var i = 0; i < n4; i++)
        {
    	cells[i] = document.getElementById('grid-cell' +i)
            cells[i].style.backgroundColor = "#258";  // этот код работает
        }
        //    cells[0].innerHTML = '0';   если убрать комментарий не работает
       //     document.getElementById('grid-cell0').innerHTML = '0';   тоже не работает
    }
    
    function grid_initialize()
    {
        // Те же самые инструкции попробовал. Результат такой же
         //    cells[0].innerHTML = '0';   если убрать комментарий не работает
       //     document.getElementById('grid-cell0').innerHTML = '0';   тоже не работает
    }
    Ответ написан
    5 комментариев
  • Делаю логическую игру. Как сохранять достижения игроков?

    Lerg
    @Lerg
    Defold, Corona, Lua, GameDev
    В домашней директории. Вроде /home/user/.mysupergame/highscore.json
    Можно через тильду ~/.mysupergame
    Ответ написан
    3 комментария
  • Какие есть хорошие книги для начинающего программиста под Linux?

    AnnTHony
    @AnnTHony
    Интроверт
    Логично для начала почитать что такое Linux:
    1
    2
    Дальше уже само программирование и языки:
    Чарльз Петцольд Код
    Стивен Прата C / C++
    Марк Саммерфилд Qt / Python
    Еще можно смотреть в сторону Ruby, Perl и других кросс-платформенных языков, но с ними я не знаком и поэтому ничего посоветовать не могу.
    Если есть знания по Pascal, то можно Lazarus.
    Ответ написан
    Комментировать
  • Как хорошо учиться, если тяжело понимать предмет?

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

    Надо прочитать книгу по предмету, как художественную литературу.

    Цель дочитать до конца. Просто читайте книгу по химии. Так вы, может, и не поймёте сразу, что такое валентность, но поймёте, что у водорода и кислорода разные степени валентности. И что у хлора тоже есть некая степень валентности. Это ещё не знания, но уже что-то. Дополнительный плюс в том, что когда вы услышите знакомое слово, то будете знать где про него написано, в какой главе какой книги.

    Умение ориентироваться в информации и добывать знания из множества источников пригодится вам в дальнейшем.

    Как говорили мудрецы: "Первый шаг - половина пути".

    Потом надо общаться и читать более предметные тексты. И радоваться тому, что вы понимаете смысл. Термины соединяются в модели, тексты начинают соответствовать или несоответствовать моделям.
    Ответ написан
    2 комментария