• Какую тему выбрать для дипломной?

    LeEnot
    @LeEnot
    Енот-андроид
    Жизненный совет:

    1. Выбрать халявную тему и сделать диплом "на отвали"
    2. Найти себе занятие по душе, интересный проект, и развивать его.

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

    @ezavialov

    Я бы очень посоветовал вам взять одно из заданий с kaggle.com и добиться там достойного места.

    Ответ написан
    2 комментария
  • Как правильно сформулировать тему диплома?

    1) Давайте спросим себя - какие критичные преимущества Ваша система предоставит пользователям из-за того факта, что она будет мобильным приложением (по сравнению с десктопным) ? Я не вижу ответа. Следовательно, платформа посредством которой будет реализован UI не является значимой и не достойна вынесения в тему диплома.
    2) Агрегатор. Идея хорошая. Но чтобы дипломная работа "звучала", Вы должны продемонстрировать, что Ваш агрегатор, объединяя количественные сущности, приобрел (сумел предоставить) качественно новые возможности (преимущества). Соответственно, мало просканировать биржи и объединить их в единую выдачу. Проведите анализ, хотя бы минимальный, кластеризацию, прогноз количественных показателей (стоимости заказа). Пусть он будет приблизительным и возможно ошибочным, но он будет именно качественно новой возможностью. Применяйте классическую регрессию, machine learning, все что сочтете интересным.

    В конце концов это Ваша квалификационная работа - Вы демонстрируете умение решать задачи хоть сколь либо отклоняющиеся от типовых - и чем дальше Вы отойдете от набившей оскомины цепочки типового решения, тем выигрышнее будет смотреться Ваш диплом.
    Ответ написан
    4 комментария
  • Тема диплома (диссертационной работы) по «Компьютерному зрению» и «AI»

    Лично мне интересны системы с функционалом:
    — распознавания дорожных знаков с выводом соответствующих предупреждений (визуальных или аудио) для водителя.
    — «социальной сети» для водителей: камера распознаёт в потоке номера автомобилей. Если находит «знакомых» водителей, сообщает, типа «друг твой едет» :) Сложно, конечно.
    А можно описанное выше «запихать» в одно приложение) Не знаю, правда, тянет ли подобное на диплом.
    Ответ написан
    1 комментарий
  • А какая у вас была тема диплома?

    Как вариант: "Классификация или кластеризация информации", например, есть некое хранилище книг (свалка), нужно свалку книг разгребсти автоматически по категориям, в идеале нужно чтоб программа сама определила категории с подкатегориями и раскидала тексты по папкам или хотя бы в БД. Можно работать не с книгами, а с хранилищем дистрибутивов с кратким описанием, или блогами, или базой знаний в виде (вопросов и ответов), не важно. Т.е. сделать некий ресурс, куда попадает информация после чего она анализируется и классифицируется. В этой задаче можно переплести и нейроные сети и разные сетевые технологии.
    Ответ написан
    Комментировать
  • Какие книги прочесть на тему искусственного интеллекта и нейросетей?

    begemot_sun
    @begemot_sun
    Программист в душе.
    На сайте dmkpress все книги по тематике дороже 1200 руб и без слова Python.
    Ответ написан
    Комментировать
  • Возможно ли найти удаленную стажировку в it?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Но вряд ли кого-то интересует человек без опыта... Нормальной работы тут не было...
    сложно ли устроиться... много что пробовал... вольюсь во что-то новое если понадобится

    Когда-то я тоже таким был. Это очень плохая позиция для переговоров. Если подходить со стороны "я вот чем-то занимался, возьмите меня", то будет очень сложно убедить работодателя (не только удаленно, но и вживую), что вы лучше, чем десять других претендентов на вакансию. Подходите к вопросу с другой стороны - "я специалист и могу решать вот этот круг задач, у вас есть головная боль - я тот, кто может вас от нее избавить". Определитесь с областью, выложите то, что вы делали, на гитхаб или еще куда-нибудь, если веб - ну сделайте сайт себе, своим знакомым, покажите, что вы можете решать задачи. Не так быстро, как человек с 10-летним опытом, но можете. С таким подходом можно смело начинать откликаться на вакансии, ну а там уже как повезет.

    Фриланс тоже имеет смысл попробовать, но это не для всех. Там умение продавать продукт имеет большее значение, чем умение его создавать.
    Ответ написан
    2 комментария
  • Возможно ли найти удаленную стажировку в it?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    фриланс биржи, это же очевидно

    находите проект - делаете, заказчику шлете или не шлете - по настроению
    бывает, конечно, ТЗ не видно, если не вы выбраны исполнителем, но достаточно проектов и с ТЗ
    Ответ написан
    2 комментария
  • Как правильно оценить сколько ты стоишь на рынке труда(fron end || .NET)?

    astec
    @astec
    Разработчик https://debtstracker.io/
    Стоимость оценивается в момент продажи.

    Ваша текущая ЗП или самый большой действующий офер определяют вашу ценность на рынке труда.

    Кроме знаний есть ещё много параметров которые влияют на ЗП. Универсальную формулу вывести невозможно.
    Ответ написан
    Комментировать
  • Как правильно оценить сколько ты стоишь на рынке труда(fron end || .NET)?

    AgentProvocateur
    @AgentProvocateur
    Ну да, frontend-разработчик 1 разряда, С#-программист 3 разряда и стандартизация по госту)) IT-сфера в данный момент не стандартизирована, потому подобную градацию свести невозможно. В том числе и по оплате - буквально недавно наблюдал 2 идентичные по требованиям вакансии PHP-разработчика в разных компаниях с разбегом по зарплате почти в 2 раза.

    Ни о каком "отличном владении" на дистанции до 5 лет речи быть не может (по тому же правилу 10 000 часов отработки, чтобы стать специалистом), особенно, в enterprise-сфере.

    В целом, тут всё как и в других областях, градация идёт по:
    • опыту командной работы (где, сколько лет, задачи какого масштаба решались);
    • решаемым задачам (могу копать, могу не копать, могу заставить копать другого);
    • уровню образования (в/о, сертификация, языки и т.д.);
    • спросу/предложению на конкретную технологию/навык;
    • опыту руководства коллективом/проектами.

    И самое главное - ценность сотрудника (и уровень его оплаты) определяется масштабом проблем, которые он способен решить в бизнесе работодателя, а также масштабом прибыли работодателя от результатов деятельности сотрудника.

    Ответ на вопрос "Как правильно оценить сколько ты стоишь на рынке труда?": ты стоишь ровно столько, за сколько в данный момент времени тебя готовы нанять. Рынок труда отличается от рынка с арбузами тем, что цену на нём назначает сам покупатель (т.е. работодатель). Ты можешь лишь согласиться, чуть поторговаться или отказаться и идти дальше искать своё счастье. Если, конечно, ты находишься в позиции соискателя, а не супер-спеца, за которым идёт конкурентная охота (что вряд ли, судя по вопросу). Чтобы понять, за сколько тебя готовы нанять, с головой достаточно 10 собеседований в течение месяца-двух.
    Ответ написан
    Комментировать
  • Стоит и какие наработки выкладывать на github для будущего портфолио?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Стоит выкладывать свои классы (PHP) и библиотеки (JS).
    2. Стоит выкладывать нетривиальный и востребованный функционал.
    3. Целый проект чего-либо - лучше не выкладывать: мало кто поверит, что Вы делали его в одиночку и это достаточно трудоёмкая задача.
    4. Стоит в коде показать ваши знания и умения по владению структурой кода, алгоритмами, работой с текстом или бинарными данными, рекурсией и т.д.
    5. Лучше всего - взять отсутствующую реализацию востребованного алгоритма с википедии на том языке, на котором планируете показать свои навыки и реализовать (предварительно поискав на гитхабе и в гугл, и убедившись в отсутствии его реализации или недостаточном качестве).
    6. Можете ДАЖЕ ОДНУ функцию сделать, но чтобы она была востребована и делала свою работу лучше (качественнее и быстрее) существующих аналогов и привести таблицу сравнения по скорости исполнения вашего и других аналогичных решений.
    7. Задача портфолио на гите - не только показать качество кода и знания языка программирования (и различных подходов), но и способность мыслить не стандартно с максимально возможным результатом на выходе.
    Ответ написан
    2 комментария
  • Создание робота-паука для сбора данных - где искать информацию?

    Если вам не претит python-way, то Flask + BeautifulSoup + SQLAlchemy

    Книга посвященная вашему вопросу
    Гайд по Flask на Хабре
    Гайд по BeautifulSoup на русском
    Гайд по SQLAlchemy на русском

    Мне хватило импортировать bs4 и забирать данные прямо в views.py
    from flask import render_template
    from urllib.request import urlopen 
    from urllib.error import HTTPError
    from bs4 import BeautifulSoup
    
    @app.route("/links/")
    def parse():
    	try:
    		html = urlopen("http://www.site.ru/").read()
    	except HTTPError as e:
    		print(e)
    
      soup = BeautifulSoup(html, 'lxml');
      links = soup.findAll('a')
    
      return render_template('template.html', links=links)

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

    @remzalp
    Программер чего попало на чем попало
    tar zcf - tobearchived | ssh user@destination_server_ip 'tar zxf -'
    Жмёт со сжатием в tar, отдаёт поток сжатого по ssh, на той стороне запускается tar и распаковывает.
    В цепочку можно добавить любой архиватор по вкусу.

    Для ускорения канала - выкидываем сложную шифрацию в настройках SSH, оставить какой-нибудь RC4, компрессия скорей всего тоже будет только замедлять.

    я так дамп сервака делаю периодически :)
    Ответ написан
    1 комментарий
  • Знание которые не устареют через 10-20 лет?

    Stalker_RED
    @Stalker_RED
    Таких знаний огромное количество, стоит только копнуть поглубже. Несколько рандомных примеров:

    Структура и интерпретация компьютерных программ (SICP): Первая публикация: 1979 г.

    Протокол HTTP - впервые опубликован в 1991, сейчас почти везде используется версия 1.1 от 1999, которая отличается мало чем.

    SQL существует с восьмидесятых, каноничным считается ANSI SQL-92. Всякие PostrgeSQL, MySQL, MSSQL - по сути диалекты, заточенные под конкретную СУБД.

    Никто не может гарантировать, что через 30 лет эти знания будут так-же актуальны как сейчас, но бесследно они не исчезнут.
    Ответ написан
    3 комментария
  • Знание которые не устареют через 10-20 лет?

    search
    @search
    мама говорит что я особенный
    Существует набор базовых знаний, находящийся в корне любой ИТ-концепции. Эти знания редко применяются программистами напрямую, так как они реализованы непосредственно в библиотеках. Но они оказывают огромное влияние на общий процесс мышления и на способность усваивать новую информацию. Именно поэтому такие успешные компании, как Гугл, Эпл, Амазон, Фейсбук и т.д. прежде всего проверяют базовые знания, а не знание языков/фреймворков/библиотек, потому что это всё вторично и осваивается за пару недель. Да, такие штуки, как:
    • теория вероятностей и математическая статистика
    • теория игр
    • теория информации и кодирования
    • теория тестирования
    • теория систем массового обслуживания
    • теория принятия оптимальных решений

    занимают чуть больше, чем пару недель, но в них нет ничего принципиально невозможного.

    Не стоит обманываться тем что мы редко встречаем специалистов с глубокими базовыми знаниями. Просто подобные люди находятся, чаще всего, не в зоне нашего обитания, а где-нибудь в Калифорнии, работая в компаниях из списка Fortune 500. Такие дела.
    Ответ написан
    Комментировать
  • Может кто объяснить, что происходит при кликании ярлыка программы на физическом уровне?

    @Mercury13
    Программист на «си с крестами» и не только
    1. Мышь посылает команды «Я нажата» и «Я отпущена». Считаем, что мышь USB’шная — тогда диспетчер шины 125 раз в секунду даёт мыши таймслот, и она за это время посылает 8-байтовый пакет, и в нём есть поля «сдвиг по X, сдвиг по Y, нажатые кнопки». Сама ОС ведёт счёт координатам курсора мыши. Отображение курсора мыши — это отдельная функция графического драйвера (из-за требовательности к скорости).
    2. ОС из этих команд генерирует событие «Двойной щелчок по координатам (X, Y)» и посылает текущей программе (в данном случае — оболочке Windows, explorer.exe, он же Проводник).
    3. Рабочий стол — это сильно модифицированный ListView из comctl32.dll (если я правильно назвал эту библиотеку). Впрочем, событие «двойной щелчок» обрабатывается самим Проводником, и если какой-то элемент выделен, он говорит: запусти файл, библиотека shell32.dll, функция ShellExecute с глаголом «open».
    4. Библиотека оболочки shell32.dll имеет специальную ветвь кода для запуска ярлыков. Она разбирает файл ярлыка и вызывает более низкоуровневую функцию CreateProcess.
    5. Ядро Windows делает всё, что нужно, чтобы создать процесс, завести под него отдельное «пользовательское» адресное пространство, отдельный стек вызовов, потоки ввода-вывода и т.д. Сам EXE-файл и его библиотеки становятся частью системы подкачки Windows, и если какая-то страничка сегмента кода будет выброшена, она подгружается прямо из EXE/DLL. Разрешает динамические адреса, которые становятся известны только при загрузке программы (т.н. relocations). Процесс загрузки программы — дело сложное, с ним я незнаком.
    6. Считаем, что программа GUI’шная. Тогда при загрузке, как ни странно, ничего внешне не происходит (только трещит винт, подкачивая данные в оперативную память). Сама программа говорит WinAPI: мне нужно создать такое-то окно, с такими-то кнопками в заголовке, с отображением на панели задач.
    7. Система сама посылает окну события: «Я изменяю свой размер», «Я показываюсь», «Я перерисовываюсь». Программа может перехватить эти события и сделать по ним что-то своё. Если у окна есть неклиентская часть (заголовок, рамка), показывает их сама Windows.
    8. За перерисовку клиентской части окна (то есть того, что внутри рамки) отвечает одна из нескольких подсистем Windows. Наиболее распространённая — GDI (интерфейс графических устройств), хотя всё чаще используют библиотеки аппаратного ускорения — DirectX/OpenGL/Vulkan.
    9. Как только сработали события перерисовки — внутренние Windows и пользовательские — мы видим на экране окошко!
    Ответ написан
    2 комментария
  • Правильно ли объясняется в тексте почему в 1 кб 1024 байт?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Нет, неправильно.
    То, что было в перфокартах для контроля четности - это оставьте перфокартам, контроль четности и кодирование данных никак не связаны с обозначением кило и 1024. И уж тем более 1025 вообще далеко от ИТ.

    Все проще.
    Берем 1 бит, можем оперировать двумя значениями 0 и 1
    2 бита - 4 значения, 0-3
    3 бита - 8, 0-7
    4 бита - 16, 0-15
    5 бит - 32, 0-31
    6 бит - 64, 0-63
    7 бит - 128, 0-127
    8 бит - 256, 0-255
    9 бит - 512, 0-511
    10 бит - 1024, 0-1023

    Нет такого набора бит, чтобы мы могли оперировать ровно 1000 значений. 9 бит мало, а 10 бит позволяют оперировать уже 1024 значениями. Ограничиваьт себя искусственно нет смысла.
    Поэтому на железном уровне в качестве адресации используются степени двойки, чтобы максимально эффективно использовать все используемые биты и память.
    Следовательно ближайшее к 1000 "компьютерное" число это 1024, отсюда в килобайте 1024 байт.

    Для бизнеса это оказалось не очень удобно. И вообще много технических моментов обычным пользователям непонятно почему и как, например с теми же жесткими дисками, когда объем неотформатированного диска и отформатированного может отличаться на заметные процентов 10-15.
    Кроме того, в системе Си, приставки кило, мега, и так далее всегда означали 1000 чего-то. Поэтому с исторически сложившимся 1024 в ИТ отрасли сложилась некомфортная ситуация. Для исправления и появились новые названия, кибибайты, мегибайты, а килобайты и мегабайты по общепринятой системе Си теперь кратны 1000. Но это важно для стандартизации, маркетинга, а не для программирования.

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

    un1t
    @un1t
    Чед Фаулер "Программист фанатик"
    Джоэл Спольски "Джоэл о программировании"
    Роберт Мартин "Идеальный программист"
    Том ДеМарко, "Вальсируя с Медведями: управление рисками в проектах по разработке программного обеспечения"
    Том ДеМарко "Человеческий фактор. Успешные проекты и команды"
    Роберт Гласс "Факты и заблуждения профессионального программирования"
    Игорь Савчук "Отъявленный программист. Лайфхакинг из первых рук"
    Питер Сейбел "Кодеры за работой. Размышления о ремесле программиста"
    Хант Эндрю, Томас Дэвид "Программист прагматик"
    Ответ написан
    1 комментарий
  • Книга о том как правильно должен работать программист?

    sim3x
    @sim3x
    1. Пофиг как - если делает работу
    2. Никак не избегать - принять их как данность и фиксить
    3. Делать оценку перед задачей, делать переоценку во время решения, оценивать реальное время -
    после

    Мифический человекомесяц
    Психбольница в руках пациентов
    Ответ написан
    Комментировать
  • Как стать настоящим системным администратором?

    @lubezniy
    Если Вы хотите стать настоящим сисадмином, научитесь сперва в любой момент знать о своём хозяйстве всё - как работает, в какие моменты глючит, как решать проблемы с глюками. Проведите инвентаризацию и подготовьте полную (насколько это возможно) документацию по хозяйству, научитесь её вести и вносить изменения сразу, как только в хозяйстве что-то меняется (история изменений тоже полезна). Конкретно - аппаратная и программная конфигурация всех компьютеров, серверов, сетевого оборудования, печатающих устройств и т. п., схема сети, желательно схема электропитания, а для совсем продвинутых - и другие потенциально опасные коммуникации (кондиционеры, водопроводные трубы в местах, где в случае проблем что-то может литься на оборудование и его портить, и способы отключения, чтобы можно было быстро их найти). Затем определите критичные моменты в деятельности компании, где нежелательны технические простои, продумайте способы уменьшения простоев при возникновении проблем и по наиболее вероятным сценариям реализуйте их, а также спланируйте плановое обслуживание техники, чтобы уменьшить вероятность аварий. Обязательно реализовать резервное копирование наиболее критичных данных с проверкой восстанавливаемости. Литературу и гугл уже можно будет смотреть и читать по конкретным вопросам, которые неизбежно возникнут при реализации. Когда освоите всё и потренируетесь в реакции на аварии и научитесь своевременно обслуживать оборудование в плановом порядке, останется научиться спать на работе и почувствовать себя настоящим сисадмином. Как-то так.
    Ответ написан
    Комментировать