КИТА unofficial
Апрель 26, 2024, 08:08:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   ПРАВИЛА Помощь WIKI PDA Войти Регистрация  


Страниц: [1] 2 3 4  Все   Вниз
  Печать  
Автор Тема: Что должен знать выпускник программер ДонНТУ  (Прочитано 62620 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Романыч
Я Романов!
Завкаф
****

Карма: +34/-2
Offline Offline

Пол: Мужской
Награды:
1 место в фотоконкурсе \
Сообщений: 1068


Я Русский!


« : Июнь 24, 2007, 05:01:56 »

Когда то, я задал такой вопрос одному программеру-гуру, о том, что хорошо бы знать разработчику программ (software engineer) в наше нелегкое время.
Месяца два назад, подготавливая очередной ВТэшный диплом на заказ, один из "специалистов" задал вопрос, что ему нужно выучить, чтобы устроиться работать.
И тут родилась идея, составить список того, что нужно знать выпускнику-программеру.

Математика
- Алгоритмы, их построение и анализ сложности;
- Стеки, списки, деревья, хеши, массивы и прочие кольца
- Численные методы (выглядит узкоспециально, но встречается);
- Теория Вероятностей (выглядит узкоспециально, но встречается).

Проектирование
- Паттерны (по банде четырёх);
- Применение их (для начала можно почитать Александреску);
- UML (без фанатизма);
- ООП (с фанатизмом);
- Знание зачем нужны основные сетевые протоколы и как устроен TCP/IP;
- Иметь представление о функц. языках;
- Понимать многопоточные проги и средства синхронизации);
- Иметь представление о erlang-стилевом параллелизме;

Информатика
- Устройство компов - проц, память, железо (на пальцах, уметь объяснить почему если памяти мало, то 100 программ будут медленно тормозить и в чем будет тормоз);
- Потроха проца - регистры и конвееры (от специализации);
- Иметь представление о стеке, фрэймах, исключениях (от специализации);
- Механику выполнения программ на винде/линуксе - загрузка в память, развязка общих символов и выполнение. Уметь сказать, какие регистры за что отвечают и как меняются в процессе (от специализации).

Практическая информатика (там где конкретное - под конкретный язык/платформу, но иметь общие представления)
- Привычка читать документацию;
- Привычка не верить документации на 100% и вытаскивать неясные/неизвестные моменты из сырцов/бинарников;
- Мысленное моделирование - навык прикидки "как программа считает";
- Знание основных затыков (bottlenecks) - и умение их разруливать;
- Работа с многопоточными программами, отловы дедлоков и "races";
- Навыки отладки софта;
- Навыки профилирования софта;
- Умение писать юнит-тесты;
- Умение профилировать софт;
- Умение юзать SVN и CVS;
- Умение писать daily reports;
- Умение юзать багтрекер;
- Умение оценивать время для написания и прогнозировать/определять unknown factors и их влияние;
- Умение (!) Подмигивающий держать ритм и не "расслабляться"/"сжигать себя".

БД
- Основы SQL (в общем случае без специфики конкретных DBMS);
- Основы работы DBMS (на уровне представления что такое транзакция и зачем нужны индексы).

Кооперация
- Привычка комментировать код и писать документацию;
- Умение равно как аргументированно отстаивать свои предложения, так и "наступать на горло собственной песне" - т.е. придерживаться принятых командой решений и стандартов и отказываться от тех решений, которые ты предлагал, а они, гады все, не оценили и не приняли  Улыбка Без фанатизма, конечно;
- Умение доходчиво объяснять и учить всему перечисленному в списке.

Не вошедшее в другие разделы
- Маркетинг. Как продать то, что получилось (без фанатизма);
- Психология. Сотрудники, подчиненные, заказчики (без фанатизма);
- Динамическое чтение (быстро читать маны, не вникая в суть но запоминая где что лежит);
- Экономика. Оценка выгодности (без фанатизма);
- Эргономика, основы дизайна (знать где удобней поставить кнопку и как объяснить это дизайнеру. Оценить работу дизайнера);
- Английский (вообще по дефолту);
- Ассемблер, с++ (Обязательно!) и .NET/C# (Можно поверхносно).
- Умение встраивать в системы средства health-мониторинга;
- Умение "ремонтировать двигатель на ходу" - smooth-upgrades with minimal downtime;

Дополнения и критика приветствуются (Но только если по существу)
v 1.1 (Используя замечания Sterh и Sochin)
« Последнее редактирование: Март 19, 2008, 03:35:39 от Романыч » Записан

Freelance, web designer, front-end & back-end developer, java developer, php developer. A person who enjoys designing software and building programs.
Sochin
Злой модератор
Декан
*****

Карма: +108/-6
Offline Offline

Пол: Мужской
Сообщений: 1518



« Ответ #1 : Июнь 25, 2007, 01:32:07 »

ИМХО:
- Численные методы (выглядит узкоспециально, но встречается);

Точно, узкоспециально.
Цитировать
- Теор.Вер.

Практически сомнительно.
Цитировать
- Паттерны (по банде четырёх);

+1 ))
Цитировать
- Применение их (для начала можно почитать Александреску);

Если «для начала осилить Александреску», то дальше можно и не читать, хватит одного Александреску. Ну, это если действительно его осилить. )));
Цитировать
- UML (без фанатизма);

+1.
Цитировать
- ООП (без фанатизма);

С фанатизмом! )))
Цитировать
- Знание зачем нужны основные сетевые протоколы и как устроен TCP/IP;

Для программера в общем случае - нафиг надо? ))
Цитировать
- Иметь представление о функц. языках;

Эмм...
Цитировать
- Понимать многопоточные проги и средства синхронизации);

Хотелось бы..
Цитировать
- Иметь представление о erlang-стилевом параллелизме;

Эмм...
Цитировать
- Устройство компов - проц, память, железо (на пальцах, уметь объяснить почему если памяти мало, то 100 программ будут медленно тормозить и в чем будет тормоз);

Мало-мальски грамотный ИТ-шник это рассказать обязан.
Цитировать
- Потроха проца - регистры и конвееры;

Зависит от специализации.
Цитировать
- Иметь представление о стеке, фрэймах, исключениях;

Зависит от специализации.
Цитировать
- Механику выполнения программ на винде/линуксе - загрузка в память, развязка общих символов и выполнение. Уметь сказать, какие регистры за что отвечают и как меняются в процессе.

Зависит от специализации.
Цитировать
- Привычка читать документацию;

Хотелось бы...
Цитировать
- Привычка не верить документации на 100% и вытаскивать неясные/неизвестные моменты из сырцов/бинарников;

По необходимости...
Цитировать
- Мысленное моделирование - навык прикидки "как программа считает";

Обязательный элемент. Программа не пишется в отладчике, она пишется в голове. )))
Цитировать
- Знание основных затыков (bottlenecks) - и умение их разруливать;

Мэйби )
Цитировать
- Работа с многопоточными программами, отловы дедлоков и "races";

Повтор. И снова хотелось бы...
Цитировать
- Навыки отладки софта;

По-любому )
Цитировать
- Навыки профилирования софта;

Хм.
Цитировать
- Умение писать юнит-тесты;

Хотелось бы..
Цитировать
- Умение профилировать софт;

И снова повтор. ))
Цитировать
- Умение юзать SVN и CVS;

И опять хотелось бы...
Цитировать
- Умение писать daily reports;

Когда это должно быть сделано? -Сейчас? - Ха-ха-ха! )))
Цитировать
- Умение юзать багтрекер;

Хотелось бы...
Цитировать
- Умение оценивать время для написания и прогнозировать/определять unknown factors и их влияние;

Эхх. Хотелось бы...
Цитировать
- Привычка комментировать код и писать документацию;

Ага.
Цитировать
- Умение равно как аргументированно отстаивать свои предложения, так и "наступать на горло собственной песне" - т.е. придерживаться принятых командой решений и стандартов и отказываться от тех решений, которые ты предлагал, а они, гады все, не оценили и не приняли  Улыбка

// этот кусок небезопасен, но раз этому п$$$$$$у надо пусть будет(http://bash.org.ru)
Цитировать
- Маркетинг (как продать то, что получилось);

нафиг надо?!
Цитировать
- Психология (сотрудники, подчиненные, заказчики);

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

Хм..
Цитировать
- Экономика (оценка выгодности);

Нафиг надо?!
Цитировать
- Эргономика, основы дизайна (знать где удобней поставить кнопку и как объяснить это дизайнеру. Оценить работу дизайнера);

Нафиг надо?!
Цитировать
- Английский (вообще по дефолту);

оф кос! ))
Цитировать
- Ассемблер, с++ и .NET/C# (Можно поверхносно).

Аццкая смесь - асм + управляемый код! ))))
Цитировать
- Умение встраивать в системы средства health-мониторинга;

Хм..
Цитировать
- Умение "ремонтировать двигатель на ходу" - smooth-upgrades with minimal downtime;

Хм..
Записан

Говорят, когда компьютер сгорает, перед взором микропроцессора за долю секунды проносятся все операции, которые он когда-либо совершил...
壯鎭
Storm
Верховный
Администратор
Аспирант
*****

Карма: +29/-0
Offline Offline

Пол: Мужской
Сообщений: 484



« Ответ #2 : Июнь 29, 2007, 09:01:00 »

ИМХО, следует специализировать программера - вы сейчас описали прикладника.

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

Программист, который программирует МПС/ПЛК - ему паттерны как зайцу пятая нога - но численные методы, программирование на асме и профилирование программ - каждый день и до посинения + знания в области электроники на продвинутом и углубленном уровнях.

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

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

Только две вещи бесконечны: вселенная и тупость, и я еще не уверен по поводу вселенной. (Альберт Эйнштейн)
----------------------------------------------------
"There are two major products that came out of Berkeley: LSD and UNIX. We don't believe this to be a coincidence." (с) Jeremy S. Anderson

Проходит ирландец мимо паба....
nemaga
Первак
*

Карма: +0/-0
Offline Offline

Сообщений: 17


« Ответ #3 : Октябрь 19, 2008, 12:50:39 »

Цитировать
- ООП (с фанатизмом);

Позволю себе с этим не согласится. ООП применяют в основном в проектах игр, пользовательских программ и т.п. Тоесть впринципе широкомаштабно, но(!) не все этим занимаются Улыбка Очень большой круг людей работают на пару уровней ниже, тоесть в ядре, 0-ring. Там ООП никаким боком не катит. Тоже самое могу сказать о никсах. Там практически все все построенно на си, си++ со своими класами (или какой-нить другой язык) встречается очень-очень редко и.
Записан
Polyakov
Специалист
***

Карма: +12/-7
Offline Offline

Сообщений: 164


« Ответ #4 : Октябрь 19, 2008, 04:40:53 »

Причитавши данное сообщение я понял одно - что еще ни одного специалиста в области компьютерных наук ДонНТУ не выпустил. И когда же появяться эти будующие гении-вундеркинды - не известно.
АУ!! Если хоть кто-то может делать все выше описанное на уровне специалиста отзовитесь. Дайте хоть на Вас одним глазком посмотреть!
Записан
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #5 : Октябрь 19, 2008, 04:46:42 »

Написанное в первом посте редко нужно одновременно. Поддерживаю Storm'a, нужно перечисленные скиллы разделить по специализациям. Просто если человек знает одновременно всё то, что написано в первом посте и на том уровне, который описан, он может смело ехать в Киев и работу девелопера с з/п не менее $2к он себе точно найдет.
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Polyakov
Специалист
***

Карма: +12/-7
Offline Offline

Сообщений: 164


« Ответ #6 : Октябрь 19, 2008, 06:18:11 »

Как говорили в одном из мульфильмов:
"Если - хорошее слово."
Ведь тема называется "Что должен знать выпускник ...". Ну так покажите мне того выпускника, кто все это (вышеперечисленное) знает.
Записан
Романыч
Я Романов!
Завкаф
****

Карма: +34/-2
Offline Offline

Пол: Мужской
Награды:
1 место в фотоконкурсе \
Сообщений: 1068


Я Русский!


« Ответ #7 : Октябрь 19, 2008, 08:30:24 »

ТОВАРИЩИ!!!
Тема существует уже больше года.
Не нра название темы - обратитесь к модератору!

В данную тему я вкладывал несколько иной смысл. Извините если обидел кого.
В личке отвечу на любые вопросы. Это моё последнее сообщение в этой теме.
Записан

Freelance, web designer, front-end & back-end developer, java developer, php developer. A person who enjoys designing software and building programs.
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #8 : Октябрь 19, 2008, 09:36:10 »

Ведь тема называется "Что должен знать выпускник ...". Ну так покажите мне того выпускника, кто все это (вышеперечисленное) знает.
"Должен знать" и "Научили в университете" вещи разные Улыбка

Романыч, не горячись Улыбка Все ок.
Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #9 : Октябрь 21, 2008, 07:05:08 »

Обсуждение истинных программистов перенесено в Поговорим обо всем.

http://kita.org.ua/index.php?topic=7101.0

Просьба больше не флудить. artem90
Записан
Alexandr
Завкаф
****

Карма: +23/-5
Offline Offline

Пол: Мужской
Сообщений: 1445


WWW
« Ответ #10 : Ноябрь 13, 2008, 03:21:26 »

>з/п не менее $2к он себе точно найдет

в Киеве это помойму что зарплата среднего программера))
Записан

Береги себя там среди дорог...
-----------------------------
Наркотик трасса-это на всю жизнь...
artri
Cтудент
*

Карма: +1/-0
Offline Offline

Сообщений: 85


artri@jabber.ru


« Ответ #11 : Декабрь 18, 2008, 04:45:40 »

- Ассемблер, с++ (Обязательно!) и .NET/C# (Можно поверхносно).
Java добавьте пожалуйста, хотя бы опционально Улыбка
Записан

oDesk Certified Java Developer
- Телепатический локатор, - пояснил Петрович, вытирая руки ветошью.- Основной инструмент аналитика, позволяющий напрямую извлекать технические требования из головы заказчика. (с) Трое в серверной, не считая админа. Глава 8. Тестеры и аналитики
Fijerald
Абитуриент


Карма: +3/-2
Offline Offline

Пол: Мужской
Сообщений: 14



« Ответ #12 : Октябрь 26, 2009, 02:42:28 »

Как правило выпускник и половины этого не знает(((((
Записан
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #13 : Июнь 28, 2011, 10:23:55 »

10000 things all ICS students should do before graduating
Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #14 : Июль 07, 2011, 02:04:49 »

Это знает любой студент-программист
Полезная статья с Хабра. Рекомендуется к прочтению студентам первых курсов. Жаль я в свое время не прочел подобное, был бы поумнее Улыбка
Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #15 : Ноябрь 21, 2011, 02:22:48 »

На мой взгляд хорошие советы начинающим программистам - http://freetonik.com/text/compsci/advices_to_myself/
Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
tos
Mодератор
Декан
*****

Карма: +80/-16
Offline Offline

Награды:
1 место в фотоконкурсе \1,3 место в фотоконкурсе \II место в фотоконкурсе \
Сообщений: 1949


♪♪ ♫Nice boys don`t play Rock`n`Roll♫ ♪♪


« Ответ #16 : Ноябрь 21, 2011, 03:33:07 »

Кэп в ударе.
Записан
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #17 : Ноябрь 21, 2011, 04:43:11 »

Кэп в ударе.
Кэп не кэп, но на заметку стоит взять. Особенно в области OSS и проектов на github.
Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
tos
Mодератор
Декан
*****

Карма: +80/-16
Offline Offline

Награды:
1 место в фотоконкурсе \1,3 место в фотоконкурсе \II место в фотоконкурсе \
Сообщений: 1949


♪♪ ♫Nice boys don`t play Rock`n`Roll♫ ♪♪


« Ответ #18 : Ноябрь 21, 2011, 05:19:44 »

поздно уже.
А молодым еще рано вникать, будут потом спохватываться.
Записан
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #19 : Ноябрь 21, 2011, 05:45:42 »

tos, никогда не поздно начать делать что-то свое и открытое для сообщества. Было бы желание.
Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
Страниц: [1] 2 3 4  Все   Вверх
  Печать  
 
Перейти в:  

Penguins Counter Powered by MySQL Powered by PHP Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS! Internetmap
Страница сгенерирована за 0.125 секунд. Запросов: 37.