?

Log in

No account? Create an account

Previous Entry | Next Entry

Начало

Только что вернулась с orientation для новых студентов. Отлично провела время, но ужасно устала. Вообще замечаю, как я то ли под злостным влиянием Димы, то ли в силу возраста медленно но верно превращаюсь в настоящего интроверта. Раньше я просто не представляла, как можно устать от приятной тусовки. От неприятной - запросто, но вот от приятной… А теперь вполне постигла, как это может быть.
И это еще при том, что первую половину протусовалась в гордом одиночестве (но абсолютно от этого не страдала - и это тоже часть влияния Димы, я все больше нахожу удовольствия в том, чтобы в большой толпе быть самой по себе). Посмотрела на танцы местной группы поддержки, поела барбекю. А еще ела мороженое, приготовленное с помощью азота, причем готовили его на наших глазах. Это так прикольно! Смешивают молоко с сахаром, хорошенько размешивают, чтобы сахар растворился, а потом прямо в миску льют жидкий азот! Он кипит и испаряется на воздухе, а дым от него немножко холодный и вообще это очень впечатляющее зрелище, когда из миски валят клубы дыма. Само мороженое на вкус абсолютно обычное, а по консистенции - комковатое и похоже на творог. Еще там стреляли из азотной пушки теннисными шариками и это тоже было грандиозное зрелище - громкий бум, клубы дыма и мячики, взлетающие высоко в небо. Азотная пушка была воткнута в пластмассовый мусорный бак, который в результате выстрела треснул по всей длине. Не знаю, было ли так задумано или это явилось неожиданностью и для самих экспериментаторов. Еще показали несколько интересных опытов по химии, в том числе циклическую реакцию. А еще поучаствовала в конкурсе, в котором в числе призов были айпад и графический калькулятор, который будет нужен мне для учебы, но ничего не выиграла. Ну и ладно.
К сожалению, ни один из моих профессоров не пришел. Препод по математике, очевидно, работает part-time, потом что волонтеры с этой кафедры не знают никого с такой фамилией. Очень жаль, ведь он будет у меня вести обе математики - Precalculus I и Finite Mathematics (кстати, кто-нибудь знает, как это будет по-русски?). А преподы по программированию проманкировали мероприятием вообще почти в полном составе - пришло всего два или три человека и моих там также не было.
Зато я познакомилась с русскоговорящим мальчиком Петром. Он уже на втором курсе, собирается потом перейти в университет и является вице-президентом компьютерного клуба и президентом инженерного. У инженерного очень интересный проект - они собрали квадрокоптер в прошлом семестре, а в этом будут работать над управлением им силой мысли - по крайней мере, чтобы поднять его в воздух и опустить. Для этой цели они уже купили девайс за 200 долларов, но он плохо конвертирует биотоки мозга и поэтому пока им еще не удалось, чтобы все заработало, как надо. Есть такой же девайс за 500 долларов, он лучше, но слишком дорог.
Я записалась пока только в компьютерный клуб. В прошлом году они писали приложения под Андроид и айфон, совместно с инженерным клубом занимались роботостроением (в инженерном строили робота, а в компьютерном писали прогу для него), делали свою security system и ходили на экскурсию в Гугл и в НАСА. На следующей неделе будет первое собрание клуба в этом семестре, где мы решим, чем будем заниматься. Вауууу! Люди, ну это же круто, а? I'm so excited!!!
Я думала еще записаться в математический клуб, но решила пока подождать, потому что в этом семестре и так нагребла много предметов - надо посмотреть, как пойдет. Если все будет нормально - запишусь в следующем.
Еще познакомилась с девочкой Каиджей из Бельгии и мальчиком Игорем из Минска. С девочкой мы будем встречаться на курсе по Питону и я думаю взять над ней шефство, потому что она еще никогда не программировала вообще, в том числе и на Питоне. А я вполне могу помочь в данном случае. А с мальчиком мы будем видеться на курсе по counselling'у и он под мое крыло попросился сам. Потому что он всю жизнь жил в Минске и учился там же, а в Америку приехал буквально несколько дней назад. И конечно, он ничего не знает и все ему надо объяснять. Мы с ним проговорили часа 2 и все это время я отвечала на его вопросы. Так что могу себя уже считать волонтером по counselling'у :)
К сожалению, оба выбрали основной опцией Джаву, а я - С++, так что тут мы пересекаться не будем. Но девочек на моем факультете действительно раз-два и обчелся :)
Что еще?
Мое расписание на этот семестр очень долго не могло устаканиться. Я то регистрировалась на одни классы, а в других была в waillist, то вдруг открывались новые, более "вкусные" и я регистрировалась на них, а предыдущие вычеркивала, то вдруг открывались новые места на те курсы, которые были уже забиты, и я регистрировалась уже на них…. Вчера, когда мне пришло очередное письмо, что появились новые места на курс и они меня зачислили, я взвыла и сказала Диме, что колледж хочет меня убить. Надеюсь, что до понедельника больше ничего не случится.
Расписание после всех этих перетасовок убийственное! Понедельник и среда - с 10 до 12 - Finite Math, потом до 3-х часов "окно", с 3 до 4:15 - counselling, потом опять перерыв до 6 вечера и с 6 до 8 - С++
По вторникам, четвергам - Precalulus c 10 до 12, по пятницам опять обе математики. А по курсу по Питону расписание пока не объявлено. Но там в кампусе будут только лекции, а лабы - online.
Учебники заказала, и один из них уже даже пришел, а в книжном сегодня купила еще один необязательный и один обязательный. До конца моей свободы остается всего несколько дней, а еще столько всего надо сделать!!!
Пожалуй, в выходные, чтобы отпраздновать окончание свободы, сделаю оливье и винегрет и буду поедать их по очереди все выходные :) Чувствую, что ой как нескоро у меня снова появится столько свободного времени, чтобы приготовить хотя бы один из них :)

Comments

zellily
Sep. 18th, 2014 08:49 am (UTC)
А компилятор это никак не оптимизирует?

"software engineer" - очень уж широкое название :(
morfizm
Sep. 18th, 2014 08:52 am (UTC)
Начнём с того, что Питона нет компилятора, у него интерпретатор :)
Нет, конечно.

Вопрос не в названии, вопрос, наверное, в том, что за компания-продукт. Опять же, я очень плохо знаю российский рынок программистов. Попробуйте убрать весь аутсорсинг и убрать все работы, где платят меньше $3000/мес. То, что останется - это, скорее всего, оно.
zellily
Sep. 18th, 2014 09:04 am (UTC)
Да, я не обратила внимания, что там питон :)
А если б не питон был? А что-то с возможностью получить экзешник на выходе? Там бы тоже не было оптимизации?
ЗЫ Компиляторы я тоже хочу пройти, но это где-то в планах в самом конце.

На хедхантере с такими зп вылезают очень разношерстные вакансии: 1c, c#, c++, sql, php, java - всё исключительно разнообразно :)
morfizm
Sep. 18th, 2014 09:06 am (UTC)
Экзешник на выходе - это C++ :)
Welcome.

(Ну либо это продукт какого-нибудь интересного инсталлера, который в одном экзешнике зашивает интерпретатор Питона, библиотеки и исходник вашего кода, и как-то позволяет всё это запускать через один exe-шник).
zellily
Sep. 18th, 2014 09:07 am (UTC)
И только си? :)
Так будет оптимизация или нет? :)
morfizm
Sep. 18th, 2014 09:11 am (UTC)
Будет оптимизация или нет, зависит от того, что именно вы используете для строк. Напоминаю, в C++ нет встроенного типа данных "строка". Есть стандартная библиотека, в которой есть stl::string, да, там будет оптимизация, т.к. будет использоваться operator overload, который по сути делает аналог append-а (см.ниже решение со списком в питоне). stl::string мутабелен, так что всё путём. Аллокаций лишних не будет, и будет O(n).

Upd.: хотя это нужно проверить, что-то я не уверен. Мне (со времён глубокого детства) никогда не приходило в голову добавлять к строке по одному символу в цикле. В любом случае нужно писать не s = s + c, а s += c. В Питоне, кстати, так тоже можно написать, но это будет эквивалент s = s + c. В C++ это не будет эквивалент, это другой оператор.

Edited at 2014-09-18 09:13 am (UTC)
zellily
Sep. 18th, 2014 09:21 am (UTC)
Остаётся вопрос, расскажут ли об этом всё в в вузе и расскажут ли так, чтобы это не вылетело к моменту работы :)

А то многие вещи запоминаются только когда наступишь на грабли пару раз. Например, первые грабли на работе были, когда я разделила одно целое на другое целое - и получила тоже целое, чего я даже не заметила, и долго тупила, пытаясь понять, откуда такие странные результаты в результате работы программы :)
(no subject) - morfizm - Sep. 18th, 2014 09:24 am (UTC) - Expand
(no subject) - morfizm - Sep. 18th, 2014 09:36 am (UTC) - Expand
morfizm
Sep. 18th, 2014 09:17 am (UTC)
В C++ 11 говорят, всё будет нормально, а до него, говорят, зависит от реализации (стандарт не регламентировал необходимость O(1)). Надо делать s += или s.append (это эквиваленты):

http://stackoverflow.com/questions/15082170/c-stdstring-append-vs-push-back
morfizm
Sep. 18th, 2014 09:20 am (UTC)
"И только си? :)"

Причём здесь си, я же предложил C++? :)

Ну из перечисленного вами в соседнем комменте - да, только он реально компилирует. Есть, конечно, и другие компилируемые языки.
morfizm
Sep. 18th, 2014 09:40 am (UTC)
Весьма закономерно, но странно, что PHP - это выбивается из последовательности. Я подозреваю, что это таки outsourcing, просто высокие зарплаты, потому что Москва. Может, надо попробовать пофильтровать на 3500-4000 :)

Edited at 2014-09-18 09:40 am (UTC)
morfizm
Sep. 18th, 2014 09:03 am (UTC)
Особо отмечу, что Питон не способен это оптимизировать, даже если бы разработчики Питона старались изо всех сил, т.к. в Питоновской модели данных строки *не мутабельны*.

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

Решение, которое добавляет символы в список (через append) и собирает результирующую строку после цикла через ''.join(mylist) - уже лучше. Оно тоже далеко от идеала, но, по крайней мере, у него линейная ассимптотика (добавление именно в конец списка имеет амортизированную сложность O(1)).


Edited at 2014-09-18 09:04 am (UTC)
zellily
Sep. 18th, 2014 09:09 am (UTC)
Я ж говорю, всю жизнь учиться надо :)
ЗЫ Я знаю, что лучше пользоваться append, чем +, но не вникала в подробности, увы, времени не хватает на всё :(
morfizm
Sep. 18th, 2014 09:19 am (UTC)
Согласен по поводу всё жизнь учиться.

Мне со времён школы было глубоко отвратительно что-то знать, чего я не понимаю. Зачем запоминать кучу вещей, если можно понять одну и потом из этого понимания выводить всё, что нужно, по мере необходимости? Это и есть то самое, что позволит читать сложные книжки за две недели (или вообще не читать, а пользоваться ими как справочниками), вместо того, чтобы тратить "всю жизнь".
morfizm
Sep. 18th, 2014 09:22 am (UTC)
Ещё - в реальных задачах часто важно не просто знать, что лучше, а знать, *насколько* оно лучше, чтобы делать правильные trade-offs. Мне кажется, без понимания не обойтись. Без него можно запомнить пачку best practices, а потом написать что-то неудоворимое, потому что в списке запомненного нужной best practice не было.
morfizm
Sep. 18th, 2014 09:48 am (UTC)
Насчёт "времени не хватает на всё" - это, кстати, одна из проблем относительно "простых" работ. Простая работа - это небольшие задачи в большом количестве и предсказуемый output: т.е. надо вдвое больше таких задач, удавиваем штат и всё путём. Надо вдвое меньше, можно кого-то lay off.

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

Из простой работы трудно впрыгнуть в сложную, потому что при наличии у вас свободного часа, вам просто дадут ещё одну простую задачу и времени уже не останется чтобы как-то повышать квалификацию. Время на сложные задачи измеряется кварталами, а не часами :)

Edited at 2014-09-18 09:48 am (UTC)

Profile

fearless_cat
Бывшие канадские ангелы мы

Latest Month

August 2019
S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031

Page Summary

Powered by LiveJournal.com
Designed by Tiffany Chow