• Нужен хороший, но не сложный онлайн/оффлайн симулятор логических схем?

    @Northewind
    engineer
    Logisim (на Java).
    Переведён на несколько языков, в т.ч. русский, включая справку по использованию и библиотеке компонентов.
    Ответ написан
    Комментировать
  • Какие есть интересные книги по математике?

    @Northewind
    engineer
    Могу порекомендовать книги серии "Популярные лекции по математике". Это около 60 небольших по объёму книжек (примерно по 100 стр.), рассчитанные на школьника от 8-го класса и старше.
    Отдельно хочу отметить следующие книги серии (подборка субъективная):
    • Успенский - Машина Поста
    • Успенский - Треугольник Паскаля
    • Воробьев - Числа Фибоначчи
    • Вентцель - Элементы теории игр
    • Фомин - Системы счисления
    • Шилов - Простая гамма ;)
    • Соминский - Метод математической индукции
    • Головина - Индукция в геометрии
    • Соболь - Метод Монте-Карло
    Ответ написан
    Комментировать
  • Почему fgets() работает раньше printf()?

    @Northewind
    engineer
    Все функции выполняются строго в том порядке, в котором вы их прописали. Другое дело, что сообщение, выводимое первым printf ( ) может появляться позже, чем, собственно, чтение fgets ( ).
    Связано это с тем, что printf ( ) пишет строку в поток stdout, который использует построчный буферезированный вывод. Т.е. печать на терминал фактически осуществляется когда встречается символ новой строки.
    Это поведение можно изменить с помощью функции setvbuf ( ).
    В вашем случае также можно просто использовать fflush ( stdout ) для принудительной записи содержимого буфера в поток.
    Ответ написан
    Комментировать
  • Учебник по математике, при почти нулевых знаниях?

    @Northewind
    engineer
    По школьной (элементарной) математике советую учебник М.И. Сканави "Элементарная математика". Учебник ориентирован на старшие классы и повторяет всю программу по математике, которую должен был знать выпускник советской школы.
    Изложение строгое, систематическое. Пойдёт и "взрослому".
    www.twirpx.com/file/15951
    Ответ написан
    Комментировать
  • Как обычному пользователю Windows перейти на Linux?

    @Northewind
    engineer
    Также уважу ваше желание перехода на свободную ОС.
    Сам использую GNU/Linux в качестве основной (точнее, единственной) системы на протяжении нескольких лет. Рекомендую и вам переходить на новую ОС сразу и бесповоротно, не оставляя MS Woe на соседнем разделе. Если понадобятся специфические windows-программы - поставите виртуальную машину.

    Главное начать пользоваться и не спрыгивать. В процессе работы у вас будут возникать вопросы (элементарые, например, как примонтировать ISO-образ, как создать разделы на флешке с разными файловыми системами, как настроить IP-адресацию, или удалённое подключение по SSH, сконфигурировать FTP-сервер и пр.).
    Решая их, вы и научитесь. Научитесь, как учились пользоваться MS Woe. Было ведь время, когда вы не умели установить/удалить программу или настроить VPN? Также и здесь.

    GNU/Linux имеет стройную архитектуру и пользовательское окружение UNIX. Окружение UNIX подразумевает использование командной оболочки и множества утилит командной строки. Так что обучение начинать стоит именно с основ bash (как самой популярной оболочки) и этих самых утилит.

    Инструменты с графическим интерфейсом обычно не вызывают вопросов по использованию, да и разняться они от дистрибутива к дистрибутиву. Интерфейс командной строки же закреплён стандартами POSIX/SUS/LSB. Это основа, которую должен знать каждый юни/линуксоид.

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

    Материалы к изучению:
    Столяров А.В. Операционная среда ОС UNIX для изуча...
    Баурн С. Операционная система UNIX (книга слегка утратила актуальность, но не критично, рекомендую).
    Также есть несколько интересных уроков на stepic.org.
    Ну и для самомотивации: Почему UNIX?

    P.S. Кстати, Столяров А.В. работает над одной интересной книгой (обучение программированию с нуля, используя UNIX-подобную систему), любой желающий может пожертвовать на её создание.
    Ответ написан
    Комментировать
  • Какую книгу по assembler посоветуете?

    @Northewind
    engineer
    Лучшая, на мой взгляд, книга.
    Столяров А.В. Программирование на языке ассемблера....
    И всего около полутора сотен страниц.
    Ответ написан
    1 комментарий
  • С чего начать карьеру ИТ?

    @Northewind
    engineer
    Мне 30 лет. По образованию инженер-механик. До 26 лет, после вуза, работал в машиностроении, как на крупных заводах, так и в маленьких консалтинговых фирмах, кормящихся за счёт тех же заводов на поставках инструмента и оборудования.
    До тех пор, начиная с третьего курса вуза, считал что машиностроение не моя тема. Также как и вы считал, что ИТ моё призвание. Тянуло к интеллектуальной работе. Поначалу я искренне так считал.

    В течении почти четырёх лет работал над тем, чтобы переквалифицироваться и стать Программистом. Шёл по священному пути хабра-сообщества, следуя его идеалам ) Алгоритмы, шаблоны проектирования, UML и проектирование. Ориентировался на Java SE и EE, Web. Параллельно "освоил" C++, php, asm (x86), позднее Dart, некоторые другие технологии и платформы.
    Кроссплатформенность выбирал изначально, поскольку являюсь сторонником свободного софта, и выбрать платформенно зависимые вещи не мог (ибо в коммерции в 99% случаев компьютеры потребителей заправлены MS Woe).
    Даже поступал на учёбу на второе высшее дистанционным способом, в ТУСУР. Толку, правда, было мало, так что ушёл после года "обучения".

    В 26 лет, пока не поздно, как я считал, наконец сделал рывок. Сменил работу. Устроился в ИТ-отдел одной несофтверной корпорации. Здесь я и хлебнул всей ИТ-грязи сполна. Хотя плюсы тоже были, кое-что с того места работы я для себя извлёк в профессиональном плане (написание больших и сложных SQL-запросов, хранимых процедур и функций). То был типичный ИТ отдел типичной несофтверной организации. Мы занимались разработкой информационной системы для собственных нужд (ERP/CRM/SRM/... и т.д.), чуток админили. В общем это было первое место в моей ИТ-карьере. Продержался на ней меньше года. Далее был книготоргующий магазин. Затем, наконец, софтверная фирма, специализирующаяся на широкопрофильных бизнес-приложениях.

    В общем, этого хватило, чтобы понять, что профессиональная разработка не моё призвание. Сейчас я очень доволен, что во время осознал это, что не стал форсировать, делая работу, которая, мягко говоря, не по душе.
    Во всех трёх фирмах я занимался по сути одним и тем же, пусть и используя разные инструменты и языки. Увольняясь с последнего места работы, уже имел стойкое отвращение к бизнес-приложениям. Здесь я окончательно убедился, что большинство коммерческих ИТ-проектов глупы и никчёмны. А от гламурненьких сайтиков с "чётко проработанным дизайном" просто тянет блевать. Вот, например, одна из вкладок, открытых в данный момент в моём браузере: ссылка. Это пример нормального дизайна (хотя осознание этого пришло не так давно). Только информация, без всяких прелестей, какие имеют место в enterprise, и помогающих продажникам впарить очредную систему учёта. В общем, я не буду останавливаться на камнях ИТ-пути, какие попались мне (всё таки toster - ресурс, аудитория которого программисты или студенты ИТ-специальностей, дабы не вызвать гнев окружающих).

    Сейчас я снова работаю в машиностроении, специалист высшей категории )) Но программирование всюду со мной. Мои дополнительные руки - GNU Octave и plain C. Все задачи, встречающиеся мне решаю творчески. Вычислительные эксперименты и обработку экспериментальных данных, нейросети - в Octave, синтаксические анализаторы текстов программ для систем ЧПУ станков с программным управлением, большие вычисления на всех ядрах - на Си. Это, конечно, не повседневные задачи, ибо слабо отражают суть моей технологической работы. Но Octave нужен ежедневно, ежечасно, почти ежеминутно.
    В последнее время стал копать низкоуровневое программирование и встраиваемые системы. Это очень увлекательно. Но это не продаётся (по крайней мере так, как продаются всякие "системы автоматизации бизнеса").

    Это было долгим введением, чтобы сказать: не ступайте на ИТ-путь, путь "мужчины у монитора". Фрилансом особо сыт не будешь. Современным веб-дизигнерам и фронт-ендщикам следует отрывать руки, не становитесь с ними в один ряд. В любом случае освоение новой платформы и технологии на профессиональном уровне - кропотливый труд. Не знаю, как бы я занимался этим сейчас, обзаведясь семьёй и ребёнком: просиживать вечера напролёт теперь стало нереально.
    Но что можно предложить, если желание серьёзное? Совместить. Как тенденция междисциплинарности в науке, как межотраслевая интеграция в бизнесе - найдите идею как применить одно к другому, как совместить автодело и программирование, чтобы они стали удобны, прежде всего, для вас самих. Не ставьте крест на опыте авторемонта (а уходя в ИТ, потребуется уйти в него с головой, как отмечали здесь некоторые). Дополните ваш опыт новым вливанием, новыми знаниями. И если у вас что-то выйдет, то можете поделиться этим с миром open source )
    Ответ написан
    1 комментарий