# Компьютеры, телекоммуникации, ПО... > Программирование >  профессия "программист" - советы новичкам

## SЕRЁГГА

в связи с популярностью, востребованностью и оплачиваемостью профессии хочу стать программистом, сам в целом просто опытный пользователь, знаю азы паскаля и дэлфи, графич. редакторов, хочу выучить С++ и др. нужные вещи, люди, кто в этом разбираеца, подскажите что для этого нужно, и стоит ли браться. Хочу записаться в академию ШАГ.

----------


## Andreas

запишись - будет только польза, сам вряд ли выучишь, нужно очень большое желание

----------


## SЕRЁГГА

подскажите в каком направлении лучше развиваться, какой язык наиболее популярен и востребован, за кем будущее?

----------


## Andreas

за чем будущее - а хрен его знает
еще 5-7 лет назад все говорили что Java это полное фуфло, сейчас в основном только на ней и пишут
что будет актуально завтра - без понятия, да и мне все равно, какая разница под какой язык подстраиваться

----------


## SЕRЁГГА

вот к примеру зная С++ легко после этого выучить на его основе яву и остальное?

----------


## YOKO

> вот к примеру зная С++ легко после этого выучить на его основе яву и остальное?


 Так, знаючи С++ ява здається таким собі "дежавю".  :smileflag: 
А С# здається, що й вчити не треба, такий він інтиїтивний та простий.
С++ дуже складний (як на мою думку) але після нього вже нічого не страшно. Раджу рухатися у цьому напрямку - С++ та .Net

----------


## valheru

> вот к примеру зная С++ легко после этого выучить на его основе яву и остальное?


 Учите сразу Java лучше.
C++ - очень сложный язык. Я не верю, что за 2 года в "Шаге" можно его выучить на приемлемом уровне. Боюсь, что новичку к тому времени трудно будет найти работу. Область применения этого языка сужается. Практически сейчас уже редко на нем дают писать кому-то, кто по уровню ниже senior developer.
Java еще долго будет востребована. Если у тебя есть высшее образование по другой специальности, работу найти будет не сложно даже после "Шага".

----------


## EugeneX9

> Учите сразу Java лучше.
> C++ - очень сложный язык.


 Да C++ сложный как язык, зато зная его можно наниматься на работу.
Java проще, но проcто знать сам язык мало, нужно знать множество различных технологий чтобы получить работу.




> Я не верю, что за 2 года в "Шаге" можно его выучить на приемлемом уровне.


 Если есть желание, то можно.

----------


## valheru

> Да C++ сложный как язык, зато зная его можно наниматься на работу.
> Java проще, но проcто знать сам язык мало, нужно знать множество различных технологий чтобы получить работу.


 Для програмирования на С++ тоже надо знать различные технологии. API как минимум одной ОС, например.




> Если есть желание, то можно.


 Мало времени, мало. Для junior достаточно, конечно, но кому нужны junior на C++?

----------


## EugeneX9

> Для програмирования на С++ тоже надо знать различные технологии. API как минимум одной ОС, например.


 Думаю те кто ищет программеров под QNX  знания "API как минимум одной ОС" не очень волнует.




> Мало времени, мало. Для junior достаточно, конечно, но кому нужны junior на C++?


 Ну для java они тоже не нужны, но растить поколение надо, вот и берут.

----------


## valheru

> Думаю те кто ищет программеров под QNX  знания "API как минимум одной ОС" не очень волнует.


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

----------


## THRESHE

Как по мне то С++ на курсах не выучишь

----------


## traveller

> Как по мне то С++ на курсах не выучишь


 язык можно выучить
а научиться правильно писать на С++ - жизни не хватит  :smileflag:

----------


## valheru

Ну почему, лет 10 достаточно. %)

----------


## EugeneX9

> Разумеется. Но это редкий случай.


 Очень редкий для Одессы случай :smileflag: . Самой маленькой ИТ фирме Одессы Люксофт этот случай как раз подходит.

----------


## valheru

До тех пор, пока у вас есть этот проект. Ничто не вечно.

----------


## lexar

> Как по мне то С++ на курсах не выучишь


 Это точно.
Я начинал с фортрана в институте.
С, С++, C#, VB, VBA и многое другое учил исключительно сам, не на курсах.
Впрочем, если есть бабки, то лучше на курсах -
там народ, там веселее.

----------


## lexar

> язык можно выучить
> а научиться правильно писать на С++ - жизни не хватит


 Мне хватило.
Писал и много. И работает.
Другое дело, что всех нюансов даже разработчики не помнят.
Так оно, в целом, только для интервью и надо.
Супер знания нужны для написания фреймворков и крутых библиотек.
А такое обычно по жизни пользуют а не пишут.

----------


## andreyka

Сколько нужно времени чтоб изучить правила шахмат - два часа
Сколько нужно времени чтоб науиться играть в шахматы - вся жизнь

Так же и с программированием.

----------


## traveller

> Мне хватило.
> Писал и много. И работает.


 Звучит очень самонадеянно. Пока сам себя не похвалишь...  :smileflag: 
а MFC и DirectX доказали, можно обойтись без супер знаний и писать фреймворки.

----------


## valheru

Попрошу птичку нашу не обижать.
MFC начинался, когда C++ был совсем другим языком.
Конечно, сейчас он убог, но в 1995 году выглядел очень круто.
К тому же нормального фреймворка для работы с OLE у Microsoft так и не появилось.

----------


## traveller

> Попрошу птичку нашу не обижать.
> MFC начинался, когда C++ был совсем другим языком.


 и каким же он был?  :smileflag: 
Я его тоже использовал и достаточно долго. Паттерн MVC в MFC реализован не очень удачно, контроллер так и не отделен от GUI,
кроме того часами сидеть с дебагером и блуждать по лабиринту сообщений в MFC приложении тоже не очень нравилось. 
Но это мое жесткое ИМХО, конечно  :smileflag:

----------


## lexar

> Звучит очень самонадеянно. Пока сам себя не похвалишь... 
> а MFC и DirectX доказали, можно обойтись без супер знаний и писать фреймворки.


 Самонадеянно, это когда  кто-то говорит: Я разработаю свой DirectX,
или свой MFC, или свой QT.
Если что-то сделано и работает, причем тут самонадеянность?


"а MFC и DirectX доказали, можно обойтись без супер знаний и писать фреймворки."

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

----------


## valheru

> и каким же он был?


 Ну, сравните реализации начала 90-х со стандартом.  :smileflag: 




> Паттерн MVC в MFC реализован не очень удачно, контроллер так и не отделен от GUI


 Я и не говорю, что там все хорошо. Просто предлагаю рассматривать в историческом контексте. Система Document-View для своего времени была большим шагом вперед. Сравните с некоторыми другими фреймворками (не будем тыкать пальцами), где все что угодно - или форма или контрол на форме.

----------


## traveller

> Самонадеянно, это когда  кто-то говорит: Я разработаю свой DirectX,
> или свой MFC, или свой QT.
> Если что-то сделано и работает, причем тут самонадеянность?
> 
> 
> "а MFC и DirectX доказали, можно обойтись без супер знаний и писать фреймворки."
> 
> Не супер-знаний, С++ - одна толстая книга.
> А супер - навыков.
> И не наезжайте на MFC, пока сами не написали то же, но лучше.


 К вопросу о самонадеяности. Я имел в виду Ваше утверждение о том, что Вы умеете правильно писать программы на С++ (т.е. круче Саттера или Меерса)

Второе, на MFC я не наезжал и не наезжаю. Писать что-то лучше не собираюсь. Я указал его конкретные недостатки с моей точки зрения, никак не претендующей на объективную (если это в Вашем понимании - "наехать", то тут ничего уже не поделать)

----------


## THRESHE

> Попрошу птичку нашу не обижать.
> MFC начинался, когда C++ был совсем другим языком.
> Конечно, сейчас он убог, но в 1995 году выглядел очень круто.
> К тому же нормального фреймворка для работы с OLE у Microsoft так и не появилось.


 Была уже Qt тогда вроде. Но наверняка не в таком виде как сейчас

----------


## Илья Царюк

Что-то у вас опять советы новичкам переросли в религиозный спор о том что лучше, что круче... Ну это я так, для оффтопу.

----------


## THRESHE

> Что-то у вас опять советы новичкам переросли в религиозный спор о том что лучше, что круче... Ну это я так, для оффтопу.


 Все как обычно  :smileflag:

----------


## gelgel

А кто за сколько времени научился пограммировать?

----------


## valheru

Очень смешной вопрос.
За 5 лет в институте + 9 лет работы.

----------


## Phoenixxe

> в связи с популярностью, востребованностью и оплачиваемостью профессии хочу стать программистом, сам в целом просто опытный пользователь, знаю азы паскаля и дэлфи, графич. редакторов, хочу выучить С++ и др. нужные вещи, люди, кто в этом разбираеца, подскажите что для этого нужно, и стоит ли браться. Хочу записаться в академию ШАГ.


 а чего душа то хочет?
различные направления - различные стили и методики
C# и Java похожи только в первое время, затем, по мере решения практических задач, приходит отрезвление  :smileflag:

----------


## lexar

> К вопросу о самонадеяности. Я имел в виду Ваше утверждение о том, что Вы умеете правильно писать программы на С++ (т.е. круче Саттера или Меерса)


 А я утверждал, что я пишу "круче Саттера или Меерса"?
Правильная программа - это программа, написанная в установленные сроки, с заданной функциональностью, достаточно понятная для 
последующего сопровождения и модификации,
с количеством багов, терпимым для юзеров.

Если вы способны на такое - вы нормальный программист
и пишите хорошо.

Если срываете один из пунктов - это уже плохо.

Или, по вашему, только Саттер, Меерс и Страуструп - это программисты
на С++, а остальные - погулять вышли?

----------


## Chev'yuk

А за скока времени в инсте изучаетсо С(не С++,и не С#!)?

----------


## Dobermann

Я бы на месте автора начал с явы или c#. Однако настоятельно советую если хватит сил - параллельно самому изучать C++ и ознакомиться с архитектурой ПК, ОС и бегло пройтись по ассемблеру для x86. Знание C/C++ даст более глубокую фундаментальную базу, даже если ты потом будешь писать только на .нет и/или яве.

А вообще - ценность програмиста сейчас в способности решать задачи (в  конечное время естественно) - так что будь готов постоянно изучать новые инструменты (языки, библиотеки и т.д.) - чем больше будешь знать - тем легче будет выбрать средство для решения конкретной задачии - ведь понятно, что в какой-то задаче ява лучше чем C++, где-то лучше С++, где-то вообще Perl/Php и т.д.

 :smileflag:

----------


## valheru

> А за скока времени в инсте изучаетсо С(не С++,и не С#!)?


 В институте учат программированию, а не языкам программирования. То есть, языки учат, конечно, потому что без этого теория мертва, но это не главное.

----------


## THRESHE

> Я бы на месте автора начал с явы или c#.


 Лучше начать со сложного, а потом уже переходить к более простым языкам. Они уже будут щелкаться как орешки  :smileflag:

----------


## Dobermann

> Лучше начать со сложного, а потом уже переходить к более простым языкам. Они уже будут щелкаться как орешки


 Тут не поспоришь, я тоже начал с Turbo C 1.0 в давные года и ассемблера, но сейчас другое время - ведь автор хочет сделать это своей профессией - и ему главное быстро начать делать реально оплачиваемые вещи. На яве и .нет он сможет сразу начать работать где-либо, порог вхождения для этих платформ достаточно низок. А вот после курсов C++ его точно никуда не возьмут, я бы не взял  :smileflag: 

Но например в свою команду я никогда не возьму человека знающего только java и/или .нет. Бэкграунд в виде C++ обязателен, так как этот язык развивает умение думать и делает специалиста классом выше. Так же само, не возьму и чистого php-шника, без бэкграунда на Perl по тем же причинам  :smileflag:  Все имхо.

----------


## lexar

> А за скока времени в инсте изучаетсо С(не С++,и не С#!)?


 В каком институте, на каком факультете, на какой специальности?

----------


## lexar

> Но например в свою команду я никогда не возьму человека знающего только java и/или .нет. Бэкграунд в виде C++ обязателен, так как этот язык развивает умение думать и делает специалиста классом выше.


 А подучить человека в своей команде слабо?  :smileflag:

----------


## Dobermann

> А подучить человека в своей команде слабо?


 Ну подучить не слабо, но такое могут себе позволить более-менее крупные компании, у которых на это есть определенные финансовые ресурсы. Мы же - всего лишь команда удаленных разработчиков, и тут нужно сразу в бой и сроки как правило - на "вчера"  :smileflag:

----------


## lexar

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


 Организуйте работу по процессу SCRUM. Само учиться будет

----------


## Chev'yuk

Политех, ФАВТ, прогер

----------


## Chev'yuk

Сколько часов специализации в неделю уделяетсо студенту политеха, ФАВТа, программеру?

----------


## valheru

Что такое специализация по-твоему?

----------


## Гай Монтего

> Сколько часов специализации в неделю уделяетсо студенту политеха, ФАВТа, программеру?


 Пилоты-спец, медики-спец... - генно модифицированные люди, для какой-либо специальности(с) С.Лукьяненко

Что именно иннтересует? Время по программе?

Чистых программистов нету там. Есть системное программирование(кафедра, а точнее как модно ныне называется инцтитут), на котором жестоко изнасилуют моск, но и знаний прибавится.
На КИСС тоже немножко программирования, которое предназначено скорее для упорядочивания знаний и привития определённых методов работы с информацией. Туда же, что гораздо проще заниматься схемотехникой, когда хоть немного разбираешся в программировании.

----------


## Chev'yuk

> Пилоты-спец, медики-спец... - генно модифицированные люди, для какой-либо специальности(с) С.Лукьяненко
> 
> Что именно иннтересует? Время по программе?
> 
> Чистых программистов нету там. Есть системное программирование(кафедра, а точнее как модно ныне называется инцтитут), на котором жестоко изнасилуют моск, но и знаний прибавится.
> На КИСС тоже немножко программирования, которое предназначено скорее для упорядочивания знаний и привития определённых методов работы с информацией. Туда же, что гораздо проще заниматься схемотехникой, когда хоть немного разбираешся в программировании.


 Системное

----------


## Chev'yuk

> Что такое специализация по-твоему?


 специализация- это не те предметы которые ваще не нужны в будуйщем.

----------


## valheru

Откуда это можно знать? Ты пойми, образование - это система знаний. Ничего лишнего нет.

----------


## Chev'yuk

У мня друг учитсо на юриста, вот нафига ему римское право?

----------


## valheru

> У мня друг учитсо на юриста, вот нафига ему римское право?


 Римское право - основа современного европейского права. Законы у нас могут меняться хоть каждый день, но основные принципы остаются неизменными. 

Самое ценное, чему тебя могут научить на ФАВТе - это умению думать.

----------


## Chev'yuk

Выучи коболь тоже история!

----------


## valheru

Чувак, Кнута программисту читать надо, не смотря на солидный возраст этой книги.

----------


## Chev'yuk

не ну все-таки есть такой предмет в ФАВТе как программирование?
если да то скажи сколько часов в неделю ет происходит.

----------


## Chev'yuk

Чо за Кнут? Расскажи поподробнее.

----------


## valheru

http://www.lib.ru/CTOTOR/KNUT/

----------


## Гай Монтего

> не ну все-таки есть такой предмет в ФАВТе как программирование?
> если да то скажи сколько часов в неделю ет происходит.


 какая разница в количестве часов. Главное. что тебе за туже пару успеют рассказать и ты это поймёшь и примешь.

----------


## Paragelmen

> не ну все-таки есть такой предмет в ФАВТе как программирование?
> если да то скажи сколько часов в неделю ет происходит.


 Учился на ФАВТе, кафедра системного программного обеспечения. По программированию - учили много языков, но каждый по-немногу  :smileflag: 
Асемблер, Паскаль, С/С++, VB, PL SQL. Но в политехе дают начальные знания по многим направлениям. Для того, что бы стать классным специалистом - нужно много заниматься самостоятельно. Работать, получать опыт. Вначале на небольшую зарплату.
Восстребованых специализаций много - java, php, delphi. Плюс базы данных - без них почти никак. На больших предприятиях обычно это Oracle. Хотя на начальном уровне можно просто учить SQL, не заморачиваясь под особенности той или иной СУБД.

----------


## THRESHE

> delphi


  Не видел ни одной вакансии !!!

----------


## MAxZ

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

п.с. 
имхо

----------


## Arseny

> в связи с популярностью, востребованностью и оплачиваемостью профессии хочу стать программистом, сам в целом просто опытный пользователь, знаю азы паскаля и дэлфи, графич. редакторов, хочу выучить С++ и др. нужные вещи, люди, кто в этом разбираеца, подскажите что для этого нужно, и стоит ли браться. Хочу записаться в академию ШАГ.


 Хочешь научиться, зачем тебе эта академия? Покупай книгу, и учись себе сам дома, устанавливай компилятор, и вперед! Сейчас в магазинах куча книг по языкам программирования и базам данных, можешь сам спокойно научиться. Есть хорошая серия книг "Библия пользователя" или "Библия программиста". ХОрошие толстые книги, и расписано там все хорошо. Я уже одну такую прочитал по PHP И MySQL, научился программировать на PHP, но серьезного сайта так пока и не создал  

А сейчас читаю по 3d Максу библию, тоже хорошая книга. 

В общем, мне эти курсы не нравятся, лучше самому учится. Открывай книгу и читай, когда тебе угодно! И еще очень важно - практика. 

Компы форевер, программирование форевер, компьютерные технологии форевер!

----------


## Chev'yuk

Заочно учитсо(сам по толстым книгам) - заочно женитсо!  :smileflag: 

Документ есть, а жены нет  :smileflag:

----------


## MAxZ

Chev'yuk, аналогия (приведение типа) не катит  :smileflag:

----------


## Arseny

> Заочно учитсо(сам по толстым книгам) - заочно женитсо! 
> 
> Документ есть, а жены нет


 Опять же у каждого человека свое мнение. Толстые книги - да, это еще не все, нужна еще практика

----------


## THRESHE

> Chev'yuk, аналогия (приведение типа)


 Точно нужно через dynamic_cast<>  :smileflag:

----------


## Paragelmen

> Не видел ни одной вакансии !!!


 Сам работаю на Delphi. И вакансии есть, может у тебя круг общения не тот.

----------


## THRESHE

> Сам работаю на Delphi. И вакансии есть, может у тебя круг общения не тот.


 Может быть...

----------


## FPGA

> Я бы на месте автора начал с явы или c#. Однако настоятельно советую если хватит сил - параллельно самому изучать C++ и ознакомиться с архитектурой ПК, ОС и *бегло пройтись по ассемблеру для x86*. Знание C/C++ даст более глубокую фундаментальную базу, даже если ты потом будешь писать только на .нет и/или яве.
> 
> А вообще - ценность програмиста сейчас в способности решать задачи (в  конечное время естественно) - так что будь готов постоянно изучать новые инструменты (языки, библиотеки и т.д.) - чем больше будешь знать - тем легче будет выбрать средство для решения конкретной задачии - ведь понятно, что в какой-то задаче ява лучше чем C++, где-то лучше С++, где-то вообще Perl/Php и т.д.


 Довелось недавно побывать на одной академической тусовке. Так вот там обсуждался вопрос относительно необходимости изучения студентами компьютерных специальностей ассемблера х86. Постановка вопроса была такова:
а) студенты не понимают, зачем это им надо;
б) когда мы (преподы) их мотивируем в этом вопросе (изучения ассемблера х86), студенты только улыбаются;
в) на этом где-то в Одессе (на Украине) программируют?

так может нам вообще изъять изучение ассемблера х86 из программы?

А каково ваше мнение? Должен ли студент компьютерщик обладать знаниями asm х86? 
И если, да, то какое место эти знания будут занимать в его профессиональном багаже?

----------


## Гай Монтего

> А каково ваше мнение? Должен ли студент компьютерщик обладать знаниями asm х86? 
> И если, да, то какое место эти знания будут занимать в его профессиональном багаже?


 1. Должен
2. Упрощение восприятия принципов архитектуры ЭВМ(собственно на наглядном примере).
ИМХО было бы лучше, чтобы нам(КИСС)
 это давали несколько посерьёзнее...

----------


## valheru

> Довелось недавно побывать на одной академической тусовке. Так вот там обсуждался вопрос относительно необходимости изучения студентами компьютерных специальностей ассемблера х86. Постановка вопроса была такова:
> а) студенты не понимают, зачем это им надо;
> б) когда мы (преподы) их мотивируем в этом вопросе (изучения ассемблера х86), студенты только улыбаются;


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




> в) на этом где-то в Одессе (на Украине) программируют?


 Практически нет. По крайней мере не на x86. Программирование на ассемблере ушло в embedded-системы, там свои процессоры. Раньше, помнится, на ФАВТе (КИСС) немного грузили ассемблером для i8051, что правильно.
Мне ассемблер за 10 лет пригодился несколько раз, но, в основном, не для того, чтобы что-то писать, а для отлавливания проблем в модулях без отладочной информации. Для этих же целей пришлось немного подучить PowerPC ассемблер. 
Писать на асме пришлось только однажды.
[/QUOTE]




> А каково ваше мнение? Должен ли студент компьютерщик обладать знаниями asm х86? 
> И если, да, то какое место эти знания будут занимать в его профессиональном багаже?


 Я считаю, что знание какого-либо ассемблера очень полезно, особенно для тех, кто собирается программировать на C/C++. Конечно, было бы лучше, если бы x86 ассемблер сдох вместе со своей ублюдочной архитектурой, но раз пока не сдыхает, лучше его знать, чем не знать.

----------


## THRESHE

> Практически нет. По крайней мере не на x86. Программирование на ассемблере ушло в embedded-системы, там свои процессоры.


 Только хотел написать  :smileflag: 
А вообще как по мне так учить его не нужно, а вот ознакомиться желательно.

Р.S. Теперь нам читают ассемблер AVR контроллеров. Муть ужасная 
А я то думал что после таскания окон на лекциях по ассемблеру x86 можно уже забыть о нем...

----------


## THRESHE

> Конечно, было бы лучше, если бы x86 ассемблер сдох вместе со своей ублюдочной архитектурой


 Слово в слово Подлегаев

----------


## homo ludens

хм, пусть мне программер, не знающий асссемблера объяснит такую вещь:



```
#include <stdint.h>

int main(void)
{
  int64_t x=0x8000000000000000LL;
  int64_t y= -1;
  int64_t z=x/y;
  return (int)z;
}
```

 компилим и запускаем программку на двух разных машинах - на 32-битном камне/ОС и на 64-битном.
И получаем очччень разные результаты. Для не знающих ассемблера.

А всего-то - простая арифметика, которая есть даже в джаве. 

int64_t можно заменить на long long, нужно именно 64-х битное число.
можно проверить и с 32-битным и 16-битным - на любителя.

----------


## Moveton

*homo ludens*, а при чём тут ассемблер-то? В жабе у тебя это скорее всего просто не откомпилируется из-за слишком большой константы. На C допустимые границы типов тоже декларированы, просто поведение не определено. Ну а что в C отовсюду торчат уши платформы (т.е. прежде всего компилятора, а не железа) - так это фича языка такая.

----------


## homo ludens

А при том, что проблемы возникают на уровне исполнения. Там где целочисленное деление будет выполняться одной командой ассемблера (на 64-х битных машинах) - там будет divide overflow. Там где архитектура этого не позволит и пройзойдет "софтовое" вычисление - разделится нормально.
Имхо это и на джаве должно проявляться, хотя здесь не проверял.



```
int main(void)
{
  int x=0x80000000;
  int y= -1;
  int a=x*y;    // all ok
  int z=x/y;     // divide overflow
  return z;
}
```

 В таком варианте вылет будет на обоих архитектурах.
А вот если сделать аналог на int16_t / short - то вылета нет.

Это еще к вопросу об ублюдочной архитектуре.

----------


## MAxZ

homo ludens, если бы это была такая актуальная проблема - всё бы о ней знали. имхо можно даже не фтыкать в подробности.

----------


## homo ludens

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

Я просто привел пример простейшего глюка, разобраться в котором без представления об ассемблере невозможно, можно только смотреть на экран с надписью "Floating point overflow" (! - в программе с целыми числами) и понимать свое бессилие перед компом. 

Причем потенциально эта ситуация может быть воспроизведена во многих языках высокого уровня. Сам правда не воспроизводил.

------------ добавил через несколько минут

проверил на perl - тоже вылетает. как и  следовало ожидать.

----------


## MAxZ

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

----------


## Dobermann

> Довелось недавно побывать на одной академической тусовке. Так вот там обсуждался вопрос относительно необходимости изучения студентами компьютерных специальностей ассемблера х86. Постановка вопроса была такова:
> а) студенты не понимают, зачем это им надо;
> б) когда мы (преподы) их мотивируем в этом вопросе (изучения ассемблера х86), студенты только улыбаются;
> в) на этом где-то в Одессе (на Украине) программируют?
> 
> так может нам вообще изъять изучение ассемблера х86 из программы?
> 
> А каково ваше мнение? Должен ли студент компьютерщик обладать знаниями asm х86? 
> И если, да, то какое место эти знания будут занимать в его профессиональном багаже?


 У меня возникает вопрос - вот человек решил изучать программирование. Ведь он не в уме будет программы писать, а для _конкретного_ аппаратного устройства (к примеру, архитектура i386). Для этого первое с чем он должен ознакомиться (имхо) - с программной моделью: процессор, память, прерывания, система команд - т.е. это база. Как можно говорить что человек "програмист" - если он даже не представляет ЧТО он там програмирует ?

Я считаю, что обзор архитектуры и ассемблера обязателен для изучения, причем в самом начале. Другой вопрос - что не нужно вдаваться в дебри,  и писать лабораторки на тему - прямое чтение с HDD через порты и DMA. Достаточно написания простейших програмок типа манипуляций с числами, поиск строк и т.д. - на 1-2 часа. 

Вобщем, пока мы программируем для x86, а не для процессоров, выполняющих байт-код MSIL или JVM - изучать платформу нужно, на уровне понимания.

А писать на чистом асме сейчас кроме низкоуровневых вещей, задач оптимизации и т.д. просто нет смысла, так как есть много разных инструменов, позволяющих решить задачу быстрее и с меньшим количеством ошибок. Но иметь представление КАК оно все работает на нижнем уровне - обязательно. Иначе все этим "программисты" - это как та толпа индусов, которые кроме рисования форм ничего не умеют  :smileflag: 

Если смотреть с другой стороны, то дефицит толковых программеров привел к тому, что среди _наемных_ специальностей тут одни из самых высоких зарплат

----------


## homo ludens

> ну может быть... просто мне как бы не приходилось никогда делить такие числа...


 я тоже специально ничего не искал и пример взял не из интернета. Моя программка, которая стабильно считала формулы со случайными числами на 32-хбитных компах начала регулярно вылетать на 64-х. Полез искать - и нашел вот такую "фичу".
Программка, которая все время делит случайные числа с проверкой на ноль будет вылетать так же. Так же как и программка, которая делит числа введенные в форме.




> Если смотреть с другой стороны, то дефицит толковых программеров привел к тому, что среди _наемных_ специальностей тут одни из самых высоких зарплат


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

Имхо сегодня завершается трансформация понятия программист.
Не так давно считалось, что программист - это человек из computer science с соответствующим образованием прикладного математика, считающий знание лямбда-исчисления обязательным. 
Сегодня это - просто инженер, пользующий рекомендованные авторитетами шаблоны программирования и рисующий GUI-формочки. 

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

----------


## THRESHE

Хотелось бы быть программистом по первому определению и разрабатывать инструментарий и.т.п Но пока чувствую себя именно вторым программистом    
(может потому что всего лишь 4 курс фавта ?)

----------


## Dobermann

> Зарплаты высокие потому что бум, мода и популярность. У строителей они бывали повыше при близкой квалификации. 
> Уйдет мода, люди перестанут платить деньги за софт, время жизни которого - год. Такое уже было в этой области.


 Люди всегда платили деньги за софт решающий их проблемы - и время жизни его никакого значения не имеет 

А насчет моды, это уже как раз не мода. Потребность в софте растет, сложность платформ растет, если бум и пройдет, то не в нашей жизни и не в жизни наших детей точно  :smileflag: 

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

----------


## Moveton

> Я считаю, что обзор архитектуры и ассемблера обязателен для изучения, причем в самом начале. Другой вопрос - что не нужно вдаваться в дебри,  и писать лабораторки на тему - прямое чтение с HDD через порты и DMA. Достаточно написания простейших програмок типа манипуляций с числами, поиск строк и т.д. - на 1-2 часа. 
> 
> Вобщем, пока мы программируем для x86, а не для процессоров, выполняющих байт-код MSIL или JVM - изучать платформу нужно, на уровне понимания.


 А у меня вот проект работает на туевой хуче железа. Большей частью жаба, но есть и C++. И я, о ужас, до сих не знаю, какая там система команд на SPARC или s/390. JRE/libc работает согласно спеков и замечательно. Просто не нужно делать невалидные вещи относительно стандартов (засовывать в переменные числа шире их диапазона в том числе). Вот особенности операционок и конкретных компиляторов вылазят местами.

----------


## lexar

> А у меня вот проект работает на туевой хуче железа. Большей частью жаба, но есть и C++. И я, о ужас, до сих не знаю, какая там система команд на SPARC или s/390. JRE/libc работает согласно спеков и замечательно. Просто не нужно делать невалидные вещи относительно стандартов (засовывать в переменные числа шире их диапазона в том числе). Вот особенности операционок и конкретных компиляторов вылазят местами.


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

----------


## Moveton

*lexar*, не спорю, чем больше знаешь, тем лучше. Но нельзя объять необъятное. А знание системы команд проца при наличии на платформе обёрток более высокого уровня (вот на МК-61 не было ) всё же не более, чем греет душу. А на мультиплатформенном софте оно даже где-то опасно, потому что попытки оптимизации под низкоуровневые вещи на одной платформе чреваты обратным эффектом на других.

----------


## SZA

> Хотелось бы быть программистом .. Но пока чувствую..(может потому что всего лишь 4 курс фавта ?)


 А что уровень программирования сейчас "в курсах ФАВТа" исчисляется?  :smileflag: 
Программист такое же широкое понятие, как и "строитель", "врач". Понятно, да? Можно в поликлиннике слушать пенсионеров и бумажки выписывать, а можно микрохирургию на мозге выполнять.

Итак, вслед за выбором профессии "программист", нужно выполнить еще много выборов - программист чего и где, как глубоко и как надолго  :smileflag: 
Не стоит забывать, что все профессии важны и все професссии нужны, а программисты пахнут обычно.  :smileflag:

----------


## THRESHE

Ну про курс фавта я написал чтоб можно было примерно оценить мой возраст и опыт  :smileflag:  А так я уже давно работаю причем пишу для 2х платформ используя коммерческую библиотеку с моего аватара и получаю неплохие деньги (как по мне  :smileflag:  ). Но все же чувствую что мне не хватает чего то... Может опыта ?

----------


## Newton

а что это за библиотека у Вас на аватаре?

----------


## neoweb

> а что это за библиотека у Вас на аватаре?


 http://trolltech.com/products/qt

----------


## andreyka

> Довелось недавно побывать на одной академической тусовке. Так вот там обсуждался вопрос относительно необходимости изучения студентами компьютерных специальностей ассемблера х86. Постановка вопроса была такова:
> а) студенты не понимают, зачем это им надо;
> б) когда мы (преподы) их мотивируем в этом вопросе (изучения ассемблера х86), студенты только улыбаются;
> в) на этом где-то в Одессе (на Украине) программируют?
> 
> так может нам вообще изъять изучение ассемблера х86 из программы?
> 
> А каково ваше мнение? Должен ли студент компьютерщик обладать знаниями asm х86? 
> И если, да, то какое место эти знания будут занимать в его профессиональном багаже?


 
a) Студенты ничего никогда не понимают, потому и студенты  :smileflag: 
б) Мотивация неправильная.
в) На этом не программируют а используют там, где ЯВУ не проходит.
Пример - операции с int, разрядность которого не помещается в регистры и не поддерживается ЯВУ.

Студент "компьютерщик" не звучит  :smileflag: 

По знаниям - будет понимать что такое понитеры, границы и как не допускать ляпов

----------


## lexar

> Ну про курс фавта я написал чтоб можно было примерно оценить мой возраст и опыт  А так я уже давно работаю причем пишу для 2х платформ используя коммерческую библиотеку с моего аватара и получаю неплохие деньги (как по мне  ). Но все же чувствую что мне не хватает чего то... Может опыта ?


 Или любви  :smileflag:

----------


## Dimash

Я учился в Шаге постоянно (курсые разные по дизайну-прогруммингу) потом даже на полустационар записался. Не выдержал ничего....  Первую половину толк, а потом деградация. Админов там хороших готовят, их плохих готовить тяжело, потому что там все четко. 

Дизайнеры из шага - это смерть. 
Программеры из шага - нормуль.

Я тебе советую идти в Шаг на курсы PHP, это достаточно легий язык. Поймешь саму суть, а потом можешь легко учить любые другие языки. 


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

----------


## Suicide

> Ps. Главное учись не на домашних заданиях, а на своем каком-то проекте - тогда будет толк.


 а где взять этот самый проект ? коммерческий никто не даст без опыта работы а своё что нибудь фантазии не хватает придумать (

----------


## Moveton

А чего его придумывать? Некоммерческих полный sourceforge. А на каком-нить eCo Labs даже денег немножко дадут.

----------


## ZSunny

> А у меня вот проект работает на туевой хуче железа. Большей частью жаба, но есть и C++. И я, о ужас, до сих не знаю, какая там система команд на SPARC или s/390. JRE/libc работает согласно спеков и замечательно. Просто не нужно делать невалидные вещи относительно стандартов (засовывать в переменные числа шире их диапазона в том числе). Вот особенности операционок и конкретных компиляторов вылазят местами.


 На 99% согласен. На то она и виртуальная машина, чтобы не прикладной программист не обязан был знать, где она работает. В оставшемся 1% случаев придется вспоминать то, о чем неоднократно говорил Воеводин-старший - совместное исследование алгоритмов и аппаратуры.
А вообще - мое личное IMHO - если говорить о ВУЗах, то студентам по большому счету нужно преподавать и ассемблер, и C++, и Java, и Lisp, и SQL. Язык - не более чем инструмент, который должен быть адекватен задаче, и при понятном упоре на C++, Java, C# нужно дать и общее представление о других языках. Но на практике, если так делать, для 60% прослушавших подобный набор курсов получается ситуация "окончательно порвав с математикой, он едва усвоил начала физики".

----------


## lexar

> а где взять этот самый проект ? коммерческий никто не даст без опыта работы а своё что нибудь фантазии не хватает придумать (


 Дадут.
Если диплом и круто по знаниям - дадут.
Я знаю в Люксофте несколько выпускников прямо со скамьи,
без всякого опыта.
Просто толковые юниоры с хорошим потенциалом.
А так же знаю в Камоде - он сразу после четвертого устроился.
А так же знаю в Компьютерных Системах девченка джавером еще четвертый не окончила.
Ум, терпение, знания всегда в цене.

----------


## Pulver

Насчет диплома...я в етом году заканчиваю колледж инф сист и техн(в Киеве на львовской площади) по специальности програмист, и хотелось бы продолжить обучаться по етой же теме. Можете посоветовать откуда выходят толковые специалисты?

----------


## andreyka

Из контор в которых работают с крутыми проектами "за еду"  :smileflag:

----------


## Pulver

Я думаю што слишком мало знаю для ЛЮБОЙ конторы, включая товарищескую "за еду". 

Нас научили азам паскаля, азам Делфи(Заставили делать курсовую, с подработками 4 курсовые) и пытаются учить С++ Билдер(в смысле дали книгу с тремя командами и учитекак хотите, пробуем но туго идет зараза) и за оставшиеся 2-3 месяца должны выучить Ассемблеру(хоть азам) + немного про архитектуру компбютеров в общем а также принципы построения проектов. 

На етом знания оканчиваются, мне етого откровенно мало потому и спрашиваю...

Да, и еще, подскажите пожалуста што лучше учить - С++ или С++ билдер, я так понял шо ето чуть ли не разные языки(приходилось писать и на том и на том)

----------


## lexar

> Да, и еще, подскажите пожалуста што лучше учить - С++ или С++ билдер, я так понял шо ето чуть ли не разные языки(приходилось писать и на том и на том)


 Да, колобок, укатала тебя жизнь!
С++ - это язык, билдер - это интегрированная среда господина Багленда 
Что лучше: самолет или слон? - Вопрос из этой серии.
Если писать под винды - лучше осваивать вижуал студию мелкомягких.
Под линукс - свои среды, типа KDE, или просто в командной строке.
Не жди, пока тебя кто-то чему-то научит - это утопия.
Поймал хорошего препода - тяни знания.
Но учись сам. Есть книги, есть интернет, есть форумы,
есть открытые исходники. Можно приткнуться в какую-нибудь контору
за маленькие деньги, и т.п.
И пиши, главное - писать.
Программирование, как танцы и плаванье - по книжкам не выучишь.
Язык можно кое-как выучить, но программировать не сможешь.
Практика, практика, практика!
Задачки, проекты ...

----------


## Pulver

Спасиба, попробую последовать хорошему совету, а выражение нащет танцев попытаюсь запомнить

----------


## Ryogo

> а где взять этот самый проект ? коммерческий никто не даст без опыта работы а своё что нибудь фантазии не хватает придумать (


 а у тебя никогда не возникало желания при работе с каким-нибудь open-source софтом дописать чего-нибудь, чего не хватает конкретно тебе ?) тоже кстати довольно мощный толчек, если конечно сумеешь заставить себя сесть за исходник )
да и кстати, насчет коммерческого - за деньги не дадут, а вот, если просто хочешь для себя потренироваться, то думаю проблем не будет .




> А чего его придумывать? Некоммерческих полный sourceforge. А на каком-нить eCo Labs даже денег немножко дадут.


 огромное спасибо за ссылочку ) оч заинтересовало )

----------


## Moveton

*Ryogo*, да там весёлое такое место для альтернативно мыслящих за деньги. Ну и просто весёлое тоже.

----------


## Ryogo

> *Ryogo*, да там весёлое такое место для альтернативно мыслящих за деньги. Ну и просто весёлое тоже.


 Я заметил ) Но, блин, програмировать под OS/2 - это нечто (:

----------


## Moveton

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

----------


## Ryogo

> *Ryogo*, между прочим под неё сейчас существует очень много проектов и нужных задач. От вышеупомянутых бантиков, до портирования свежих JRE и частичного переписывания системного ядра. Правда денег много не дадут, но уникального опыта будет выше крыши.


 Да вот как-раз это и стремает, что опыт уж очень уникальный, а на работе всё же чаще нужен более привычный опыт =)

----------


## Boo-Boo

а где можно устроится работать "за еду"?
знаю по чуть-чуть с++ и с#, азы assemblera. могу подучить при надобности.

----------


## Chevyk

вот все говорят "за еду", эт блин сколько?

----------


## Alextch

> вот все говорят "за еду", эт блин сколько?


 ну чтоб на черную икру и шампунь"Crystal" хватало))

----------


## andreyka

> а где можно устроится работать "за еду"?
> знаю по чуть-чуть с++ и с#, азы assemblera. могу подучить при надобности.


 Строителем, слесарем или электриком - все эти специальности очень требуемы

----------


## Chevyk

СКОЛЬКО?!

----------


## Apple

Есть тут кто-нибудь, кто может дать частные уроки по С++?

----------


## THRESHE

> СКОЛЬКО?!


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

Вас ребята я хорошо понимаю - сам такой был  Но я бы поступил именно так  :smileflag:

----------


## Chevyk

> Лично я без опыта работал бы бесплатно.


 через некоторое время ты бы кони двинул от голода
зы и все-таки "за еду" это сколько?

----------


## MAxZ

Boo-Boo, сколько у вас на еду уходит?

----------


## THRESHE

> через некоторое время ты бы кони двинул от голода
> зы и все-таки "за еду" это сколько?


 Как видишь - не двинул  :smileflag:

----------


## Chevyk

> Как видишь - не двинул


 научи меня не есть

----------


## Boo-Boo

MAxZ, ну это ведь образно)
выше писали, что вообще бесплатно нужно
я все таки так не хочу) так никакого стимула не будет
просто какую-нибудь символическую плату, любую, например, чтоб хватало на мороженное в конце дня)
чтоб с чего-то начать
только я учусь в первой половине дня

----------


## Chevyk

да если бы я мог не есть и на транспорт не тратится, то я бы на работе за опыт бы и работал

----------


## Apple

Кто-нибудь научите, как устроится на работу после дикретного отпуска затянувшегося. Чувствую, что учить все нужно по-новой, что учить?? по какой литературе? подскажите, пожалуйста.

----------


## MAxZ

рассылайте просто резюме

----------


## anonymous.od

Посоветуйте пожалуйста литературу по Java, а то её в интернете тьма тьмущая и какбы хочется спросить совета с чего лучше начинать?

----------


## rооt

ИМХО за еду без опыта 200-250 где-то так... сейчас.

----------


## alex_od_

> ИМХО за еду без опыта 200-250 где-то так... сейчас.


 Гы-Гы, а с опытом 400-500.

----------


## Chevyk

> ИМХО за еду без опыта 200-250 где-то так... сейчас.


 я готов, заберите меня, кто-нибудь, я хочу работать!

----------


## Boo-Boo

за 200 гривен)

----------


## rооt

> я готов, заберите меня, кто-нибудь, я хочу работать!


 Фриланс и сайты трудоустройств вам в помощь  :smileflag:

----------


## rооt

> за 200 гривен)


 Работая программистом как-то уже привык, что цены указаные до 2000 это скорей всего доллары

----------


## MAxZ

> за 200 гривен)


 а что ты умеешь?

----------


## Chevyk

> Фриланс и сайты трудоустройств вам в помощь


 какой фриланс, если опыта нет, взять работу и не уложиться в срок запнувшись на чем-то?

----------


## Fallout

2 Chevyk:
В чем вопрос: в отсутствии навыков или опыта?

----------


## MAxZ

> какой фриланс, если опыта нет, взять работу и не уложиться в срок запнувшись на чем-то?


 сделай что-нибудь для себя.
или спроси кому какую утилиту хотелось бы.
напиши утилиту. потом наворачивай её.
потом будешь показывать это как опыт работы.

----------


## Boo-Boo

> а что ты умеешь?


 Вы спрашиваете для интереса или есть какие-то предложения?
я знаю С++, С# на том уровне, на каком его знают студенты мехмата

----------


## Fallout

> я знаю С++, С# на том уровне, на каком его знают студенты мехмата


 Знают в среднем? Этого мало даже для старта, особо никто не захочет возится с обучением.

----------


## rооt

> ...
> я знаю С++, С# на том уровне, на каком его знают студенты мехмата


 Мало знать синтаксис, нужно еще фреймворки.

----------


## Пилигрим

> Вы спрашиваете для интереса или есть какие-то предложения?
> я знаю С++, С# на том уровне, на каком его знают студенты мехмата


 Стденты мехмата, как и любого другого (одесского) вуза, которые НЕ подрабатывают (хотя бы за еду), НЕ знают С, С++, С, Java ... даже на среднем уровне.




> Мало знать синтаксис, нужно еще фреймворки.


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

----------


## rооt

> какой фриланс, если опыта нет, взять работу и не уложиться в срок запнувшись на чем-то?


 Возмите проект, загуглите, просмотрите подсказки оцените документацию по вашему заданию и приступайте в 3 срока дольше в 10 рас дешевле.

----------


## Chevyk

> 2 Chevyk:
> В чем вопрос: в отсутствии навыков или опыта?


 опыта, мне нужны пинки и подзатыльники вовремя

----------


## Fallout

> опыта, мне нужны пинки и подзатыльники вовремя


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

----------


## MAxZ

> Вы спрашиваете для интереса или есть какие-то предложения?
> я знаю С++, С# на том уровне, на каком его знают студенты мехмата


 ммм... понятно. интересует Java  :smileflag:

----------


## Яр

Свои рассуждения, которые могут оказаться полезным начинающим и просто улыбнуть опытных, я изложил в статье Пара мыслей о «становлении программистом». Welcome ;)

----------


## Atatakai_Neko

Всем добрый день!
Не сочтите за шутку или невежество, но прошу помощи в смешном деле. Суть вот в чём, программировать люблю и отчасти умею(Java в нынешнее время). Но проблема в том, что обучаюсь быстрее на практике(нет ну теорию я тоже читаю, без неё ведь никуда), и тут ступор. Хочется что-то писать, но не знаю что. Для себя писать мелкие програмульки не вижу смысла, вклиниваться в чужие проекты(типа SourceForge) так же нет большого желания. Поэтому, прошу сдешних сеньёров или мидлов подсказать, где взять интересную задачку. Может у кого есть опыт обучения джуников и зданий для их обучения, буду очень признателен.

----------


## victor_im

> вот к примеру зная С++ легко после этого выучить на его основе яву и остальное?


 Java гораздо легче чем С++

а еще учите ассемблер! Ж-)
программировать на нем вряд ли придется (только в очень узкоспециализированных областях).
но для понимания как работает машина на низком уровне, это важно.

----------


## 18-я весна

> где взять интересную задачку


 На сколько я понял вы хотите обучаться а зарабатывать - следующим этапом.
В этом случае можно поступить так:
Регистрируетесь на нескольких фриланс-сайтах (типа Elance или Rentacoder). Просматриваете ленты проектов по вашей тематике, находите интересный проект и кодируете его.
Обычно на предварительный сбор заявок выделяется не меньше двух недель. 
За это время вполне можно сделать как минимум прототип а то и весь проект реализовать.
Поэтому вместе с заявкой на участие в проекте предоставляете уже готовый прототип или демку (без исходников).
Как минимум это вам дает возможность поработать над реальной задачей, как максимум вашу заявку примут и вы еще и деньги заработаете, да и обратная связь от заказчика тоже плюс в обучении.

----------

