Tuesday, March 5, 2013

Какой язык изучать и почему не схх?

Многие товарищи, что хотят начать изучать программирование, долго выбирают язык, технологию, платформу. Долго думают, а правильно ли они поступают выбрав cxx/Java/C$/something else. Затем долго расспрашивают знакомых программистов, читают форумы, собираются с духом, поступают в университет на специальность включающую программирование, идут на работу связанную с изученной технологией... И начинают сомневаться в правильности сделанного выбора.

В этой статье jsonmez очень хорошо описал почему не стоит выбирать схх(ещё один вариант написания C++).

"Ну и что? Очередная статья ни о чём..." - подумаете вы.

Статья очередная, но не бесполезная. В ней написаны 36 вопросов, которые, по моему мнению, очень даже помогают оценить ваши знания в сфере схх. Либо хотя бы понять к чему стремиться, если вы всё же решились изучать "самый сложный язык с ООП".

Можно мысленно разбить схх на уровни по сложности задач.

1ый уровень: высокоуровневые задачи, такие как ввод, вывод данных и сообщений, работа с составными частями системы, работа с библиотеками, оптимизация на уровне логики.
2ой уровень: работа с железом через драйвера, посылка сообщений железу напрямую, в обход системы, работа с API системы.
3ий уровень: низкоуровневая оптимизация программы с применением inline, запечатыванием operator= и copy constructor, оптимизация выделения памяти через placement new, изучение работы компилятора для ускорения работы программы и тп.

Вопросы из статьи относятся в основном к 3ьему уровню. Можете проверить себя и доучить неизвестное вам.

И в конце небольшая хохма. Мой друг работает в большой конторе в Минске и получает что-то в около 600$. За спиной у него около года Java. Я же подался в indie game dev. Заодно подрабатываю в институте проблем информатики за 300$. Я занимаюсь схх 4 года, уже 5ый идёт. Я знаю ответы на все 36 вопросов.

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