Ти откъде знаеш, че ще забие? Да не си чакал и да е забил случайно?
Има и още една забележка – прочети редакцията на предишния ми пост.
waldorf
Създадено на 17.05.2023, видяно: 333 пъти. #90614
При това, ще трябва да дефинираш стоп критерий – как ще разбереш, че масивът се е сортирал и съдържа именно началните стойности, но сортирани?
Е, това е за хора дето мислят - тези които задават такива въпроси по интервюта рядко са такива ...
Друг начин да ги цакам е да ги питам дали знаят с колко търсения се намира дали дадено число го има в сортиран масив с 1000 елемента в него. И по времето за отговор ги преценям колко са в час.
При това, ще трябва да дефинираш стоп критерий – как ще разбереш, че масивът се е сортирал и съдържа именно началните стойности, но сортирани?
Е, това е за хора дето мислят - тези които задават такива въпроси по интервюта рядко са такива ...
Друг начин да ги цакам е да ги питам дали знаят с колко търсения се намира дали дадено число го има в сортиран масив с 1000 елемента в него. И по времето за отговор ги преценям колко са в час.
Тоест, задаваш провокационен въпрос. Даваш на него грешен отговор и като ти се вържат на грешния отговор, разбираш, че са идиоти и си вдигаш ЧСВ-то?
А ако някой разбере, че отговорът ти е грешен, значи е гений и си струва да работиш с него? Но пак засада – той едва ли ще иска да работи с хора, които дават грешни отговори на провокационни въпроси, които сами задават...
waldorf
Създадено на 17.05.2023, видяно: 324 пъти. #90617
При това, ще трябва да дефинираш стоп критерий – как ще разбереш, че масивът се е сортирал и съдържа именно началните стойности, но сортирани?
Е, това е за хора дето мислят - тези които задават такива въпроси по интервюта рядко са такива ...
Друг начин да ги цакам е да ги питам дали знаят с колко търсения се намира дали дадено число го има в сортиран масив с 1000 елемента в него. И по времето за отговор ги преценям колко са в час.
Тоест, задаваш провокационен въпрос. Даваш на него грешен отговор и като ти се вържат на грешния отговор, разбираш, че са идиоти и си вдигаш ЧСВ-то?
А ако някой разбере, че отговорът ти е грешен, значи е гений и си струва да работиш с него? Но пак засада – той едва ли ще иска да работи с хора, които дават грешни отговори на провокационни въпроси, които сами задават...
Не. Проверявам ги дали си имат представа от алгоритми. Търсене на елемент в сортиран масив е един от основните алгоритми - двоично търсене. И за да отговориш на него трябва да му знаеш сложността - онова голямото О в книгите на Кнут. А за да дадеш конкретен отговор трябва да знаеш степените на 2. А за да ги знаеш наизуст поне до 2^16 си иска да си се занимавал и да си внимавал. Досега само 2-3-ма са отговорили без да се замислят и точно те са хората с които си струва да работиш. Може би общо десетина човека са дали горе долу верен отговор анализирайки бавно и внимателно т.е. поне са учили и нещо им е останало в главите. Останалото е шкарто - един наистина се пробва да ми даде изсмукан от пръстите отговор - 15 било, що 15? ми така ... и така и приключи интервюто
Всъщност този въпрос съм го задавал повече когато аз съм правил интервю да наемам хора, рядко съм препитвал интервюиращия мен ама се е случвало и никога не са отговаряли отма.
При това, ще трябва да дефинираш стоп критерий – как ще разбереш, че масивът се е сортирал и съдържа именно началните стойности, но сортирани?
Е, това е за хора дето мислят - тези които задават такива въпроси по интервюта рядко са такива ...
Друг начин да ги цакам е да ги питам дали знаят с колко търсения се намира дали дадено число го има в сортиран масив с 1000 елемента в него. И по времето за отговор ги преценям колко са в час.
Тоест, задаваш провокационен въпрос. Даваш на него грешен отговор и като ти се вържат на грешния отговор, разбираш, че са идиоти и си вдигаш ЧСВ-то?
А ако някой разбере, че отговорът ти е грешен, значи е гений и си струва да работиш с него? Но пак засада – той едва ли ще иска да работи с хора, които дават грешни отговори на провокационни въпроси, които сами задават...
Не. Проверявам ги дали си имат представа от алгоритми. Търсене на елемент в сортиран масив е един от основните алгоритми - двоично търсене. И за да отговориш на него трябва да му знаеш сложността - онова голямото О в книгите на Кнут. А за да дадеш конкретен отговор трябва да знаеш степените на 2. А за да ги знаеш наизуст поне до 2^16 си иска да си се занимавал и да си внимавал. Досега само 2-3-ма са отговорили без да се замислят и точно те са хората с които си струва да работиш. Може би общо десетина човека са дали горе долу верен отговор анализирайки бавно и внимателно т.е. поне са учили и нещо им е останало в главите. Останалото е шкарто - един наистина се пробва да ми даде изсмукан от пръстите отговор - 15 било, що 15? ми така ... и така и приключи интервюто
Всъщност този въпрос съм го задавал повече когато аз съм правил интервю да наемам хора, рядко съм препитвал интервюиращия мен ама се е случвало и никога не са отговаряли отма.
Аз имах предвид сортирането.
А за двоичното търсене, това е въпрос за ученици 8..9 клас. Аз оттогава знам наизуст степените на двойката и смятам наум в шестнайсетична бройна система.
Ще ме вземеш ли на работа?
waldorf
Създадено на 17.05.2023, видяно: 304 пъти. #90619
При това, ще трябва да дефинираш стоп критерий – как ще разбереш, че масивът се е сортирал и съдържа именно началните стойности, но сортирани?
Е, това е за хора дето мислят - тези които задават такива въпроси по интервюта рядко са такива ...
Друг начин да ги цакам е да ги питам дали знаят с колко търсения се намира дали дадено число го има в сортиран масив с 1000 елемента в него. И по времето за отговор ги преценям колко са в час.
Тоест, задаваш провокационен въпрос. Даваш на него грешен отговор и като ти се вържат на грешния отговор, разбираш, че са идиоти и си вдигаш ЧСВ-то?
А ако някой разбере, че отговорът ти е грешен, значи е гений и си струва да работиш с него? Но пак засада – той едва ли ще иска да работи с хора, които дават грешни отговори на провокационни въпроси, които сами задават...
Не. Проверявам ги дали си имат представа от алгоритми. Търсене на елемент в сортиран масив е един от основните алгоритми - двоично търсене. И за да отговориш на него трябва да му знаеш сложността - онова голямото О в книгите на Кнут. А за да дадеш конкретен отговор трябва да знаеш степените на 2. А за да ги знаеш наизуст поне до 2^16 си иска да си се занимавал и да си внимавал. Досега само 2-3-ма са отговорили без да се замислят и точно те са хората с които си струва да работиш. Може би общо десетина човека са дали горе долу верен отговор анализирайки бавно и внимателно т.е. поне са учили и нещо им е останало в главите. Останалото е шкарто - един наистина се пробва да ми даде изсмукан от пръстите отговор - 15 било, що 15? ми така ... и така и приключи интервюто
Всъщност този въпрос съм го задавал повече когато аз съм правил интервю да наемам хора, рядко съм препитвал интервюиращия мен ама се е случвало и никога не са отговаряли отма.
Аз имах предвид сортирането.
А за двоичното търсене, това е въпрос за ученици 8..9 клас. Аз оттогава знам наизуст степените на двойката и смятам наум в шестнайсетична бройна система.
Ще ме вземеш ли на работа?
Тц ... отказах се преди 15 години да работя с хора - не ме кефи. Предпочитам да си програмирам т.е. ако искам да си стигам до нивото на некомпетентност както е по принципа на Питър. Тука от два месеца помагам на бившия ми стартъп да си стъпят на краката и водя двама юнака (турчин и мароканец - между другото са точни) и хич не ме кефи. Гледам ги, че вече се оправят горе долу сами и от понеделник започвам паралелно с друг клиент, че заради часовата разлика със щатите сутрините са ми празни и общо взето скучая. А така ще разцъквам някакъв РТОС за управление на топломери ли, контролери за парно ли - все тая, да съм по близо да желязото, че сегашния ми проект е за модеми и рутери дето си е ембедед линукс и е само юзер спейс рутиране на пакети.
Между другото като казваш, че е въпрос за ученици си припомням, че докато имах персонал в БГ ги бях подхванал да ги питам за формулата за решаване на квадратно уравнение и всички я объркаха - дипломирани инженери, математици и т.н. Правехме счетоводен софтуер и всичко тръгна като ги слушах как спорят дали трябва първо да начислят ДДС и после да направят отстъпка или обратно. Т.е. не знаеха правилото A.B.C = B.C.A = C.A.B = C.B.A. То в интерес на истината има значение заради закръглянето на единичната цена и от там натрупване на грешка при смятането на ДДС-то ама това си беше направо висша математика за тез момци ... абе кофти матриал ...
bobyb
Създадено на 17.05.2023, видяно: 302 пъти. #90620
То е ясно че отговора е логаритъм на двойката, или натурален логаритъм за по завъртяното търсене, но не знам зашо ми дойде наум че сигурно отговора е 10. Като видях да споменаваш степента на двойката, съобразих че е наобратно един вид и това е отговора. Подсъзнателно помня нещо от далечното минало :)
waldorf
Създадено на 17.05.2023, видяно: 299 пъти. #90621
То е ясно че отговора е логаритъм на двойката, или натурален логаритъм за по завъртяното търсене, но не знам зашо ми дойде наум че сигурно отговора е 10. Като видях да споменаваш степента на двойката, съобразих че е наобратно един вид и това е отговора. Подсъзнателно помня нещо от далечното минало :)
10 e.
2^10=1024 т.е. ако големината на буфера е между 512 и 1024 ти трябват 10 сравнения за да провериш, че дадено число е в буфера. От 1024 до 2048 са 11 и т.н.
То това е за да тестваш някой който вече искаш да го наемеш доколко са му задълбочени знанията и опита. Важно е защото като напише един цикил трябва да си има поне някакво елементарно понятие каква ще е сложността според данните които трябва да обработи а не да влага цикъл в цикъл щото нали процесора можел да изпълни няколко милярда операции в секунда - може ама ако данните са му в регистрите или в стека. Ако не са става тегаво. Иначе най доброто интервю което са ми правили беше в един каубойски стартъп за ел.колелета (cowboy.com) където ми дадоха за домашно нарочно непълно задание с грешки и т.н. да видят как ще реагирам. Ядосах се и го написах същата вечер, че откарах май до 2-3 след полунощ. Та всички липсващи изисквания от заданието можеше да обосновано да се предположат което и направих с ясни коментари в кода и т.н. Наистина много добър начин да се филтрира шкартото защото в практиката непълните задания са си нещо нормално и ако не можеш да се оправиш сам ами ходиш да ревеш, че това или онова липсва си е губене на време на колегите ти. Е, има го и варианта без да питаш да направиш нещо грешно. Та накрая не се зехме с тез защото не искаха лятото да работя 2 месеца от БГ-то. А мен не ми се седи като детето е във ваканция в тая мухлива Белгия ...,
ДонРеба
Създадено на 18.05.2023, видяно: 279 пъти. #90642
каубойците определено са измислили по-добър начин за търсене на хора. твоя метод със двоичното търсене не може да отличи зубър от човек който разбира, накито от дира сигурно ще ти отговори вярно, но не вярвам да мине задачата с непълно условие.
Rabin
Създадено на 18.05.2023, видяно: 262 пъти. #90647
Като почнат да ми дават задачи от типа да разменя 2 променливи, ама без да ползвам трета, или масива с 1000 елемента, дето само едно число се повтаря, да го намеря без допълнителни променливи.
Такива изтрещели чичаци ги оставям в сектата им, да се навиват един друг, колко са велики, и да приказват за кози.
waldorf
Създадено на 18.05.2023, видяно: 239 пъти. #90661
Като почнат да ми дават задачи от типа да разменя 2 променливи, ама без да ползвам трета, или масива с 1000 елемента, дето само едно число се повтаря, да го намеря без допълнителни променливи.
Такива изтрещели чичаци ги оставям в сектата им, да се навиват един друг, колко са велики, и да приказват за кози.
Ти нещо взе само да приказваш за кози ...
Rabin
Създадено на 18.05.2023, видяно: 233 пъти. #90664
Ти нещо взе само да приказваш за кози ...
Ako не бяхте 5 човека накръст, щях да ви запукам с админските инструменти. Зарад ваще скодоумия форумчето умрЕ. Мързи ме да влизам по цял месец. Аутизъм до гуша.
waldorf
Създадено на 18.05.2023, видяно: 226 пъти. #90668
каубойците определено са измислили по-добър начин за търсене на хора. твоя метод със двоичното търсене не може да отличи зубър от човек който разбира, накито от дира сигурно ще ти отговори вярно, но не вярвам да мине задачата с непълно условие.
Още ми е в мейлите ... това е заданието:
Please find attached the test case in cpp. It's not very well defined on purpose, the target is to trigger discussion with the development team during F2F (or Camera 2 Camera) interview
Expectation:your solution within 48h, with your assumptions in comment and suggestion, idea.
We do not expect something which can compile directly.
И прикачения файл:
#include <iostream>
/** GPSTest
*
* The goal is to get a valid time and position from a GPS.
*
* Then, send the position to the web-API endpoint https://bike-api.cowboy.bike/position
* Format of the data is defined in the Web API struct gps_info.
*
* If the position has not been received after 10 minutes, but there is a valid time you should send the time to the web-API.
*
*
*
*
* GPS documentation :
*
* The platform has a GPS receiver attached to the MCU via I2C on bus 1 and an interrupt signal on GPIO 12 that the GPS can pull low when it has data.
*
* The GPS has an 8-bit configuration register at address 0 you can write with the following options:
* BIT0: enable interrupt line
* BIT1: Interrupt on time
* BIT2: Interrupt on position
*
* The time is received by doing a standard I2C read from address 1
* This is the payload:
* +-------------+--------+-------+-------+-----------------------------------------------------+
* | Byte Offset | Format | Name | Unit | Description |
* +-------------+--------+-------+-------+-----------------------------------------------------+
* | 0 | U4 | iTOW | ms | GPS time of week of the navigation epoch. |
* +-------------+--------+-------+-------+-----------------------------------------------------+
* | 4 | U2 | year | y | Year (UTC) |
* +-------------+--------+-------+-------+-----------------------------------------------------+
* | 6 | U1 | month | month | Month, range 1..12 (UTC) |
* +-------------+--------+-------+-------+-----------------------------------------------------+
* | 7 | U1 | day | d | Day of month, range 1..31 (UTC) |
* +-------------+--------+-------+-------+-----------------------------------------------------+
* | 8 | U1 | hour | h | Hour of day, range 0..23 (UTC) |
* +-------------+--------+-------+-------+-----------------------------------------------------+
* | 9 | U1 | min | min | Minute of hour, range 0..59 (UTC) |
* +-------------+--------+-------+-------+-----------------------------------------------------+
* | 10 | U1 | sec | s | Seconds of minute, range 0..60 (UTC) |
* +-------------+--------+-------+-------+-----------------------------------------------------+
* | 11 | X1 | valid | - | Validity flags (bit 0: validDate, bit 1: validTime) |
* +-------------+--------+-------+-------+-----------------------------------------------------+
*
* The position is received by doing a standard I2C read from address 2
* This is the payload:
* +-------------+--------+-------------+----------------------------------------------------------+
* | Byte Offset | Format | Name | Description |
* +-------------+--------+-------------+----------------------------------------------------------+
* | 0 | U1 | latitude | degrees part of the latitude |
* +-------------+--------+-------------+----------------------------------------------------------+
* | 1 | U2 | latitude | minutes part of the latitude, scaled by *1000 |
* +-------------+--------+-------------+----------------------------------------------------------+
* | 3 | CHAR | north/south | 'N' for North, 'S' for South |
* +-------------+--------+-------------+----------------------------------------------------------+
* | 4 | U1 | longitude | degrees part of the longitude |
* +-------------+--------+-------------+----------------------------------------------------------+
* | 5 | U2 | longitude | minutes part of the longitude, scaled by *1000 |
* +-------------+--------+-------------+----------------------------------------------------------+
* | 7 | CHAR | east/west | 'E' for East, 'W' for West |
* +-------------+--------+-------------+----------------------------------------------------------+
*
*
* Additionnal info :
*
* Standard Timer/clock lib can be used, no need to reimplement it.
*
* Included classes : (should be used as is, no need to complete it or rework it)
*
* - I2CDevice : Define the interface of an I2C communication
* - WebAPI : Define the interface of the web API communication
*/
using namespace std;
typedef void CallbackFunction(void);
class I2CDevice {
public:
/**
* @brief I2CDevice
* @param bus
* @param device_address
*/
I2CDevice(uint8_t bus, uint8_t device_address);
/** Enable interrupt
* @param pin
* @param level
* @param cbfunction function that will be called when interrupt is triggered.
*/
void registerInterrupt(uint32_t pin, uint8_t level, CallbackFunction cbfunction);
/** write data to device
* @param len
* @param data
* @return number of bytes written
*/
int write(size_t len, uint8_t *data);
/** Read data from the device
* @param len the maximum size of the buffer
* @param buffer to write data into
* @return the number of bytes read
*/
int read(size_t len, uint8_t *buffer);
/** write data to device/register
* @param regAddr
* @param len
* @param data
* @return number of bytes written
*/
int writeReg(uint8_t regAddr, size_t len, uint8_t *data);
/** Read data from the device/register
* @param regAddr
* @param len the maximum size of the buffer
* @param buffer to write data into
* @return the number of bytes read
*/
int readReg(uint8_t regAddr, size_t len, uint8_t *buffer);
};
class WebAPI {
public:
typedef struct {
uint16_t tm_year;
uint8_t tm_month;
uint8_t tm_day;
uint8_t tm_hour;
uint8_t tm_minute;
uint8_t tm_second;
} tm;
typedef struct {
tm time;
} gps_info;
/**
* @brief WebAPI
* @param endpoint : endpoint of the backend to transfer the data
* @param dataBuffer :
*/
WebAPI(std::string endpoint, APIDataBuffer dataBuffer);
/**
* Send dataBuffer to the backend
* @return true on success
*/
bool sendData();
protected:
class APIDataBuffer {
public:
APIDataBuffer();
/** read gps info
* @param gps info struct
* @return actual bytes that were written to the buffer
*/
virtual int readData(gps_info *info) = 0;
};
};
int main()
{
cout << "Hello Cowboy!" << endl;
return 0;
}
АКо на някой му е интересно мога да кача и моя отговор ...
АКо на някой му е интересно мога да кача и моя отговор ...
Бей бе - тва да не ти е IT форум... мани го тоя C++ (преподавал съм го, знам го) те ти доцент Вацев...😏
Верно, това че пишат Ц++ ми накара да дигна едната вежда. ++ не е препорачителен за ембедед устройства, по добре чисто Ц.
Тука великите синиър програмисти кодят с AI, е виж Бамбо тамън се похвали че чатбота му писал заготовки код и го изхвърлиха по некадърност с останалите синиъри дето и те пишат с ботове
Rabin
Създадено на 18.05.2023, видяно: 197 пъти. #90677
е виж Бамбо тамън се похвали че чатбота му писал заготовки код и го изхвърлиха по некадърност с останалите синиъри дето и те пишат с ботове
Аз съм си поел пътя, идеята ми е да се махна от ганорника, и само по тоя вектор напиням.
Тебе ще те питам, като почнеш да ходиш с памперса на работа. Де викаше един Императора в форума на Инвестор - ще те намерят един ден озъбен до радиатора в офиса.