• Книги по электронике и схемотехнике?

    @vilgeforce
    Раздолбай и программист
    Искусство схемотехники, не подходит?
    Ответ написан
    1 комментарий
  • С чего начать изучения программирования АСУ в домашних условиях?

    Mansiper
    @Mansiper
    Директор КБ. Разработчик АСУ ТП.
    В домашних условиях максимум, что получится, - это изучение отдельно взятого устройства или языка программирования, что не сильно приблизит вас к созданию полноценной автоматизированной системы управления.
    АСУ - понятие гораздо более широкое, чем кажется. Это и "умный дом", и управление складом и кассой, и управление заводом, и разработка контроллеров. Возможно использование любых технологий от мобильных приложений до программирования микроконтроллеров. Выберите для себя подходящую область, к которой больше лежит душа, и постарайтесь устроиться в фирму, которая занимается интересной вам областью, для получения опыта.
    По своему опыту скажу, что теория может очень сильно отличаться от практики. Что бы вы не придумали дома, не имея практического опыта, почти наверняка уже есть лучшее решение (был опыт общения с подобными мечтателями).

    В частности, для программирования АСУ для БСУ (бетонносмесительной установки) мало просто знать язык программирования. Необходимо иметь хотя бы базовые знания электроники и электротехники, знать протоколы для работы с устройствами, уметь быстро разбираться с новым оборудованием, уметь читать схемы, знать технологический процесс (начальник объяснит, но запомнить надо будет наизусть от и до). А во время пуско-наладки быть готовым быстро соображать и реагировать на любые нештатные ситуации - любая ошибка может очень дорого обойтись вплоть до причинения увечий или чего хуже. В данном случае АСУ - это не только программа, но также исполнительные механизмы (пневмоклапаны, конвейеры, датчики, бетоносмесители и пр.) и устройства, которые ими управляют (промышленные контроллеры, модули ввода и вывода и пр.). Если захотите пойти глубже, чем просто написание программ, то со всем этим вам предстоит научиться работать в той или иной степени, а также с оборудованием, которое, возможно, вы никогда не увидите, но у вас будет руководство по эксплуатации.
    Но запуск первой работающей установки, когда по одной кнопке всё железо оживает, приходит в движение и выдаёт готовый продукт - ни с чем не сравнимое удовольствие. Это похоже на оживление Франкенштейна.

    На фото рабочее место оператора БСУ в Нижнем Тагиле:
    Best_2.jpg
    Ответ написан
    Комментировать
  • Книги по электронике с нуля?

    @cap_nemo
    Рудольф Сворень "Электроника. Шаг за шагом". И спать не сможете совсем, так как паяльник врастет в руку :-)
    Ответ написан
    4 комментария
  • Как (и возможно ли) дотянуться до Junior JavaScript Developer в кратчайшие сроки?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Во первых: совершенству нет предела.
    Во вторых: невозможно объять необъятное и впихнуть невпихуемое.
    В третьих: как ты не крутись, а технологии развиваются быстрее, поэтому отставание неминуемо, как следствие приходится всегда чем-то жертвовать ради чего-то более важного.

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

    Джуниористость/синьористость конкретного разработчика - штука весьма условно субъективная. На собственном опыте скажу, что одно дело, когда ты первый и единственный парень на деревне - ты почти что бог, потом с той же головой, теми же руками, опытом и знаниями оказываешься в среде подобных себе, разной степени синьористости божков, и, внезапно, ты сырой джун но с очень хорошим потенциалом.

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

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

    Меня на программирование пропёрло весьма рано, лет в 14-15. Я ощущал собственное безграничное могущество, послушная железяка выполняла любое моё повеление, любой мой каприз, при условии, что он правильно сформулирован. Если железка не делала что нужно, или делала что не нужно, то это всегда была моя вина, это значило что я прокосячился. Подобное осознание настигло меня весьма скоропалительно, после чего мозг начал усиленно дисциплинироваться, и количество лютых фейлов пошло на убыль.

    Коммерческая разработка - это, примерно, от 70% времени/сил на дебаг и фиксы, потому что мало где процессы поставлены грамотно. По хорошему до сего дня (а мне под 40) я только одну команду видел, где процессы прям вообще очень хорошо поставлены и мне посчастливилось какое-то время с ними поработать. За эти несколько месяцев я подрос на целую голову. Самостоятельно достичь сходных результатов было бы весьма затруднительно.

    Сам я сменил стек совсем недавно, начал в конце 15 года, и процесс продолжается до сих пор. Сменил я по одной простой причине - во всех моих прежних проектах большая часть логики с бэка уехала на фронт, и прекраснейший jQuery перестал справляться чуть более чем полностью. Он, по прежнему, хорош, но задачи, которые приходится решать, требуют совершенно других подходов. Для себя я выбрал React, но в целом на рынке имеются альтернативы. По моим данным очень большим спросом пользуется Angular 2+.

    Когда говорят о фронтенд разработке, постоянно говорят о технологиях, стеке, но почти никто не упоминает, что не стеком единым... Существенная часть разработки - это, для начала, понять задачу и построить у себя в голове модель. Заказчики бывают разные, от очень толковых, до очень безтолковых. Соотношение первых ко вторым примерно 1% и всё остальное... Т.е. в большинстве случаев тебе скажут минимум, своеобразно, плюс ты это поймёшь по своему. Потом, по ходу пьесы, в самые неподходящие моменты, начнут всплывать подробности, которые: забыли упомянуть; ну это же очевидно, ты же профи; мы сами не знали, это только выяснилось; ну это же мелочи, мы думаем тебе это будет не сложно; а ты не спрашивал; и т.п....

    В результате, по своему опыту скажу, частенько проекты примерно на середине выглядят ужасно и обложены костылями. На моем опыте бывало не раз, что нормально получалось только раза с третьего-четвертого...

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

    Если ты попадешь в команду, где люди будут понимающие, квалифицированные, процессы выстроены, а джуну задачи будут сгружать джунские, то, считай, тебе крупно повезло. Шансов на это примерно 1%. Особенно учитывая, что джуны это обычно студенты лет в районе 20...

    Когда я менял стек, то я тоже был какое-то время 35-летним джуном. С этим ничего не поделать, потому что, внезапно, стек это не просто так, и имеется масса нюансов, которые с наскоку не освоишь. Чтобы все пощупать, попробовать на зубок, понять и осознать требуется время и усилия, иногда много времени и много усилий. Да, весь прежний багаж служит опорой и поддержкой, и там, где настоящий джун будет копаться недели, ты за пару часов по аналогии поймаешь идею и двинешь дальше. Но эти пару часов никто не отменял, а идей которые нужно отловить сотни, если не тысячи...

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

    Даже если тебе попадается практически идеальный проект, внезапно оказывается, что твоя оперативная память это 5-7+-2 объекта, а удерживать в голове одновременно нужно сотни...

    Зачем я все это рассказываю? Затем, что это реальность, которая для джунов не делает исключений.

    Термин "фигак-фигак и в продакшен" встречается повсеместно, т.к. ресурсы (деньги, время, кадры) практически всегда весьма жестко ограничены и ничего ты с этим не поделаешь.

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

    С другой стороны сейчас предпочитают фронта, который еще и неплохо верстает. Слава флексбоксам и современным браузерам, сейчас это делать намного проще, чем годы назад.

    Теперь относительно того что делать - если в бэкграунде нет сильных скиллов по алгоритмике и структурам данных (олимпиады по программированию, универский курс информатики), то прям очень сильно рекомендую прокачать. Будучи наставником на нескольких курсах фронтенда я постоянно встречают студентов, которые "вроде бы" знают язык, но затрудняются скомпоновать пару циклов с условиями, вот буквально просто виснут на неопределенное время, причем без результата. Лично я рекомендую кодварс. Своих студентов я прокачиваю именно там. Достаточно прорешать 30-40 задачек, чтобы базовые скиллы ушли на уровень рефлексов и перестали парить мозг. Правда желательно решать это все с наставником.

    Косвенный бонус тут будет в том, что ты привыкнешь решать задачи на JavaScript. Я когда менял стек, поначалу мыслил на PHP, и подобный финт на кодварс позволил мне переформатировать мышление на JS. Вот мой профиль на кодварс как пруф: https://www.codewars.com/users/iCoderXXI

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

    Понять надо настолько глубоко, чтобы легко и просто, с юморком, рассказывать это любой первой встречной бабушке, да так, чтобы та всё поняла... Это вот прям залог успеха в JS, потому что все остальное держится на этих двух китах. В ютубе имеется курс Зоракса (Zorax) и JavaScript Weird Parts, оба про то же самое, первый на русском, второй на инглише. Кантор, безусловно, крут, но эти двое объясняют попроще и понятнее (имхо).

    После этого прокачиваемся в использовании встроенных методов JS, таких как map, reduce, includes, replace и пр. (на том же кодварс)

    После этого нужно прокачаться в ES6+, стрелочные функции, let/const, деструктурирование, рест оператор, классы, промисы, генераторы, async/await, декораторы - без этих продвинутых штук в современных фреймворках ловить нечего.

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

    Потом уже заостряемся на API форм, DOM, AJAX (fetch/axios), вебсокетах, Localstorage и пр.

    И вот только теперь можно переключаться на фреймворки. Проще всего освоить Vue (по слухам), наибольшим спросом пользуются React и Angular, для общего развития так же неплохо бы немного послушать про Ember.JS.

    React только на первый взгляд выглядит простым, на самом деле это только view-библиотека, а в любом нормальном SPA есть много чего еще кроме view, поэтому React всегда идет в компании Redux, Router, и еще целой толпы всего, что тоже придется осваивать, не только с точки зрения API, но и с точки зрения философии (а нахрена оно вообще сдалось?)

    Перед походами на собесы очень желательно иметь портфолио из нескольких готовых проектов, вылизанных стилистически.

    Далее освежаем базу по JS - типы, замыкания, прототипы, и смело топаем по собесам, будучи морально готовыми завалить первые десять.

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

    Еще вроде большие компании вроде Яндекса устраивают летнее обучение, с последующим трудоустройством лучших кандидатов, но это не точно.

    Оптимистичный прогноз - 6-12 месяцев плотного фигачинга и ты в тренде.
    Ответ написан
    7 комментариев
  • Каким должен быть Step-by-step для будущего программиста в плане обучения и трудоустройства?

    @Lexans
    1. Выбираешь перспективную компанию
    2. Смотришь вакансии
    3. Осваиваешь навыкии требования, которые требуются в вакансиях, интересуешься предметной областью компании и самой компанией.
    4. Устраиваешься стажером/на испытательный срок. Возможность этого необходимо узнать после пункта 1

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

    platotel
    @platotel
    IT Product Manager
    Посоветовала бы Head First Java. Java - широко используемый язык. Не самый модный, но с модных начинать не стоит, потому что может быть сложно переучиваться. На примере Java как раз можно изучить основные понятия программирования - операторы, функции, ООП и т. д., - а после Java уже можно посмотреть Python, JS и ещё что-нибудь. Зная более основательный язык, будет проще переключиться на языки, в которых что-то из Java не используется. А вот наоборот двигаться, на мой взгляд, сложнее и менее продуктивно.
    Если не понравится Java, можно ещё посмотреть С# ("C Sharp"). Эти два языка я бы назвала классическими. Зная любой из них, можно быть востребованным.
    С С++ или чистого С может быть сложнее начинать. Чтоб с ними работать, нужно лучше понимать, как происходит работа программ. Но если интересно и в сторону железа смотреть, то можно и с них попробовать начать. Параллельно изучая Таненбаума и Паттерсона или что-то вроде того. Если математика нравится, то как раз можно больше уйти в С и хардкорное программирование чего-то сложного.
    Кстати, зная Java, можно стать разработчиком программ под Android. И ещё после Java есть больше возможностей работать в веб-проектах, заниматься бекэндом (то есть той логикой сайтов, что скрыта за их красивым видом).
    А я сама начинала с книги Шилдта. Можно и с неё начать. Мне понравилось, что всё постепенно рассказывается. Хотя в книгах серии Head First (по С#, по С) подробностей для новичка больше.
    И ещё добавлю, что по ходу чтения здорово практиковаться, то есть писать программы. Собственно создание программ происходит обычно с средах разработки. Полезно их установить и начинать программировать именно в них, потому как они во многом упрощают разработку, помогают быстрее понять, что к чему. Заодно и их изучите (их знание часто требуется на работе). Для всех С-языков стандартом является среда разработки Visual Studio, для Java я бы посоветовала IntelliJ IDEA.
    И, кстати, рекомендую подкаст The art of programming. Правда, подкаст-терминал, где были выпуски, прикрыли, но советую поискать недавние выпуски подкастов замечательного человека с ником golodnyj. Благодаря ему я и начала двигаться в сторону программирования. :) А, и ещё один подкаст посоветую: Откровенно про IT-карьеризм.
    Ответ написан
    1 комментарий
  • Какие книги должен прочитать инженер занимающийся разработкой техники?

    NeiroNx
    @NeiroNx
    Программист
    начать нужно со шольного курса физики(в области механики конечно).
    Ответ написан
    3 комментария
  • Какую выбрать из трех книг по программированию на С++?

    @Evsign
    Никакую....
    Читайте:
    1. Стенли Липпман C++ Primer
    2. Страуструп Principles and Practice Using C++ 2ed

    А после этих - Скот Майерс
    Ответ написан
    Комментировать
  • Какую выбрать из трех книг по программированию на С++?

    lbondodesc
    @lbondodesc
    PHP Developer
    Последняя книга Дейтела мне очень понравилась... Хорошо раскрыты темы. Много примеров.. и задач после глав по мере роста сложности! рекомендую!
    Ответ написан
    Комментировать
  • Для чего нужен Python?

    @KIN1991
    Python, PHP developer
    Вот кто может его использовать и зачем.
    • Компания Google широко использует Python в своей поисковой системе
    и оплачивает труд создателя Python.
    • Служба коллективного использования видеоматериалов YouTube в значи- YouTube в значи- в значи-
    тельной степени реализована на языке Python.
    • Популярная программа BitTorrent BitTorrent для обмена файлами в пиринговых се- для обмена файлами в пиринговых се- для обмена файлами в пиринговых се-
    тях (peer-to-peer) написана на языке Python.
    • Популярный веб-фреймворк App Engine от компании Google использует
    Python в качестве прикладного языка программирования.
    • Такие компании, как EVE Online и Massively Multiplayer Online Game
    (MMOG), широко используют Python в своих разработках.
    • Мощная система трехмерного моделирования и создания мультиплика-
    ции Maya поддерживает интерфейс для управления из сценариев на языке
    Python.
    • Такие компании, как Intel, Cisco, Hewlett-Packard, Seagate, Qualcomm
    и IBM, используют Python для тестирования аппаратного обеспечения.
    • Такие компании, как Industrial Light & Magic, Pixar и другие, используют
    Python в производстве анимационных фильмов.
    • Компании JPMorgan Chase, UBS, Getco и Citadel применяют Python для
    прогнозирования финансового рынка.
    • NASA, Los Alamos, Fermilab, JPL и другие используют Python для научных
    вычислений.
    • iRobot использует Python в разработке коммерческих роботизированных
    устройств.
    • ESRI использует Python в качестве инструмента настройки своих популяр- Python в качестве инструмента настройки своих популяр- в качестве инструмента настройки своих популяр-
    ных геоинформационных программных продуктов под нужды конечного
    пользователя.
    • NSA использует Python для шифрования и анализа разведданных.
    • В реализации почтового сервера IronProt используется более 1 миллиона
    строк программного кода на языке Python.
    • Проект «ноутбук каждому ребенку» (One Laptop Per Child, OLPC) строит
    свой пользовательский интерфейс и модель функционирования на языке
    Python.

    Следовательно Python используют в серверном, прикладном и в веб программировании
    Ответ написан
    7 комментариев
  • С чего начать изучение программирования (для машиностроителя) ?

    @killla
    Из САПР советую посмотреть SolidWorks. Хотя бы обзоры на что она способна.

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

    Если программирование нужно только чтобы писать небольшие скрипты для подручных задач, то советую посмотреть что-нибудь с низким порогом вхождения, например, Basic или Python. Как вариант Microsoft Small Basic.
    Ответ написан
    6 комментариев