Работать программером, куда и за сколько пойти?

Elina74

Знаю С, можно сказать идеально, в С++ классы знаю, использовал, но наследованием и прочей иерархией никогда не занимался. Paskal на том же уровне. Из визуальных систем лучше всего знаю Visual Basic, C++ Builder примерно на том же уровне, только реже пользовался. Слова WinApi не боюсь, но пока еще не со всем разобрался.
С базами данных не знаком, HTML на уровне чистого HTML, того что касается разметки текста, картинки, ссылки...
Способности к абстрактному мышлению на высоте, обучаемость хорошая, программировать нравится...
Чисто теоретически, на какую зарплату я могу рассчитывать, и если идти работать, то куда?

Tania60

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

irina-sokolov

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

durka82

Можешь попробовать попасть на стажировку в Люксофт.
Советую точно сформулировать, чего ты хочешь.
И если это что-то типа: интересую тем-то тем-то и хочу стать в этих областях профессионалом.
После этого достаточно составить список контор, работа в которых в соответствии с этой целью тебя устраивает, и разослать им свое краткое резюме (желательно без вложений, и чтобы по теме письма (ну и по его началу тоже) была ясна твоя цель (а то отсеят как спам) (ну и ящик стоит солидный выбрать (твой МГУ-шный должен подойти
Знакомый так устроился дизайнером на 400 не имея почти ничего, кроме желания...

stm7481822

Научись ООП'у, например, на C++, разберись с WinApi (это все в рамках ООП познакомься с базами данных, а заодно научись их подключать и использовать в своих программах. Чистый HTML - это мало, добавь к неу знание JavaScript, и неплохо было бы знать еще на выбор: CGI-PHP-PERL или JSP-servlets.
|Способности к абстрактному мышлению на высоте, обучаемость хорошая, программировать нравится...
- это есть у всех, никого не удивишь.
С перечисленным выше набором продавай себя не менее, чем за $400.
И еще, думаю, что быстрее будет повысить свои знания и найти работу, чем наоборот. Там же ничего сложного по сути нет, только вопрос времени и практики.
Удачи!
P.S. Если хочешь наверняка, найди какую-нибудь стажировку, например, Luxoft. Поначалу три месяца будешь за 100 баксов (стипендия ТЕБЕ) лекции слушать по всему вышеперечисленному, а потом возьмут на работу на 99%

yuda

Просто интересно, по поводу "идеального знания" C. Пара совершенно реальных и простых вопросов. Никуда не глядя.
1) Расшифруй

int (*(*(*fptr[3];


2)

stuct a {};
...
int b = sizeof(struct a);

b - ?
3) Реализуй

с = max (a,b)

не пользуясь никакими управляющими операторами(в т.ч. ?:).
UPDATE Вызовы функций и макросов - тоже. a, b, c - все одного типа. Но, однако, неизвестно какого (скажем, выбор из int, unsigned int, float и long double).
Ну не пара, ну тройка...
2Модераторы
Плиз, не кидайте в H&S до первого его ответа.
2All Вопросы - хозяину треда.
Вообще, варианты третьего желающие могут писать в приват. Там есть где облажаться.

irina-sokolov

а в чем понт?
максимум, где это понадобится - на экзамене. А за это денег не платят.

yuda

Вот я тоже не понимаю.
Второй вопрос задавали мне. Третий - кому-то из знакомых.
Ну а первый, мне кажется, совершенно реальный.

freezer

ну я знаю ответы на эти вопросы. На какую зарплату я могу рассчитывать?

okunek

Хых, вроде как автор треда не собирается отвечать на эти вопросы. Может напишет кто-нить ответы на 1-й и 2-й вопросы. Жуть как интересно.

yuda

Автор треда может и не обладать должной оперативностью.
Ща напишу. В приват.

freezer

удалено

squeeze

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

freezer

два раза одно и то же писать не охота
http://www.rsdn.ru/Forum/Message.aspx?mid=171982&only=1

omoroz

Вот еще задачка на сообразительность:

int a[5], i;
for (i=0, i<=5, i++) a[i]=0;


известно, что программа уходит в вечный цикл

freezer

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

omoroz

естественно

Elina74

Да, насчет идеальности я чересчур поспешил,
int (*(*(*fptr[3];
Попытка номер раз: это указатель на ф-цию, которая возвращает указатель на массив из 3-х указателей на ф-ции, возвращающие целые значения.
Насчет остальных, надо подольше подумать.

Elina74



int a[5], i;
for (i=0, i<=5, i++) a[i]=0;


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

Elina74



stuct a {};
...
int b = sizeof(struct a);


По-моему скромному мнению ответ может зависеть от платформы. Может зависеть от того, выравнивает ли компилятор размер структуры до числа кратного, например, восьми.

ppplva

Как по твоему, 0 кратен 8 ?

Elina74



template <class T>
T max(T a, T b){
return( a-b)>=0) * a + a-b)<0) * b);
}


однако может быть проблема, если компилятор при вычислении выражения (a-b)>=0 и подобных ему присвоит результату не 0 или 1, а 0 или любое ненулевое значение. Ибо он так может сделать, поскольку в С не регламентировано, что ИСТИНА = единица.

Elina74

ХЗ, вроде кратен.
Borland C++ 3.1 заявил, что результат операции равен единице.

markmsk

>int a[5], i;for (i=0, i<=5, i++) a=0;
VC++6 Отказался компилировать. И по моему мнению это ошибка, а не бесконечный цикл.

SvinkaVJeansah

Безусловно - МВ самая лучшая контора !

abrek

Следующее задание - найти, где на самом деле ошибка в этом коде

grisha

int a[5], i;for (i=0, i<=5, i++) a=0;
Естесственно это ошибка
ты прав если так:
int a[5], i;for (i=0, i<=5, i++;;) a=0;

yuda

Да.
Кому интересно, здесь - как такие вещи расшифровывать.

yuda

> поскольку в С не регламентировано, что ИСТИНА = единица.
Как оказалось, регламентированно.
Если бы не было:

a>b)&&c=a)||(1||(c=b);

freezer

компилятор выравнивает поля, а не всю структуру...
ради интереса можешь сделать так:

#pragma pack(64)
stuct a {};
int b = sizeof(struct a);

и посмотреть что будет

aliska12

А по-моему должно быть вот так:

a>b)&&c=a)||(1||(c=b)


Ты одну скобку забыл.

aliska12

Какая разница, что он там выравнивает - есть прототип структуры, но она нигде не инициализируется. Вроде, память должна выделиться только в момент создания соответствующего объекта.
Я не силен в С, так что с большой вероятностью прогнал пургу

buba741

>Следующее задание - найти, где на самом деле ошибка в этом коде
Ты уже почитал багтрэк на ночь?

freezer

Я не силен в С, так что с большой вероятностью прогнал пургу

да, пурга имеет место быть
вообще, в стандарте Си++ от 98-го года я что-то не нашел почему размер структуры без полей должен быть равен 1. То что больше нуля - это обязательно

abrek

Ой, а что там? Вроде ничего интересного сегодня.

buba741

Что, прямо таки ни одного свежего буфер оверрана?
Ну тогда я, наверно, не все ошибки нашёл.

Elina74

Откомпилил с помощью gcc 2.95.4


typedef struct
{
}a;
printf("%d", sizeof(a;


пишет 0

Elina74

А еще в твоем примере, если размер массива - 5 элементов, надо писать в условии цикла
for(i=0; i<5; i++)
а не i<=5

serega435

а ты попробуй написать <=5

sunne4ka

; вместо , надо

yuda

Post deleted by

Olga22

>Думаю, можешь писать bag report.
ага, в Fendi

yuda

Ну а я чё - я ни чё...

omoroz

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

VV-1

Ломанись в Абби. Только там вступительные экзамены только 1 раз можно сдавать.
А так и платят непохо. И если чего не знаешь -выучишь.
по началу 600
www.abbyy.ru

state7401281


int (*(*(*fptr[3];


так дела не делают

stuct a {};
...
int b = sizeof(struct a);


зависит от обстоятельств, скорее всего 0

с = max (a,b)


если можно использовать abs/fabs/sqrt, то полусумма модулей разности и суммы a и b (мб ошибаюсь, точно не помню, если интересно могу уточнить)

есть очень большой однонаправленный список.
Придумать алгоритм проверки наличия циклов в нем.
Количество требуемой памяти не должно зависеть от длины списка.


если он без циклов, то в нем N-1 ребер, попробуй прочитать N+1 элемент, если смог - есть циклы.


int a[5], i;
for (i=0, i<=5, i++) a[i]=0;


i и a[5] в памяти в одном месте, если это имелось ввиду
кальные задачи. для комплекта не хватает классической swap(a,b) не используя c. это правда, что на тестах/собеседованиях такие дают?

yuda


int (*(*(*fptr[3];


> так дела не делают
Вопрос не в "делают - не делают", а в умении разбирать объявления.

stuct a {};
...
int b = sizeof(struct a);


> скорее всего 0
Насколько мне известно, 1.

с = max (a,b);


> если можно использовать abs/fabs/sqrt
Вызовы функций запрещены.
Что касается остальных задач, то они никак не на знание C.

freezer

результат похоже зависит от того, Си это или Си++:


> cat test.c
#include "stdio.h"
struct A{};
int main
{
return printf("%d\n", sizeof(struct A;
}
> gcc -dumpversion
3.2.2
> gcc test.c -o test
> ./test
0
> gcc -x c++ test.c -o test2
> ./test2
1

sunne4ka

Задачка не интересная, очевидная. Я не уверен, что у всех компиляторов будет бесконечный цикл, вот если бы это была структура, тогда да.

evgen5555

Это, во-первых, редефинишен, а во-вторых, C++, а не C.

freezer

это не редефинишн, т.к. стандартный max лежит в namespace std

yuda

Более того, после оптимизации i очень может оказаться в регистре, и получим мы...
ошибку доступа?

sergey_m

int (*(*(*fptr[3];
А на perl можно еще более непонятно завернуть, что из этого?
Если мне такое покажут на собеседовании, то я скажу: "Похоже этот код нужно переделать. Его тяжело читать".

state7401281



stuct a {};
...
int b = sizeof(struct a);


> скорее всего 0
Насколько мне известно, 1.
gcc - 0, msvc не скомпилировалось

state7401281

>>> не пользуясь никакими управляющими
>>> операторами(в т.ч. ?:).
>> если можно использовать abs/fabs/sqrt
>Вызовы функций запрещены.
бля, а < и > это не управляющие операторы по твоему, тогда пиши сразу понятно

yuda

Это - операции.

squeeze


есть очень большой однонаправленный список.
Придумать алгоритм проверки наличия циклов в нем.
Количество требуемой памяти не должно зависеть от длины списка.

если он без циклов, то в нем N-1 ребер, попробуй прочитать N+1 элемент, если смог - есть циклы.

) ГГГГ
размер списка понятное дело не известен.
Уточняю задачу -
написать функцию которая на вход получает указатель на структуру
struct node
{
sturct node *next;
T value;
}
функция должна возвращать 1 если цикл имеется и 0 если нет.
Конец списка - next = 0;
к сожалению не могу прочитать ответ атиллы тк инета нет.
Если кому не влом выложите его сюда.

Vantucha

не знаю, что там по ссылке написано, но задача на 5 минут.
суть такая:
пиздовать по порядку по элементам списка, начиная с корня,
и для элемента с номером N (для корня N=1) смотреть совпадает ли с ним элемент, который отличается N-кратным переходом к элементу next (на каждом переходе проверяя на конец списка, разумеется). Если для какого-то N совпадает, то ясен пень цикл есть, иначе рано или поздно мы наткнемся на конец списка.
Сорри за мой французский =)

Papazyan

Че тут думать то. Нужно разрывать список и делать несколько шагов вперед, если все ОК, востановить разрыв и разорвать снова в текущем месте и снова сделать несколько шагов вперед (больше, чем раньше) и т.д. Цикл гарантированно будет найден.
Оставить комментарий
Имя или ник:
Комментарий: