muzshura
12:08:2007, 10:41
Вот все не могу выбрать, что мне изучать, так чтобы и самому было легко программы писать, и чтобы при поиске работы эти знания могли пригодиться. Пожалуйста как-то комментируйте свои ответы, то есть сразу ответьте на вопрос "почему?". Спасибо.
Для: muzshura
для начала скажи какие задачи?
European
12:08:2007, 13:51
Для: muzshura
Лучший язык тот, которым ты в совершенстве владеешь
Normann
13:08:2007, 20:58
Я не отец но своим опытом поделюсь. Я начал с VB, очень легкий язык, можно быстро написать реальную программу (но не любую), которая будет очень полезна и принесет большой денежный доход, быстрее чем на каком либо другом языке. Постепенно понял что с этим языком мне не осознать тонкостей программирования и он очень НЕ гибкий, и стал изучать C++. C++ самый сложный язык высокого уровня, но он самый лучший, на нем писали все отцы, и системы на нем написаны. Сегодня я отдаю предпочтение именно этому языку хоть и VB знаю до сих пор лучше (потому что C++ сложен, а VB прост). Еще начал понимать что для лучшего понимания лучше Ассемблер в добавок выучить и попрактиковать. Еще есть один язык который очень помогает, это Английский язык, поскольку самая лучшая справка написана именно на нем.
European
13:08:2007, 21:13
Интересно, почему так долго нет ребят из .NET UG team
Для:
NormannVB, C++, ASM. Ты уже на 3-м уровне сумрака.
Для:
muzshuraСогласен с Normann, начинать можно с VB, C# или с чистого C, что больше понравится, на уровне структурного программирования. Потом постепенно прокачиватся в сторону ООП и шаблонов.
Для:
EuropeanДумаешь, у нас должен быть рефлекс на слово VB?
European
13:08:2007, 21:38
Цитата(Pasha @ 14:08:2007, 00:26 )
Думаешь, у нас должен быть рефлекс на слово VB?

Да нет, просто некому C# расхваливать
Очень хорош Java. Во-первых, достаточно удобен, хотя и VB проще

, во-вторых кросс-платформенный, в-третьих, легко перейти на хардкорный C/C++.
IMHO, конечно.
Для:
muzshuraНа другом форуме просто пофлудил, а тут отвечу более по существу

Так вот, основы программирования (всякоразные базовые принципы и алгоритмы) можно изучать на любом процедурном языке. Я бы порекомендовал Pascal (сам с него начинал): достаточно прост в освоении и при этом позволяет получить все необходимые навыки. В принципе, ничто не мешает использовать в этой же роли Basic или С. Единственное, что лучше практиковаться на консольных приложениях, дабы на данном этапе не отвлекаться на вопросы создания графических интерфейсов.
Затем, не грех будет познакомиться с ASM и вообще постараться хотя бы приблизительно осознать принципы работы приложений на низком уровне (как происходит вызов процедур, что есть стек, переменная, как передаются параметры и т.п.). Возможно, увлечешься именно системынм программированием; в этом случае твой путь - ASM/C/C++.
Если системное программирование тебя не увлекло, ступай на следующий уровень - изучение ООП. Общие принципы опять-таки лучше усваивать на примере консольных приложений. Язык сойдет тоже почти любой, лишь бы поддерживал ООП: Delphi (да, он уже больше не Object Pascal), Java, C#.
Далее уже можно взяться за разные более продвинутые темы: создание пользовательских интерфейсов (не просто в визуальном редакторе компоненты разложить, а понять, как оно все в принципе устроено), работа с сетью, с базами данных (это вообще без вариантов - SQL обязан быть знаком каждому прикладному программисту

), создание веб-приложений.
Собственно, к этому моменту уже успеешь познакомиться с разными платформами и направлениями программерской мысли и сумеешь выбрать то, которое тебе больше по душе и которое в достаточной степени востребовано там, где ты планируешь искать работу.
Ну и наконец, последнее замечание: не следует рассматривать свой выбор в пользу той или иной платформы как приговор судьбы. В случае необходимости будет не так сложно переучиться с Delphi на .NET, с .NET на Java или наоборот. В конце концов, для разработчика главное - это аналитический склад ума, умение грамотно разложить задачу на составляющие и подобрать для них оптимальное решение, а уж освоение соответствующиего ЯП и сопутствующих библиотек - дело техники
Я неплохо знаю ВБ, чуть чуть знаю С++. В ВБ разочароволся. Что делать? Доучивать С++ или выбрать что то из новых языков? Тогда какой?
Цитата(Gamlet @ 23:08:2007, 13:10 )
В ВБ разочароволся
это почему? (просто интересно)
с++ нормальный выбор, но сам по себе язык ничего не значит, у него должно быть применение (во всех смыслах) и соответственно все вытекающее
Да я только сейчас серьёздно занялся переносом проги на другой компьютерю. Там с этим столько морроки (может знаешь как упростить) все активыксы, дллы. И есть желание перейти к невизуальному языку.
А вообще я бы выбрал современный язык, он проще и по возможностям выше.
Для:
GamletVB (VB.NET) - вполне современный язык. По содержанию современности примерно на уровне Java
Цитата
По содержанию современности примерно на уровне Java
сказанул...
Для:
KmetА как еще можно разделить языки на современные и несовременные? Только по содержанию современности

Что такое есть в Java, чего нет в VB.NET?
Цитата(Pasha @ 23:08:2007, 14:49 )

Для:
GamletVB (VB.NET) - вполне современный язык. По содержанию современности примерно на уровне Java

VB.NET - этот да, вполне современен и ООПен

Хотя я лично для .NET предпочитаю C# - он мне кажется каким-то более лаконичным и наглядным, что ли.
Что касается VB - в качестве самостоятельного иснтрумента разработки (т.е. не в качестве встроенного ЯП вроде VBA) он, ИМХО, анахронизм.
Для: Pasha
содержание современности это что? и каким образом по нему можно сранивать? и как выглядит топ 5 по этому параметру? =)
Цитата(Kmet @ 23:08:2007, 15:21 )
содержание современности это что? и каким образом по нему можно сранивать? и как выглядит топ 5 по этому параметру? =)
Что приводит нас к вопросу: что же такое современный ЯП, если VB - не современный.
Ребят, вы меня не поняли. Под современным языком я мею в виду язык 2 летней давности, но не 10 летней. Есть новые языки. У них легче синтаксис, и порой выше возможности. (Например DB в создании игр (знаю, что ДБ это редактор, а не язык)) Но их качество под вопросом.

Кстати, что такое С#?
А статья совсем не верна. С разрабатывался как мультиплатформенный язык, компанией людей с разным платформами и желанием писать проги. Java произошел не от С++!(он был основан на perl или что то вроде того) И очень важно заметить то, что Java особенно кросплатформен ибо его интерпритатор встроен в процессоры.
Цитата
Java особенно кросплатформен ибо его интерпритатор встроен в процессоры.
Это для меня откровение
Gamlet, может слышал про виртуальную машину Java?
Слышал. Но я исхожу не из домыслов а из исторических фактов. Интерпритатор в них встраивается начиная с 1 пента.
И вот вопрос что выбрать:
с++
Java
VC++.net
(Вообще, чем нетовские языки отличаются от просто визуальных)
Цитата(Gamlet @ 24:08:2007, 09:54 )
Слышал. Но я исхожу не из домыслов а из исторических фактов. Интерпритатор в них встраивается начиная с 1 пента.
Жжошь в каждом слове. Ты хоть примерно представляешь как работает Java и что такое JVM? Или как работает .net и что такое CLR? И вообще, чем интерпретация отличатеся от компиляции? Вот когда будешь представлять, сразу поймешь чем нетовские языки отличаются от остальных.
Цитата(Gamlet @ 23:08:2007, 21:19 )
Java особенно кросплатформен ибо его интерпритатор встроен в процессоры.
и ктож его туда?
Цитата(Gamlet @ 24:08:2007, 09:54 )
И вот вопрос что выбрать
vba
Цитата(Pasha @ 24:08:2007, 10:35 )
Ты хоть примерно представляешь
откуда, если даже статья - неправильная
Цитата(Gamlet @ 24:08:2007, 10:54 )
Интерпритатор в них встраивается начиная с 1 пента
Попутал немного. В пенты никто яву не встраивал.
Вот информация ~2003 года (самоучитель с диска JBuilder):
Цитата
Фирма SUN Microsystems выпустила микропроцессоры PicoJava, работающие на системе команд JVM, и собирается выпускать целую линейку все более мощных Java-процессоров. Есть уже и Java-процессоры других фирм. Эти процессоры непосредственно выполняют байт-коды. Но при выполнении программ Java на других процессорах требуется еще интерпретация команд JVM в команды конкретного процессора, а значит, нужна программа-интерпретатор, причем для каждого типа процессоров, и для каждой архитектуры компьютера следует написать свой интерпретатор.
С тех пор особо о распространении процессоров с "зашитой явой" особо не слышал
Для: Azrael
Автор самоучителя тоже жжот. Байт-код Java, как и байт-код .NET не интерпретируется. Он компилируется код для конкретного процессора перед выполнением. Собственно, из-за этого извращения типа PicoJava оказались никому не нужны.
Для: sax_ol
почему vba?
Для:
Pashaа чем он плох, для начала самое то - пишеш и тутже видишь

(если серьезно то вба переоценить довольно трудно)
но доля иронии в моем посте конечно есть, потому как выбор был достаточно скуден
Цитата
Для: Normann
VB, C++, ASM. Ты уже на 3-м уровне сумрака.
А если начнешь вкуривать еще и Haskell, то попадешь сразу на четвертый
По существу топового вопроса:
Если с программированием особо не знаком то лучше начать с игрушечных языков: Basic, Action Script, Pascal. Если вопрос стоит о простоте изучения и зарабатывании денег, то смотри в сторону Java или .NET( С# в частности )
Normann
24:08:2007, 18:47
А мне кажется если не боишься потерять желание программировать то самое лучшее начинать с Ассемблера. Потом C++, когда освоишься в С++ тогда можно и выбирать пойдешь ли дальше на С или какой другой по выше.
Ребят, ВБА язык уродский! Его лучше не учить. Будушего в програминге нету! Это только для себя макросы в эксели писать. Лучше начните с ВБ(Удобный и простой) или С++(основной). Ассемблер сложный-на нем можно операционки и драйвера писать, для другого много марроки.Другие незнаю.
Ощибся по повуду Java потому, что ночинал учить и попался дуратский учебник.
progstone
26:08:2007, 12:10
глупый вопрос имеет смысл изучать технологии а не язык.Новые Языки нужно изучать когда не хватает возможности реализации или качества реализации требуемых технологий.Лучше спроси какой язык легче освоить новичку.
Прошу сильно меня не пинать.....
Суть в том, что я как и многие хочу научится какому-нибудь языку программирования.
Сейчас я неплохо разбираюсь в PHP4\5(и его модулях), в MySQL (c любым доступом втч из КС), в апаче и всех его конфиг-тюнинг примудростях. Немного знаю IIS (апача форевер) и JS, вобщем чистое WEB.
Соответственно, ищу какой-нибудь язык близкий по синтаксису к PHP.
Низкоуровневые языки пока учить не хочится, а хочется создавать проги под Вынь32 (64),
С возможностью работы по сети на уровне КСК, с БД и с различным ПО (желательно не только от MS)
А то вот то, что я сейчас творю с PHP это уже извращение....
И вот ещё хотелось, чтоб были уже хорошие доступные библиотеки для упрощения программирования
(как классы в PHP), там всякие конверторы, шаблонизаторы и всякое такое.
Спасибо!
Для: Gl00mY
Близкий по синтаксису к php - это любой C-подобный язык. Я бы посоветовал посмотреть в сторону C# и вообще .net. Он полностью подходит под твое описание.
progstone
13:11:2007, 22:24
.net недоконца подходит под описание,но кроме него разве что qt(генерит и под линух и под вынь32/64).
Начсет бд ADO или ADO.NET используя любой язык .NET или Visual C(типа низкоуровневое).Хотя многие неплохие програмеры исп php и mysql,понятие не имеют об источниках данных и строках подключения.
Ну Gl00mY скорее всего имел ввиду похожий не по синтаксису а по принципу,здесь qt чуток ближе.
Вообшем изучай .net принципы там малость другие,да и сервак IIS(если под веб исп asp+ms sql server),но освоить думаю не намного сложнее чем пхп.
Для: progstone
Чем именно .net не подходит? :-/ Стандартная библиотека умеет все перечисленное.
А qt - просто библиотека для C++, и на под вин на ней получаются довольно кривые приложения. Так что смысл ее использовать есть только для переноса гуи из линукса. Если иска
Вообще, судя по контексту, автору надоело веб-програмирование, и он хочет найти что-то вроде .net windows forms, причем такое, чтобы синтаксис был знакомый. Поэтому под описание подходит C++/Java/C#, дальше дело вкуса.
Для:
Pasha***Вообще, судя по контексту, автору надоело веб-програмирование***
Так точно )))
Просто живу я далеко и интернет слишком дорогой, чтоб эксперементировать с веб, а на локалхосте все не проэксперементируешь.... вобщем хочицца учится чему-нибудь, где интернет не так важен.
А писать проги на ПХП через веб-интерфейс

........
Это извращение, хотя я этим занимался
Для:
Pasha*** Близкий по синтаксису к php - это любой C-подобный язык. Я бы посоветовал посмотреть в сторону C# и вообще .net. Он полностью подходит под твое описание.***
По описанию очень понравилась Visual Studio Team System Developer Center (Visual C#)
Кто что скажет? Друг уже качает его с вареза для меня
Про .нет ничего не понял.... ((((
Для:
progstone***Вообшем изучай .net принципы там малость другие,да и сервак IIS(если под веб исп asp+ms sql server),но освоить думаю не намного сложнее чем пхп.***
Увольте меня что либо делать на асп и тем более иис, да и веб для меня не очень актуален уже!

Увы!
Для:
Gl00mYПро .net поймешь как только напишешь на C# хоть что-то сложнее Hello World.
Кстати, обычный ASP умер несколько лет назад, теперь под ASP обычно подразумевают ASP.NET. Поэтому связка ASP.NET+IIS актуальна как никогда
yashchar
15:11:2007, 09:17
Я начинал с PASCAL. Прекрасный язык для начала (ИМХО). Понятный и доступный начинающему синтаксис, поддержка основных направлений в программировании, да и Borland постарался на славу. Далее - как уже говорили многие в этой теме - куда лежит душа. Ассемблер можно изучить для понимания основ взаимодействия ПО и железа.
Кстати, может это только меня окружает, но почему все так вцепились в Java?
Для:
yashcharЦитата(yashchar @ 15:11:2007, 13:17 )
Кстати, может это только меня окружает, но почему все так вцепились в Java?
а) кроссплатформенный
б) мидлеты
в) простой
г) объекты рулят
Для:
Azraelа) не без приколов
б) а что это?
в) это индивидуально, для когото и пролог неподнимаем, а для кого и лисп конфетка
г) а где они не рулят?
Для: sax_ol
а) согласен, но тем не менее
б) мобильные платформы
в) снова согласен, но, тем не менее, синтаксис, имхо, прост
г) в Java с ними чуть-чуть проще работать, и, если не предполагается писать на низком уровне, то Java выигрывает у С/С++ в том, что будет меньше ошибок и проблем, типа утечки памяти, соответственно, время разработки будет меньше, глюков - опять же меньше
О минусах Java могу сказать только, что неудобно интерфейсы ваять.
Для:
yashcharPascal прост для изучения потому, что его синтаксис позволяет точно определить место синтаксической ошибки. И еще потому, что на нем можно писать не имея представления об указателях

Для:
sax_olA MIDlet is a Java program for embedded devices.
по кросплатформенности, среди промышленных языков, лучшая.
богатый инструментарий для создания маштобируемых решений.
сильное опенсорс сообщество. на каждый чих качественная опенсор либа или фреймворк(Hibetnate, Spring, Struts, GWT, DWT, apache.*, ...)
Цитата(Azrael @ 15:11:2007, 12:07 )
О минусах Java могу сказать только, что неудобно интерфейсы ваять.
не зачечал, ну разве что AWT кривоват, но для своего времени он был, имхо, самым удобным.
а так Swing или SWT очень даже ничего.
Цитата(Kmet @ 15:11:2007, 12:33 )
сильное опенсорс сообщество. на каждый чих качественная опенсор либа или фреймворк(Hibetnate, Spring, Struts, GWT, DWT, apache.*, ...)
Привязывать крупный проект к н-ти сторонним библиотекам нехорошо. Для .net все это или уже в стандартной библиотеке, или будет там в феврале

Цитата(Kmet @ 15:11:2007, 12:33 )
не зачечал, ну разве что AWT кривоват, но для своего времени он был, имхо, самым удобным.
а так Swing или SWT очень даже ничего.
Извини, но то убожество, которое получается при ваянии интерфейса на Swing нельзя оправдать даже кросплатформенностью. SWT еще более-менее.
Java хорош как промышленный язык.
...
А еще в java нет value types.
...и дальше куча аргументов из серии holy wars.
Цитата(Azrael @ 15:11:2007, 12:07 )
О минусах Java могу сказать только, что неудобно интерфейсы ваять.
А Finalize?, часто слышу упреки в это сторону ...
Для:
Pashaмне уже в #41 пояснили, но всеравно спс!
Цитата(Pasha @ 15:11:2007, 12:49 )
Привязывать крупный проект к н-ти сторонним библиотекам нехорошо
Не в случае с явой.
Цитата(Pasha @ 15:11:2007, 12:49 )
Для .net все это или уже в стандартной библиотеке, или будет там в феврале
в новой яве тоже обещают многое включить в SDK, но в любом случае это палка о двух концах.
Оба подхода(набор альтернативных библиотек или всеобъемлющий SDK) имеют как плюсы так и минусы.
Цитата(Pasha @ 15:11:2007, 12:49 )
Извини, но то убожество, которое получается при ваянии интерфейса на Swing нельзя оправдать даже кросплатформенностью
Тебе попадались неудачные примеры использования Swing.
IntelliJ IDEA убожество?!
Цитата(Pasha @ 15:11:2007, 12:49 )
А еще в java нет value types.
...и дальше куча аргументов из серии holy wars.
Я вообще не понял, к чему тут дотнет вспомнили.
Цитата(sax_ol @ 15:11:2007, 13:10 )
А Finalize?, часто слышу упреки в это сторону ...
В смысле?
Цитата(Kmet @ 15:11:2007, 14:38 )
В случае с любым продуктом. Невозможно хорошо разобратся во всех фреймворках, приходится специализироваться. В результате человек вроде как яву знает, но для того, чтобы начать работать над проектом, ему придется сначала понять все сторонние библиотеки, которые используются.
А какие минусы у большого, всеобъемлющего SDK?
Цитата(Kmet @ 15:11:2007, 14:38 )
Тебе попадались неудачные примеры использования Swing.
IntelliJ IDEA убожество?!
Не у всех есть время на вылизывание интерфейса как у IDEA. Swing подразумевает собственную отрисовку, что не есть хорошо под той же вистой. Все вокруг красивое, полупрозрачное, антиалиазинг, 3D, а посреди экрана окно с квадратными кнопками.
Цитата(Pasha @ 15:11:2007, 15:54 )
Невозможно хорошо разобратся во всех фреймворках, приходится специализироваться. В результате человек вроде как яву знает, но для того, чтобы начать работать над проектом, ему придется сначала понять все сторонние библиотеки, которые используются.
Ты хочешь сказать, от того, что все технологии реализуемые стороними библиотеками переметить в SDK, их (технологии) все сразу станут знать? Да, это, конечно, избавит от необходимости знать кучу реализаций одной технологии. Но для ява программиста такая проблема в общем-то и не стоит, она решилась эволюционным путем.
Цитата(Pasha @ 15:11:2007, 15:54 )
А какие минусы у большого, всеобъемлющего SDK?
отсутсвтие альтернативных реализаций. написать общее решение, которе подходило для всех всех случаев нельзя. но конечно хотелось бы =)
Цитата(Pasha @ 15:11:2007, 15:54 )
Не у всех есть время на вылизывание интерфейса как у IDEA
встречали и другие свинг пиложния с интерфейсом уровня IDEA, идея просто первой вспомнилась.
Цитата(Pasha @ 15:11:2007, 15:54 )
Swing подразумевает собственную отрисовку, что не есть хорошо под той же вистой. Все вокруг красивое, полупрозрачное, антиалиазинг, 3D, а посреди экрана окно с квадратными кнопками.
Ну это КУ. Цена мультиплатформенности. Хотя не все так плохо, натив Look&Feel под ХР смотрится вполне натив=). как обстоят дела на висте не знаю. С другой стороны не так много библиотек которые позволяют строить гуи, который одинаково смотрится на разных платформах, что для корпоратиных клиентов порой важно.
Цитата(Kmet @ 15:11:2007, 14:38 )
В смысле?
Ну вообщето я не знаю яву, и поэтому спрашивал ...
уточню
из
]]>http://java.sun.com/j2se/1.4.2/docs/api/ja...t.html#finalize]]>Цитата
"The finalize method may take any action, including making this object available again to other threads; the usual purpose of finalize, however, is to perform cleanup actions before the object is irrevocably discarded. For example, the finalize method for an object that represents an input/output connection might perform explicit I/O transactions to break the connection before the object is permanently discarded".
однако есть и такое
]]>http://blogs.sun.com/vmrobot/entry/%D1%81%...%86%D0%B8%D0%B8]]>вот и хотелось бы что-бы знающие люди пояснили - это гуд или не гуд
Цитата(Kmet @ 15:11:2007, 19:12 )
Ты хочешь сказать, от того, что все технологии реализуемые стороними библиотеками переметить в SDK, их (технологии) все сразу станут знать? Да, это, конечно, избавит от необходимости знать кучу реализаций одной технологии. Но для ява программиста такая проблема в общем-то и не стоит, она решилась эволюционным путем.
Эволющионный путь - это отмирание худших реализаций, выживание лучших? Но ведь кто-то завязал свои проекты на умершие/худшие реализации, и теперь вынужден их поддерживать или переписывать.
Хотя, огромный framework тоже не решает проблему полностью, только смягчает последствия. Сам наблюдал как у .net-чиков на собеседовании спрашивали "а вы работали с xxx" буквально по списку нэймспейсов.
Цитата(Kmet @ 15:11:2007, 19:12 )
отсутсвтие альтернативных реализаций. написать общее решение, которе подходило для всех всех случаев нельзя. но конечно хотелось бы =)
Для многих вещей, разбросанных по сторонним библиотекам можно выбрать если не лучшую, то по крайней мере наиболее удобную и расширяемую на данный момент реализацию. Если не нравится стандартная реализация, всегда можно выбрать стороннюю. Да и альтернативы внутри общего фрэймворка скорее всего будут.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.