• В чем смысл ВУЗа?

    @ittakir
    Смысл ВУЗа для программиста только один - возможность получить H1B визу есть только при наличии диплома о высшем образовании.
    В остальном это потеря времени и нервов, потеря самых молодых и продуктивных лет своей жизни на непонятную, ненужную ерунду.
    Ответ написан
    Комментировать
  • В чем смысл ВУЗа?

    @Anthony7
    Лохотрон это, просто попробуй связаться с работодателями с интересной для тебя вакансией, скажи что знаешь все что они хотят, но диплома у тебя нет. Если согласятся, забивай на ВУЗ. В наших вузах из полезного только столовая и телки. Я лично отучился и толку никакого, последние пару лет тролил преподов, что они тупее большинства студентов (мой ВУЗ сейчас в середине рейтинга лучших универов по стране). Они растягивают любую программу и добавляют туда воды, чтобы ты подольше платил)
    Ответ написан
    3 комментария
  • Почему C# не подходит для ML, а python подходит?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    0) Низкий порог вхождения в язык
    1) Простой и лаконичный синтаксис. А это важно в машинном обучении, т.к. нельзя терять время на написание кода.
    2) Работа со списками просто одно удовольствие, срезы, генераторы списков,
    3) Крутые либы для анализа и обработки данных, чего стоит только pandas, это реально крутейшая штука, почитайте это pandas.pydata.org/pandas-docs/stable/10min.html Я не видел аналогов в других языках. Для JS я видел порт, но он мне показался сырым.
    4) Крутые либы для самого машинного обучения - scikit-learn, tensor-flow, моя любимая LightGBM, их огромное количество на любой вкус и задачи. И некоторые очень легки в использовании
    5) Jupyter notebook - эта красотень работает и для языка R и Julia.
    6) Либы для графиков, их огромное количество и они очень круты. Не стоит зацикливаться matplotlib, конечно он является самым мощным, но есть и другие интересные либы, например моя любимая pygal, очень проста в использовании и совместима с jupyter notebook, а также может выдавать html графики. Есть еще plotly
    7) Математика, питон+numpy очень любят математику.
    Ответ написан
    3 комментария
  • Чему научиться кроме HTML, CSS, JS для фриланса на upwork?

    @Ravenio
    Доброго времени суток.
    Отвечая на вопрос.
    По количеству заказов, на данный момент, по апворку у заказчиков популярны PHP/Wordpress/Laravel, WP вне конкуренции.
    В сторону JS есть много заказов по React/Angular/Node.JS, меньше по Vue.
    Если же говорить про то, что необходимо, то начиная с самых низов от WP сейчас никуда не деться, просто навыками HTML/CSS на апворке да и вообще уже никого не удивить.
    На JS/React/Node.js заказы выше уровнем, без опыта и хорошего портфолио их брать сложнее чем на том же WP.
    Ну и общее.
    Про идеальный английский - неправда. Знать его конечно необходимо, но уровня intermediate вполне.
    По поводу маленьких ставок и быть первым - тоже, не совсем:
    • Во-первых это не всем известная помойка. Да, заказчики бывают разные, но основаная масса желает платить специалисту, не равняйте менталитет заказчика из США с нашим, у него не укладывается, что специалист ставит 5-8$ за час. В среднем, все начинают в диапазоне 12-15$, хотите можете и с 5$ начинать, но лучше сразу привыкать ценить свой труд. И вас ценить будут в ответ. Пример из опыта заказ на установку WP, и темы без кастомизации и прочего ушел за 35$/час, на вопрос почему, заказчик сказал, потому что я вижу что вы сделаете за час, а человек будет за 7$ ставить мне его неделю, может заказчик и не прав, но такой ход мысли у многих. Повторюсь есть и иные случаи, но потом часто можно в Job feed увидеть - "даю апворку последний шанс, чтобы сделать мою работу, предыдущий фрилансер не справился".

    • Во вторых, там необходимо ответить в течении определенного времени, обычно окно составляет около 10 минут. Ваш cover letter выстраивается у заказчика релевантно вашим скилам, портфолио, последним выполненым работам, но никак не зависит от того вы ответите первая или десятая.

    Ни в коем случае, не при каких обстоятельствах не работайте за отзыв и за очень маленькую ставку, мошенников и сволочей большое количество. Случаев работы за 5$ два месяца - масса. Начиналось все с небольшой правки, и обещаний оставить хороший отзыв, а потом в процессе узнаешь что такое JSS, что такое скрытые отзывы. И так люди работали.
    Старайтесь избегать заказчиков из Пакистана, Индии. Русскоязычных старайтесь тоже избегать, вообщем ищите заказы в странах от Германии и западнее.

    В любом случае, как раз где-то через 6-8 месяцев обучения, вы уже сами будете отвечать на этот вопрос другим. Удачи вам, Марина!
    Ответ написан
    2 комментария
  • Зачем делают backend на разных языках?

    @pfg21
    ex-турист
    тот же контактик был написан на php.
    когда встала проблемма тормознутости php был написан инструмент kphp по переводу php в С++ с последующей компиляцией.
    скорость работы пот очетов админов контактика выросла в два (!!) раза, для высоконагруженного сайта это очень много, в том числе и в денежном эквиваленте.
    фейсбук тоже сделал подобное штуковину. это про пыха.

    а вообще каждый инструмент удобен в том варианте использования, для которого он изначально задуман.
    какой-то язык упрощает/убыстряет написание в нем рабочего кода, берет на себя кучу тонких нюансов.
    какой-то предоставляет функционал качественной проработки кода, но требует долгого ковыряния и многих знаний.
    Ответ написан
    4 комментария
  • Зачем делают backend на разных языках?

    @InoMono
    Возьмем например Дропбокс.

    Изначально был написан на Python - это быстрее для прототипирования.
    Потом был переделан на Go - для предсказуемости и скорости. Но зачем переделывать полностью? Многие куски на Python существуют там до сих пор. И работают.
    И маааалюсенький кусочек был переделан на Rust - для ускорения самого узкого места.

    Вот вам и 3 языка работающих одновременно в Дропбоксе на бэке.

    Или имеется в данный момент свободен тот или иной специалист, который лучше знает тот или иной язык. Ему поручили - он сделал на том, что лучше знает, чтобы сделать быстрее и качественнее.

    Или такова была особенность задачи. Пример с комбинацей Rust/Go выше приведен. Где то может быть лучше один язык, где то другой.

    А если мы вспомним, что проект не только пишется, а еще и готовые компоненты применяются - то автоматически к любому почти проекту добавляются С/С++ те что в БД к примеру и пр. и пр. SQL - тоже язык бэкенда. И пр. и пр.

    Вы преувеличивайте значение языка. Это всего лишь инструмент программиста. Такой же как клавиатура. Опытный программист за долгие годы изучает не меньше десятка языков, а кто то и намного больше. Ничего такого в этом нет.
    Ответ написан
    Комментировать
  • Заказчик сует доработки очень маленькими порциями, как брать оплату?

    sim3x
    @sim3x
    Собирать правки в блок на 15-25 минут (те просто сказать, если в письме не указано "срочно", то фиксы будут делаться после пятого-шестого письма)
    Когда просить оплату за блок: внутри большого проекта +1-2 часа, как за поддержку
    или после: как отдельный блок
    стоит оговорить с клиентом заранее

    Акцент тут на том, что задачи на 5 минут - ето вспомнить о чем проект, запустить все тесты, понять как решать, решить (вот тут 5 минут), запушить, задеплоить, написать ответ
    И в совокупности 5-минутная задача сожрет пол часа и более
    Ответ написан
    Комментировать
  • Заказчик сует доработки очень маленькими порциями, как брать оплату?

    alex-1917
    @alex-1917
    Если ответ помог, отметь решением
    В чем проблема потребовать оплату за то, что:
    1. Уже сделано.
    2. Стоимость уже сделанного была проговорена ранее.

    Мягкотелость автора вопроса зашкаливает, ппц.
    Зачем сунулся в фриланс? Если нет силы воли администрировать))) клиента, отдай это дело разбирающемуся в этом нелегком деле! Работай в офисе!

    Выше (или ниже) правильно посоветовали:
    1. Минималка час (полчаса тоже ниочем, слабохарактерная уступка)
    2. Время реагирования на задачу - минимум 12 часов.
    3. Ну и самое главное - не бойтесь ставить нормальное время на выполнение, коэффициент два-три это как минимум))) Т.е. если по факту вы тратите два часа на доработку - ставим ШЕСТЬ! и т.д. Иначе вы будете пахать без остановки, а жизнь будет проходить мимо вас....

    ППЦ! мне показалось поначалу, что вы админ и работаете на окладе, судя по тому, как вы мгновенно бросаетесь на доделки))))

    а если за 2-5 минутную правку брать как за пол часа, то может уйти и к другому специалисту.

    по 15летнему опыту - никуда он не уйдет

    судя по всему, вы человек-оркестр - это тупиковая ветвь развития!!! Делайте то, что делаете отлично, а мелочевку типа наполнить текстом или поправить заголовок - это пусть делают рукунабивающие)))) Судя по 2-5 минутные правки - это именно и есть задание по текстам)))
    Ответ написан
    8 комментариев
  • Заказчик сует доработки очень маленькими порциями, как брать оплату?

    opium
    @opium
    Просто люблю качественно работать
    Тут просто надо вложить это изначально в стоимость и не надо его отучать.
    Например у меня есть заказчик который никогда не заказывает без скидки, хоть убейся ему нужна скидка, всегда наценяю ему двадцать процентов, потом даю скидку двадцать процентов, он раз как ребенок, и понятное дело что его тут вопрос денег не сильно волнует, но убеждения какие то толкают на обязательное получение скидки
    Ответ написан
    10 комментариев
  • Как развиваться в программировании не привязываясь к языку?

    myjcom
    @myjcom
    Clean Code: A handbook of software craftsmanship / Чистый код: Создание, анализ и рефакторинг
    Год издания: 2013
    Автор: Robert Martin / Роберт Мартин
    ISBN: 978-5-496-00487-9

    The Clean Coder: A Code of Conduct for Professional Programmers / Идеальный программист. Как стать профессионалом разработки ПО
    Год издания: 2012
    Автор: Robert C. Martin / Роберт Мартин
    ISBN: 978-5-459-01044-2

    Алгоритмы. Справочник с примерами на C, C++, Java и Python
    Год издания: 2017
    Автор: Хайнеман Д., Поллис Г., Селков С.
    ISBN: 978-5-9908910-7-4

    Design Patterns. Elements of Reusable Object-Oriented Software/Приемы объектно-ориентированного проектирования. Паттерны проектирования
    Год издания: 2015
    Автор: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides/Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж
    ISBN: 978-5-496-00389-6

    Test-driven development by example / Экстремальное программирование. Разработка через тестирование
    Год издания: 2017
    Автор: Kent Beck / Кент Бек
    ISBN: 978-5-496-02570-6

    Грокаем Алгоритмы. Иллюстрированное пособие для программистов и любопытствущих
    Год издания: 2017
    Автор: Бхаргава А
    ISBN: 978-5-496-02541-6

    Алгоритмы. Теория и практическое применение
    Год издания: 2016
    Автор: Стивенс Род
    ISBN: 978-5-699-81729-0

    прочитать нужно все

    ну и на закуску
    C Unleashed / Искусство программирования на C. Фундаментальные алгоритмы, структуры данных и примеры приложений. Энциклопедия программиста
    Год: 2001
    Автор: Heathfield R., Kirby L. / Хэзфилд Р., Кирби Л.
    ISBN: 0-672-31896-2 / 966-7393-82-8
    Ответ написан
    9 комментариев
  • Какой выбрать Python фреймворк для системы парсинга сайтов?

    @iSergios
    Python-разработчик
    Мне кажется, Вы не разобрались в теме, начните сначала.
    Ключевые особенности системы, которые усложняют выбор фреймворка

    Ни одна из этих особенностей не усложняет выбор фреймворка, ибо ни одна из них не охватывается и не должна охватываться его функционалом.

    Любой скраппинг-фреймворк, это удочка. Рыбака Вам самому писать. И не удочка должна решать, как часто и с какой периодичностью запускаться, где хранить наскрапленное и все остальное. Для целей скраппинга у Вас должен быть всего один вопрос: надо парсить JS или нет. Если нет - Ваш выбор BeautifulSoup, ибо очень быстрый. Если да - посмотрите в сторону Selenium.
    Ответ написан
    4 комментария
  • Какие книги можно почитать для улучшения основ программирования?

    rasswet
    @rasswet
    https://www.youtube.com/watch?v=SW_UCzFO7X0
    гарвардский курс «CS50. Основы программирования» на русском бесплатно
    Ответ написан
    Комментировать
  • Где взять опыт Python, как попасть на стажировку?

    solotony
    @solotony
    покоряю пик Балмера
    Что-то объяснять рекрутершам бесполезно - у них стоит "фильтр",через который они обязаны прогнать всех претендентов. Для них что Python, что Perl, что Ruby - все пустые слова. Твоя задача на начальном этапе - это пробиться через.

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

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

    opium
    @opium
    Просто люблю качественно работать
    Ну вы просто не говорите что вы фрилансер и показывайте проекты сделанные на фрилансе, ну или кому нибудь напишите проект за так , мне например)))
    Ответ написан
    Комментировать
  • Где взять опыт Python, как попасть на стажировку?

    @Stqs
    senior software developer
    вы к сожалению находитесь в "замкнутом круге выпускника"
    без опыта - не берут
    не берут - нет опыта

    в вашем случае все осложняется тем что вы не можете прорваться даже сквозь HR
    к сожалению они зачастую просто являются био-роботами которые надрочены на определенные keywords которые они ожидают от вас услышать
    не услышали - давай да свидания (в вашем случае - они не услышали что у вас есть опыт)

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

    про опыт
    опыт можно получить даже не работая в кампаниях
    можно поучаствовать в каком-нибудь open-source проекте
    и будет что показать и будет о чем на собеседовании поговорить
    и вообще хорошая тема для очистки кармы нещадно загрязненной 1с-ом

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

    кароче тезисно
    1) не говорим всей правды эйчарам, выставляем все хорошее, молчим про все плохое
    2) пытаемся влиться в тусовку где можно выхватить хоть какой-то референс от уже работающих людей - это уже половина успеха
    3) участвуем в opensource
    4) ну и продолжаем долбиться все кампании помельче да постремнее - задача то не работу мечты найти а просто вырваться из замкнутого круга
    Ответ написан
    3 комментария
  • Суть виртуальной машины Java?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Тут дали уже много хороших и правильных ответов, но хотелось бы уточнить, что вот эта метафора:
    Виртуальня машина java это тоже интерпретатор по сути

    может направить по весьма ложному пути!

    У слов в названиях есть достаточно точный смысл, и JVM называется именно машиной, а не интерпретатором, и не компилятором совершенно не случайно. Компилятор в Яве есть (javac), и он нужен не для выполнения программы, а именно для ее компиляции (в байткод). Имено поэтому он не входит в состав JRE (среды выполнения), а содержится в JDK (среде разработки). В самой JVM есть еще один, JIT-компилятор, который компилирует байткод в инструкции процессора во время выполнения программы, но это уже другая история, и его тоже никак не назвать интерпретатором.

    По сути JVM - это процессор, только виртуальный. И как у любого процессора (железного, типа x86, или виртуального, типа CLR в .NET), у него есть свой набор опкодов, называемый байткодом. Так же точно, как на х86 может выполняться код, порожденный компилятором с C++, или Pascal, или Go, так же и на JVM может выполняться байткод, скомпилированный из Java, или Scala, или Kotlin (или даже написанный вручную), а .class -файл, это, по сути, тот же .exe (точнее .so), скомпилированный под "процессор JVM". В этом и заключается кроссплатформенность. Так же, как код, скомпилированный под х86 будет выполняться на процессоре от Intel или AMD, так же и байткод JVM будет выполняться на JVM от Oracle, IBM, OpenJDK и т.д. И даже наличие JIT, компилирующего байткод в опкод конкретного железного процессора во время выполнения, все еще не дает повода обзывать честную стековую (SUN) или регистровую (Dalvik) VM интерпретатором, пусть даже и по сути :)

    Дело в том, что сама эта классификация (интерпретируемый/компилируемый ЯЗЫК) последние лет эдак 25 уже практически лишена смысла. Языкам, изначально ориентированным на реализацию в виде интерпретатора (с просто анализируемой лексикой, чтоб интерпретатор был поменьше и мог оставить самой программе достаточно места в ограниченной по объему памяти) типа APL или BASIC, сейчас (кроме, разумеется, очень узкоспециального применения) почетное место разве что в старых учебниках, из которых эту самую классификацию, с достойным лучшего применения упорством, продолжают дословно переписывать в новые. При этом, почему-то, забывают уточнить, что эти два понятия уже давно не про сами языки, а всего лишь про некоторые методы их реализации, и что с тех пор помимо этих методов появилось еще много других хороших и разных концепций на эту тему (типа VM, JIT, сборщиков мусора, да и хотя бы тех же OOП, разных видов типизации и еще миллион чего), которых в тех учебниках еще просто не было в силу их года издания. И что на сегодня уже даже для языков, принципиально заточеных для компиляции под регистровую архитектуру, типа С, есть пруд пруди интерпретаторов (раз, два, три)... которые, опять же, никто не называет виртуальными машинами, т.к. это все суть разные понятия. Короче, это все равно что пытаться понять, где в квантовой механике огонь, вода, земля и воздух, в том виде, как их понимали Платон и Аристотель :)

    P.S. Чтоб осознать, когда эта классификация еще была актуальна, рекомендую вот это . Там создатели APL, одного из первых настоящих интерпретируемых языков, обсуждают насущные проблемы языкостроения того времени. Если туго с английским, посмотрите хотя бы вступление... в тех железяках было меньше памяти и вычислительной мощности, чем в современной симке :)
    Ответ написан
    Комментировать
  • Суть виртуальной машины Java?

    ruFelix
    @ruFelix
    Предсказание будущего по руке, таро, кофе.
    Ну смотрите процессор компьютера понимает опкоды, для разных процессоров свои опкоды, x86 , AMD64, ARM и т.д.

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

    Интерпретируемые языки поступают иначе, они имеют в своём составе интерпретатор, который транслирует код программы в опкоды процессора. Соответственно реализовав один раз интерпретатор по разные платформы мы получаем кроссплатформенный язык.

    Виртуальня машина java это тоже интерпретатор по сути, но ему на вход идёт не сама java программа, а её трансформированный вариант, т.е. уже проверенный и более удобный для VM.

    Да вы всё правильно поняли, без JVM программа на java не запуститься не где. Замечу что например в симкарте вашего телефона есть процессор на котором запущена JVM и софт который на ней исполняется, это я к тому, что кроссплатформенность у java действительно широка.
    Ответ написан
    Комментировать
  • Стоит ли начинать заниматься программированием в 30+ если до этого не программировал?

    @AlexLIn
    Мой дед начал изучать программирование в ~75 лет.
    Теперь программирует себе самолетики да квадрокоптеры на ATxmega в atmel studio. "Полет нормальный".
    Ответ написан
    2 комментария