LINUX.ORG.RU

Вопрос к господам СиПиПиШникам и другим программистам под *nix.


0

0

Живу в Киеве, учусь на третем курсе Политеха на программера. Год назад стал линуксоидом. Недавно понял, что программирование под Виндавс (Visual Studio/Borland C++/Delphi) кроме отвращения у меня уже ничего не вызывает. Проникшись юниксвеем (vim+gcc+gdb+... и другие приятные комбинации :)), появилось здоровое желание связать свою карьеру с программирование под Юникс-подобные системы. Пристальнее всего смотрю в сторону C/C++ (которые знаю на довольно уверенном среднем уровне), хотя против скриптовых решений ничего не имею (Был опыт работы с PHP :), сейчас пытаюсь себя заставить нормально освоить Bash и что-то из Perl/Python/Ruby).

Думаю в ближайшем будующем устроится на нормальную работу (примерно Junior C++ linux developer). Посоветуйте на что обратить внимание: Граф. бибиотеки (Qt[уже сделал пару лаб :)]/GTK), STL, Работа с сетью, что-то еще.

Буду очень признателен, если люди работающие на подобной работе, дадут свое представление о "джентельменском наборе" необходимых знаний и уровнем опытности для, скажем, Junior Developer'a. Особая прозьба отписатся киевским (украинским) специалистам данного профиля.

Возможно неплохо было бы принять участие в OpenSource проекте? Наперед спасибо за советы и дележку опытом! :)


ИМХО, изучать GUI-библиотеки для Си++ - пустая трата времени. Qt - еще куда ни шло, но Gtk - это Си-библиотека (да, я знаю о Gtk--). Сейчас наблюдается тенденция делать GUI на скриптовых языках и Java. Полезно изучать STL и Boost, но еще полезнее - идеи, лежащие в их основе. Всё это пригодится по-любому. Насчет сетей и прочего - это уже зависит от того, над чем ты будешь работать.

tailgunner ★★★★★
()

[quote]Думаю в ближайшем будующем устроится на нормальную работу (примерно Junior C++ linux developer). Посоветуйте на что обратить внимание: Граф. бибиотеки (Qt[уже сделал пару лаб :)]/GTK), STL, Работа с сетью, что-то еще. [/quote]
Ещё многопоточность :)
А так, вроде нормально, теперь только дело за опытом.

Legioner ★★★★★
()

Надо жёстко знать C, как юзать gdb, strace, valgrind. Дискретную математику: бинарные операции, оперирование списками, указатели. Знание autotools (automake, autoconf etc) будет не лишним. Может пригодиться ассемблер, понимание структуры исполняемого файла (elf, flat). Базовые понятия ООП, даже при разработке на C, в частности инкапсуляция. Назначение и типы протоколов, разновидности RPC, IPC (v9fs, сигналы, сокеты, каналы).

Ну вот, вроде бы, что-то подобное.

Zmacs
()
Ответ на: комментарий от Zmacs

Си вроде знаю хорошо, В ООП тоже ориентируюсь нормально, но маловато опыта проектирования деревьев классов, с STL и вообще с шаблонами знаком довольно отдаленно, надо поднабратся опыта в C++. Полные пробелы: многопоточность, сеть. В дискретке, вышке ориентируюсь нормально (Могу вспомнить что вот-такое в принципе есть и заглянуть в справочник за подробностями :) ). Поигрался недавно с инлайн-ассемблером (понимание есть, опыта мало: http://www.linux.org.ru/jump-message.jsp?msgid=1609833 [сейчас подзаглохло]).

fifajan
() автор топика
Ответ на: комментарий от fifajan

ИМХО: надежней всего определиться с желаемым местом работы и завести знакомство с ихними программистами через асю и т.п. Постепенно Вы осознаете чем они занимаются, направление их работы, сможете подготовиться и в один прекрасный день устроится к ним в уже дружелюбный коллектив. :) Да и они за Вас при приеме на работу словечко скажут. Само собой это не отменяет проф.подготовку.

soomrack ★★★★★
()
Ответ на: комментарий от fifajan

> Надо жёстко знать C, Дискретную математику:

вот это я бы выделил. Учи Математику, именно Высшую Математику!!!! Ибо когда ты, не зная сейчас Си, strace и прочую дурь (с точки зрения математики, да простят меня гуру программинга) насобачишься в strace, Cи и т.п. останется только вышка численные методы и прочее. И это будет единственным что ты сможешь продать на рынке труда(не умение пользоваться strace, но умение брать теже бляццкие пределы). Или будешь долбиться как один из очередных php-прогеров на www.free-lance.ru

p.s. в рунете, в принципе можно найти достойную работу, если достойно знаешь алгоритмы, скажем так, оно далеко отстоит от матанализа и вышки, но всеже там это иногда генерально важно... ИМХО.

vilfred ☆☆
()
Ответ на: комментарий от vilfred

> в рунете, в принципе можно найти достойную работу

достойную удаленную работу. за 2000$ в месяц. но если умеешь... имхо. Но это сугубо имхо. Короче, учись, парень, пока есть возможность где учится... Рынок труда он реально очень жестокий по конкуренции, потому тут единственный выход быть суперклассным специалистом.

vilfred ☆☆
()

> Думаю в ближайшем будующем устроится на нормальную работу

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

vilfred ☆☆
()
Ответ на: комментарий от Die-Hard

> Идите в Талкс. Там и народу больше...

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

мне кажца, я ему хороший совет дал.

vilfred ☆☆
()
Ответ на: комментарий от Die-Hard

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

vilfred ☆☆
()
Ответ на: комментарий от fifajan

Читай Александреску, Саттера и Гамму.

Reset ★★★★★
()
Ответ на: комментарий от vilfred

К численным методам отношусь с уважением, уже 1.5 года нам их фигачили: Системы уравнений -> ... -> Системы Диф. Уравнений -> ... -> Линейная оптимизация (Симплекс метод и т. п.). Лабы приемущественно делал сам, так что понятие имею, вообще полезный предмет (на пару с трансляторами) 80% предметов - полное дерьмо, непонятно какое отношение имеющее к программирования.

fifajan
() автор топика
Ответ на: комментарий от fifajan

Верно некоторые выше сказали, просто продолжай в том же духе.. тебе просто опыта ещё не хватает, ну и в дальнейшем проявляй больше интереса, как к новинкам, так и классическим полезностям, ака средства IPC, многопоточность/многопроцессовость, системные API, STL и так далее.. Ну и не замыкайся исключительно на c/c++..

MiracleMan ★★★★★
()
Ответ на: комментарий от vilfred

вот тут я с тобой согласен на все 100! я работающий студент на 4 курсе. деньги тратить некогда: всё что тратится - обеды, спать некогда, не говоря уже об дополнительном разборе нюансов той или проблемы по учёбе. хотя и учится желания особо нету :)

Pi ★★★★★
()
Ответ на: комментарий от Pi

да я просто насмотрелся на народ на www.free-lance.ru, сидят какието челы, с какойннить Самары, Керчи или Твери, у них там вообще голяк. Им эти 100$ за приличный дизайн в Москве - райские деньги(ну и оттого демпингуют). Так вот и думаешь, сколько бы спец. нашел по специальности за работу. ибо на этом фрилансе "Will html code for food"... А че тогда диплом иметь если расчет на это.

vilfred ☆☆
()
Ответ на: комментарий от Pi

> деньги тратить некогда: всё что тратится - обеды, спать некогда ...

:\ Если деньги тратить некогда, может тогда забить на них да нырнуть с головой в Опенсорс? Или они собираюццо на осуществление мега-проекта? :)

fifajan
() автор топика

Ты бы определился для начала со специализацией,что ты будешь писать.

Написанное выше про математику тебе будет нужно сильно только если полезешь в 3д или ИИ (распознавание речи или картинки с кодом генерить). Но это уже ни разу не уровень джуниора.

Вообще тебе надо написать что нибудь маленькое с нуля (mp3 плеер на qt например) с полным циклом разработки.

anonymous
()
Ответ на: комментарий от anonymous

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

fifajan
() автор топика
Ответ на: комментарий от fifajan

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

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

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

anonymous
()

>Буду очень признателен, если люди работающие на подобной работе, дадут свое представление о "джентельменском наборе" необходимых знаний и уровнем опытности для, скажем, Junior Developer'a. Особая прозьба отписатся киевским (украинским) специалистам данного профиля.

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

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

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

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

А вообще имея мозг устроиться джуниор С++ девелопером в Киеве вполне можно.

rip_someday
()

Дальнейшее общение в этом топике pls., в talks'ах!

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.