LINUX.ORG.RU

Что выбрать?


0

3

Я сейчас заканчиваю первый курс универа и решил вот углубиться в С++. Как Вы посоветуете, стоит ли тратить время на него или выучить что-либо другое (Javа)?


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

Eddy_Em ☆☆☆☆☆
()

учи с++, учи java, учи всё что попадается тебе под руку --- потом будет уже не до этого.

anonymous
()
Ответ на: комментарий от anonymous

Можешь начать с книг стивенса и нормально изучить сишечку с линупсом. В стивенсе лишних знаний нет.

anonymous
()
Ответ на: комментарий от anonymous

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

херню говоришь. Методы разные везде, подходы, приёмы + хорошо бы знать детали среды в какой программируешь.

anonymous
()
Ответ на: комментарий от anonymous

Вот поэтому лучше действительно начать со Стивенса. А Страуструпа читать, когда уже С хорошенько освоишь.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от arsi

подскажу, фигня вопрос: учебники читай

уточню: бери Кнута «Искусство программирования», как всего осилишь там поднимай SICP, после этого уже сам сможешь выбирать куда двигаться

shty ★★★★★
()
Ответ на: комментарий от newby

> но я хотел бы углубиться пока во что-то одно, а базу изучать это везде надо.

вот и углубись в базу.

arsi ★★★★★
()
Ответ на: комментарий от newby

Это всё понятно, но я хотел бы углубиться пока во что-то одно, а базу изучать это везде надо.

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

shty ★★★★★
()
Ответ на: комментарий от shty

> бери Кнута «Искусство программирования», как всего осилишь
Не будет ли это overkill для человека, желающего научиться программировать, а не заниматься theoretical computer science?

Raving_Zealot ★★
()
Ответ на: комментарий от Raving_Zealot

И давно это Кнут стал чистой теорией?

LamerOk ★★★★★
()

>Что выбрать?

а что делать-то собрался? Микроконтроллеры программировать --- одно, клиент для скачки порнухи --- другое, научные расчеты --- третье.

dmn
()
Ответ на: комментарий от dmn

Сетевое программирование, работа с базами.

newby
() автор топика

Смотри на всё, бери интересное.

const86 ★★★★★
()
Ответ на: комментарий от Raving_Zealot

> бери Кнута «Искусство программирования», как всего осилишь

Не будет ли это overkill для человека, желающего научиться программировать, а не заниматься theoretical computer science?

если overkill, то надо учить VB scripting for Microsoft Word и не париться по поводу С++

shty ★★★★★
()
Ответ на: комментарий от newby

> Почему? Объясните, пожалуйста.

он сложнее жабы, можно наворотить граблей, а вот жаба - проверенное средство для массового клепания Enterprise, лучшее нее только C# и CL, да

aho
()

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

PolarFox ★★★★★
()
Ответ на: комментарий от newby

На Java будешь больше ориентироваться на архитектуру софта, на С++ будешь следить за тем чтобы правильно освобождать память

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

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

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

Java кроссплатформенна и обратно совместима, в С++ косяки ловятся в рамках сборки разными компиляторами, возможно и между версиями.

Java сообщество достаточно организованно и продуктивно, существуют такие организации как Apache, Eclipse и SpringSource, которые создали сотни библиотек и другого софта на все случаи жизни.

Java активно развивается Oracle, Google, IBM и миром Open Source и побеждает качественно и количественно .NET, который бы без существования Java просто поглотил рынок и привел к абсолютной доминации платформы от Microsoft на рынке десктопного и серверного софта.

С Java в рантайме совместимы Groovy, Scala, JRuby, Jython, Clojure и т.д. В то время в нативном коде, а особенно в С++ все далеко не на том уровне, ABI между нативными языками, и часто даже между компиляторами одного языка вообще никакое.

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

Будучи pure java получаешь их коробки несравнимую пока-что ни с чем переносимость и вкуснотищи типо Java Web Start без бубна.

Достаточно подробно?

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

> разработки корпоративного софта. С++ вообще не в дугу в этой сфере.

этого было бы достаточно - это ниша Java, все остальное - попытка выдать желаемое за действительно

aho
()
Ответ на: комментарий от aho

Зачем мне попытка? Я нормально владею этими языками и приходят предложения о работе на обоих. Но С++ просто совсем не на том уровне. Думаю попрограммировать на Java нужно хотя-бы на парочке проектов с достаточно большим функционалом чтобы стало понятно, что С++ - трата времени

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

> Зачем мне попытка?

не знаю, но фразы вроде полной кроссплатформенности Java - просто сказки, и раз ты хорошо ей владеешь - не можешь этого не знать

aho
()
Ответ на: комментарий от aho

Ну я считаю что когда программа переносима, если реально очень стараться и постоянно писать код для этого - то платформа не очень кроссплатформенна. Если для переносимости просто достаточно не быть ССЗБ аля String fullName = «C:\\»+fileName, то она кроссплатформенна.

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

ну это с любым языком так - если не быть ССЗБ и вылазить из «песочницы», то все хорошо и гладко, но за песочницей то находится реальный мир с разными ОС, где многое реализовано по разному, и в той же Java прекрасно возникают проблемы с сетью, гуем и пр., да и зоопарка в мире Java тоже хватает

aho
()
Ответ на: комментарий от vertexua

> В С++ будешь ловить сегфолты и дебагером пытаться отладить побитый стек.

Сколько лет его *бу - не знал, что он профессор!

LamerOk ★★★★★
()
Ответ на: комментарий от aho

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

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

> Java кроссплатформенна

Открой средствами JDK последовательный порт.

LamerOk ★★★★★
()
Ответ на: комментарий от vertexua

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


Сказал бы сразу - ниасилятор, панически боящийся «нативного кода». Чё распинаешься-то?

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

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

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

> Меня больше интересует почему они рядом

оба лучше же

aho
()
Ответ на: комментарий от vertexua

> Ах, да, забыл ГЛАВНОЕ! На нем пишутся VM! ))

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

aho
()
Ответ на: комментарий от aho

Естественно! Если бы наоборот, то они бы и на рынке наоборот были. И аналогия Linux vs Windows тут не работает. Обычные пользователи и какие нибудь lead developers - разные вещи. Они могу жрать кактус, а другие будут выбирать инструмент на котором задача решится как можно лучше, надежднее, быстрее и с меньшим количеством проблем

vertexua ★★★★★
()
Ответ на: комментарий от iZEN

> Вот когда CL (кстати, хто эта?)

Common Lisp - о том насколько это крутой язык и как широко используется ты легко можешь узнать почитав связанные с ним топики на ЛОР

aho
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.