Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Как стать программистом C++?


Автор: WhKitten 24.11.2010, 11:07
Как выучиться на программиста C++ и что, нужно знать, чтобы устроится на работу программистом C++. Впринципе требования конечно можно понять из объявления работодателей, но всё же хочу узнать мнение профессиональных программистов на этот счёт.

Собственно, хочу устроится на работу программистом C++, до этого немного писал программы на Delphi, написал в колледже дипломную работу, связанную с программированием. Потом понял, что Delphi это всё же не то и стал учить C++. С++ стал учить по книге Бьёрна Страуструпа "Язык программирования C++". На сколько я понимаю, что если я прочту эту книгу и выполню все задания в ней, то можно сказать, что я знаю C++ и STL, но программистом работать всё ещё не могу так как не знаю библиотек и специфичных технологий? Т.е если потом освоить ещё какую-нибудь часто используемую библиотеку, например Qt или MFC, например по книге Джоржа Шеферда "Программирование на Visual C++ .NET", то можно устраиваться на работу? Или я всё же, что-то упустил?

Как Вы учились на программиста? Просто получили соответсвующее образование в ВУЗе (ИМХО врят ли это будет достаточно)? Или всё же учили язык в большей части самостоятельно? Какие книги посоветуете прочитать? Что минимум надо знать, какие книги прочитать, чтобы можно было легко устроится на работу программистом? Как и где лучше начать карьеру программиста?
Заранее спасибо за ответ на мой вопрос.

Автор: bsa 24.11.2010, 12:37
WhKitten, интересно, как ты собираешься учить Qt по "книге Джоржа Шеферда "Программирование на Visual C++ .NET""? .Net это вообще другая технология и другой язык (C++/CLI и C#).
Теоретических знаний недостаточно. Единственное, на что можно претендовать, это на самую низкооплачиваемую должность кодера (это когда дают четкое задание и тебе нужно его выполнить). Через некоторое время дорастешь до настоящего программиста. К сожалению, язык С++ невозможно выучить по книгам - нужно несколько лет практики.

Добавлено через 5 минут и 17 секунд
Изучал basic и pascal в школе + ассемблер дома, затем С в институте + С++ дома (и то, тот вариант, что зовется "Си с классами"). Затем работал 5 лет на ассемблере, дошел до ведущего программиста. Под новый проект взяли С++ программиста, от него узнал о существовании STL и boost. Начал самостоятельное их освоение... Прошло три года с тех пор. И я могу сказать, что я хорошо (не отлично!) знаю STL и удовлетворительно boost.
Ну что, еще готов изучать С++?  smile 

Автор: kemiisto 24.11.2010, 12:43
Цитата(WhKitten @  24.11.2010,  09:07 Найти цитируемый пост)
Потом понял, что Delphi это всё же не то и стал учить C++.

Плачу горькими слезами. Да, C++ - самое то! smile 

Цитата(WhKitten @  24.11.2010,  09:07 Найти цитируемый пост)
С++ стал учить по книге Бьёрна Страуструпа "Язык программирования C++". На сколько я понимаю, что если я прочту эту книгу и выполню все задания в ней, то можно сказать, что я знаю C++ и STL, но программистом работать всё ещё не могу так как не знаю библиотек и специфичных технологий? Т.е если потом освоить ещё какую-нибудь часто используемую библиотеку, например Qt или MFC, например по книге Джоржа Шеферда "Программирование на Visual C++ .NET", то можно устраиваться на работу? Или я всё же, что-то упустил?

Ты упистил всё. Алгоритмы, структуры данных, структурное программирования, ООАиП, всоременные модульные системы, ... Всё будет за бортом. Говнокодером ты станешь. Тысячи их. 

Автор: Леопольд 24.11.2010, 13:13
Цитата(kemiisto @  24.11.2010,  12:43 Найти цитируемый пост)
Плачу горькими слезами. Да, C++ - самое то! ...
Ты упистил всё. Алгоритмы, структуры данных, структурное программирования, ООАиП, всоременные модульные системы
Не пойму, при чём тут ЯП? ЯП, это инструмент, который лучше подходит для данной задачи. Т.е. он просто лучше приспосоbлен, в рамках задачи.

Цитата(kemiisto @  24.11.2010,  12:43 Найти цитируемый пост)
всоременные модульные системы
О чём речь?

Автор: WhKitten 24.11.2010, 13:21
Цитата(bsa @ 24.11.2010,  12:37)
WhKitten, интересно, как ты собираешься учить Qt по "книге Джоржа Шеферда "Программирование на Visual C++ .NET""? .Net это вообще другая технология и другой язык (C++/CLI и C#).

По книге Visual C++ .NET я собираюсь учить WinAPI и MFC. http://www.books.ru/contents?id=86712 судя по содержанию это не CLI и по первым главам тоже про CLI ничего нет. И язык там C++, а не C#. Разумеется Qt по этой книге я учить не собираюсь. Я думаю знание MFC важнее Qt, ну так Qt вроде хорошая документация идёт в QAssistant.
У Страуструпа есть практические задания и в книге "Visual C++ .NET" тоже подробно разбирается с примерами разработка Win32 приложения на C++. Или это не то?

Цитата
Плачу горькими слезами. Да, C++ - самое то! 

Вы что имеет ввиду? C++ слишком сложный язык чтоль по сравнению с Delphi, его никто выучить не может. Или что? Я не понял Ваше сообщение. Сейчас для меня уже очевидно, что с выбором C++ я не ошибся - это намного более удобный и практичный язык, а также более полезный в сравнении с Delphi. Ну эта тема не про сравнение Delphi с C++, т.е двух абсолютно разных вещей.

Цитата
Ты упистил всё. Алгоритмы, структуры данных, структурное программирования, ООАиП, всоременные модульные системы, ... Всё будет за бортом. Говнокодером ты станешь. Тысячи их.

#include <algorithm>
или Вы все алгоритмы сами пишите с нуля и библиотеки вообще не используете? Не всё конечно есть в стандартной библиотеке, но большинство то есть. К тому же всегда можно найти, как наилучшим образом сделать то, что нужно. Есть иные библиотеки, тот же boost.
По поводу структурного программирования: разве объектно-ориентированное программирование не более совершенный и удобный способ? Ну опять же тема не про это.

Т.е Вы хотите, сказать что выучится на программиста C++ вообще нельзя? Или нужно пять лет для этого учить ассемблер?
Странное какое-то отношение, если честно. smile 

Автор: A5uKa 24.11.2010, 13:24
Цитата

Потом понял, что Delphi это всё же не то

 smile  на пути правильном ты, друг мой
 smile  литературу не читай @ писать сразу начинай

Автор: Леопольд 24.11.2010, 13:26
Цитата(WhKitten @  24.11.2010,  13:21 Найти цитируемый пост)
я собираюсь учить WinAPI
Зачем? Только под винду программировать планируешь? С++ кросплатформенный язык. Не только у  Win есть Api. smile Почти для всего есть кросплатформенные оbёртки (bиbлиотеки типа boost: trhead asio). Если придётся углуbиться в определённую систему, тогда и ознакомишься с нужной частью её API.

Цитата(WhKitten @  24.11.2010,  13:21 Найти цитируемый пост)
MFC
smile  

Автор: azesmcar 24.11.2010, 13:29
Цитата(kemiisto @  24.11.2010,  12:43 Найти цитируемый пост)
Плачу горькими слезами. Да, C++ - самое то!  

Ну скажи что же самое то, для реальной работы? На рынке сегодня хорошо оплачиваются .NET, C++ и Java, что именно ты предлагаешь?

Цитата(WhKitten @  24.11.2010,  13:21 Найти цитируемый пост)
 думаю знание MFC важнее Qt

ошибаешься, MFC уже много лет как мертв.

Цитата(WhKitten @  24.11.2010,  13:21 Найти цитируемый пост)
Т.е Вы хотите, сказать что выучится на программиста C++ вообще нельзя?

Кто это говорил?

Цитата(A5uKa @  24.11.2010,  13:24 Найти цитируемый пост)
литературу не читай @ писать сразу начинай

дельный совет  smile

Цитата(WhKitten @  24.11.2010,  13:21 Найти цитируемый пост)
я собираюсь учить WinAPI

тоже не стоит, на практике применяется редко, а для глубоких знаний еще рановато, в основном ничего не поймешь. Через 2-3 года Рихтера почитай, этого будет достаточно.

Автор: Леопольд 24.11.2010, 13:35
Цитата(A5uKa @  24.11.2010,  13:24 Найти цитируемый пост)
литературу не читай @ писать сразу начинай 
Цитата(kemiisto @  24.11.2010,  12:43 Найти цитируемый пост)
Говнокодером ты станешь. Тысячи их.  
Прямой путь... smile

Автор: mrbrooks 24.11.2010, 13:38
Цитата(A5uKa @  24.11.2010,  13:24 Найти цитируемый пост)
литературу не читай @ писать сразу начинай 

это профанация.

Автор: WhKitten 24.11.2010, 13:45
Цитата(Леопольд @ 24.11.2010,  13:26)
Цитата(WhKitten @  24.11.2010,  13:21 Найти цитируемый пост)
я собираюсь учить WinAPI
Зачем? Только под винду программировать планируешь? С++ кросплатформенный язык. Не только у  Win есть Api. smile

Мне казалось, что начинающие программисты знающее MFC и основные виндовые технологии востребованее, чем начинающие программисты не знающие их, но знающие к примеру Qt. Понятное дело, что с использование Qt можно писать кроссплатформенный код, но мне кажется что всё же важнее знать MFC нежели Qt, особенно для начинающего программиста, поскольку Windows всё же доминирует. Я прекрасно понимаю, что писать различные сложные программы я сразу не смогу. Мне бы выучить тот минимум при котором, я мог бы устроится на какую-нибудь должность связанную с программированием, а дальше расти в этой области как программист C++. А потом, уже можно будет учить Qt... Или всё же лучше учить сразу Qt? Но разве можно стать программистом не зная WinAPI и основных виндовых технологий (MFC, OLE, COM, ActiveX)?

И еще у Стауструпа на мой взгляд хорошие практические задания. Например: "Определите класс, реализующий арифметику с произвольной точностью. Оттестируйте его вычислив факториал 1000." Вроде хорошее задание для начинающего программиста или всё же на Ваш взгляд слишком простое? Но я думаю, потом будут задания по сложнее - это начало книги фактически.

Автор: azesmcar 24.11.2010, 13:49
Цитата(WhKitten @  24.11.2010,  13:45 Найти цитируемый пост)
поскольку Windows всё же доминирует

Windows доминирует для desktop-а, а для desktop-а на C++ вообще сейчас редко пишут, C++ скоро плотно займет нишу низкоуровнего программирования, особенно с принятием нового стандарта.
Цитата(WhKitten @  24.11.2010,  13:45 Найти цитируемый пост)
Мне бы выучить тот минимум при котором, я мог бы устроится на какую-нибудь должность связанную с программированием, а дальше расти в этой области как программист C++. 

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

Автор: A5uKa 24.11.2010, 13:50
Цитата

Windows всё же доминирует

Всё ещё.

Цитата

Мне бы выучить тот минимум при котором, я мог бы устроится на какую-нибудь должность связанную с программированием, а дальше расти в этой области как программист C++.

Пиши калькулятор.

Цитата

Но разве можно стать программистом не зная WinAPI и основных виндовых технологий (MFC, OLE, COM, ActiveX)?

Можно

Автор: kemiisto 24.11.2010, 13:54
Цитата(azesmcar @  24.11.2010,  11:29 Найти цитируемый пост)
Ну скажи что же самое то, для реальной работы? На рынке сегодня хорошо оплачиваются .NET, C++ и Java, что именно ты предлагаешь?

Такое ощущение, что ты упрямо не хочешь читать сообщения. smile 

Я цитирую:
Цитата(WhKitten @  24.11.2010,  09:07 Найти цитируемый пост)
Как выучиться на программиста C++ и что, нужно знать, чтобы устроится на работу программистом C++.

Первое и очевидное замечание - учится надо на программиста, на не на программиста С++.
Второе, речь ведь об обучении. Причём явно о начальных этапах. Ибо только в этом случае будет желание (иррациональное) учить MFC. А ты сразу про бабло. Может он и программистом не станет, может пророчество майя сбудется, ... smile 
Третье. Никогда, НИКОГДА, при выборе технологии для изучения не ориентируйся на текущее состояние рынка. Учить надо базовые принципы, которые вряд ли изменятся в обозримом будущем. Если уж такое желание сразу "щупать" практические вещи - тогда cutting edge. Но уж никак не C++. Но cutting edge сейчас суров. Scala по сложности недалеко от ++, а для императивно мыслящего программиста может показаться и сложнее. Но есть и интересные разработки. http://cobra-language.com/, например. Очень много печенок искаропки.

Добавлено через 2 минуты и 20 секунд
Цитата(Леопольд @  24.11.2010,  11:13 Найти цитируемый пост)
О чём речь?

Современные модульные системы. Punto Switcher под Mac никак не хочет дружить с Google Chrome.
Это пощупать нужно.

Автор: Леопольд 24.11.2010, 14:03
Цитата(A5uKa @  24.11.2010,  13:50 Найти цитируемый пост)
(MFC, OLE, COM, ActiveX)
Это всё уже относится к конкретному проекту. Все ньюкамеры, оbычно проходят тренинг, прежде чем приступить к раbоте. Чем сложнее проект тем дольше тренинг. Как правило, этот тренинг выливается в то, что теbе выдают документацию по всему этому, и практическое задание. Знакомишься с документацией, иногда весьма bегло иногда вдумчиво, в попытке понять новую концепцию или аbстракцию. В нормальной конторе никто не дасть теbе bез пригляда ваять что попало.

На соbеседовании главное показать что достаточно умён и умеешь писать простой и понятный код на языке, который ты хорошо знаешь (т.е. грамотно и доступно выражать свои идеи в коде).

Добавлено через 5 минут и 49 секунд
Цитата(kemiisto @  24.11.2010,  13:54 Найти цитируемый пост)
Первое и очевидное замечание - учится надо на программиста, на не на программиста С++.
Цитата(kemiisto @  24.11.2010,  13:54 Найти цитируемый пост)
Учить надо базовые принципы, которые вряд ли изменятся в обозримом будущем.
Полностью согласен.

Но в пользу С++ можно сказать что в нём столько всего наворочено, что изучить после него другой промышленный язык не составит труда.

Автор: azesmcar 24.11.2010, 14:09
[*]
Цитата(kemiisto @  24.11.2010,  13:54 Найти цитируемый пост)
Такое ощущение, что ты упрямо не хочешь читать сообщения.  

Я то читаю, но не воспринимаю все буквально. Из текста ясно видно, что у человека цель - найти работу, ты говоришь, что C++ "не самое то", а что же "самое то"? Если сравнение шло с дельфи в контексте поиска работы, то полагаю, что дельфи
Цитата(WhKitten @  24.11.2010,  11:07 Найти цитируемый пост)
это всё же не то


Цитата(kemiisto @  24.11.2010,  13:54 Найти цитируемый пост)
Первое и очевидное замечание - учится надо на программиста, на не на программиста С++.

Верно, на программиста. Программист - это человек, который пишет программы, но программы пишут на каком нибудь яыке, это неизбежно и хочешь не хочешь а какой нибудь выбирать придеться. Я не говорю, что надо учить WinAPI или MFC, как раз наоборот, я писал
Цитата(azesmcar @  24.11.2010,  13:49 Найти цитируемый пост)
Учи какой нибудь востребованный язык, алгоритмы, структуры данных, ООП и патерны проектирования


Автор: Леопольд 24.11.2010, 14:12
Цитата(kemiisto @  24.11.2010,  13:54 Найти цитируемый пост)
Punto Switcher под Mac никак не хочет дружить с Google Chrome.
http://www.google.ru/#hl=ru&newwindow=1&biw=1177&bih=664&q=Punto+Switcher+%D0%BF%D0%BE%D0%B4+Mac+%D0%BD%D0%B8%D0%BA%D0%B0%D0%BA+%D0%BD%D0%B5+%D1%85%D0%BE%D1%87%D0%B5%D1%82+%D0%B4%D1%80%D1%83%D0%B6%D0%B8%D1%82%D1%8C+%D1%81+Google+Chrome.&aq=f&aqi=&aql=&oq=&gs_rfai=&fp=6b80d38ad031c95
чересчур прозрачный намёк, можно "потолще"?

Добавлено @ 14:17
WhKitten, когда ЯП выbран, bольшим плюсом является знание инструментария для раbоты с ним. Компилятор/Интерпертатор (очень важно знать, во что превращается твой код на этапе выполнения), деbаггер, тестинг, генератор документации и т.д.

Автор: WhKitten 24.11.2010, 14:40
Насколько я понял:
1. Не важно какой язык учить, главное учить программирование.
2. Windows API, MFC и другие виндовые технологии знать для устройства на работу Junior программистом не нужно. Qt тоже не обязательно или всё же лучше изучить?
3. Помимо языка программирования нужно прочитать книги про алгоритмы и проектирование ПО.
4. Изучение C# для desktop лучше, чем C++, который заточен на более низкий уровень.

По поводу C# и C++ мне всегда казалось, что C++ более полезный язык ввиду обилия библиотек, своей универсальности и проверенной временем востребованностью. А также, почитав Страуструпа понял, что это ещё и очень быстрый язык позволяющий писать, как низкоуровневый код, так и код более высокого уровня. К тому же на C++ можно писать кроссплатформенный код. На C# вроде тоже можно под mono, но как я понял будущее этих технологий мне представляется туманным. А C++ вроде кажется будет всегда востребованным и универсальным языком. Поэтому и хочу учить именно C++, хотя если честно привлекает больше именно программирование для desktop, нежели более низкие уровни.

По поводу алгоритмов я так понимаю надо прочитать четырёхтомник Кнута? А по поводу проектирования ПО, что посоветуете почитать?

Автор: azesmcar 24.11.2010, 14:51
Цитата(WhKitten @  24.11.2010,  14:40 Найти цитируемый пост)
1. Не важно какой язык учить, главное учить программирование.

Ну в принципе да..но учить BrainFuck тоже не дело. Желательно учить то, что потом пригодиться.

Цитата(WhKitten @  24.11.2010,  14:40 Найти цитируемый пост)
3. Помимо языка программирования нужно прочитать книги про алгоритмы и проектирование ПО.

Естественно, язык программирования - это всего лишь инструмент, с помощью которого ты диктуешь свои мысли компьютеру, но вместе с инструментом тебе нужны эти самые мысли smile 

Цитата(WhKitten @  24.11.2010,  14:40 Найти цитируемый пост)
4. Изучение C# для desktop лучше, чем C++, который заточен на более низкий уровень.

Да, если планируешь писать desktop и только под windows то лучше C#. Спроса намного больше.


Цитата(WhKitten @  24.11.2010,  14:40 Найти цитируемый пост)
По поводу C# и C++ мне всегда казалось, что C++ более полезный язык ввиду обилия библиотек, своей универсальности и проверенной временем востребованностью. 

Термин "полезный язык" мне лично непонятен, да и проверенность языка тоже понятие туманное.

Цитата(WhKitten @  24.11.2010,  14:40 Найти цитируемый пост)
А также, почитав Страуструпа понял, что это ещё и очень быстрый язык позволяющий писать, как низкоуровневый код, так и код более высокого уровня.

При разработке высокоуровневых приложений это низкоуровневость только мешает..и что значит "быстрый язык"?

Цитата(WhKitten @  24.11.2010,  14:40 Найти цитируемый пост)
А по поводу проектирования ПО, что посоветуете почитать? 

Не все сразу smile начни пока с простого.

Для начала изучи немного язык, циклы, операторы, структуры, функции, массивы, указатели...потом начинай решать задачи: списки, сортировки, поиск... итд (смотри в Центре помощи, там полно задач), а там видно будет.

Автор: bsa 24.11.2010, 15:49
Цитата(WhKitten @  24.11.2010,  15:40 Найти цитируемый пост)
Qt тоже не обязательно или всё же лучше изучить?

Для общего развития. Там почти все очень грамотно спроектировано.
Цитата(WhKitten @  24.11.2010,  15:40 Найти цитируемый пост)
По поводу алгоритмов я так понимаю надо прочитать четырёхтомник Кнута? А по поводу проектирования ПО, что посоветуете почитать?
В разделе для новичков есть прикрепленная тема "ответы на часто задаваемые вопросы". Почитай, там есть ответ на твой вопрос.

Автор: mimik 24.11.2010, 19:00
Цитата(kemiisto @  24.11.2010,  13:54 Найти цитируемый пост)
Очень много печенок искаропки.

a поконкретнее?

Цитата(kemiisto @  24.11.2010,  13:54 Найти цитируемый пост)
Но есть и интересные разработки. Cobra

Цитата

s = u.randomString(1000, 'a')
for c in s, assert c == 'a'

а как же Вирт, Oberon?

Автор: ufna 25.11.2010, 19:10
По-моему пофиг что учить и как учить, в том плане что должна быть ведущая цель, идея, мотивация. Просто быть "программистом" - нуу... не знаю. Какие программы ты хочешь писать? Что ты хочешь создавать? В какую область пойти? Зачем тебе это? Ключевые вопросы. 

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

Устраиваться на работу нужно тогда, когда ты можешь что-то делать. В какой-либо области. Может быть тебе нравится работать с железом, может быть - программировать интерфейс, может - базы данных и т.п. - все это ооочень разные вещи по необходимым умениям, нужен разный опыт и т.п.

Автор: baldina 25.11.2010, 19:50
Цитата(ufna @  25.11.2010,  19:10 Найти цитируемый пост)
Просто быть "программистом"

вполне адекватное желание. ну, нравится! помните: "как стать писателем? - если можете не писать, не пишите"

Автор: ufna 25.11.2010, 19:56
Нее, не надо путать теплое с мягким, я о другом. Когда творчество прет, вопросов "как учиться" не возникает - ты пишешь/рисуешь/поешь и т.п., потому что идет изнутри. То же самое здесь - прет быть кодером, да давно бы зарылся к кучу книжек и просто получал кайф от кодерства, как реализации своего творчества - да и тогда у тебя будет желание не просто кодить, а что-то кодить. А как только речь зашла о "как устроиться на работу С++ кодером", то вопрос аналога "как стать лабухом по ресторанам" - это процесс больше технический, чем творческий.

Автор: WhKitten 25.11.2010, 20:05
Цитата(ufna @  25.11.2010,  19:10 Найти цитируемый пост)
Какие программы ты хочешь писать?

Прикладные программы. Драйверы, низкоуровневые приложения, серверы писать не хочу. Т.е пока реально приложения предназначенные для решения какой-то определённой задачи на desktop'е. В том числе приложения взаимодействующие с базами данных к этой же категории отношу. Я так думаю это не самое сложное. Потом может можно и ещё что-то будет освоить. Как я понял C# лучше в этом плане, но не хочется учить технологию, которая только для Windows.

Цитата(ufna @  25.11.2010,  19:10 Найти цитируемый пост)
Зачем тебе это?

Считаю полезное уменение, написать программу которая тебе нужна. Пригодится не только на работе, но и дома. К тому же в плане карьеры, считаю что программистам есть куда расти. Да и просто нравится программировать.

Цитата(ufna @  25.11.2010,  19:10 Найти цитируемый пост)
Кнута точно рано читать, это очень серьезная книжка. 

По опыту, проще разобраться в непонятных вещах в одной серьёзной книжке, чем разбирать неинтересные и простые вещи в других и так не узнать про эти вещи из серьёзной книжки. 

Цитата(ufna @  25.11.2010,  19:10 Найти цитируемый пост)
Устраиваться на работу нужно тогда, когда ты можешь что-то делать.

Что-то делать я могу. Как я говорил, написал диплом на Delphi - прога работающая с базами данных, через ADO на 40000 строк кода. Недавно написал сетевое приложение GUI на Qt под Windows с использование boost::asio, совершенно ничего не зная не о boost, не о Qt (документация и примеры, а также куча howto рулят). Но всё таки чувствую, что программистом меня не возьмут, ибо сам чувствую что пишу код не оптимально и язык знаю плохо.

Сейчас изучаю C++ по книге Страуструпа и цель реально как можно быстрее найти работу. Что-то знаю, что-то нет и вот реально возникло желание узнать, что именно надо знать и выучить, чтобы устроится на работу программистом. И цель реально не учить программирование несколько лет, а устроится на работу программистом. Как я уже написал, некоторые знания имеются, как и диплом о высшем образовании по специальности информационные системы.

Автор: ufna 25.11.2010, 20:17
Кнут - это не "сложная книжка где все в одном", это другая парадигма. Тебе нужны в первую очередь прикладные алгоритмы, в декстопном софте в большинстве случаев алгоритмы уровня Кнута не понадобятся и тем более они не привязаны к языку - там далеко не сипипи рассматривается.

Вот реально, "живые алгоритмы" - это олимпиадные задачи для школьников 10-11 классов. Оптимизация памяти, скорости работы, поиск интересных решений - вот это главное. Ну и книгу по базовым алгоритмам, к примеру Томаса Кормена - очень рекомендую.

Для десктопа расклад такой. Устроиться на работу проще всего С# или сипипи с WinAPI, .NET, MFC. Си шарп нынче моден и для винды он реально удобен - на нем кодить можно очень быстро рабочие прикладные программы для нужд организаций. И не так сложен в освоении для начала работы. 

Есть Qt - обалденная вещь, с которой я работаю последние лет шесть. Но устроиться в офис будет посложнее гораздо.

Главное - общие принципы создания прикладного ПО, тогда вопрос языка и SDK становится вторичным. И тут реально большее значение имеют не алгоритмы математического плана, а проектирование программ, оптимизация их работы.

Страуструп сложен для обучения сипипи, имхо. Лучше Р.Лафоре, выполняя задания в книге, потом уже немного практики и затем Страуструп для закрепления.

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

Ну и можно посмотреть вакансии в твоем городе, посмотреть какие у них требования.

Добавлено через 12 минут и 58 секунд
Приведу пару примеров задач с реального собеседование на место С++ кодера в LG в Питере (устраивался мой знакомый)

Задача:
3 непрозрачные вазы. Известно, что в одной белые шарики, в другой черные шарики и в третьей смесь из белых и черных шариков. На вазах висят таблички с информацией, какие там шарики. Таблички не соответствуют содержимому. Как, достав шарик из любой одной вазы, развесить таблички правильно?

Задача 2:
лифт поднимается с 1 по 6 этаж за 30 секунд, за сколько он доедет с 1 до 12?


Вообще - задачи 6-7 класса в ЦДМО каком-нибудь. Главная суть - как голова работает, а остальное определят в испытательном сроке. 

Это "чтобы устроиться". Задачи могут быть более сложные, но часто проверяют именно логику, а где посерьезней - еще твое знание языка, дав задание написать примерно реализацию какой-нибудь задачи на алогритмическое мышление, или найти ошибку в листинге.

Автор: Леопольд 25.11.2010, 22:10
Знакомый в Intel устроился, интерном. Ему такую задачку задали.
Есть состав из вагонов, неизвестной длинны. Они зациклены. Можно ходить по вагонам, включать и выключать свет. Когда заходишь в вагон, свет уже может bыть включенным изначально. Надо посчитать длину состава.

Автор: borisbn 25.11.2010, 23:37
WhKitten, знание одного языка (или одной платформы - Windows) всегда накладывает ограничения на решения задачи (я бы даже сказал ЗАДАЧИ). Во главу угла всегда нужно ставить решение проблемы, а не инструмент, имеющийся в наличие. Как ты дамаешь, кто зарабатывает больше: электрик, у которого есть тестер, паяльник и пасатижи, или прораб, у которого есть электрик, плиточник, сатнехник и др.? Так вот, изучив (пусть даже в совершенстве) плюсы, ты станешь неплохим электриком, а изучив (пусть не в совершенстве, но, ессно, на уровне) плюсы, жава, шарп, питон, пиэйчпи; winAPI, stl, boost, Qt (моя любимая smile ), MFC (как там вставить иконку с зелёным человечком, которому бле..ть хочется ) ты станешь прорабом. 

Автор: ufna 25.11.2010, 23:41
Ну сильно распыляться тоже не стоит. Я на уровне ликбеза знаю много API и языков, но во все не суюсь - т.к. работая в своей специфике я набираю опыт, имя, и просто умею больше.

Но - начинать нужно именно с ликбезов, что есть что. Хочется сипипи и гуи проги - смотрим самые крупные либы, насколько они имеют будещее, возможности и т.п. и изучаем. А вот в офис - по другому немного, имхо. Я то фриланс по жизни.

Автор: bsa 25.11.2010, 23:46
WhKitten, ты лучше сходи на пару собеседований. Там и поймешь, что реально нужно работодателям. Если ты собеседование провалишь, это ничего не значит. Конечно, если у тебя в регионе есть только один работодатель, то тут сложнее. Не исключен такой вариант: твой нос не понравился твоему потенциальному начальнику. Или ты показался ему умней его.

Автор: ufna 25.11.2010, 23:54
Кстати да, совершенно согласен - нужно попробовать что такое собеседование и т.п. Часто компании берут "птенцов для выращивания", тем самым не требуя чего-то сверх, лишь голову на плечах и желание работать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)