LINUX.ORG.RU

ЯП для изучения

 , ,


1

1

Собственно, заниматься только сисадминством надоело и хочется разнообразия в работе. Пришла идея заняться программированием. За плечами изучение С# (весьма слабо) и собственно всё. Но т.к с окошками теперь дел имею мало, то и изучать решётку дальше смысла не вижу. В веб-языки (PHP...) не тянет точно. Поэтому выбор падает на Java/C/C++. Первый похож на решётку и это даст неплохой разгон в новый язык. А С/С++ в UNIX-среде как «швейцарский нож» - можно всё. Предложите правильный путь для развития - сам точно не определюсь. :(

Haskell по-человечески.

Си и кресы не нужны, ты ж не будешь ОС писать?

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

Си и кресы не нужны, ты ж не будешь ОС писать?

А софт под тот же Линь?

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

хочется разнообразия в работе

Хотелки, сэр.

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

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

FluffyPillow ()

Начни с C, а потом в зависимости от задач.

hateyoufeel ★★★★ ()

C/C++/ObjC/Java Можно начать с Си и Java. Одно научит понимать как работает система, второе научит правильно понимать ООП. А потом можно C++ т.к он позволяет и то и другое, но к сожалению позволяет слишком много.

mittorn ★★★★★ ()
Последнее исправление: mittorn (всего исправлений: 1)

Python. Во-первых поможет тебе в сисадминстве, во-вторых - начнешь свой путь в программировании.

А если выбирать между Java и C++, то проще монетку кинуть.

neon1ks ★★ ()

Для себя С однозначно. Можно всё, писать приятно, всё прозрачно удобно и хорошо....пока не приспичит копать чужой код.

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

Dron ★★★★★ ()

ИМХО

Начни с C, дойди до понимания работы с указателями и управления памятью. Ещё очень полезно вместе с C немного затронуть ассемблер, на уровне «читать несложный код и примерно понимать что тут происходит». И то и другое хорошо помогает в понимании того, как вся эта современная программная хренота в принципе функционирует. После этого можно двигаться в сторону любого другого понравившегося языка программирования.

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

Python, Haskell, Rust, C. C++ в качестве первого (по сути) языка — плохой выбор, имхо, хуже только Java. Впрочем, если начинал C#, то… Точно не надо дальше в эту пучину стремиться, а взять как раз другой язык с другой основной парадигмой, например Haskell. Зная Haskell и немного C# уже будешь лучше ориентироваться, и сможешь развиваться дальше. Но после C# сразу на Haskell сложно будет, слишком сильно отличается, тут уже от желания зависит, плыть по течению, или действительно тренировать мозг разным. Если всё же слишком сложно, то бери Python. К тому же он и в админстве пригодится. Удобный язык для небольших скриптов (но для которых шелла уже маловато). Ну и C, конечно, хоть самые основы, хорошо бы знать при любом раскладе. Но начинать ли именно сразу с него и двигаться к высокоуровневым уже с пониманием всего, что происходит «под капотом», или наоборот, начинать с более высокоуровневых, дабы благодаря абстракциям сосредотачиваться собственно на алгоритме, а не всякой мелочи рутинной, а потом уже углублять знания более низкого уровня — два разных пути, и я затрудняюсь сказать, какой лучше — кому как.

Psych218 ★★★★★ ()
Последнее исправление: Psych218 (всего исправлений: 2)
Ответ на: комментарий от FluffyPillow

Раньше perl использовали активно, сейчас перебираются на python.

Я программирую на C/C++, и сейчас явно вижу, что мне придется изучать python.

neon1ks ★★ ()

C - обязательно. Go/Python - после и по настроению. Java - только при мазохистских наклонностях.

chupasaurus ()

так учи что-то новое и перспективное, Go и Rust, например

Valeg ★★ ()

сам точно не определюсь

Значит оно тебе не надо. Если просто потыкать палочкой из академического интереса, то смотри какой-нибудь lisp, ML, R. Из скриптоты js, в крайнем случае ruby.

Java/C/C++

Если не для дела - то не нужно.

no-such-file ★★★★★ ()

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

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

А как насчет Perl?

Однозначно надо, не пожалеешь. Но только после Си (тут, K&R, «C unleashed», «Mastering C compiler», именно в таком порядке) и теории ОС (например, Олифер «Сетевые операционные системы»).

DELIRIUM ★★★★★ ()

С#
Java/C/C++
Предложите правильный путь для развития

Поковыряй-ка lor-source и используемые там инструменты.

shahid ★★★★★ ()

Очевидная жаба. И нервы сэкономишь, и денег заработаешь.

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

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

Java ещё и андроид, хотя это тоже два разных пути.

mono ★★★★★ ()

dotNet Core прекрасно работает под Линукс

Есть плагины для VSCODE да и http://www.monodevelop.com нынче вполне нормально работает

Как ЯП, С# гораздо приятнее Жабы, которая застряла в прошлом веке.

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

grim ★★★★ ()
Последнее исправление: grim (всего исправлений: 1)
Ответ на: комментарий от grim

Линуксовые библиотеки .so вызываются без особого геморроя (по сравнению с Жабой).

С другой стороны, С/С++ тоже полезно знать. Приучает к дисциплине.

Я недавно попробовал от ностальгии на ++ но разбалованный Жабой и С# долго не выдержал :(

grim ★★★★ ()

В чем проблема изучать сразу? Чередовать Java C++ C. Я примерно так и делаю, полет нормальный.

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

Fermion ()

А что никто Rust не советует? Вроде выяснили уже, что годно и кошерно, т.к. срачи нажористые получаются.

Virtuos86 ★★★★★ ()

ЯП для изучения

Напиши несколько полезных скриптов на bash для своего сисадминства и developmentа (makefile's; как пример, скрипт архивирования проекта локально). Потом займись их оптимизацией (скрипты должны похудеть раз в 10) --> почувствуешь just for fun и создашь себе базу для занятия программированием. ЯП, конечно начиная, С и затем С++. (если доберёшься до ООП и поймешь парадигмы ООП, проработай примеры в книжке Джеффа Элджера «С++»). Другие языки по мере востребования.

Как то так. ИМХО.

oblfan ()

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

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

плохой выбор, имхо, хуже только Java

И чем так плоха статическая и строгая java если даже гвидобейсик лучше нее?

ertgblasd ★★ ()

В общем, пришёл к выводу, что начну с С, а дальше видно будет. Всем спасибо!

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

срачи нажористые получаются.

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

Sociopsih ★★ ()
Последнее исправление: Sociopsih (всего исправлений: 1)

Верно Python советуют. Во-первых, часто проще накатать скрипт, чем возится в жирной IDE и потом компилировать. Во-вторых, на нём многое делается значительно проще и быстрее. И в третьих - он популярен, в линуксе полно софта на питоне. В web он тоже используется (вдруг когда-нибудь захочешь или нужда заставит).

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

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

Rust попробуй. Он для системного программирования, как и плюсы, но более безопасный (C++ позволит тебе выстрелить в ногу и месяцами вылавливать баги, Rust - в большинстве случаев откажется компилировать говнокод). Язык активно развивается и его ждёт большое будущее.

Ну или Ruby. Вот про него мало что знаю. Только то, что он работает схожим образом, как джава с питоном. Да их много таких ещё, но всё-таки Java и Python самые популярные (и, как следствие, поддерживаемые, что важно).

InterVi ()

C# клёвый, там все есть, и указатели, и ФП. Жаба говно. Кресты не нужны. Си для узких целей.

Если делать нечего - потыкай лучше лиспы.

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

И чем так плоха статическая и строгая java если даже гвидобейсик лучше нее?

Безальтернативное навязываение ООП с самого начала ломает мозг.

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

научит понимать как работает система

Как Си позволяет понять как работает система? Указателями?

grimwaken ()

C# вроде работает под линуксом, лучше его продолжи изучать, раз уж начал. А так как сисадмину, имхо, было бы логично выучить Python. Зачем тебе Java-то. В остальном пофиг, разницы нет.

Кстати двачую Golang. Очень интересный язык и практичный. Хорош в первую очередь своей простой.

Legioner ★★★★★ ()
Последнее исправление: Legioner (всего исправлений: 1)

tcl - просто и быстро делать программки для себя, которые потом работают везде.

scheme - куда-ж без неё, она как латынь в IT,обязательна к изучению. Все делают вид что знают, но никто не использует :-)

стартовать с C/C++ категорически не стоит, просто из-за того заодно требуются системы сборки, отладки, контроля версий - то есть придётся учить целую инфраструктуру.

MKuznetsov ★★★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)