>Склонность к написанию своего кода более, чем использованию чужого
Он серьёзно взялся за борьбу с вредной привычкой курить и решил сбросить лишний вес уже завтра !
Aglaranir
> Когда я слышу слова "выучить новый фреймворк", я под этим понимаю прежде всего:
> 1)прочитать книгу на эту тему толшиной не менее 400 страниц
> 2)написать пару программ средней сложности с использованием этой технологии.
> Причем своих, а не примеров из книги.
какой смысл читать книгу, чтобы перейти с Qt на wxWidgets? общие принципы везде примерно одни и те же, различия между ними преимущественно в реализации. Детали реализации всегда можно на лету смотреть в мане.
к тому же двух недель за глаза хватит, чтобы не в особо напряжном темпе заботать книгу в 400 страниц. с попутным тестами в коде. дважды.
Aglaranir
> И вот другой пример: человек три года занимался разработкой десктоп-приложений на Qt. Его уволили, он приходит в другую фирму а там ему говорят, что у них используется wxWidgets. Хотя область деятельности та же. Как ему быть? Искать дальше, или в срочном порядке переучиваться?
Невелика беда - покопается несколько дней в доках, а остальное потом изучит по ходу дела.
BUzer
> Невелика беда - покопается несколько дней в доках, а остальное потом изучит по
> ходу дела.
+1. Если программист, три года занимавшийся разработкой на Qt за неделю-две не может освоить wxWidgets, чтобы клепать формы на ней, то грош ему цена как программисту. Более того - освоить wxWidgets за две недели можно даже не имея 3-летнего опыта работы с кутями. ))
У меня в компании работал человек, у него в резюме на линкедине было написано столько, что прям ппц, бог программирования! Но работал он сам посредственно, и когда ему сказали что увольняют, он поперся в контору на собеседование. Писали мы тогда на C#(хотя он писал процедуры под db2, но в резюме указал что знает C# средне), так вот в тестах по C# он не ответил ни на один вопрос.
То, что написано в резюме еще ничего не значит. Даже если его вызывают на собеседование, обычно такой человек поверхностно изучает перед собеседование, но если копнуть глубже он тупо сливает.
Aglaranir
> Лично я думаю, что в 18 лет абсолютное большинство людей даже не знают кем
> хотят стать
Я определился с этим вопросом еще лет в 14-15, уже мне 20, не сбился с желаемого.
Отнесение к языкам программирования HTML, CSS уже говорит о некомпетентности товарища, как WEB-разработчика. На счет ЯП... Скорее всего да, базовые знания есть. Но всегда надо просить предьявить проекты, сделанные работы. Ну и да, при личном разговоре все выяснить - чем занимался, что умеешь. И примернить например тот прием который применяли со мной - во время собеседования поспрашивать "Слушай, у меня вот такая проблема, не знаю как сделать\чем воспользоваться" - если он даст ответ по теме или хотя-бы приблизительно и уверенно, то значит в курсах.
когда в юношестве помнится начал подрабатывать фрилансером.... за два года СТОЛЬКО нового изучил из совершенно разных областей, что если у резюмируемого было нечто вроде того - совершенно нормально. просто по работе надо было. каждый проект - разное. обкладывался учебниками и - вперёд. и как про языки лингвистические говорилось "каждый следующий учится вдвое быстрее". в итоге за пару лет - пара десятков языков/технологий/апи/итп. собственно в резюме ничего сверъестественного не вижу.
=A=L=X=
Но ИМХО отнесение HTML к языку программирования - это эпохальный фейл
aloha_hawaii
> > поделитесь секретом, как у вас это получается?
> самый самый по любым вопросам на этом форуме - NightmareZ. думаю лучше спросить у него.
Вызывали?
Ответ на этот вопрос прост:
=A=L=X=
> в итоге за пару лет - пара десятков языков/технологий/апи/итп. собственно в резюме ничего сверъестественного не вижу.
Нереально столько помнить на хорошем уровне. А знать базовые конструкции - толку то....
Drazd
> Но ИМХО отнесение HTML к языку программирования - это эпохальный фейл
Фейл конечно же, но не эпохальный. Путаница между понятиями "язык программирования" и "языки/технологии используемые в процессе программирования" - вещь частая. Раньше особо часто спотыкались в этом месте на SQL-е.
NightmareZ
> Нереально столько помнить на хорошем уровне. А знать базовые конструкции -
> толку то....
На хорошем - конечно нет. Программист как пианист - месяц не будешь практиковать и гибкость пальцев и моторика уже не та.
Я помню в итоге такого "стрессового" изучения самых разных технологий начал пользовать такой приём: выписывал при изучении новой вещи её значимые отличия в коспект. И вот что характерно - чем больше изучал, тем меньше становились конспекты. Java по сравнению с C++ - одно. Perl по сравнению с C/C++ - другое. C# по сравнению с Java - уже буквально пара страниц. PHP по сравнению с Perl - уже тоже пара страниц! =) А так как основы проектирования похожи - то фигня это всё становится. Но это уже реально дело опыта опыта и еще раз опыта.
=A=L=X=
> PHP по сравнению с Perl - уже тоже пара страниц!
Ололо, Perl с PHP пара страниц.
1. Возможные способы квотинга:
<? ... ?>
<?php ... ?>
<script language="php"> ... </script> - для плохих редакторов
<% ... %> - как в ASP
<%= ... %> - как в ASP
2. Комментарии 4-х типов:
// как в C++
/* как в C */
# как в Unix shell
3. Типы данных:
integer - (аналог INT32) записываются точно как в C/C++
float - (аналог DOUBLE64)
string - квотинг как в Perl (" или '). Спецсимволы обычные для C/C++. Конкатенация строк через точку, а не +.
array - и массив и хеш в одном. Без явно указанного индекса добавляет значение в конец себя ($a[] = "hello"). count( $a ) - размер. Ф-ии next(), prev() или each() могуть быть использованы для итерирования. Многомерные массивы пишут индексы как в C ($a[1][2]). Ф-я array() может быть использована как конструктор массивов/хешей.
object - доступ к полям объекта через $o->field; $o->func();
4. Явное преобразование типов делается либо как в C (int)$dbl. Строки в числа переводятся без предупреждений, если начало строки никак не может быть трактовано как число, то возвращается 0.
5. Переменные не типизированы (variant), в начале всегда имеют знак $. Чувствительны к регистру. Имеют ссылочную природу (т.е. все они являются ссылками). Явная операция взятия ссылки: $a = & $b;
6. По умолчанию в функциях ВСЕ переменные (даже не описанные) являются локальными, поэтому чтобы поиметь доступ к глобальным надо писать global $a, $b, ...; Глобальные переменные так же всегда доступны через хеш $GLOBALS["имя_переменной"]. Поддерживаются статические переменные в функциях: static $a, $b, ...;
7. Переменные переменных: если к имени переменной добавить два $, т.е.: $$a, то ссылаться она будет на переменную имеющую имя совпадающую со значением $a.
8. Когда при вычислении строка типа "$a..." имеются неясности с трактовкой текста нужно использовать фигурные скобки: "$a ${$a}" или "$a[3][bar]" против "{$a[3][bar]}".
9. Параметры CGI запросов (GET или POST) автоматически добавляются как глобальные переменные со своими именами. Так же они доступные через хеши $HTTP_POST_VARS и $HTTP_GET_VARS. Могут быть массивами. Если параметр типа IMG, то координаты клика идут как две переменные sub_x и sub_y (?).
10. Кукисы устанавливаются через SetCookie() ДО первого вывода (чтобы попасть в заголовок). Входящие куки так же автоматически добавляются в глобальные переменные.
11. Для переменных среды ОС справедливо то же - добавляются как глобальные переменные. Следует помнить, что точки во всех входящих переменных заменяются на подчёркивание.
12. Узнать тип переменной можно через gettype(), is_long(), is_double(), is_string(), is_array(), and is_object(). Установить - через settype().
13. Константы определяются посредством функции define().
14. Арифметико-логические операции содраны с перла почти на 100%. Выражение есть FALSE, если оно Пусто, 0, "", "0" или массив/объект не содержащий элементов.
15. Операторы:
Строки складываются через точку: $a . $b
Операторы сравнения дополнены сравнениями "идиентичности": $a !== $b и $a === $b. Идиентичность значит что переменные равны и имеют один и тот же тип.
16. Контроль ошибок: если перед выражением стоит @, то любые сообщения об ошибках при выполнении его будут подавлены.
17. Как и в перле окруженные в `` команды будут исполнены в командной строке ОС, а их вывод будет возвращен как значение.
18. foreach радует (остальное всё как в Perl):
вот это:
reset ($arr);
while (list($key, $value) = each ($arr)) {
echo "Key: $key; Value: $value
\n";
}
аналогично этому:
foreach ($arr as $key => $value) {
echo "Key: $key; Value: $value
\n";
}
19. break может иметь int параметр - на сколько вложений выходить
20. require(), include(), require_once() и include_once() включают в текст программы текст другого модуля в этом месте. require включает только один раз за любое количество проходов программы, include - каждый раз когда программа проходит через это место. Оканчивающиеся на _once() будут подключены только один раз в цепочках включений, чтобы избежать ошибок "круговых включений".
21. Функции
function foo ($arg_1, $arg_2, ..., $arg_n) {
echo "Example function.\n";
return $retval;
};
Чтобы передать параметр по ссылке его можно либо в списке параметров предварить &, либо при передаче в функцию сделать то же самое. Аргументы "по умолчанию" - как в C++. Через функции func_num_args(), func_get_arg() и func_get_args() можно юзать переменное кол-во аргументов. Чтобы из функции вернуть ссылку надо и в return предварять возвращаемое значение & и при вызове функции перед ней ставить тоже &.
22. Перемнные функции: если после имени переменной поставить скобки на манер вызова функции, то вызовется функция с именем значения этой переменной.
23. Классы:
Типичная запись класса:
class Box extends Shape // множественного наследования нет
{
var $field; // член данных
funcion Box() // конструктор имеет имя класса
{ ... };
function add_item( $arg ) // метод класса
{ ...; return ...; }
}
В объектах доступен $this.
24. Ссылки. Важная тема. На самом деле все переменные являются ссылками, поэтому нельзя сослаться на имя переменной - можно только на данные на которые она указывает. Т.е. вся система имен переменных работает как файлы в юниксах - все имена есть лишь ссылки на реальные данные и невозможно сослаться на само имя.
Это всё что я выделил из PHP чтобы на нём программить по сравнению с Perl.
Предлагаю выпустить книгу "1000 и один совет от найтмареза как добиться успеха в жизни"
Тема в архиве.