Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > примеры Тз на работу


Автор: belarusrulez 11.9.2008, 15:22
Не могли бы вы помочь мне, да и не только мне вот в чём : 
Напишите пожалуйсто ТЗ которые вам давали при поступлении на работу или ТЗ которые вы даёте при поступлении на работу новых сотрудников . 
Заранее благодарен. smile 

Автор: alexadr 12.9.2008, 15:19
если я правильно понял, в данном контексте, "ТЗ" это "Тестовое Задание"?

Автор: belarusrulez 12.9.2008, 15:39
так точно !)

Автор: Mayk 12.9.2008, 16:12
у нас в конторе дают реверсировать строку("abc"->"cba"), подсчитать факториал[всё это на любом языке]. может ещё что-то, не помню.  На rsdn по поводу тестовых  заданий, кстати, вечно идут холивары - мол нужны тесты или нет.

Автор: SoulKeeper 12.9.2008, 16:19
Это ТЗ на пре-джуниора что-ли smile?

Автор: Mayk 12.9.2008, 16:24
Цитата(SoulKeeper @  12.9.2008,  20:19 Найти цитируемый пост)
Это ТЗ на пре-джуниора что-ли smile?

Не видел других, так что судя по всему всем подряд. Хотя не особо подсматривал.
 
Давать тестовые задачи на 1+ час - это клинический идиотизм(за исключением случаев если работодатель готов платить за потраченное время).

Автор: belarusrulez 12.9.2008, 17:59
Цитата(Mayk @ 12.9.2008,  16:12)
у нас в конторе дают реверсировать строку("abc"->"cba"), подсчитать факториал[всё это на любом языке]. может ещё что-то, не помню.  На rsdn по поводу тестовых  заданий, кстати, вечно идут холивары - мол нужны тесты или нет.

 к вам хочу тогда ))

Автор: VSergeyV 16.9.2008, 21:00
нашел вот что

1) http://www.cft.ru
Цитата

Тестовые задания к  тренингу Java/J2EE

1.Консольному приложению параметрами командной строки передаются имя входного файла и имя выходного файла. Входной файл содержит многострочный текст, состоящий из слов, разделенных знаками препинания (запятая, точка, вопросительный и восклицательный знаки, двоеточие, точка с запятой, тире), пробелами и символами перехода на другую строку, причем несколько разделителей могут идти подряд. Выходной файл должен содержать все слова текста (по одному в каждой строке), отсортированные в порядке убывания длин, а слова равной длины — в порядке, обратном алфавитному.

Пример.
Входной файл:
Well, Java has everything!
Java is a nice language...

Выходной файл:
everything
language
Well
nice
Java
Java
has
is
a


2.Игра «ПЯТНАШКИ». В поле 4х4 случайным образом нумеруются 15 клеток, одна клетка остается пустой. Щелчок мышью по непустой клетке сдвигает все клетки строки или столбца (не нарушая их порядка) от выбранной клетки к пустой, если это возможно (сдвиг возможен, если выбранная клетка и пустая расположены в одной строке или столбце). Выигрыш достигается, когда все номера выставлены по порядку, причем пустая ячейка стоит последней. После выигрыша предлагается завершить приложение либо начать игру заново.
Оформить в виде AWT/Swing/SWT приложения.

Иллюстрация сдвига:

4        13  14         4  7 13  14
6    7  10   2          6  5 10   2       щелчок по клетке «5»
8    5   1    9          8      1    9  
11  3  15  12       11  3 15  12


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

Реализовать главный класс-тестер, который инстанциирует класс-сортировщик по имени, получаемому из командной строки, передает в тестируемый класс массив из 10000 случайных целых чисел от 0 до 100000, засекает время сортировки и выводит в консоль результат.

Пример интерфейса:

package test;
import java.util.List; 
public interface ISorter {
  public List sort(List listToSort);
  public String getSortMethodName();
}

Пример строки запуска:

java test.MySortTester test.methods.Bubble

Пример вывода:

Sorted numbers:
2, 3, 6, …, 45684, 56748
Method “Bubble” finished in 500 milliseconds.


Общее требование для всех заданий:
  - обязательны комментарии, описывающие назначения классов, методов и ключевых моментов в реализации методов.
    - использовать JDK 1.3
    - для сборки использовать ANT



2) http://www.go4sc.com
Цитата

Разработать конвертор из CSV файла в таблицу из ASCII символов.
Первая строка файла задает типы столбцов.

Следующие строки - сами данные ( разделитель - точка с запятой ).

Типы:
int - целое число ( выравнивание вправо )
string - строка, строковые данные бьются на слова и выводятся в столбик.
money - денежная единица, форматирование 2 занака после запятой и

разделитель разрядов - пробел.

Исходные данные ( как пример ):

int;string;money
1;aaa bbb ccc;1000.33
5;aaaa bbb;0.01
13;aa bbbb;10000.00

На выходе:

+-----------------------+
| 1|aaa   | 1 000,33|
|   |bbb   |               |
|   |ccc    |                |
+--+------+-----------+
| 5|aaaa |     0,01    |
|   |bbb   |                |
+--+------+-----------+
|13|aa    |10 000,00|
|    |bbbb|                |
+--+------+-----------+


Автор: intr 17.9.2008, 04:59
Есть еще:
Цитата

Для проверки уровня Ваших текущих знаний Вам предлагается разработать простое интернет-приложение на языке программирования java, работающее под управлением сервера приложений (на выбор, желательно tomcat или jboss ).

Структура данных приложения:

Пользователь:

Ф.И.О. 
Дата рождения 
Логин 
Пароль 
Группа пользователей
Группа пользователей:

Наименование 
Список пользователей группы
Приложение должно содержать следующие экранные формы:

Список всех групп пользователей
Список пользователей конкретной группы(переход с формы №1 по клику на группу)
Редактирование, создание, удаление пользователя
Редактирование, создание, удаление группы пользователей.
Форма поиска/фильтрации пользователя по дате рождения. Должна предусматривать возможность поиска пользователей в заданном диапазоне дат.
Приложение должно содержать скрипт сборки ant или maven , использовать базу данных HSQLDB (желательно) или MSSQL или PostgreSQL. Готовое приложение необходимо разместить в svn или cvs репозиторий (любой из сервисов на Ваш выбор - в Интернете существуют бесплатные сервисы, например сервис от google ). В проекте должен использоваться Spring или Hivemind в качестве реализации IoC, любая из технологий генерации html (JSP, JSF, GWT, Tapestry...), также должна использоваться ORM для управления состоянием объектов (желательно ORM Hibernate). Приложение должно быть работоспособным.

Хотя оно немного сложноватоsmile

Автор: nerezus 17.9.2008, 09:10
Цитата

у нас в конторе дают реверсировать строку("abc"->"cba"), подсчитать факториал[всё это на любом языке]. может ещё что-то, не помню.
 Офигеть ) А почему так легко?

Я вот недавно получил задание:
Есть таблица: user_id, event_time, event_type(enum из "login", "logout").
Надо было нарисовать диаграмму по количеству времени, проведенного в системе, для пользователей. Учитывать что на момент рисования диаграммы пользователи еще могут находиться в системе и logout не выполнен.
Время выполнения - дали час(сделал за полчаса).

Как по мне - более подходящее задание.
Ибо тут проверяется:
1) Умение составлять алгоритмы.
2) Качество кода.
3) Умение работы с СУБД.
4) Умение работы со средствами вывода графической инфрормации.

Цитата

Хотя оно немного сложновато
 По-моему оно неслегка глуповатое: затраты по времени неоправданно большие.
Ты бы стал заниматься таким заданием?
Я бы просто сказал: "Да вы там чо, ****ли что ли??"
И кстати ничего сложного в нем нету, оно просто большое и нудное.

Часто так кидают народ: делают якобы прием на работу, а в качестве тестового задание дают реальную задачу.
Вроде написания модуля к CMS(чкобы работы с чужим кодом и т.д.)
У меня товарищ на такое напоролся.

Автор: Mayk 17.9.2008, 09:17
http://axforum.info/forums/showthread.php?t=24853

Добавлено @ 09:19
Цитата(nerezus @  17.9.2008,  13:10 Найти цитируемый пост)

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

библиотеки хоть для рисования диаграмм давали?

Автор: vicod 19.9.2008, 22:27
такое
Цитата

Написать интернет-магазин, используя MVC Framework (Spring/Struts).
Data persistence должен быть реализован как с использованием JDBC, так и с использованием Hibernate.
При этом, должна быть возможность использовать либо JDBC либо Hibernate в зависимости от настроек приложения, но без изменения Java-кода. Интернет-магазин должен иметь следующую функциональность:

1. Интерфейс администратора
2. Неограниченная иерархия товаров и групп
3. Товары с картинками (картинки должны храниться в базе данных)
4. Обсуждение товаров 

Автор: nerezus 19.9.2008, 23:08
Цитата

библиотеки хоть для рисования диаграмм давали?
 естественно, но ничего сложного в написание с нуля тоже нет - просто +10 минут было бы.

Добавлено через 2 минуты и 29 секунд
Цитата

Написать интернет-магазин, используя MVC Framework (Spring/Struts).
Data persistence должен быть реализован как с использованием JDBC, так и с использованием Hibernate.
При этом, должна быть возможность использовать либо JDBC либо Hibernate в зависимости от настроек приложения, но без изменения Java-кода. Интернет-магазин должен иметь следующую функциональность:

1. Интерфейс администратора
2. Неограниченная иерархия товаров и групп
3. Товары с картинками (картинки должны храниться в базе данных)
4. Обсуждение товаров 
 Я бы меньше 60т.р. не взял бы за такой заказ(тут же по сути 2 магазина).

Автор: Sidney3172 20.9.2008, 00:18
мне попался вариант когда нужно было реализовать паттерн синглтон, а на ответ
Код

public final class Singleton {
    private static Singleton _instance = null;

    private Singleton() {}

    public static Singleton getInstance() {
        if (_instance == null)
            _instance = new Singleton();
        return _instance;
    }
}

а потом найти в нем дефект... только минут через пять дошло что нужно дописать synchronized к методу getInstace()...

Автор: antondrafff 20.9.2008, 01:17
)))))))))))))))))))))))))))
Прикольно)))))))))))))

Автор: dorogoyIV 20.9.2008, 11:27
имхо: ТЗ для принятия на работу JavaDev должно включать в себя задание, на которое сможет ответить только JavaDeveloper
исходя из этого:
надо написать:
1 GUI
2 client-server (minimum)
3 web-app (ну это уже лишнее)
(имхо: если бы я принимал на работу, я бы делал так)

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

Автор: nerezus 20.9.2008, 11:45
Цитата

а все эти тесты навороченные, для отсева.
 Только вот отсеивают по краям: ибо я сомневаюсь, что профи будет выполнять заказ на пару килобаксов нахаляву.

Автор: Mayk 20.9.2008, 12:43
Цитата(vicod @  20.9.2008,  02:27 Найти цитируемый пост)

Написать интернет-магазин, используя MVC Framework (Spring/Struts).
Data persistence должен быть реализован как с использованием JDBC, так и с использованием Hibernate.
При этом, должна быть возможность использовать либо JDBC либо Hibernate в зависимости от настроек приложения, но без изменения Java-кода. Интернет-магазин должен иметь следующую функциональность:

1. Интерфейс администратора
2. Неограниченная иерархия товаров и групп
3. Товары с картинками (картинки должны храниться в базе данных)
4. Обсуждение товаров 

Страна должна знать своих героев. Это в какую контору такое "тестовое задание" требуется?

Автор: Hroft 23.9.2008, 16:51
Цитата(dorogoyIV @  20.9.2008,  11:27 Найти цитируемый пост)
2 client-server (minimum)

Это как понимать? Через сокеты приветы чтоли слать?


Автор: dorogoyIV 24.9.2008, 09:40
Цитата(Hroft @  23.9.2008,  16:51 Найти цитируемый пост)
Через сокеты приветы чтоли слать?

для ТЗ этого хватит  smile 

Автор: belarusrulez 24.9.2008, 22:51
Вот ещё нарыл :

www.epam.by

Цитата

Тестовые задания к тренингу Java/J2EE

1.Утилита «grep». Написать консольное java-приложение, предназначенное для поиска строк, удовлетворяющих заданному регулярному выражению, в текстовых файлах удовлетворяющих заданной маске. 
Пакет: j2eetraining.tests.grep
Формат вызова:
java j2eetraining.tests.grep.Grep [-i|-I] [-r|-R] [-m mask] 
[-t threadCount ][-o file] regexp
где
-i – искать с учетом регистра (case sensitive). Значение по умолчанию.
-I – искать без учета регистра (case insensitive). 
-r – искать только в текущем каталоге 
-R – искать в текущем каталоге и всех подкаталогах. Значение по умолчанию.
-m mask – задает маску (эквивалентную используемой DOS-команде dir) имен файлов. По умолчанию приложение ищет во всех файлах (*.*). 
-o file – имя выходного файла, если не задано, вывод осуществляется на экран.
-t threadCount – количество рабочих потоков (threads), по умолчанию 5. Приложение осуществляет одновременный поиск в threadCount файлах, каждый файл в своем потоке. Как только поток закончил обработку своего файла, он получает следующий, до тех пор пока все файлы не будут обработаны.
 Переключатели –i,-I,-r,-R,-o,-m,-t являются необязательными и могут следовать в любой последовательности. Параметр regexp – обязательный и должен быть последним. Приложение должно корректно обрабатывать неправильно введенные параметры и выводить соответствующее сообщение об ошибке.
Вывод: приложение выводит относительные имена файлов, в которых производился поиск, количество строк, удовлетворяющих регулярному выражению и итог – количество обработанных файлов, общее количество строк, и общее количество строк удовлетворяющих регулярному выражению. Вывод осуществляется в порядке возрастания имен файлов/каталогов, причем сначала обрабатываются файлы в текущем каталоге, а затем подкаталоги (см. пример ниже)

Пример вывода:

file1.txt: 2 matching lines found
file2.txt: no matching lines found
SubDirA\file1.ext: 10 matching lines found
SubDirA\file2.ext: no matching lines found
SubDirB\file1.ext: no matching lines found
SubDirB\SubDirC\file1.ext: no matching lines found

------
Total files: 17
Total lines: 1000
Total matching lines found: 12

    Где, file1.txt, file2.txt – имена файлов в текущем каталоге
    SubDirA\file1.ext – имя файла в подкаталоге SubDirA

2.Калькулятор.  Написать консольное приложение, выполняющее простые арифметические действия и функции.
Запускаемый класс: j2eetraining.tests.calc.Calc
Приложение читает выражения со стандартного входного потока, и выводит значение выражения в стандартный выходной поток. 
Выражения могут содержать целые и дробные числа, скобки, унарные (‘+’, ‘-‘) и бинарные (‘+’, ‘-‘, ‘*’, ‘/’) операторы, константы (напр. PI) и функции (напр. abs(), pow() – степень). Функции могут принимать определенное число аргументов: 0 (напр. currentTimeMillis()), 1 (напр. sin(x)) и т.д. Некоторые функции допускают любое число аргументов (напр. max(1, 2), max(1, 2, 3, 4, 5)).
Константы и функции не должны быть предопределены; они должны настраиваться в файле calc.properties, читаемым приложением во время старта. Приложение должно уметь работать с любыми функциями, корректно обрабатывая неправильное использование.
Примеры:
abs(-10) * (12 + max(1,4,0))
160

12 + abs(-10, 3)
Error: incorrect number of parameters for function “abs”
12 * a(-10)
Error: unknown function “a”

12 + (max(1,4) 
Error: “)” expected

100 * PI
314

12 + PI2
Error: cannot resolve symbol “PI2”

abs(-min(200, 220 - sqrt(100)))
200
Функции, которые должны быть реализованы:
abs(x) – абсолютная величина
sqrt(x) – квадратный корень
min(x,y,…), max(x,y,…) – минимум и максимум из двух или более аргументов
round(x) – округление
pow(x,y) – x в степени y
    Поддерживаемые константы
        E = 2.7182818284590452354
        PI = 3.14159265358979323846

Пример файла конфигурации:
abs=j2eetraining.tests.calc.functions.AbsImpl
PI=j2eetraining.tests.calc.constants.PiImpl

Общие требования для всех заданий:
Код должен соответствовать Java Naming Conventions. 
Классы, методы и поля должны иметь  javadoc-комментарии (см. http://java.sun.com/j2se/javadoc/writingdoccomments/index.html). Ключевые моменты в реализации методов должны сопровождаться комментариями.
Имена классов, методов, переменных, а также комментарии и сообщения должны быть на английском языке.
Приложения должны быть ”устойчивы” к ошибкам пользователя, выдавая информативные сообщения.
Задания должны высылаться в одном zip-файле с именем вида: <LastName>_<FirstName>.zip. Структура zip-файла:

src/
каталог с исходными кодами
classes/
output-каталог для компилированных классов (пустой)
compile.bat
Batch-file компилирующий тестовые задания в каталог classes (предполагается что переменная JAVA_HOME установлена корректно). 
test<N>.bat
Запускает тест<N> с переданными параметрами (%*)

Важно: задания оцениваются не только по правильности работы приложений, но и по качеству кода, эффективности реализации, пониманию и использованию OOP.


 smile 

Автор: vicod 5.6.2010, 18:50
в одной из контор для junior дают такое задание
Цитата

Написать программу нерекурсивного обхода дерева каталогов для распечатки
имени фалов и директорий, использую класс java.io.File.

Автор: dorogoyIV 5.6.2010, 21:11
ну как можно дерево обойти не рекурсивно?!
только если заведомо в дереве эн-ное количество листьев.

где же такое дерево найти  smile 

Автор: powerOn 5.6.2010, 21:48
Цитата(dorogoyIV @  5.6.2010,  22:11 Найти цитируемый пост)
ну как можно дерево обойти не рекурсивно?!
только если заведомо в дереве эн-ное количество листьев.


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

Автор: dorogoyIV 5.6.2010, 22:13
Цитата(powerOn @  5.6.2010,  21:48 Найти цитируемый пост)
такая задача вполне решаема

извините, даже не представляю, покажите... (неизвестно, сколько в дереве веток)

Автор: powerOn 5.6.2010, 22:24
Код

        final Queue<File> queue = new ArrayDeque<File>();

        queue.add(new File("C:/"));

        while (!queue.isEmpty()) {
            File file = queue.remove();
            for (File childFile : file.listFiles()) {
                System.out.println(childFile.getAbsolutePath());
                if ((childFile.isDirectory())) {
                    queue.add(childFile);
                }
            }
        }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)