LINUX.ORG.RU

Избранные сообщения grimwaken

План по программированию (system, embedded, network)

Форум — Talks

Необходимо хорошо освоить системное программирование, embedded-разработку, программирование сетевого софта и программирование в Unix. Цели «найти работу по программированию в кратчайшие сроки» — нет. Приоритет отдается изучению основ и необходимой теоретической базы с параллельным выполнением практических (лабораторных) задач. Приступить к реальной работе нужно приблизительно через 1.5-2 года. Оцените, пожалуйста, план по программированию (последовательность книг: с начала изучения до условного завершения).

1. Основы компьютера, алгоритмы и сети

  • Архитектура компьютера (Э. Таненбаум)
  • Современные операционные системы (Э. Таненбаум)
  • TCP/IP. Архитектура, протоколы, реализация (С. Фейт)
  • Программирование в алгоритмах (С. Окулов).


2. Программирование

  • Turbo Pascal 7.0 начальный курс (В. Фаронов)
  • Assembler для DOS, Windows и UNIX (С. Зубков)
  • Искусство программирования на C: Фундаментальные алгоритмы, структуры данных и примеры приложений (Р. Хэзфилд)
  • Язык программирования Си (Б. Керниган, Д. Ритчи)
  • UNIX. Профессиональное программирование (Р. Стивенс)
  • Ядро Linux (Д. Бовет, М. Чезати)
  • Ядро Linux. Описание процесса разработки (Р. Лав)


3. Практика и начало работы

  • Embedded: изучение стандартов С99/C11/POSIX/RTOS. Знакомство и работа с arduino, шилды, отличия VSS от VDD, gpio от spi, ИКаЗэ и УХаХа. Начать работать с железками stm8, stm32, mips, arm. Работа с FPGA. В более крупном эмбеддеде — на микро-компьютерах, где уже линукс крутится — нужно юзать lua, в том числе для написания вебморд и некоторых скриптов бекендов.
  • System: работа с драйверами - их написание и т.д., прошивками, ядром kernel:- модули, код, патчи и т.д,
  • Network: сетевые приложения unix, стандарты RFC, протоколы, сокеты, потоки данных в TCP/IP, бинарные протоколы, написание модулей ядра для работы с пакетами на низком уровне, работа с сетевыми бинарниками, научиться максимально быстро обрабатывать сетевой трафик — это кастомизация TCP-стека, вынос его из ядра, привязка к ядру процессора, c получением данных через NAPI, без хардварных прерываний на каждый пакет


Какие мысли, советы? С чего именно начать и как продолжать?

 , ,

Svobodniy
()

Common Lisp && Gamedev

Форум — Development

Делал карту мечты в cs;go но лимит убил мечты,решил сделать свою каэску без всяких лимитов.На графику вообще пофиг,лишь бы текстурки,модельки и примитивное освещение.На клиенте только рендер по сути из тяжелого.Физика вся на сервер.

Суть: Пробовал писать на Perl.Удобно прикольно но библиотек нету. Пробовал на С но нудно пока что,как сюда подходит лисп? Меня интересует производительность,сборка игры под винду и скорость разработки (может быть есть подводные?).

Сервер будет на плюсах так как bullet-physics.Проект для души и меня+друзья,поэтому языки для души.

 , ,

linuhs_user
()

Java - посоветуйте примеры с подробным описанием

Форум — Development

Посоветуйте материалов, что посмотреть и что почитать, чтобы понять паттерны (фабрики, синглтон). Не общими фразами, как в целой куче учебников, не официозными определениями из википедии, а с конкретными примерами нормального рабочего кода, с подробным описанием, что там и для чего.

Кроме того интересует работа с DAO и JDBC - пока этот вопрос понимаю весьма поверхностно. Есть пара примеров, разбирал код, но написать сам с нуля пока не в состоянии.

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

Java-тред с двача читал, литературу всю по ссылкам собрал, читаю. Но догоняю не всё.

С советами вроде «java дерьмо», «иди займись чем-нибудь другим» сразу проходим мимо.

 , ,

ekzotech
()

Что отличает юниора от более продвинутого

Форум — Development

Начнем с такого вопроса: существует ли вообще такое понятие как «разработчик на C++ среднего уровня». Все знают, что есть junior и senior, но o промежуточном варианте я как-то не слышал.

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

 , скиллы

seiken
()

Хорошие, годные рогалики на русском.

Форум — Games

Насоветуйте хороших рогаликов на русском языке, интересных. Заинтересовался рогаликами, хочу поиграть, но английский я знаю плохо, поиграть не выйдет, а со словарем играть неинтересно.

 , , ,

karton1
()

embedded software engineer requirements

Форум — Job

Всем привет! Стало интересно сколько стоит embedded software engineer в рамках двух больших городов: Минск и Санкт-Петербург. Может ли человек со следующим списком знаний претендовать на зп в 2,5к usd?

Skills:

  • Опыт разработки встраиваемого ПО 6,5 лет;
  • Знания и уровень владения ЯП: С (высокий уровень), Python (уровень джуниора).
  • Знание паттернов программирования: списки, деревья, протопотоки и т.д.
  • GNU Make - умение написать makefile для сборки проекта своими руками.
  • Опыт работы с RTOS - год (freertos, rtems).
  • Культура программирования, ключевые слова: git/svn, unit tests, GNU gdb, doxygen, Совершенный код.
  • Среды разработки: Vi, Eclipse.
  • Владение linux - достаточное, для разработки ПО в unix средах.
  • Уровень владения английского языка: Intermediate.

 , ,

MiDWalkeR
()

Системный программист С под Linux (embedded), Санкт-Петербург

Форум — Job

Компании Digital Security – одной из ведущих российских консалтинговых компаний в области информационной безопасности - требуется системный С-разработчик под Linux, способный принимать самостоятельные решения, готовый стать частью команды.

Требуется помогать нашей команде в:

  • Разработке системного и прикладного ПО для встраиваемых систем в области информационной безопасности;
  • Разработке технической документации;
  • Исследовании и выборе технологий, отладке и поддержке существующего кода;

Уровень зарплаты: от 90 000 до 150 000 руб.

Мы с удовольствием будем готовы пообщаться с Вами, если Вы обладаете следующим опытом и умениями:

  • Опыт разработки на C не менее 2 лет;
  • Опыт модификации ядра Linux;
  • Опыт работы с одной из платформ ARM, MIPS;
  • Системы сборки;
  • Умение тестировать код, опыт написания автоматических тестов;
  • Чтение документации на английском языке.

Существенным преимуществом будет:

  • Знание Python;
  • Опыт reverse engineering.

Дополнительные навыки, которые мы с удовольствием увидели бы в будущих коллегах:

  • Опыт разработки на С++;
  • Опыт написания модулей ядра ОС Linux;
  • Опыт работы с RTOS;
  • Знание синтаксиса shell-скриптов;
  • Знакомство с хардварными отладчиками типа JTAG и логическими анализаторами.

Что мы готовы предложить со своей стороны:

  • Работу в быстро развивающейся компании, ориентированной на международный рынок с профессиональной командой экспертов по ИБ мирового уровня;
  • Гибкий график;
  • Оформление по ТК;
  • ДМС (после испытательного срока);
  • Работу с профессиональной командой экспертов по ИБ мирового уровня, и как следствие,
  • Возможность постоянно развиваться и обучаться в области ИБ.

Для обратной связи и получения дополнительной информации: careers@dsec.ru

 , , ,

ttyS1
()

Обновилась библиотека uthash

Форум — Development

Собственно, в обновлении пофиксили баг с xxx_INORDER функциями. Если вы их у себя в коде их не использовали - не стоит беспокоиться, код не рухнет. Но на будущее обновиться имеет смысл.

Код библиотеки uthash на гитхабе:
https://github.com/troydhanson/uthash

Для новости это сильно мало, но библиотека в мире C популярная, поэтому на всякий случай пишу в Development.

 ,

Iron_Bug
()

кто хочет попилить на ansi-C?, часть 2

Форум — Development

tcl-bounties продолжается (https://github.com/flightaware/Tcl-bounties), у многих выходные ещё не закончены, и есть возможность занять себя за нормальную денешку :-)

пока-что закрыты всего два пункта на 7500$, осталось минимум 114К$

ps/ заодно теги правильно проставлю, а то прошлый раз C забыл :-)

 , , dollars,

MKuznetsov
()

Посоветуйте толковые книги на русском/английском по Си++ (Cxx11)

Форум — Development

Посоветуйте толковые книги на русском/английском по Си++.
Чтобы был нормальный перевод и содержание.
У меня где-то лежит каталог с O'Reilly, надо бы посмотреть среди них. Ещё что-то брал по акции «книга за 1 рубль» в books.ru

В двух словах - я старпёр, который изучал Си/Си++ в 1996-1997 году по книжкам:
* В.В.Подбельский Язык Си++ (Финансы и статистика)
* Беляков М.И., Рабовер Ю.И., Фридман А.Л. Мобильная операционная система
* немного смотрел русский перевод Керниган-Ритчи в бумажном виде в библиотеке когда интернетов не было, а свою книгу купить - стипендия не позволяла
* в 2004-2005 году читал книгу Страуструп Б. Дизайн и эволюция С++

Все эти книги читал в бумажном варианте.

По работе писал только на Си с классами и на Паскале с классами (+Делфи). Сейчас хотел бы по-изучать Си++, чтобы понимать современный код. Какие книги посоветуете? Интересует компактное изложение фундаментальных основ, желательно - на русском языке. Или что-то не очень тяжёлое на английском (чтобы не надо было переводить каждое слово со словариком). Надеюсь, понятно объяснил. Спасибо.

Просто я встретил на днях код вида

A::B::C::D ...
, и понял, что пора догонять поезд. На университетских знаниях 20-летней давности сейчас делать почти нечего. Хочу перестать заниматься быдлокодерством, и начать осваивать современные знания.

Ещё - есть ли краткая табличка с основными различиями в стандартах (Comparison table/list)? Или лучше просто прочитать для начала Wikipidia:C++11, и составлять такую таблицу самому?

За что браться не следует однозначно новичку, что освоить для быстрого JFF-эффекта, если хорошо знал в своё время Си с классами? Нравится концепция namespaces. Ещё хотелось бы впоследствии плавный переход на какую-то функциональщину, чтобы знания по современному Си++ пригодились. Какие концепции/подходы есть общие?

 ,

Mirage1_
()

Ищу библиотеку для работы с диапазонами

Форум — Development

Привет, ЛОР! Мне нужна твоя помощь.

Я ищу библиотеку для работы с диапазонами. Что я хочу в ней видеть:

  • Тип «диапазон» (например, 5..45).
  • Операции над диапазонами.
  • Список диапазонов, что-то вроде {5..45, 60..65, 80..89}.
  • Операции над списком диапазонов, например, получить все пропущенные диапазоны из списка.
  • Экономия памяти, в каждом экземпляре-диапазоне должно храниться только начало и конец.

Что-то есть такое на просторах интернета? Я искал, но безуспешно.

 ,

MyLittleGentoo
()

The Eudyptula Challenge

Форум — Development

Всем привет.

В С у меня вообще нет опыта, но очень интересен кернел. Копаясь в интернетах, набрёл на The Eudyptula Challenge проект с таким описанием:

What is it?

The Eudyptula Challenge is a series of programming exercises
for the Linux kernel, that start from a very basic "Hello world"
kernel module, moving on up in complexity to getting patches
accepted into the main Linux kernel source tree.

What skills do I need to take this?

A basic understanding of the C programming language is required.
No previous Linux kernel coding experience is needed, but that
of course will help.
и очень заинтересовался ☺ Но меня немного смущает порог вхождения. Я никогда не писал ничего серьёзного в юзер-спейсе, кроме хеллоуворлдов из упражнений в K&R (сейчас по-тихоньку разруливаю вот это, хотя, в сишке более-менее ориентирусь (по крайней мере, мне так кажется ☺). Вопрос: стоит ли вообще рыпаться с этой едиптулой, или лучше набить скиллов, лет 10-15 практикуясь в обычных С проектах?

 , ,

ubik
()

Вышла новая книга «Full Stack Lisp»

Форум — Development

«Build and deploy modern Lisp applications» — разработка и развертывание современных веб приложений на Common Lisp.

Подробности: https://leanpub.com/fullstacklisp

 , , ,

Oxdeadbeef
()

Какие книги по С(89) нужно прочесть после K&R?

Форум — Development

Изучил си по книге K&R(2-ое издание), писал мелкие программки. Понравилось. Какую литературу/статьи по C читать дальше?

P.S. Нужен ли C-шнику C++?

 ,

Deleted
()

Программист Linux Embedded в офис в Минске (поможем с переездом в Беларусь)

Форум — Job

Белорусский дизайн-центр электроники Promwad — официальный партнер Fujitsu и Marvell — приглашает разработчиков C/C++ под ОС Linux. Нужны специалисты всех уровней: от Junior до Senior.

Мы подписали крупный контракт с европейским оператором в сфере телекома. Будем разрабатывать встроенное программное обеспечение для цифровых приставок из Евросоюза. Проект рассчитан на пять лет минимум.

Компания Promwad предоставит все условия для успешной работы и развития своих новых сотрудников:

  • Командировки в Европейский союз
  • Использование английского языка в работе и бесплатные языковые курсы
  • Комфортное рабочее место в новом офисе недалеко от ст. метро Пушкинская
  • Получение долгосрочной экспертизы в сфере цифрового ТВ
  • Выбор карьерного пути в качестве технического специалиста или руководителя команды

За последние 5 лет в центре разработок Promwad были спроектированы ТВ-приставки на базе процессоров Broadcom, STMicroelectronics, SigmaDesigns, Mstar, ALi, Amlogic и HiSilicon. Устройства, разработанные белорусскими инженерами, запущены в серийное производство и сейчас насчитывают несколько миллионов единиц. Их используют абоненты «Ростелекома», МТС и других телеком-операторов Западной и Восточной Европы.

Примеры разработок Promwad можно посмотреть в портфолио на сайте компании или в хабростатье «Наша электроника: топ-10 разработок» (девять проектов из этого списка выполнены на базе ОС Embedded Linux и STLinux).

Требования к кандидатам — в разделе «Вакансии» на promwad.ru. Отправляйте свое резюме по адресу hr@promwad.com

Мы рассматриваем резюме иногородних и зарубежных кандидатов, которые готовы к переезду в Минск. Столица Беларуси — это развитый ИТ-рынок, недорогое жилье, доброжелательные люди и размеренный ритм жизни.

 , , , ,

hr-promwad
()

Онлайн база с задачками для практики программирования

Форум — Web-development

Вот учу сейчас JavaScript, C и Vala
Есть ли в интернете какие-нибудь сайты, где есть готовые задачки, которые предлагается решить самому, для проверки
не могу придумать, что мне написать
Ну или предложите интересные баги в СПО, но только на тех языках, которые я перечислил, я буду только рад :-), ну и разработчикам помогу

 , , ,

mystery
()

Хочу классику по CL.

Форум — Development

О великие!

После этого буду благодарен за «классическую» литературу по Common Lisp'у.

По типу K&R для Си и Птице-трупа для C++.

Ресурсы/литературу/вики/доки, с чего все начинали?

Обещаю не беспокоить больше аудиторию в течение месяца новыми темами.

Upd: всё, спасибо огромное!

 , , , ,

Deleted
()

Состояние экосистемы Common Lisp на 2015 год

Форум — Development

По следующей ссылке приведен список рекомендуемых библиотек и фреймворков в Common Lisp для различных применений:

http://eudoxia.me/article/common-lisp-sotu-2015/

 ,

Oxdeadbeef
()

односвязный список

Форум — Development

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

Input Format You have to complete the Node* Insert(Node* head, int data) method which takes two arguments - the head of the linked list and the integer to insert. You should NOT read any input from stdin/console.

Output Format Insert the new node at the tail and just return the head of the updated linked list. Do NOT print anything to stdout/console.

Sample Input

NULL, data = 2 2 --> NULL, data = 3

Sample Output

2 -->NULL 2 --> 3 --> NULL

Explanation 1. We have an empty list and we insert 2. 2. We have 2 in the tail, when 3 is inserted 3 becomes the tail.

вот мое решение

/*
  Insert Node at the end of a linked list 
  head pointer input could be NULL as well for empty list
  Node is defined as 
  struct Node
  {
     int data;
     struct Node *next;
  }
*/
Node* Insert(Node *head,int data)
{
    Node *tmp = (Node *)malloc(sizeof(Node));
    tmp->data = data; tmp->next = NULL;
    if (head == NULL) {
        head = tmp;
        return tmp;
    }
    for (; head->next != NULL; head = head->next);
    head->next = tmp;
    return head;
}

 ,

IvanR
()

Как из функции вернуть 2 значения?

Форум — Development

Привет. Есть функция из которой возвращается указатель, в ней же происходит расчёт количества элементов для нового массива.

Так вот вопрос, как из неё вернуть количество элементов?

Или подскажите, как отдельно посчитать кол-во элемов в массиве чисел.

Пробовал добавить параметр в функции Int *count_new. И делать в функции вот так: count_new = &count, но не работает нифига.

 , ,

ChuCha
()